From ba253b3275533837e2172423f251518e9289634e Mon Sep 17 00:00:00 2001 From: Alexander Zellober Date: Mon, 24 Jul 2023 13:52:52 +0200 Subject: [PATCH] fix white background svg --- app-v2.0.0-beta/main.js | 44 ++++++++++++++++---------------- app-v2.0.0-beta/main.js.map | 2 +- app-v2.0.0-beta/polyfills.js.map | 2 +- app-v2.0.0-beta/styles.css.map | 2 +- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/app-v2.0.0-beta/main.js b/app-v2.0.0-beta/main.js index 5223f1a..d34b7ed 100644 --- a/app-v2.0.0-beta/main.js +++ b/app-v2.0.0-beta/main.js @@ -4547,7 +4547,7 @@ AutosaveOptionsComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MO } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf, _angular_material_button__WEBPACK_IMPORTED_MODULE_5__.MatButton, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_6__.MatLabel, _angular_material_card__WEBPACK_IMPORTED_MODULE_7__.MatCard, _angular_material_card__WEBPACK_IMPORTED_MODULE_7__.MatCardContent, _angular_material_card__WEBPACK_IMPORTED_MODULE_7__.MatCardHeader, _angular_material_card__WEBPACK_IMPORTED_MODULE_7__.MatCardTitle, _angular_common__WEBPACK_IMPORTED_MODULE_4__.AsyncPipe], - styles: [".autosaveEnabled[_ngcontent-%COMP%], .autosaveInterval[_ngcontent-%COMP%] {\n display: inline-grid;\n grid-template-columns: 120px auto;\n width: 300px;\n grid-row-gap: 5px;\n height: 20px;\n}\n\n.enableButton[_ngcontent-%COMP%] {\n justify-self: start;\n}\n\n.autosaveEnabled[_ngcontent-%COMP%] {\n padding-bottom: 2px;\n}\n\n.autosaveInterval[_ngcontent-%COMP%] {\n padding-bottom: 10px;\n}\n\n.autosaveIntervalSpan[_ngcontent-%COMP%] {\n padding-top: 2px;\n justify-self: start;\n}\n\n.saveButton[_ngcontent-%COMP%] {\n align-self: end;\n right: 0;\n margin-left: -5px;\n}\n\n.cardContent[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n}\n\n.inputContainer[_ngcontent-%COMP%] {\n display: inline-grid;\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.numberInput[_ngcontent-%COMP%] {\n justify-self: end;\n width: 64px;\n}\n\n.alignSelfCenter[_ngcontent-%COMP%] {\n align-self: center;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0F1dG9zYXZlL0F1dG9zYXZlT3B0aW9ucy9hdXRvc2F2ZS1vcHRpb25zLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFLG9CQUFBO0VBQ0EsaUNBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0FBQ0Y7O0FBRUE7RUFDRSxtQkFBQTtBQUNGOztBQUVBO0VBQ0UsbUJBQUE7QUFDRjs7QUFFQTtFQUNFLG9CQUFBO0FBQ0Y7O0FBRUE7RUFDRSxnQkFBQTtFQUNBLG1CQUFBO0FBQ0Y7O0FBRUE7RUFDRSxlQUFBO0VBQ0EsUUFBQTtFQUNBLGlCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxhQUFBO0VBQ0EsOEJBQUE7QUFDRjs7QUFFQTtFQUNFLG9CQUFBO0VBQ0EsdUJBQUE7RUFBQSxrQkFBQTtBQUNGOztBQUVBO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBQTtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLmF1dG9zYXZlRW5hYmxlZCxcclxuLmF1dG9zYXZlSW50ZXJ2YWwge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTIwcHggYXV0bztcclxuICB3aWR0aDogMzAwcHg7XHJcbiAgZ3JpZC1yb3ctZ2FwOiA1cHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4uZW5hYmxlQnV0dG9uIHtcclxuICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xyXG59XHJcblxyXG4uYXV0b3NhdmVFbmFibGVkIHtcclxuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xyXG59XHJcblxyXG4uYXV0b3NhdmVJbnRlcnZhbCB7XHJcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbi5hdXRvc2F2ZUludGVydmFsU3BhbiB7XHJcbiAgcGFkZGluZy10b3A6IDJweDtcclxuICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xyXG59XHJcblxyXG4uc2F2ZUJ1dHRvbiB7XHJcbiAgYWxpZ24tc2VsZjogZW5kO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xyXG59XHJcblxyXG4uY2FyZENvbnRlbnQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4uaW5wdXRDb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xyXG4gIHdpZHRoOiBmaXQtY29udGVudDtcclxufVxyXG5cclxuLm51bWJlcklucHV0IHtcclxuICBqdXN0aWZ5LXNlbGY6IGVuZDtcclxuICB3aWR0aDogNjRweDtcclxufVxyXG5cclxuLmFsaWduU2VsZkNlbnRlciB7XHJcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"] + styles: [".autosaveEnabled[_ngcontent-%COMP%], .autosaveInterval[_ngcontent-%COMP%] {\n display: inline-grid;\n grid-template-columns: 120px auto;\n width: 300px;\n grid-row-gap: 5px;\n height: 20px;\n}\n\n.enableButton[_ngcontent-%COMP%] {\n justify-self: start;\n}\n\n.autosaveEnabled[_ngcontent-%COMP%] {\n padding-bottom: 2px;\n}\n\n.autosaveInterval[_ngcontent-%COMP%] {\n padding-bottom: 10px;\n}\n\n.autosaveIntervalSpan[_ngcontent-%COMP%] {\n padding-top: 2px;\n justify-self: start;\n}\n\n.saveButton[_ngcontent-%COMP%] {\n align-self: end;\n right: 0;\n margin-left: -5px;\n}\n\n.cardContent[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n}\n\n.inputContainer[_ngcontent-%COMP%] {\n display: inline-grid;\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.numberInput[_ngcontent-%COMP%] {\n justify-self: end;\n width: 64px;\n}\n\n.alignSelfCenter[_ngcontent-%COMP%] {\n align-self: center;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0F1dG9zYXZlL0F1dG9zYXZlT3B0aW9ucy9hdXRvc2F2ZS1vcHRpb25zLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFLG9CQUFBO0VBQ0EsaUNBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0FBQ0Y7O0FBRUE7RUFDRSxtQkFBQTtBQUNGOztBQUVBO0VBQ0UsbUJBQUE7QUFDRjs7QUFFQTtFQUNFLG9CQUFBO0FBQ0Y7O0FBRUE7RUFDRSxnQkFBQTtFQUNBLG1CQUFBO0FBQ0Y7O0FBRUE7RUFDRSxlQUFBO0VBQ0EsUUFBQTtFQUNBLGlCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxhQUFBO0VBQ0EsOEJBQUE7QUFDRjs7QUFFQTtFQUNFLG9CQUFBO0VBQ0EsdUJBQUE7RUFBQSxrQkFBQTtBQUNGOztBQUVBO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBQTtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLmF1dG9zYXZlRW5hYmxlZCxcbi5hdXRvc2F2ZUludGVydmFsIHtcbiAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTIwcHggYXV0bztcbiAgd2lkdGg6IDMwMHB4O1xuICBncmlkLXJvdy1nYXA6IDVweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZW5hYmxlQnV0dG9uIHtcbiAganVzdGlmeS1zZWxmOiBzdGFydDtcbn1cblxuLmF1dG9zYXZlRW5hYmxlZCB7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG59XG5cbi5hdXRvc2F2ZUludGVydmFsIHtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbi5hdXRvc2F2ZUludGVydmFsU3BhbiB7XG4gIHBhZGRpbmctdG9wOiAycHg7XG4gIGp1c3RpZnktc2VsZjogc3RhcnQ7XG59XG5cbi5zYXZlQnV0dG9uIHtcbiAgYWxpZ24tc2VsZjogZW5kO1xuICByaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG59XG5cbi5jYXJkQ29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmlucHV0Q29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbn1cblxuLm51bWJlcklucHV0IHtcbiAganVzdGlmeS1zZWxmOiBlbmQ7XG4gIHdpZHRoOiA2NHB4O1xufVxuXG4uYWxpZ25TZWxmQ2VudGVyIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] }); /***/ }), @@ -4720,7 +4720,7 @@ AutosavedDraftsComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MO } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf, _angular_material_button__WEBPACK_IMPORTED_MODULE_5__.MatButton, _angular_material_expansion__WEBPACK_IMPORTED_MODULE_6__.MatAccordion, _angular_material_expansion__WEBPACK_IMPORTED_MODULE_6__.MatExpansionPanel, _angular_material_expansion__WEBPACK_IMPORTED_MODULE_6__.MatExpansionPanelHeader, _angular_material_expansion__WEBPACK_IMPORTED_MODULE_6__.MatExpansionPanelTitle, _angular_material_expansion__WEBPACK_IMPORTED_MODULE_6__.MatExpansionPanelDescription], - styles: [".items[_ngcontent-%COMP%] {\n padding-top: 0 !important;\n}\n.items[_ngcontent-%COMP%] .mat-list-item-content {\n padding: 0;\n}\n\n.item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 8px 0;\n width: 400px;\n}\n\n.border-bottom[_ngcontent-%COMP%] {\n border-bottom: 1px solid darkgray;\n}\n\n.item-title[_ngcontent-%COMP%] {\n font-weight: bold;\n width: 270px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.item-date[_ngcontent-%COMP%] {\n font-weight: normal;\n}\n\n.item-button[_ngcontent-%COMP%] {\n margin-left: 1rem;\n}\n\nmat-list-item[_ngcontent-%COMP%] {\n border-bottom: 1px solid darkgray;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0F1dG9zYXZlL0F1dG9zYXZlZERyYWZ0cy9hdXRvc2F2ZWQtZHJhZnRzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBSUUseUJBQUE7QUFGRjtBQURFO0VBQ0UsVUFBQTtBQUdKOztBQUVBO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtBQUNGOztBQUVBO0VBQ0UsaUNBQUE7QUFDRjs7QUFFQTtFQUNFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBQUNGOztBQUVBO0VBQ0UsbUJBQUE7QUFDRjs7QUFFQTtFQUNFLGlCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxpQ0FBQTtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLml0ZW1zIHtcclxuICA6Om5nLWRlZXAubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIHBhZGRpbmc6IDhweCAwO1xyXG4gIHdpZHRoOiA0MDBweDtcclxufVxyXG5cclxuLmJvcmRlci1ib3R0b20ge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZ3JheTtcclxufVxyXG5cclxuLml0ZW0tdGl0bGUge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHdpZHRoOiAyNzBweDtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5pdGVtLWRhdGUge1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbn1cclxuXHJcbi5pdGVtLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XHJcbn1cclxuXHJcbm1hdC1saXN0LWl0ZW0ge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZ3JheTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9 */"] + styles: [".items[_ngcontent-%COMP%] {\n padding-top: 0 !important;\n}\n.items[_ngcontent-%COMP%] .mat-list-item-content {\n padding: 0;\n}\n\n.item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 8px 0;\n width: 400px;\n}\n\n.border-bottom[_ngcontent-%COMP%] {\n border-bottom: 1px solid darkgray;\n}\n\n.item-title[_ngcontent-%COMP%] {\n font-weight: bold;\n width: 270px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.item-date[_ngcontent-%COMP%] {\n font-weight: normal;\n}\n\n.item-button[_ngcontent-%COMP%] {\n margin-left: 1rem;\n}\n\nmat-list-item[_ngcontent-%COMP%] {\n border-bottom: 1px solid darkgray;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0F1dG9zYXZlL0F1dG9zYXZlZERyYWZ0cy9hdXRvc2F2ZWQtZHJhZnRzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBSUUseUJBQUE7QUFGRjtBQURFO0VBQ0UsVUFBQTtBQUdKOztBQUVBO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtBQUNGOztBQUVBO0VBQ0UsaUNBQUE7QUFDRjs7QUFFQTtFQUNFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBQUNGOztBQUVBO0VBQ0UsbUJBQUE7QUFDRjs7QUFFQTtFQUNFLGlCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxpQ0FBQTtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLml0ZW1zIHtcbiAgOjpuZy1kZWVwLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4uaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogOHB4IDA7XG4gIHdpZHRoOiA0MDBweDtcbn1cblxuLmJvcmRlci1ib3R0b20ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2dyYXk7XG59XG5cbi5pdGVtLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdpZHRoOiAyNzBweDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5pdGVtLWRhdGUge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uaXRlbS1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbn1cblxubWF0LWxpc3QtaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZ3JheTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= */"] }); /***/ }), @@ -4761,7 +4761,7 @@ ModelerComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_1__ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](0, "div", 0); } }, - styles: ["#canvas[_ngcontent-%COMP%], #canvas[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n top: 0;\n width: 100%;\n height: 100%;\n position: relative;\n bottom: 0;\n overflow: hidden;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0NhbnZhcy9tb2RlbGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFLE1BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLGdCQUFBO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIjY2FudmFzLFxyXG4jY2FudmFzID4gZGl2IHtcclxuICB0b3A6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3R0b206IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9 */"] + styles: ["#canvas[_ngcontent-%COMP%], #canvas[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n top: 0;\n width: 100%;\n height: 100%;\n position: relative;\n bottom: 0;\n overflow: hidden;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0NhbnZhcy9tb2RlbGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFLE1BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLGdCQUFBO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIjY2FudmFzLFxuI2NhbnZhcyA+IGRpdiB7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 */"] }); /***/ }), @@ -4876,7 +4876,7 @@ ActivityDialogComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MOD } }, dependencies: [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.NumberValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.CheckboxControlValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.FormGroupDirective, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.FormControlName, _angular_material_button__WEBPACK_IMPORTED_MODULE_4__.MatButton, _angular_material_dialog__WEBPACK_IMPORTED_MODULE_3__.MatDialogContent, _angular_material_dialog__WEBPACK_IMPORTED_MODULE_3__.MatDialogActions, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_5__.MatFormField, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_5__.MatLabel, _angular_material_input__WEBPACK_IMPORTED_MODULE_6__.MatInput], - styles: [".shortWidth[_ngcontent-%COMP%] {\n width: 200px;\n}\n\n.fullWidth[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n .mat-form-field-label {\n font-size: 12pt !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RpYWxvZy9hY3Rpdml0eS1kaWFsb2cvYWN0aXZpdHktZGlhbG9nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtBQUNGOztBQUVBO0VBQ0UsV0FBQTtBQUNGOztBQUNBO0VBQ0UsMEJBQUE7QUFFRiIsInNvdXJjZXNDb250ZW50IjpbIi5zaG9ydFdpZHRoIHtcclxuICB3aWR0aDogMjAwcHg7XHJcbn1cclxuXHJcbi5mdWxsV2lkdGgge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcbjo6bmctZGVlcC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxMnB0ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] + styles: [".shortWidth[_ngcontent-%COMP%] {\n width: 200px;\n}\n\n.fullWidth[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n .mat-form-field-label {\n font-size: 12pt !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RpYWxvZy9hY3Rpdml0eS1kaWFsb2cvYWN0aXZpdHktZGlhbG9nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtBQUNGOztBQUVBO0VBQ0UsV0FBQTtBQUNGOztBQUNBO0VBQ0UsMEJBQUE7QUFFRiIsInNvdXJjZXNDb250ZW50IjpbIi5zaG9ydFdpZHRoIHtcbiAgd2lkdGg6IDIwMHB4O1xufVxuXG4uZnVsbFdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7XG59XG46Om5nLWRlZXAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBmb250LXNpemU6IDEycHQgIWltcG9ydGFudDtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= */"] }); /***/ }), @@ -5094,7 +5094,7 @@ HeaderDialogComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODUL } }, dependencies: [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.MaxLengthValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.FormGroupDirective, _angular_forms__WEBPACK_IMPORTED_MODULE_2__.FormControlName, _angular_material_button__WEBPACK_IMPORTED_MODULE_4__.MatButton, _angular_material_dialog__WEBPACK_IMPORTED_MODULE_3__.MatDialogContent, _angular_material_dialog__WEBPACK_IMPORTED_MODULE_3__.MatDialogActions, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_5__.MatFormField, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_5__.MatLabel, _angular_material_input__WEBPACK_IMPORTED_MODULE_6__.MatInput], - styles: [".dialogWidth[_ngcontent-%COMP%] {\n width: 50vw;\n}\n.dialogWidth[_ngcontent-%COMP%] mat-label[_ngcontent-%COMP%] {\n font-size: 12pt;\n}\n\n.descriptionInput[_ngcontent-%COMP%] {\n min-height: 75px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RpYWxvZy9oZWFkZXItZGlhbG9nL2hlYWRlci1kaWFsb2cuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0FBQ0Y7QUFBRTtFQUNFLGVBQUE7QUFFSjs7QUFFQTtFQUNFLGdCQUFBO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIuZGlhbG9nV2lkdGgge1xyXG4gIHdpZHRoOiA1MHZ3O1xyXG4gIG1hdC1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IDEycHQ7XHJcbiAgfVxyXG59XHJcblxyXG4uZGVzY3JpcHRpb25JbnB1dCB7XHJcbiAgbWluLWhlaWdodDogNzVweDtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9 */"] + styles: [".dialogWidth[_ngcontent-%COMP%] {\n width: 50vw;\n}\n.dialogWidth[_ngcontent-%COMP%] mat-label[_ngcontent-%COMP%] {\n font-size: 12pt;\n}\n\n.descriptionInput[_ngcontent-%COMP%] {\n min-height: 75px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RpYWxvZy9oZWFkZXItZGlhbG9nL2hlYWRlci1kaWFsb2cuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0FBQ0Y7QUFBRTtFQUNFLGVBQUE7QUFFSjs7QUFFQTtFQUNFLGdCQUFBO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIuZGlhbG9nV2lkdGgge1xuICB3aWR0aDogNTB2dztcbiAgbWF0LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHQ7XG4gIH1cbn1cblxuLmRlc2NyaXB0aW9uSW5wdXQge1xuICBtaW4taGVpZ2h0OiA3NXB4O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] }); /***/ }), @@ -5204,7 +5204,7 @@ InfoDialogComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_ } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_3__.NgIf, _angular_material_dialog__WEBPACK_IMPORTED_MODULE_2__.MatDialogContent, _angular_material_dialog__WEBPACK_IMPORTED_MODULE_2__.MatDialogActions], - styles: [".readOnlyText[_ngcontent-%COMP%] {\n display: block;\n border: none;\n resize: none;\n width: 100%;\n overflow: hidden;\n white-space: pre-wrap;\n}\n\n.content[_ngcontent-%COMP%] {\n height: -moz-fit-content;\n height: fit-content;\n width: 30vw;\n overflow: hidden;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RpYWxvZy9pbmZvLWRpYWxvZy9pbmZvLWRpYWxvZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FBQ0Y7O0FBRUE7RUFDRSx3QkFBQTtFQUFBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIucmVhZE9ubHlUZXh0IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgcmVzaXplOiBub25lO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xyXG59XHJcblxyXG4uY29udGVudCB7XHJcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcclxuICB3aWR0aDogMzB2dztcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"] + styles: [".readOnlyText[_ngcontent-%COMP%] {\n display: block;\n border: none;\n resize: none;\n width: 100%;\n overflow: hidden;\n white-space: pre-wrap;\n}\n\n.content[_ngcontent-%COMP%] {\n height: -moz-fit-content;\n height: fit-content;\n width: 30vw;\n overflow: hidden;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RpYWxvZy9pbmZvLWRpYWxvZy9pbmZvLWRpYWxvZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FBQ0Y7O0FBRUE7RUFDRSx3QkFBQTtFQUFBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIucmVhZE9ubHlUZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlcjogbm9uZTtcbiAgcmVzaXplOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuXG4uY29udGVudCB7XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gIHdpZHRoOiAzMHZ3O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] }); /***/ }), @@ -5325,7 +5325,7 @@ DetailsListItemComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MO } }, dependencies: [_angular_material_form_field__WEBPACK_IMPORTED_MODULE_1__.MatLabel], - styles: [".icon[_ngcontent-%COMP%] {\n width: 20px;\n height: 20px;\n padding-right: 3px;\n}\n\n.detailsListItem[_ngcontent-%COMP%] {\n display: flex;\n justify-items: center;\n align-items: center;\n width: 250px;\n}\n\n.iconName[_ngcontent-%COMP%] {\n max-width: 225px;\n word-wrap: anywhere;\n white-space: pre-wrap !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RvbWFpbkNvbmZpZ3VyYXRpb24vZGV0YWlscy1saXN0LWl0ZW0vZGV0YWlscy1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxhQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUFDRjs7QUFFQTtFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQ0FBQTtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLmljb24ge1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAzcHg7XHJcbn1cclxuXHJcbi5kZXRhaWxzTGlzdEl0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgd2lkdGg6IDI1MHB4O1xyXG59XHJcblxyXG4uaWNvbk5hbWUge1xyXG4gIG1heC13aWR0aDogMjI1cHg7XHJcbiAgd29yZC13cmFwOiBhbnl3aGVyZTtcclxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXAgIWltcG9ydGFudDtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9 */"] + styles: [".icon[_ngcontent-%COMP%] {\n width: 20px;\n height: 20px;\n padding-right: 3px;\n}\n\n.detailsListItem[_ngcontent-%COMP%] {\n display: flex;\n justify-items: center;\n align-items: center;\n width: 250px;\n}\n\n.iconName[_ngcontent-%COMP%] {\n max-width: 225px;\n word-wrap: anywhere;\n white-space: pre-wrap !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RvbWFpbkNvbmZpZ3VyYXRpb24vZGV0YWlscy1saXN0LWl0ZW0vZGV0YWlscy1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxhQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUFDRjs7QUFFQTtFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQ0FBQTtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLmljb24ge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzcHg7XG59XG5cbi5kZXRhaWxzTGlzdEl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAyNTBweDtcbn1cblxuLmljb25OYW1lIHtcbiAgbWF4LXdpZHRoOiAyMjVweDtcbiAgd29yZC13cmFwOiBhbnl3aGVyZTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwICFpbXBvcnRhbnQ7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 */"] }); /***/ }), @@ -5640,7 +5640,7 @@ DomainConfigurationComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTE } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_11__.NgForOf, _angular_material_button__WEBPACK_IMPORTED_MODULE_12__.MatButton, _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_13__.MatGridList, _angular_material_grid_list__WEBPACK_IMPORTED_MODULE_13__.MatGridTile, _angular_material_input__WEBPACK_IMPORTED_MODULE_14__.MatInput, _icon_list_item_icon_list_item_component__WEBPACK_IMPORTED_MODULE_7__.IconListItemComponent, _domain_details_domain_details_component__WEBPACK_IMPORTED_MODULE_8__.DomainDetailsComponent, _angular_common__WEBPACK_IMPORTED_MODULE_11__.AsyncPipe], - styles: [".content[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 250px;\n}\n\n.header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: max-content auto max-content;\n border-bottom: #ccc 2px solid;\n height: 46px;\n}\n\n.buttons[_ngcontent-%COMP%] {\n align-self: center;\n justify-self: left;\n}\n.buttons[_ngcontent-%COMP%] .mat-button {\n min-width: 36px;\n}\n\n.saveButtons[_ngcontent-%COMP%] {\n align-self: center;\n display: inline-flex;\n justify-items: center;\n padding-right: 5px;\n}\n.saveButtons[_ngcontent-%COMP%] .mat-button {\n min-width: 36px;\n}\n\n.button[_ngcontent-%COMP%] {\n width: 36px;\n}\n\n.mat-button[_ngcontent-%COMP%] {\n color: #666666;\n}\n\n.spacer[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n}\n\n.domainConfiguration[_ngcontent-%COMP%] {\n padding-left: 10px;\n padding-bottom: 5px;\n margin-top: 15px;\n height: 100%;\n}\n\n.icons[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: 2rem auto;\n height: 100%;\n grid-row-gap: 1px;\n}\n\n.divider[_ngcontent-%COMP%] {\n border-left: #ccc 2px solid;\n}\n\n.searchbar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 5px 40px 65px 10px 65px 10px 100px 20px 300px;\n margin-left: 15px;\n margin-right: 10px;\n align-self: center;\n align-items: center;\n justify-self: left;\n border-left: #ccc 2px solid;\n height: inherit;\n}\n\n.activeActor[_ngcontent-%COMP%] {\n background-color: #42aebb;\n color: white;\n}\n\n.activeNone[_ngcontent-%COMP%] {\n background-color: #e0e0e0;\n color: black;\n}\n\n.activeWorkObject[_ngcontent-%COMP%] {\n background-color: #42aebb;\n color: white;\n}\n\n.textInput[_ngcontent-%COMP%] {\n width: 300px;\n border: #666666 1px solid;\n}\n\n.iconList[_ngcontent-%COMP%] {\n display: grid;\n overflow-y: scroll;\n height: calc(100vh - 130px);\n}\n\n.domainDetails[_ngcontent-%COMP%] {\n overflow-y: scroll;\n width: 250px;\n height: calc(100vh - 65px);\n}\n\n .mat-grid-tile .mat-grid-tile-content {\n justify-content: inherit;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RvbWFpbkNvbmZpZ3VyYXRpb24vZG9tYWluLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFBO0VBQ0EsaUNBQUE7QUFDRjs7QUFFQTtFQUNFLGFBQUE7RUFDQSxtREFBQTtFQUNBLDZCQUFBO0VBQ0EsWUFBQTtBQUNGOztBQUVBO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtBQUNGO0FBQ0U7RUFDRSxlQUFBO0FBQ0o7O0FBR0E7RUFDRSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQUFGO0FBRUU7RUFDRSxlQUFBO0FBQUo7O0FBSUE7RUFDRSxXQUFBO0FBREY7O0FBSUE7RUFDRSxjQUFBO0FBREY7O0FBSUE7RUFDRSxjQUFBO0FBREY7O0FBSUE7RUFDRSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0FBREY7O0FBSUE7RUFDRSxhQUFBO0VBQ0EsNkJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUFERjs7QUFJQTtFQUNFLDJCQUFBO0FBREY7O0FBSUE7RUFDRSxhQUFBO0VBQ0Esb0VBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsMkJBQUE7RUFDQSxlQUFBO0FBREY7O0FBSUE7RUFDRSx5QkFBQTtFQUNBLFlBQUE7QUFERjs7QUFJQTtFQUNFLHlCQUFBO0VBQ0EsWUFBQTtBQURGOztBQUlBO0VBQ0UseUJBQUE7RUFDQSxZQUFBO0FBREY7O0FBSUE7RUFDRSxZQUFBO0VBQ0EseUJBQUE7QUFERjs7QUFJQTtFQUNFLGFBQUE7RUFDQSxrQkFBQTtFQUNBLDJCQUFBO0FBREY7O0FBSUE7RUFDRSxrQkFBQTtFQUNBLFlBQUE7RUFDQSwwQkFBQTtBQURGOztBQUtFO0VBQ0Usd0JBQUE7QUFGSiIsInNvdXJjZXNDb250ZW50IjpbIi5jb250ZW50IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAyNTBweDtcclxufVxyXG5cclxuLmhlYWRlciB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1heC1jb250ZW50IGF1dG8gbWF4LWNvbnRlbnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogI2NjYyAycHggc29saWQ7XHJcbiAgaGVpZ2h0OiA0NnB4O1xyXG59XHJcblxyXG4uYnV0dG9ucyB7XHJcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gIGp1c3RpZnktc2VsZjogbGVmdDtcclxuXHJcbiAgOjpuZy1kZWVwLm1hdC1idXR0b24ge1xyXG4gICAgbWluLXdpZHRoOiAzNnB4O1xyXG4gIH1cclxufVxyXG5cclxuLnNhdmVCdXR0b25zIHtcclxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuXHJcbiAgOjpuZy1kZWVwLm1hdC1idXR0b24ge1xyXG4gICAgbWluLXdpZHRoOiAzNnB4O1xyXG4gIH1cclxufVxyXG5cclxuLmJ1dHRvbiB7XHJcbiAgd2lkdGg6IDM2cHg7XHJcbn1cclxuXHJcbi5tYXQtYnV0dG9uIHtcclxuICBjb2xvcjogIzY2NjY2NjtcclxufVxyXG5cclxuLnNwYWNlciB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbn1cclxuXHJcbi5kb21haW5Db25maWd1cmF0aW9uIHtcclxuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLmljb25zIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtcm93czogMnJlbSBhdXRvO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBncmlkLXJvdy1nYXA6IDFweDtcclxufVxyXG5cclxuLmRpdmlkZXIge1xyXG4gIGJvcmRlci1sZWZ0OiAjY2NjIDJweCBzb2xpZDtcclxufVxyXG5cclxuLnNlYXJjaGJhciB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDVweCA0MHB4IDY1cHggMTBweCA2NXB4IDEwcHggMTAwcHggMjBweCAzMDBweDtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1zZWxmOiBsZWZ0O1xyXG4gIGJvcmRlci1sZWZ0OiAjY2NjIDJweCBzb2xpZDtcclxuICBoZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbi5hY3RpdmVBY3RvciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYWViYjtcclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5hY3RpdmVOb25lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xyXG4gIGNvbG9yOiBibGFjaztcclxufVxyXG5cclxuLmFjdGl2ZVdvcmtPYmplY3Qge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmFlYmI7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4udGV4dElucHV0IHtcclxuICB3aWR0aDogMzAwcHg7XHJcbiAgYm9yZGVyOiAjNjY2NjY2IDFweCBzb2xpZDtcclxufVxyXG5cclxuLmljb25MaXN0IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMzBweCk7XHJcbn1cclxuXHJcbi5kb21haW5EZXRhaWxzIHtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgd2lkdGg6IDI1MHB4O1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDY1cHgpO1xyXG59XHJcblxyXG46Om5nLWRlZXAubWF0LWdyaWQtdGlsZSB7XHJcbiAgLm1hdC1ncmlkLXRpbGUtY29udGVudCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGluaGVyaXQ7XHJcbiAgfVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"] + styles: [".content[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 250px;\n}\n\n.header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: max-content auto max-content;\n border-bottom: #ccc 2px solid;\n height: 46px;\n}\n\n.buttons[_ngcontent-%COMP%] {\n align-self: center;\n justify-self: left;\n}\n.buttons[_ngcontent-%COMP%] .mat-button {\n min-width: 36px;\n}\n\n.saveButtons[_ngcontent-%COMP%] {\n align-self: center;\n display: inline-flex;\n justify-items: center;\n padding-right: 5px;\n}\n.saveButtons[_ngcontent-%COMP%] .mat-button {\n min-width: 36px;\n}\n\n.button[_ngcontent-%COMP%] {\n width: 36px;\n}\n\n.mat-button[_ngcontent-%COMP%] {\n color: #666666;\n}\n\n.spacer[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n}\n\n.domainConfiguration[_ngcontent-%COMP%] {\n padding-left: 10px;\n padding-bottom: 5px;\n margin-top: 15px;\n height: 100%;\n}\n\n.icons[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: 2rem auto;\n height: 100%;\n grid-row-gap: 1px;\n}\n\n.divider[_ngcontent-%COMP%] {\n border-left: #ccc 2px solid;\n}\n\n.searchbar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 5px 40px 65px 10px 65px 10px 100px 20px 300px;\n margin-left: 15px;\n margin-right: 10px;\n align-self: center;\n align-items: center;\n justify-self: left;\n border-left: #ccc 2px solid;\n height: inherit;\n}\n\n.activeActor[_ngcontent-%COMP%] {\n background-color: #42aebb;\n color: white;\n}\n\n.activeNone[_ngcontent-%COMP%] {\n background-color: #e0e0e0;\n color: black;\n}\n\n.activeWorkObject[_ngcontent-%COMP%] {\n background-color: #42aebb;\n color: white;\n}\n\n.textInput[_ngcontent-%COMP%] {\n width: 300px;\n border: #666666 1px solid;\n}\n\n.iconList[_ngcontent-%COMP%] {\n display: grid;\n overflow-y: scroll;\n height: calc(100vh - 130px);\n}\n\n.domainDetails[_ngcontent-%COMP%] {\n overflow-y: scroll;\n width: 250px;\n height: calc(100vh - 65px);\n}\n\n .mat-grid-tile .mat-grid-tile-content {\n justify-content: inherit;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RvbWFpbkNvbmZpZ3VyYXRpb24vZG9tYWluLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFBO0VBQ0EsaUNBQUE7QUFDRjs7QUFFQTtFQUNFLGFBQUE7RUFDQSxtREFBQTtFQUNBLDZCQUFBO0VBQ0EsWUFBQTtBQUNGOztBQUVBO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtBQUNGO0FBQ0U7RUFDRSxlQUFBO0FBQ0o7O0FBR0E7RUFDRSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQUFGO0FBRUU7RUFDRSxlQUFBO0FBQUo7O0FBSUE7RUFDRSxXQUFBO0FBREY7O0FBSUE7RUFDRSxjQUFBO0FBREY7O0FBSUE7RUFDRSxjQUFBO0FBREY7O0FBSUE7RUFDRSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0FBREY7O0FBSUE7RUFDRSxhQUFBO0VBQ0EsNkJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUFERjs7QUFJQTtFQUNFLDJCQUFBO0FBREY7O0FBSUE7RUFDRSxhQUFBO0VBQ0Esb0VBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsMkJBQUE7RUFDQSxlQUFBO0FBREY7O0FBSUE7RUFDRSx5QkFBQTtFQUNBLFlBQUE7QUFERjs7QUFJQTtFQUNFLHlCQUFBO0VBQ0EsWUFBQTtBQURGOztBQUlBO0VBQ0UseUJBQUE7RUFDQSxZQUFBO0FBREY7O0FBSUE7RUFDRSxZQUFBO0VBQ0EseUJBQUE7QUFERjs7QUFJQTtFQUNFLGFBQUE7RUFDQSxrQkFBQTtFQUNBLDJCQUFBO0FBREY7O0FBSUE7RUFDRSxrQkFBQTtFQUNBLFlBQUE7RUFDQSwwQkFBQTtBQURGOztBQUtFO0VBQ0Usd0JBQUE7QUFGSiIsInNvdXJjZXNDb250ZW50IjpbIi5jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDI1MHB4O1xufVxuXG4uaGVhZGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCBhdXRvIG1heC1jb250ZW50O1xuICBib3JkZXItYm90dG9tOiAjY2NjIDJweCBzb2xpZDtcbiAgaGVpZ2h0OiA0NnB4O1xufVxuXG4uYnV0dG9ucyB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAganVzdGlmeS1zZWxmOiBsZWZ0O1xuXG4gIDo6bmctZGVlcC5tYXQtYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IDM2cHg7XG4gIH1cbn1cblxuLnNhdmVCdXR0b25zIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cbiAgOjpuZy1kZWVwLm1hdC1idXR0b24ge1xuICAgIG1pbi13aWR0aDogMzZweDtcbiAgfVxufVxuXG4uYnV0dG9uIHtcbiAgd2lkdGg6IDM2cHg7XG59XG5cbi5tYXQtYnV0dG9uIHtcbiAgY29sb3I6ICM2NjY2NjY7XG59XG5cbi5zcGFjZXIge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLmRvbWFpbkNvbmZpZ3VyYXRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmljb25zIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAycmVtIGF1dG87XG4gIGhlaWdodDogMTAwJTtcbiAgZ3JpZC1yb3ctZ2FwOiAxcHg7XG59XG5cbi5kaXZpZGVyIHtcbiAgYm9yZGVyLWxlZnQ6ICNjY2MgMnB4IHNvbGlkO1xufVxuXG4uc2VhcmNoYmFyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1cHggNDBweCA2NXB4IDEwcHggNjVweCAxMHB4IDEwMHB4IDIwcHggMzAwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1zZWxmOiBsZWZ0O1xuICBib3JkZXItbGVmdDogI2NjYyAycHggc29saWQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbn1cblxuLmFjdGl2ZUFjdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYWViYjtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYWN0aXZlTm9uZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLmFjdGl2ZVdvcmtPYmplY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhZWJiO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi50ZXh0SW5wdXQge1xuICB3aWR0aDogMzAwcHg7XG4gIGJvcmRlcjogIzY2NjY2NiAxcHggc29saWQ7XG59XG5cbi5pY29uTGlzdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTMwcHgpO1xufVxuXG4uZG9tYWluRGV0YWlscyB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgd2lkdGg6IDI1MHB4O1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2NXB4KTtcbn1cblxuOjpuZy1kZWVwLm1hdC1ncmlkLXRpbGUge1xuICAubWF0LWdyaWQtdGlsZS1jb250ZW50IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGluaGVyaXQ7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= */"] }); /***/ }), @@ -5823,7 +5823,7 @@ DomainDetailsComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODU } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgForOf, _angular_forms__WEBPACK_IMPORTED_MODULE_5__["ɵNgNoValidate"], _angular_forms__WEBPACK_IMPORTED_MODULE_5__.NgControlStatusGroup, _angular_forms__WEBPACK_IMPORTED_MODULE_5__.NgForm, _angular_material_list__WEBPACK_IMPORTED_MODULE_6__.MatList, _angular_material_list__WEBPACK_IMPORTED_MODULE_6__.MatListItem, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_7__.MatFormField, _angular_material_input__WEBPACK_IMPORTED_MODULE_8__.MatInput, _details_list_item_details_list_item_component__WEBPACK_IMPORTED_MODULE_2__.DetailsListItemComponent, _angular_common__WEBPACK_IMPORTED_MODULE_4__.AsyncPipe], - styles: [".details[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: 68px auto auto;\n min-height: 100vh;\n grid-row-gap: 1px;\n overflow-y: scroll;\n overflow-x: hidden;\n width: 250px;\n border-left: solid 1px #ccc;\n}\n\n.domainDetails[_ngcontent-%COMP%] {\n margin-top: 10px;\n}\n.domainDetails[_ngcontent-%COMP%] .mat-mdc-form-field-infix {\n border: none;\n padding-bottom: 0 !important;\n padding-top: 0 !important;\n}\n.domainDetails[_ngcontent-%COMP%] .mdc-text-field {\n padding-left: 0 !important;\n}\n\n.compactItem[_ngcontent-%COMP%] {\n height: 40px !important;\n}\n\n.fullWidth[_ngcontent-%COMP%] {\n width: 100%;\n padding-left: 15px;\n}\n\n.inputWidth[_ngcontent-%COMP%] {\n width: 200px;\n padding-left: 15px;\n height: 46px;\n}\n\nh3[_ngcontent-%COMP%] {\n padding-left: 15px;\n margin-bottom: 0;\n font-weight: bold;\n}\n\nmat-list[_ngcontent-%COMP%] {\n overflow: auto;\n padding-top: 0;\n}\n\n.bottom-border[_ngcontent-%COMP%] {\n border-bottom: 2px solid #ccc;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RvbWFpbkNvbmZpZ3VyYXRpb24vZG9tYWluLWRldGFpbHMvZG9tYWluLWRldGFpbHMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFBO0VBQ0Esa0NBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSwyQkFBQTtBQUNGOztBQUVBO0VBQ0UsZ0JBQUE7QUFDRjtBQUNFO0VBQ0UsWUFBQTtFQUNBLDRCQUFBO0VBQ0EseUJBQUE7QUFDSjtBQUdFO0VBQ0UsMEJBQUE7QUFESjs7QUFLQTtFQUNFLHVCQUFBO0FBRkY7O0FBS0E7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7QUFGRjs7QUFLQTtFQUNFLFlBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUFGRjs7QUFLQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQUZGOztBQUtBO0VBQ0UsY0FBQTtFQUNBLGNBQUE7QUFGRjs7QUFLQTtFQUNFLDZCQUFBO0FBRkYiLCJzb3VyY2VzQ29udGVudCI6WyIuZGV0YWlscyB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLXJvd3M6IDY4cHggYXV0byBhdXRvO1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG4gIGdyaWQtcm93LWdhcDogMXB4O1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgd2lkdGg6IDI1MHB4O1xyXG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggI2NjYztcclxufVxyXG5cclxuLmRvbWFpbkRldGFpbHMge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcblxyXG4gIDo6bmctZGVlcC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXgge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgOjpuZy1kZWVwLm1kYy10ZXh0LWZpZWxkIHtcclxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLmNvbXBhY3RJdGVtIHtcclxuICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZ1bGxXaWR0aCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG59XHJcblxyXG4uaW5wdXRXaWR0aCB7XHJcbiAgd2lkdGg6IDIwMHB4O1xyXG4gIHBhZGRpbmctbGVmdDogMTVweDtcclxuICBoZWlnaHQ6IDQ2cHg7XHJcbn1cclxuXHJcbmgzIHtcclxuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxubWF0LWxpc3Qge1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gIHBhZGRpbmctdG9wOiAwO1xyXG59XHJcblxyXG4uYm90dG9tLWJvcmRlciB7XHJcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNjY2M7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] + styles: [".details[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: 68px auto auto;\n min-height: 100vh;\n grid-row-gap: 1px;\n overflow-y: scroll;\n overflow-x: hidden;\n width: 250px;\n border-left: solid 1px #ccc;\n}\n\n.domainDetails[_ngcontent-%COMP%] {\n margin-top: 10px;\n}\n.domainDetails[_ngcontent-%COMP%] .mat-mdc-form-field-infix {\n border: none;\n padding-bottom: 0 !important;\n padding-top: 0 !important;\n}\n.domainDetails[_ngcontent-%COMP%] .mdc-text-field {\n padding-left: 0 !important;\n}\n\n.compactItem[_ngcontent-%COMP%] {\n height: 40px !important;\n}\n\n.fullWidth[_ngcontent-%COMP%] {\n width: 100%;\n padding-left: 15px;\n}\n\n.inputWidth[_ngcontent-%COMP%] {\n width: 200px;\n padding-left: 15px;\n height: 46px;\n}\n\nh3[_ngcontent-%COMP%] {\n padding-left: 15px;\n margin-bottom: 0;\n font-weight: bold;\n}\n\nmat-list[_ngcontent-%COMP%] {\n overflow: auto;\n padding-top: 0;\n}\n\n.bottom-border[_ngcontent-%COMP%] {\n border-bottom: 2px solid #ccc;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RvbWFpbkNvbmZpZ3VyYXRpb24vZG9tYWluLWRldGFpbHMvZG9tYWluLWRldGFpbHMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFBO0VBQ0Esa0NBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSwyQkFBQTtBQUNGOztBQUVBO0VBQ0UsZ0JBQUE7QUFDRjtBQUNFO0VBQ0UsWUFBQTtFQUNBLDRCQUFBO0VBQ0EseUJBQUE7QUFDSjtBQUVFO0VBQ0UsMEJBQUE7QUFBSjs7QUFJQTtFQUNFLHVCQUFBO0FBREY7O0FBSUE7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7QUFERjs7QUFJQTtFQUNFLFlBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUFERjs7QUFJQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQURGOztBQUlBO0VBQ0UsY0FBQTtFQUNBLGNBQUE7QUFERjs7QUFJQTtFQUNFLDZCQUFBO0FBREYiLCJzb3VyY2VzQ29udGVudCI6WyIuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogNjhweCBhdXRvIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBncmlkLXJvdy1nYXA6IDFweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHdpZHRoOiAyNTBweDtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCAjY2NjO1xufVxuXG4uZG9tYWluRGV0YWlscyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgOjpuZy1kZWVwLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIDo6bmctZGVlcC5tZGMtdGV4dC1maWVsZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmNvbXBhY3RJdGVtIHtcbiAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mdWxsV2lkdGgge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuXG4uaW5wdXRXaWR0aCB7XG4gIHdpZHRoOiAyMDBweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBoZWlnaHQ6IDQ2cHg7XG59XG5cbmgzIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxubWF0LWxpc3Qge1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5ib3R0b20tYm9yZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNjY2M7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 */"] }); /***/ }), @@ -5962,7 +5962,7 @@ IconListItemComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODUL } }, dependencies: [_angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_3__.MatButtonToggleGroup, _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_3__.MatButtonToggle, _angular_common__WEBPACK_IMPORTED_MODULE_4__.AsyncPipe], - styles: [".IconContainer[_ngcontent-%COMP%] {\n width: 170px;\n height: 170px;\n}\n\n.content[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: auto auto;\n justify-items: center;\n}\n\n.icon[_ngcontent-%COMP%] {\n width: 50px;\n height: 50px;\n}\n\n.name[_ngcontent-%COMP%] {\n word-wrap: anywhere;\n max-height: 75px;\n overflow: hidden;\n padding-bottom: 2px;\n}\n\n.footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n}\n.footer[_ngcontent-%COMP%] .mat-button-toggle-label-content {\n font-size: 10pt !important;\n padding: 0 5px !important;\n line-height: inherit !important;\n}\n.footer[_ngcontent-%COMP%] .activeMatButtonActor button {\n background-color: #43acbf;\n color: #ffffff;\n}\n.footer[_ngcontent-%COMP%] .activeMatButtonWorkObject button {\n background-color: #0168b7;\n color: #ffffff;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RvbWFpbkNvbmZpZ3VyYXRpb24vaWNvbi1saXN0LWl0ZW0vaWNvbi1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFBO0VBQ0EsYUFBQTtBQUNGOztBQUVBO0VBQ0UsYUFBQTtFQUNBLDZCQUFBO0VBQ0EscUJBQUE7QUFDRjs7QUFFQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FBQ0Y7O0FBRUE7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBQUNGOztBQUVBO0VBQ0UsYUFBQTtFQUNBLHVCQUFBO0FBQ0Y7QUFDRTtFQUNFLDBCQUFBO0VBQ0EseUJBQUE7RUFDQSwrQkFBQTtBQUNKO0FBRUU7RUFDRSx5QkFBQTtFQUNBLGNBQUE7QUFBSjtBQUdFO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0FBREoiLCJzb3VyY2VzQ29udGVudCI6WyIuSWNvbkNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDE3MHB4O1xyXG4gIGhlaWdodDogMTcwcHg7XHJcbn1cclxuXHJcbi5jb250ZW50IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvO1xyXG4gIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmljb24ge1xyXG4gIHdpZHRoOiA1MHB4O1xyXG4gIGhlaWdodDogNTBweDtcclxufVxyXG5cclxuLm5hbWUge1xyXG4gIHdvcmQtd3JhcDogYW55d2hlcmU7XHJcbiAgbWF4LWhlaWdodDogNzVweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBhZGRpbmctYm90dG9tOiAycHg7XHJcbn1cclxuXHJcbi5mb290ZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gIDo6bmctZGVlcC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcclxuICAgIGZvbnQtc2l6ZTogMTBwdCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZzogMCA1cHggIWltcG9ydGFudDtcclxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICA6Om5nLWRlZXAuYWN0aXZlTWF0QnV0dG9uQWN0b3IgYnV0dG9uIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0M2FjYmY7XHJcbiAgICBjb2xvcjogI2ZmZmZmZjtcclxuICB9XHJcblxyXG4gIDo6bmctZGVlcC5hY3RpdmVNYXRCdXR0b25Xb3JrT2JqZWN0IGJ1dHRvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE2OGI3O1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgfVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"] + styles: [".IconContainer[_ngcontent-%COMP%] {\n width: 170px;\n height: 170px;\n}\n\n.content[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: auto auto;\n justify-items: center;\n}\n\n.icon[_ngcontent-%COMP%] {\n width: 50px;\n height: 50px;\n}\n\n.name[_ngcontent-%COMP%] {\n word-wrap: anywhere;\n max-height: 75px;\n overflow: hidden;\n padding-bottom: 2px;\n}\n\n.footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n}\n.footer[_ngcontent-%COMP%] .mat-button-toggle-label-content {\n font-size: 10pt !important;\n padding: 0 5px !important;\n line-height: inherit !important;\n}\n.footer[_ngcontent-%COMP%] .activeMatButtonActor button {\n background-color: #43acbf;\n color: #ffffff;\n}\n.footer[_ngcontent-%COMP%] .activeMatButtonWorkObject button {\n background-color: #0168b7;\n color: #ffffff;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0RvbWFpbkNvbmZpZ3VyYXRpb24vaWNvbi1saXN0LWl0ZW0vaWNvbi1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFBO0VBQ0EsYUFBQTtBQUNGOztBQUVBO0VBQ0UsYUFBQTtFQUNBLDZCQUFBO0VBQ0EscUJBQUE7QUFDRjs7QUFFQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FBQ0Y7O0FBRUE7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBQUNGOztBQUVBO0VBQ0UsYUFBQTtFQUNBLHVCQUFBO0FBQ0Y7QUFDRTtFQUNFLDBCQUFBO0VBQ0EseUJBQUE7RUFDQSwrQkFBQTtBQUNKO0FBRUU7RUFDRSx5QkFBQTtFQUNBLGNBQUE7QUFBSjtBQUdFO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0FBREoiLCJzb3VyY2VzQ29udGVudCI6WyIuSWNvbkNvbnRhaW5lciB7XG4gIHdpZHRoOiAxNzBweDtcbiAgaGVpZ2h0OiAxNzBweDtcbn1cblxuLmNvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0bztcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xufVxuXG4uaWNvbiB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG59XG5cbi5uYW1lIHtcbiAgd29yZC13cmFwOiBhbnl3aGVyZTtcbiAgbWF4LWhlaWdodDogNzVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cblxuLmZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIDo6bmctZGVlcC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgICBmb250LXNpemU6IDEwcHQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDVweCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICA6Om5nLWRlZXAuYWN0aXZlTWF0QnV0dG9uQWN0b3IgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDNhY2JmO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG5cbiAgOjpuZy1kZWVwLmFjdGl2ZU1hdEJ1dHRvbldvcmtPYmplY3QgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE2OGI3O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 */"] }); /***/ }), @@ -6346,7 +6346,7 @@ HeaderButtonsComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODU } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_19__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_19__.AsyncPipe], - styles: ["span[_ngcontent-%COMP%] {\n font-size: 15pt;\n color: white;\n}\n\n#dictionaryButton[_ngcontent-%COMP%] {\n opacity: 0.2;\n pointer-events: none;\n}\n\n.headerButton[_ngcontent-%COMP%]:hover {\n cursor: pointer;\n color: white;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0hlYWRlci9oZWFkZXItYnV0dG9ucy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGVBQUE7RUFDQSxZQUFBO0FBQ0Y7O0FBRUE7RUFDRSxZQUFBO0VBQ0Esb0JBQUE7QUFDRjs7QUFFQTtFQUNFLGVBQUE7RUFDQSxZQUFBO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJzcGFuIHtcclxuICBmb250LXNpemU6IDE1cHQ7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4jZGljdGlvbmFyeUJ1dHRvbiB7XHJcbiAgb3BhY2l0eTogMC4yO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4uaGVhZGVyQnV0dG9uOmhvdmVyIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"] + styles: ["span[_ngcontent-%COMP%] {\n font-size: 15pt;\n color: white;\n}\n\n#dictionaryButton[_ngcontent-%COMP%] {\n opacity: 0.2;\n pointer-events: none;\n}\n\n.headerButton[_ngcontent-%COMP%]:hover {\n cursor: pointer;\n color: white;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0hlYWRlci9oZWFkZXItYnV0dG9ucy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGVBQUE7RUFDQSxZQUFBO0FBQ0Y7O0FBRUE7RUFDRSxZQUFBO0VBQ0Esb0JBQUE7QUFDRjs7QUFFQTtFQUNFLGVBQUE7RUFDQSxZQUFBO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJzcGFuIHtcbiAgZm9udC1zaXplOiAxNXB0O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbiNkaWN0aW9uYXJ5QnV0dG9uIHtcbiAgb3BhY2l0eTogMC4yO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmhlYWRlckJ1dHRvbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHdoaXRlO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] }); /***/ }), @@ -6459,7 +6459,7 @@ HeaderComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_4__[ } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_7__.NgIf, _header_buttons_component__WEBPACK_IMPORTED_MODULE_3__.HeaderButtonsComponent, _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_8__.MatToolbar, _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_8__.MatToolbarRow, _angular_material_card__WEBPACK_IMPORTED_MODULE_9__.MatCard, _angular_common__WEBPACK_IMPORTED_MODULE_7__.AsyncPipe], - styles: [".noPointer[_ngcontent-%COMP%] {\n cursor: default !important;\n}\n\n.description[_ngcontent-%COMP%] {\n top: 0;\n max-width: 100vw;\n overflow-y: scroll;\n display: grid;\n}\n\n.descriptionText[_ngcontent-%COMP%] {\n position: relative;\n font-size: 10pt;\n overflow-wrap: anywhere;\n word-wrap: anywhere;\n white-space: pre-wrap;\n padding-left: 15px;\n padding-right: 15px;\n align-self: center;\n line-height: 12pt;\n}\n\n.description[_ngcontent-%COMP%]:hover {\n cursor: default;\n}\n\n.domainNameSpacer[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n}\n\n.buttonSpacer[_ngcontent-%COMP%] {\n margin-right: 15px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0hlYWRlci9oZWFkZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSwwQkFBQTtBQUNGOztBQUVBO0VBQ0UsTUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsa0JBQUE7RUFFQSxpQkFBQTtBQURGOztBQUlBO0VBQ0UsZUFBQTtBQURGOztBQUlBO0VBQ0UsY0FBQTtBQURGOztBQUlBO0VBQ0Usa0JBQUE7QUFERiIsInNvdXJjZXNDb250ZW50IjpbIi5ub1BvaW50ZXIge1xyXG4gIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZGVzY3JpcHRpb24ge1xyXG4gIHRvcDogMDtcclxuICBtYXgtd2lkdGg6IDEwMHZ3O1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICBkaXNwbGF5OiBncmlkO1xyXG59XHJcblxyXG4uZGVzY3JpcHRpb25UZXh0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZm9udC1zaXplOiAxMHB0O1xyXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xyXG4gIHdvcmQtd3JhcDogYW55d2hlcmU7XHJcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xyXG4gIHBhZGRpbmctbGVmdDogMTVweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG5cclxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcblxyXG4gIGxpbmUtaGVpZ2h0OiAxMnB0O1xyXG59XHJcblxyXG4uZGVzY3JpcHRpb246aG92ZXIge1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG5cclxuLmRvbWFpbk5hbWVTcGFjZXIge1xyXG4gIGZsZXg6IDEgMSBhdXRvO1xyXG59XHJcblxyXG4uYnV0dG9uU3BhY2VyIHtcclxuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] + styles: [".noPointer[_ngcontent-%COMP%] {\n cursor: default !important;\n}\n\n.description[_ngcontent-%COMP%] {\n top: 0;\n max-width: 100vw;\n overflow-y: scroll;\n display: grid;\n}\n\n.descriptionText[_ngcontent-%COMP%] {\n position: relative;\n font-size: 10pt;\n overflow-wrap: anywhere;\n word-wrap: anywhere;\n white-space: pre-wrap;\n padding-left: 15px;\n padding-right: 15px;\n align-self: center;\n line-height: 12pt;\n}\n\n.description[_ngcontent-%COMP%]:hover {\n cursor: default;\n}\n\n.domainNameSpacer[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n}\n\n.buttonSpacer[_ngcontent-%COMP%] {\n margin-right: 15px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0hlYWRlci9oZWFkZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSwwQkFBQTtBQUNGOztBQUVBO0VBQ0UsTUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsa0JBQUE7RUFFQSxpQkFBQTtBQURGOztBQUlBO0VBQ0UsZUFBQTtBQURGOztBQUlBO0VBQ0UsY0FBQTtBQURGOztBQUlBO0VBQ0Usa0JBQUE7QUFERiIsInNvdXJjZXNDb250ZW50IjpbIi5ub1BvaW50ZXIge1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbn1cblxuLmRlc2NyaXB0aW9uIHtcbiAgdG9wOiAwO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG5cbi5kZXNjcmlwdGlvblRleHQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMTBwdDtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gIHdvcmQtd3JhcDogYW55d2hlcmU7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuXG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcblxuICBsaW5lLWhlaWdodDogMTJwdDtcbn1cblxuLmRlc2NyaXB0aW9uOmhvdmVyIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZG9tYWluTmFtZVNwYWNlciB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4uYnV0dG9uU3BhY2VyIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] }); /***/ }), @@ -6630,7 +6630,7 @@ LabelDictionaryComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MO } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_3__.NgForOf, _angular_material_button__WEBPACK_IMPORTED_MODULE_4__.MatButton, _angular_material_list__WEBPACK_IMPORTED_MODULE_5__.MatList, _angular_material_list__WEBPACK_IMPORTED_MODULE_5__.MatListItem, _angular_material_input__WEBPACK_IMPORTED_MODULE_6__.MatInput, _angular_common__WEBPACK_IMPORTED_MODULE_3__.AsyncPipe], - styles: [".labelDictionary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto;\n top: 0;\n bottom: 0;\n max-height: 75vh;\n grid-column-gap: 5px;\n width: 75vw;\n}\n.labelDictionary[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] {\n height: unset !important;\n}\n.labelDictionary[_ngcontent-%COMP%] mat-list-item-content[_ngcontent-%COMP%] {\n padding: 0 !important;\n}\n\nh3[_ngcontent-%COMP%] {\n font-weight: bold;\n}\n\n.icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n}\n\n.inputText[_ngcontent-%COMP%] {\n width: 99%;\n white-space: pre-wrap;\n resize: none;\n}\n\n.activityListHeader[_ngcontent-%COMP%] {\n display: inline-grid;\n grid-template-columns: auto auto auto;\n width: 100%;\n}\n\n.activityListTitle[_ngcontent-%COMP%] {\n justify-self: left;\n}\n\n.saveButton[_ngcontent-%COMP%] {\n justify-self: end;\n padding-right: 0 !important;\n}\n\n.saveButtonSpan[_ngcontent-%COMP%] {\n margin-left: 2px;\n}\n\n.footer[_ngcontent-%COMP%] {\n display: inline-grid;\n width: 100%;\n margin-top: 15px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0xhYmVsRGljdGlvbmFyeS9sYWJlbC1kaWN0aW9uYXJ5LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBQTtFQUNBLGdDQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTtFQUNBLG9CQUFBO0VBQ0EsV0FBQTtBQUNGO0FBQ0U7RUFDRSx3QkFBQTtBQUNKO0FBR0U7RUFDRSxxQkFBQTtBQURKOztBQUtBO0VBQ0UsaUJBQUE7QUFGRjs7QUFLQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FBRkY7O0FBS0E7RUFDRSxVQUFBO0VBQ0EscUJBQUE7RUFDQSxZQUFBO0FBRkY7O0FBS0E7RUFDRSxvQkFBQTtFQUNBLHFDQUFBO0VBQ0EsV0FBQTtBQUZGOztBQUtBO0VBQ0Usa0JBQUE7QUFGRjs7QUFLQTtFQUNFLGlCQUFBO0VBQ0EsMkJBQUE7QUFGRjs7QUFLQTtFQUNFLGdCQUFBO0FBRkY7O0FBS0E7RUFDRSxvQkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtBQUZGIiwic291cmNlc0NvbnRlbnQiOlsiLmxhYmVsRGljdGlvbmFyeSB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bztcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIG1heC1oZWlnaHQ6IDc1dmg7XHJcbiAgZ3JpZC1jb2x1bW4tZ2FwOiA1cHg7XHJcbiAgd2lkdGg6IDc1dnc7XHJcblxyXG4gIG1hdC1saXN0LWl0ZW0ge1xyXG4gICAgaGVpZ2h0OiB1bnNldCAhaW1wb3J0YW50O1xyXG4gICAgLy9wYWRkaW5nLWJvdHRvbTogMnB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBtYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuaDMge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uaWNvbiB7XHJcbiAgd2lkdGg6IDM2cHg7XHJcbiAgaGVpZ2h0OiAzNnB4O1xyXG59XHJcblxyXG4uaW5wdXRUZXh0IHtcclxuICB3aWR0aDogOTklO1xyXG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcclxuICByZXNpemU6IG5vbmU7XHJcbn1cclxuXHJcbi5hY3Rpdml0eUxpc3RIZWFkZXIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG87XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5hY3Rpdml0eUxpc3RUaXRsZSB7XHJcbiAganVzdGlmeS1zZWxmOiBsZWZ0O1xyXG59XHJcblxyXG4uc2F2ZUJ1dHRvbiB7XHJcbiAganVzdGlmeS1zZWxmOiBlbmQ7XHJcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2F2ZUJ1dHRvblNwYW4ge1xyXG4gIG1hcmdpbi1sZWZ0OiAycHg7XHJcbn1cclxuXHJcbi5mb290ZXIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] + styles: [".labelDictionary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto;\n top: 0;\n bottom: 0;\n max-height: 75vh;\n grid-column-gap: 5px;\n width: 75vw;\n}\n.labelDictionary[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] {\n height: unset !important;\n}\n.labelDictionary[_ngcontent-%COMP%] mat-list-item-content[_ngcontent-%COMP%] {\n padding: 0 !important;\n}\n\nh3[_ngcontent-%COMP%] {\n font-weight: bold;\n}\n\n.icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n}\n\n.inputText[_ngcontent-%COMP%] {\n width: 99%;\n white-space: pre-wrap;\n resize: none;\n}\n\n.activityListHeader[_ngcontent-%COMP%] {\n display: inline-grid;\n grid-template-columns: auto auto auto;\n width: 100%;\n}\n\n.activityListTitle[_ngcontent-%COMP%] {\n justify-self: left;\n}\n\n.saveButton[_ngcontent-%COMP%] {\n justify-self: end;\n padding-right: 0 !important;\n}\n\n.saveButtonSpan[_ngcontent-%COMP%] {\n margin-left: 2px;\n}\n\n.footer[_ngcontent-%COMP%] {\n display: inline-grid;\n width: 100%;\n margin-top: 15px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL0xhYmVsRGljdGlvbmFyeS9sYWJlbC1kaWN0aW9uYXJ5LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBQTtFQUNBLGdDQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTtFQUNBLG9CQUFBO0VBQ0EsV0FBQTtBQUNGO0FBQ0U7RUFDRSx3QkFBQTtBQUNKO0FBR0U7RUFDRSxxQkFBQTtBQURKOztBQUtBO0VBQ0UsaUJBQUE7QUFGRjs7QUFLQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FBRkY7O0FBS0E7RUFDRSxVQUFBO0VBQ0EscUJBQUE7RUFDQSxZQUFBO0FBRkY7O0FBS0E7RUFDRSxvQkFBQTtFQUNBLHFDQUFBO0VBQ0EsV0FBQTtBQUZGOztBQUtBO0VBQ0Usa0JBQUE7QUFGRjs7QUFLQTtFQUNFLGlCQUFBO0VBQ0EsMkJBQUE7QUFGRjs7QUFLQTtFQUNFLGdCQUFBO0FBRkY7O0FBS0E7RUFDRSxvQkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtBQUZGIiwic291cmNlc0NvbnRlbnQiOlsiLmxhYmVsRGljdGlvbmFyeSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWF4LWhlaWdodDogNzV2aDtcbiAgZ3JpZC1jb2x1bW4tZ2FwOiA1cHg7XG4gIHdpZHRoOiA3NXZ3O1xuXG4gIG1hdC1saXN0LWl0ZW0ge1xuICAgIGhlaWdodDogdW5zZXQgIWltcG9ydGFudDtcbiAgICAvL3BhZGRpbmctYm90dG9tOiAycHggIWltcG9ydGFudDtcbiAgfVxuXG4gIG1hdC1saXN0LWl0ZW0tY29udGVudCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbmgzIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5pY29uIHtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbn1cblxuLmlucHV0VGV4dCB7XG4gIHdpZHRoOiA5OSU7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgcmVzaXplOiBub25lO1xufVxuXG4uYWN0aXZpdHlMaXN0SGVhZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYWN0aXZpdHlMaXN0VGl0bGUge1xuICBqdXN0aWZ5LXNlbGY6IGxlZnQ7XG59XG5cbi5zYXZlQnV0dG9uIHtcbiAganVzdGlmeS1zZWxmOiBlbmQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnNhdmVCdXR0b25TcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLmZvb3RlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= */"] }); /***/ }), @@ -6667,7 +6667,7 @@ GeneralSettingsComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MO } }, dependencies: [_Autosave_AutosaveSettings_autosave_settings_component__WEBPACK_IMPORTED_MODULE_0__.AutosaveSettingsComponent], - styles: [".content[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 450px auto;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL1NldHRpbmdzL0dlbmVyYWwvZ2VuZXJhbC1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQUE7RUFDQSxpQ0FBQTtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRlbnQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0NTBweCBhdXRvO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"] + styles: [".content[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 450px auto;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL1NldHRpbmdzL0dlbmVyYWwvZ2VuZXJhbC1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQUE7RUFDQSxpQ0FBQTtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ1MHB4IGF1dG87XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 */"] }); /***/ }), @@ -6788,7 +6788,7 @@ SettingsComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_5_ } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_7__.NgIf, _General_general_settings_component__WEBPACK_IMPORTED_MODULE_3__.GeneralSettingsComponent, src_app_Presentation_DomainConfiguration_domain_configuration_component__WEBPACK_IMPORTED_MODULE_4__.DomainConfigurationComponent, _angular_material_button__WEBPACK_IMPORTED_MODULE_8__.MatButton, _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_9__.MatToolbar, _angular_material_toolbar__WEBPACK_IMPORTED_MODULE_9__.MatToolbarRow, _angular_common__WEBPACK_IMPORTED_MODULE_7__.AsyncPipe], - styles: ["mat-toolbar[_ngcontent-%COMP%] *[_ngcontent-%COMP%] {\n color: white;\n}\n\napp-general-settings[_ngcontent-%COMP%] {\n overflow-y: auto;\n}\n\n.settings[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: 65px auto;\n width: 100%;\n height: 100%;\n}\n.settings[_ngcontent-%COMP%] .mat-button {\n padding: 0;\n}\n.settings[_ngcontent-%COMP%] .materialIconButton[_ngcontent-%COMP%] {\n margin-top: 0;\n margin-right: 5px;\n padding: 0;\n}\n\n.highlight[_ngcontent-%COMP%] {\n border: 2px solid white;\n}\n\n.tab[_ngcontent-%COMP%] {\n display: inline-block;\n height: calc(100% - 10px);\n width: 100%;\n overflow: hidden;\n}\n\n .mat-tab-label, .mat-tab-label-active {\n height: 30px !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL1NldHRpbmdzL3NldHRpbmdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtBQUNGOztBQUVBO0VBQ0UsZ0JBQUE7QUFDRjs7QUFFQTtFQUNFLGFBQUE7RUFDQSw2QkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FBQ0Y7QUFDRTtFQUNFLFVBQUE7QUFDSjtBQUVFO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtBQUFKOztBQUlBO0VBQ0UsdUJBQUE7QUFERjs7QUFJQTtFQUNFLHFCQUFBO0VBQ0EseUJBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7QUFERjs7QUFJQTs7RUFFRSx1QkFBQTtBQURGIiwic291cmNlc0NvbnRlbnQiOlsibWF0LXRvb2xiYXIgKiB7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG5hcHAtZ2VuZXJhbC1zZXR0aW5ncyB7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNldHRpbmdzIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtcm93czogNjVweCBhdXRvO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuXHJcbiAgOjpuZy1kZWVwLm1hdC1idXR0b24ge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gIC5tYXRlcmlhbEljb25CdXR0b24ge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbn1cclxuXHJcbi5oaWdobGlnaHQge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xyXG59XHJcblxyXG4udGFiIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMHB4KTtcclxuICB3aWR0aDogMTAwJTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG46Om5nLWRlZXAubWF0LXRhYi1sYWJlbCxcclxuOjpuZy1kZWVwLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcclxuICBoZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9 */"] + styles: ["mat-toolbar[_ngcontent-%COMP%] *[_ngcontent-%COMP%] {\n color: white;\n}\n\napp-general-settings[_ngcontent-%COMP%] {\n overflow-y: auto;\n}\n\n.settings[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: 65px auto;\n width: 100%;\n height: 100%;\n}\n.settings[_ngcontent-%COMP%] .mat-button {\n padding: 0;\n}\n.settings[_ngcontent-%COMP%] .materialIconButton[_ngcontent-%COMP%] {\n margin-top: 0;\n margin-right: 5px;\n padding: 0;\n}\n\n.highlight[_ngcontent-%COMP%] {\n border: 2px solid white;\n}\n\n.tab[_ngcontent-%COMP%] {\n display: inline-block;\n height: calc(100% - 10px);\n width: 100%;\n overflow: hidden;\n}\n\n .mat-tab-label, .mat-tab-label-active {\n height: 30px !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvUHJlc2VudGF0aW9uL1NldHRpbmdzL3NldHRpbmdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtBQUNGOztBQUVBO0VBQ0UsZ0JBQUE7QUFDRjs7QUFFQTtFQUNFLGFBQUE7RUFDQSw2QkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FBQ0Y7QUFDRTtFQUNFLFVBQUE7QUFDSjtBQUVFO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtBQUFKOztBQUlBO0VBQ0UsdUJBQUE7QUFERjs7QUFJQTtFQUNFLHFCQUFBO0VBQ0EseUJBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7QUFERjs7QUFJQTs7RUFFRSx1QkFBQTtBQURGIiwic291cmNlc0NvbnRlbnQiOlsibWF0LXRvb2xiYXIgKiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuYXBwLWdlbmVyYWwtc2V0dGluZ3Mge1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uc2V0dGluZ3Mge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDY1cHggYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcblxuICA6Om5nLWRlZXAubWF0LWJ1dHRvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5tYXRlcmlhbEljb25CdXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4uaGlnaGxpZ2h0IHtcbiAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG59XG5cbi50YWIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMTBweCk7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG46Om5nLWRlZXAubWF0LXRhYi1sYWJlbCxcbjo6bmctZGVlcC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */"] }); /***/ }), @@ -8903,11 +8903,6 @@ class SvgService { // to display the title and description in the SVG-file, we need to add a container for the text-elements height += extraHeight + 80; } - const svgIndex = data.indexOf('width="'); - if (useWhiteBackground) { - const backgroundColorWhite = 'style="background-color:white" '; - data = [data.slice(0, svgIndex), backgroundColorWhite, data.slice(svgIndex)].join(''); - } const bounds = this.createBounds(width, height, xLeft, yUp, xRight, yDown, withTitle); const dataStart = data.substring(0, viewBoxIndex); viewBoxIndex = data.indexOf('" version'); @@ -8916,7 +8911,12 @@ class SvgService { data = dataStart + bounds + dataEnd; const insertIndex = this.findIndexToInsertData(data); if (withTitle) { - data = [data.slice(0, insertIndex), insertText, data.slice(insertIndex)].join(''); + data = data.slice(0, insertIndex) + insertText + data.slice(insertIndex); + } + if (useWhiteBackground) { + const svgIndex = data.indexOf('width="'); + const backgroundColorWhite = 'style="background-color:white" '; + data = data.slice(0, svgIndex) + backgroundColorWhite + data.slice(svgIndex); } return this.appendDST(data, dst); } @@ -10591,7 +10591,7 @@ AppComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_12__[" } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_15__.NgIf, src_app_Presentation_Header_header_component__WEBPACK_IMPORTED_MODULE_9__.HeaderComponent, src_app_Presentation_Settings_settings_component__WEBPACK_IMPORTED_MODULE_10__.SettingsComponent, src_app_Presentation_Canvas_modeler_component__WEBPACK_IMPORTED_MODULE_11__.ModelerComponent, _angular_common__WEBPACK_IMPORTED_MODULE_15__.AsyncPipe], - styles: [".content[_ngcontent-%COMP%] {\n height: 100%;\n overflow: hidden;\n}\n\n\n\n.headerAndCanvas[_ngcontent-%COMP%] {\n height: 100%;\n width: 100%;\n display: grid;\n grid-template-rows: 220px auto;\n overflow: hidden;\n}\n\n.headerAndCanvasCollapsed[_ngcontent-%COMP%] {\n height: 100%;\n width: 100%;\n display: grid;\n grid-template-rows: 65px auto;\n overflow: hidden;\n}\n\n.settings[_ngcontent-%COMP%] {\n height: 100%;\n}\n\n.header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: 65px 155px;\n}\n\n\n\n.logoContainer[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 45px;\n right: 5px;\n}\n\n#imgWPS[_ngcontent-%COMP%] {\n margin-left: 17px;\n}\n\n#imgWPS[_ngcontent-%COMP%]:hover, #imgDST[_ngcontent-%COMP%]:hover {\n cursor: pointer;\n}\n\n.hidden[_ngcontent-%COMP%] {\n height: 1px;\n width: 1px;\n}\n\n#wrapper[_ngcontent-%COMP%] {\n padding: 16px;\n min-height: 100%;\n height: 100%;\n box-sizing: border-box; \n\n}\n\n#tab-group[_ngcontent-%COMP%] {\n height: 100%;\n}\n\n#tab-group[_ngcontent-%COMP%] mat-tab-body[_ngcontent-%COMP%] {\n flex-grow: 1;\n}\n\n.mat-button-toggle-label-content[_ngcontent-%COMP%] {\n font-size: 10pt !important;\n padding: 0 5px !important;\n line-height: inherit !important;\n}\n\n .mdc-text-field--filled:not(.mdc-text-field--disabled) {\n background-color: white;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtFQUNBLGdCQUFBO0FBQ0Y7O0FBRUEscUJBQUE7QUFFQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EsZ0JBQUE7QUFBRjs7QUFHQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLDZCQUFBO0VBQ0EsZ0JBQUE7QUFBRjs7QUFHQTtFQUNFLFlBQUE7QUFBRjs7QUFHQTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtBQUFGOztBQUdBLG1CQUFBO0FBRUE7RUFDRSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0FBREY7O0FBSUE7RUFDRSxpQkFBQTtBQURGOztBQUlBOztFQUVFLGVBQUE7QUFERjs7QUFJQTtFQUNFLFdBQUE7RUFDQSxVQUFBO0FBREY7O0FBSUE7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUEsRUFBQSxNQUFBO0FBREY7O0FBSUE7RUFDRSxZQUFBO0FBREY7O0FBSUE7RUFDRSxZQUFBO0FBREY7O0FBS0E7RUFDRSwwQkFBQTtFQUNBLHlCQUFBO0VBQ0EsK0JBQUE7QUFGRjs7QUFLQTtFQUNFLHVCQUFBO0FBRkYiLCJzb3VyY2VzQ29udGVudCI6WyIuY29udGVudCB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi8qIGhlYWRlciBhbmQgQ2FudmFzKi9cclxuXHJcbi5oZWFkZXJBbmRDYW52YXMge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB3aWR0aDogMTAwJTtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtcm93czogMjIwcHggYXV0bztcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uaGVhZGVyQW5kQ2FudmFzQ29sbGFwc2VkIHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLXJvd3M6IDY1cHggYXV0bztcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uc2V0dGluZ3Mge1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLmhlYWRlciB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLXJvd3M6IDY1cHggMTU1cHg7XHJcbn1cclxuXHJcbi8qIExvZ28gQ29udGFpbmVyICovXHJcblxyXG4ubG9nb0NvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogNDVweDtcclxuICByaWdodDogNXB4O1xyXG59XHJcblxyXG4jaW1nV1BTIHtcclxuICBtYXJnaW4tbGVmdDogMTdweDtcclxufVxyXG5cclxuI2ltZ1dQUzpob3ZlcixcclxuI2ltZ0RTVDpob3ZlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uaGlkZGVuIHtcclxuICBoZWlnaHQ6IDFweDtcclxuICB3aWR0aDogMXB4O1xyXG59XHJcblxyXG4jd3JhcHBlciB7XHJcbiAgcGFkZGluZzogMTZweDtcclxuICBtaW4taGVpZ2h0OiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKm5ldyovXHJcbn1cclxuXHJcbiN0YWItZ3JvdXAge1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuI3RhYi1ncm91cCBtYXQtdGFiLWJvZHkge1xyXG4gIGZsZXgtZ3JvdzogMTtcclxufVxyXG5cclxuLy8gTWF0ZXJpYWwgRGVzaWduIE92ZXJyaWRlc1xyXG4ubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiAxMHB0ICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCA1cHggIWltcG9ydGFudDtcclxuICBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAubWRjLXRleHQtZmllbGQtLWZpbGxlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"] + styles: [".content[_ngcontent-%COMP%] {\n height: 100%;\n overflow: hidden;\n}\n\n\n\n.headerAndCanvas[_ngcontent-%COMP%] {\n height: 100%;\n width: 100%;\n display: grid;\n grid-template-rows: 220px auto;\n overflow: hidden;\n}\n\n.headerAndCanvasCollapsed[_ngcontent-%COMP%] {\n height: 100%;\n width: 100%;\n display: grid;\n grid-template-rows: 65px auto;\n overflow: hidden;\n}\n\n.settings[_ngcontent-%COMP%] {\n height: 100%;\n}\n\n.header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: 65px 155px;\n}\n\n\n\n.logoContainer[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 45px;\n right: 5px;\n}\n\n#imgWPS[_ngcontent-%COMP%] {\n margin-left: 17px;\n}\n\n#imgWPS[_ngcontent-%COMP%]:hover, #imgDST[_ngcontent-%COMP%]:hover {\n cursor: pointer;\n}\n\n.hidden[_ngcontent-%COMP%] {\n height: 1px;\n width: 1px;\n}\n\n#wrapper[_ngcontent-%COMP%] {\n padding: 16px;\n min-height: 100%;\n height: 100%;\n box-sizing: border-box; \n\n}\n\n#tab-group[_ngcontent-%COMP%] {\n height: 100%;\n}\n\n#tab-group[_ngcontent-%COMP%] mat-tab-body[_ngcontent-%COMP%] {\n flex-grow: 1;\n}\n\n.mat-button-toggle-label-content[_ngcontent-%COMP%] {\n font-size: 10pt !important;\n padding: 0 5px !important;\n line-height: inherit !important;\n}\n\n .mdc-text-field--filled:not(.mdc-text-field--disabled) {\n background-color: white;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtFQUNBLGdCQUFBO0FBQ0Y7O0FBRUEscUJBQUE7QUFFQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EsZ0JBQUE7QUFBRjs7QUFHQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLDZCQUFBO0VBQ0EsZ0JBQUE7QUFBRjs7QUFHQTtFQUNFLFlBQUE7QUFBRjs7QUFHQTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtBQUFGOztBQUdBLG1CQUFBO0FBRUE7RUFDRSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0FBREY7O0FBSUE7RUFDRSxpQkFBQTtBQURGOztBQUlBOztFQUVFLGVBQUE7QUFERjs7QUFJQTtFQUNFLFdBQUE7RUFDQSxVQUFBO0FBREY7O0FBSUE7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUEsRUFBQSxNQUFBO0FBREY7O0FBSUE7RUFDRSxZQUFBO0FBREY7O0FBSUE7RUFDRSxZQUFBO0FBREY7O0FBS0E7RUFDRSwwQkFBQTtFQUNBLHlCQUFBO0VBQ0EsK0JBQUE7QUFGRjs7QUFLQTtFQUNFLHVCQUFBO0FBRkYiLCJzb3VyY2VzQ29udGVudCI6WyIuY29udGVudCB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogaGVhZGVyIGFuZCBDYW52YXMqL1xuXG4uaGVhZGVyQW5kQ2FudmFzIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAyMjBweCBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaGVhZGVyQW5kQ2FudmFzQ29sbGFwc2VkIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiA2NXB4IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zZXR0aW5ncyB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmhlYWRlciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogNjVweCAxNTVweDtcbn1cblxuLyogTG9nbyBDb250YWluZXIgKi9cblxuLmxvZ29Db250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNDVweDtcbiAgcmlnaHQ6IDVweDtcbn1cblxuI2ltZ1dQUyB7XG4gIG1hcmdpbi1sZWZ0OiAxN3B4O1xufVxuXG4jaW1nV1BTOmhvdmVyLFxuI2ltZ0RTVDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmhpZGRlbiB7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xufVxuXG4jd3JhcHBlciB7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLypuZXcqL1xufVxuXG4jdGFiLWdyb3VwIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4jdGFiLWdyb3VwIG1hdC10YWItYm9keSB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuLy8gTWF0ZXJpYWwgRGVzaWduIE92ZXJyaWRlc1xuLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICBmb250LXNpemU6IDEwcHQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCA1cHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 */"] }); /***/ }), diff --git a/app-v2.0.0-beta/main.js.map b/app-v2.0.0-beta/main.js.map index 708f3fd..763db9c 100644 --- a/app-v2.0.0-beta/main.js.map +++ b/app-v2.0.0-beta/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/Modeler/index.js","./src/app/Modeler/modeler/change-icon/replace.js","./src/app/Modeler/modeler/change-icon/replaceMenuProvider.js","./src/app/Modeler/modeler/change-icon/replaceOptions.js","./src/app/Modeler/modeler/context-pad/domainStoryContextPadProvider.js","./src/app/Modeler/modeler/domainStoryElementFactory.js","./src/app/Modeler/modeler/domainStoryIdFactory.js","./src/app/Modeler/modeler/domainStoryRenderer.js","./src/app/Modeler/modeler/domainStoryRules.js","./src/app/Modeler/modeler/domainStoryUpdater.js","./src/app/Modeler/modeler/index.js","./src/app/Modeler/modeler/labeling/dsLabelEditingPreview.js","./src/app/Modeler/modeler/labeling/dsLabelEditingProvider.js","./src/app/Modeler/modeler/labeling/dsLabelUtil.js","./src/app/Modeler/modeler/labeling/index.js","./src/app/Modeler/modeler/labeling/position.js","./src/app/Modeler/modeler/modeling/dSModeling.js","./src/app/Modeler/modeler/modeling/index.js","./src/app/Modeler/modeler/numbering/numbering.js","./src/app/Modeler/modeler/palette/domainStoryPalette.js","./src/app/Modeler/modeler/updateHandler/activityUpdateHandlers.js","./src/app/Modeler/modeler/updateHandler/elementUpdateHandler.js","./src/app/Modeler/modeler/updateHandler/headlineAndDescriptionUpdateHandler.js","./src/app/Modeler/modeler/updateHandler/massRenameHandler.js","./src/app/Modeler/modeler/updateHandler/updateLabelHandler.js","./src/app/Modeler/modeler/util.js","./src/app/Service/Export/exportUtil.js","./src/app/Domain/Common/businessObject.ts","./src/app/Domain/Common/configuration.ts","./src/app/Domain/Common/constants.ts","./src/app/Domain/Common/dictionary/dictionary.ts","./src/app/Domain/Common/domainConfiguration.ts","./src/app/Domain/Common/elementTypes.ts","./src/app/Domain/Common/iconConfiguration.ts","./src/app/Domain/Dialog/activityDialogData.ts","./src/app/Domain/Dialog/exportDialogData.ts","./src/app/Domain/Dialog/infoDialogData.ts","./src/app/Domain/DomManipulation/replayConstants.ts","./src/app/Domain/Domain-Configuration/allIcons.ts","./src/app/Domain/Domain-Configuration/iconFilterEnum.ts","./src/app/Domain/Export/configAndDst.ts","./src/app/Domain/Export/exportConstants.ts","./src/app/Modules/autosave-settings.module.ts","./src/app/Modules/domain-story-modeler-module.module.ts","./src/app/Modules/settings.module.ts","./src/app/Presentation/Autosave/AutosaveOptions/autosave-options.component.ts","./src/app/Presentation/Autosave/AutosaveOptions/autosave-options.component.html","./src/app/Presentation/Autosave/AutosaveSettings/autosave-settings.component.ts","./src/app/Presentation/Autosave/AutosaveSettings/autosave-settings.component.html","./src/app/Presentation/Autosave/AutosavedDrafts/autosaved-drafts.component.ts","./src/app/Presentation/Autosave/AutosavedDrafts/autosaved-drafts.component.html","./src/app/Presentation/Canvas/modeler.component.ts","./src/app/Presentation/Canvas/modeler.component.html","./src/app/Presentation/Dialog/activity-dialog/activity-dialog.component.ts","./src/app/Presentation/Dialog/activity-dialog/activity-dialog.component.html","./src/app/Presentation/Dialog/export-dialog/export-dialog.component.ts","./src/app/Presentation/Dialog/export-dialog/export-dialog.component.html","./src/app/Presentation/Dialog/header-dialog/header-dialog.component.ts","./src/app/Presentation/Dialog/header-dialog/header-dialog.component.html","./src/app/Presentation/Dialog/info-dialog/info-dialog.component.ts","./src/app/Presentation/Dialog/info-dialog/info-dialog.component.html","./src/app/Presentation/Dialog/label-dictionary-dialog/label-dictionary-dialog.component.ts","./src/app/Presentation/Dialog/label-dictionary-dialog/label-dictionary-dialog.component.html","./src/app/Presentation/DomainConfiguration/details-list-item/details-list-item.component.ts","./src/app/Presentation/DomainConfiguration/details-list-item/details-list-item.component.html","./src/app/Presentation/DomainConfiguration/domain-configuration.component.ts","./src/app/Presentation/DomainConfiguration/domain-configuration.component.html","./src/app/Presentation/DomainConfiguration/domain-details/domain-details.component.html","./src/app/Presentation/DomainConfiguration/domain-details/domain-details.component.ts","./src/app/Presentation/DomainConfiguration/icon-list-item/icon-list-item.component.ts","./src/app/Presentation/DomainConfiguration/icon-list-item/icon-list-item.component.html","./src/app/Presentation/Header/header-buttons.component.ts","./src/app/Presentation/Header/header-buttons.component.html","./src/app/Presentation/Header/header.component.ts","./src/app/Presentation/Header/header.component.html","./src/app/Presentation/LabelDictionary/label-dictionary.component.ts","./src/app/Presentation/LabelDictionary/label-dictionary.component.html","./src/app/Presentation/Settings/General/general-settings.component.ts","./src/app/Presentation/Settings/General/general-settings.component.html","./src/app/Presentation/Settings/settings.component.ts","./src/app/Presentation/Settings/settings.component.html","./src/app/Service/Autosave/autosave-configuration.service.ts","./src/app/Service/Autosave/autosave.service.ts","./src/app/Service/BrowserStorage/storage.service.ts","./src/app/Service/CommandStack/command-stack.service.ts","./src/app/Service/Dialog/dialog.service.ts","./src/app/Service/DirtyFlag/dirty-flag.service.ts","./src/app/Service/DomManipulation/dom-manipulation.service.ts","./src/app/Service/DomainConfiguration/domain-configuration.service.ts","./src/app/Service/DomainConfiguration/domain-customization.service.ts","./src/app/Service/DomainConfiguration/icon-dictionary.service.ts","./src/app/Service/ElementRegistry/element-registry.service.ts","./src/app/Service/Export/export.service.ts","./src/app/Service/Export/html-presentation.service.ts","./src/app/Service/Export/png.service.ts","./src/app/Service/Export/svg.service.ts","./src/app/Service/Import/import-domain-story.service.ts","./src/app/Service/Import/import-repair.service.ts","./src/app/Service/LabelDictionary/label-dictionary.service.ts","./src/app/Service/LabelDictionary/mass-naming.service.ts","./src/app/Service/Modeler/initializer.service.ts","./src/app/Service/Modeler/modeler.service.ts","./src/app/Service/Renderer/renderer.service.ts","./src/app/Service/Replay/replay-state.service.ts","./src/app/Service/Replay/replay.service.ts","./src/app/Service/Replay/storyCreator/story-creator.service.ts","./src/app/Service/Settings/settings.service.ts","./src/app/Service/Title/title.service.ts","./src/app/Utils/mathExtensions.ts","./src/app/Utils/naming.ts","./src/app/Utils/sanitizer.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/material.module.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import Modeler from \"bpmn-js/lib/Modeler\";\r\nimport ResizeModule from \"diagram-js/lib/features/resize\";\r\nimport { assign, isArray } from \"min-dash\";\r\nimport inherits from \"inherits\";\r\n\r\nimport DomainStoryModule from \"./modeler\";\r\nimport LabelEditingModule from \"./modeler/labeling\";\r\nimport ModelingModule from \"./modeler/modeling\";\r\nimport { elementTypes } from \"../Domain/Common/elementTypes\";\r\n\r\nexport default function DomainStoryModeler(options) {\r\n Modeler.call(this, options);\r\n\r\n this._customElements = [];\r\n this._groupElements = [];\r\n}\r\n\r\ninherits(DomainStoryModeler, Modeler);\r\n\r\nDomainStoryModeler.prototype._modules = [].concat(\r\n DomainStoryModeler.prototype._modules,\r\n [DomainStoryModule, LabelEditingModule, ModelingModule],\r\n [ResizeModule]\r\n);\r\n\r\n/**\r\n * add a single custom element to the underlying diagram\r\n *\r\n * @param {Object} customElement\r\n */\r\nDomainStoryModeler.prototype._addCustomShape = function (customElement) {\r\n let parentId = customElement.parent;\r\n delete customElement.children;\r\n delete customElement.parent;\r\n this._customElements.push(customElement);\r\n\r\n let canvas = this.get(\"canvas\"),\r\n elementFactory = this.get(\"elementFactory\");\r\n\r\n let customAttrs = assign({ businessObject: customElement }, customElement);\r\n let customShape = elementFactory.create(\"shape\", customAttrs);\r\n\r\n if (isGroup(customElement)) {\r\n this._groupElements[customElement.id] = customShape;\r\n }\r\n\r\n if (parentId) {\r\n let parentShape = this._groupElements[parentId];\r\n\r\n if (isGroup(parentShape)) {\r\n return canvas.addShape(customShape, parentShape, parentShape.id);\r\n }\r\n }\r\n return canvas.addShape(customShape);\r\n};\r\n\r\nDomainStoryModeler.prototype._addCustomConnection = function (customElement) {\r\n this._customElements.push(customElement);\r\n\r\n let canvas = this.get(\"canvas\"),\r\n elementFactory = this.get(\"elementFactory\"),\r\n elementRegistry = this.get(\"elementRegistry\");\r\n\r\n let customAttrs = assign({ businessObject: customElement }, customElement);\r\n\r\n let connection = elementFactory.create(\r\n \"connection\",\r\n assign(customAttrs, {\r\n source: elementRegistry.get(customElement.source),\r\n target: elementRegistry.get(customElement.target),\r\n }),\r\n elementRegistry.get(customElement.source).parent\r\n );\r\n\r\n return canvas.addConnection(connection);\r\n};\r\n\r\n//** We import BusinessObjects, not the whole Canvas Object!!!!!!!!\r\nDomainStoryModeler.prototype.importCustomElements = function (elements) {\r\n this.get(\"eventBus\").fire(\"diagram.clear\", {});\r\n this._customElements = [];\r\n this._groupElements = [];\r\n\r\n this.addCustomElements(elements);\r\n};\r\n\r\n/**\r\n * add a number of custom elements and connections to the underlying diagram.\r\n *\r\n * @param {Array} customElements\r\n */\r\nDomainStoryModeler.prototype.addCustomElements = function (customElements) {\r\n if (!isArray(customElements)) {\r\n throw new Error(\"argument must be an array\");\r\n }\r\n\r\n let shapes = [],\r\n connections = [],\r\n groups = [];\r\n\r\n customElements.forEach(function (customElement) {\r\n if (isConnection(customElement)) {\r\n connections.push(customElement);\r\n } else if (isGroup(customElement)) {\r\n groups.push(customElement);\r\n } else {\r\n shapes.push(customElement);\r\n }\r\n });\r\n\r\n // add groups before shapes and shapes before connections so that connections\r\n // can already rely on the shapes being part of the diagram\r\n groups.forEach(this._addCustomShape, this);\r\n shapes.forEach(this._addCustomShape, this);\r\n connections.forEach(this._addCustomConnection, this);\r\n};\r\n\r\n/**\r\n * get custom elements with their current status.\r\n *\r\n * @return {Array} custom elements on the diagram\r\n */\r\nDomainStoryModeler.prototype.getCustomElements = function () {\r\n return this._customElements;\r\n};\r\n\r\n// override standard function to prevent default elements on canvas\r\nDomainStoryModeler.prototype.createDiagram = function (done) {};\r\n\r\nfunction isConnection(element) {\r\n return (\r\n element.type === elementTypes.ACTIVITY ||\r\n element.type === elementTypes.CONNECTION\r\n );\r\n}\r\n\r\nfunction isGroup(element) {\r\n return element && element.type === elementTypes.GROUP;\r\n}\r\n","\"use strict\";\r\n\r\nimport { assign } from \"min-dash\";\r\n\r\n/**\r\n * service that allow replacing of elements.\r\n */\r\nexport default function Replace(modeling) {\r\n this._modeling = modeling;\r\n}\r\n\r\n/**\r\n * @param {Element} oldElement - element to be replaced\r\n * @param {Object} newElementData - containing information about the new Element, for example height, width, type.\r\n * @param modeling\r\n */\r\nfunction replaceElement(oldElement, newElementData, modeling) {\r\n // let modeling = this._modeling;\r\n\r\n let newElement = setCenterOfElement(newElementData, oldElement, modeling);\r\n let outgoingActivities = newElement.outgoing;\r\n let incomingActivities = newElement.incoming;\r\n\r\n outgoingActivities.forEach((element) => {\r\n element.businessObject.source = newElement.id;\r\n });\r\n\r\n incomingActivities.forEach((element) => {\r\n element.businessObject.target = newElement.id;\r\n });\r\n\r\n return newElement;\r\n}\r\n\r\nfunction setCenterOfElement(newElementData, oldElement, modeling) {\r\n newElementData.x = Math.ceil(\r\n oldElement.x + (newElementData.width || oldElement.width) / 2\r\n );\r\n newElementData.y = Math.ceil(\r\n oldElement.y + (newElementData.height || oldElement.height) / 2\r\n );\r\n\r\n assign(newElementData, { name: oldElement.businessObject.name });\r\n\r\n return modeling.replaceShape(oldElement, newElementData, {});\r\n}\r\n\r\nReplace.prototype.replaceElement = replaceElement;\r\n","\"use strict\";\r\n\r\nimport Replace from \"./replace\";\r\nimport * as replaceOptions from \"./replaceOptions\";\r\n\r\nimport { forEach } from \"min-dash\";\r\n\r\n/**\r\n * This module is an element agnostic replace menu provider for the popup menu.\r\n */\r\nexport default function ReplaceMenuProvider(modeling) {\r\n this._dsReplace = new Replace(modeling);\r\n this._modeling = modeling;\r\n}\r\n\r\nReplaceMenuProvider.$inject = [\"modeling\"];\r\n\r\n/**\r\n * Get all entries from replaceOptions for the given element and apply filters\r\n * on them. Get for example only elements, which are different from the current one.\r\n *\r\n * @param {djs.model.Base} element\r\n *\r\n * @return {Array} a list of menu entry items\r\n */\r\nReplaceMenuProvider.prototype.getEntries = function (element) {\r\n let entries;\r\n if (element.type.includes(\"actor\")) {\r\n entries = replaceOptions.actorReplaceOptions(element.type);\r\n } else if (element.type.includes(\"workObject\")) {\r\n entries = replaceOptions.workObjectReplaceOptions(element.type);\r\n }\r\n\r\n return this._createEntries(element, entries);\r\n};\r\n\r\n/**\r\n * Creates an array of menu entry objects for a given element and filters the replaceOptions\r\n * according to a filter function.\r\n *\r\n * @param {djs.model.Base} element\r\n * @param {Object} replaceOptions\r\n *\r\n * @return {Array} a list of menu items\r\n */\r\nReplaceMenuProvider.prototype._createEntries = function (\r\n element,\r\n replaceOptions\r\n) {\r\n let menuEntries = [];\r\n\r\n let self = this;\r\n\r\n forEach(replaceOptions, function (definition) {\r\n let entry = self._createMenuEntry(definition, element);\r\n\r\n menuEntries.push(entry);\r\n });\r\n\r\n return menuEntries;\r\n};\r\n\r\n/**\r\n * Creates and returns a single menu entry item.\r\n *\r\n * @param {Object} definition a single replace options definition object\r\n * @param {djs.model.Base} element\r\n * @param {Function} [action] an action callback function which gets called when\r\n * the menu entry is being triggered.\r\n *\r\n * @return {Object} menu entry item\r\n */\r\nReplaceMenuProvider.prototype._createMenuEntry = function (\r\n definition,\r\n element,\r\n action\r\n) {\r\n let replaceElement = this._dsReplace.replaceElement;\r\n let modeling = this._modeling;\r\n let replaceAction = function () {\r\n return replaceElement(element, definition.target, modeling);\r\n };\r\n\r\n action = action || replaceAction;\r\n\r\n return {\r\n label: definition.label,\r\n className: definition.className,\r\n id: definition.actionName,\r\n action: action,\r\n };\r\n};\r\n","import { elementTypes } from \"src/app/Domain/Common/elementTypes\";\r\nimport { getNameFromType } from \"src/app/Utils/naming\";\r\n\r\nlet iconDictionaryService;\r\n\r\nexport function initializeReplaceOptions(iconDictionary) {\r\n iconDictionaryService = iconDictionary;\r\n}\r\n\r\nexport function actorReplaceOptions(name) {\r\n const actorTypes = iconDictionaryService.getTypeDictionary(\r\n elementTypes.ACTOR\r\n );\r\n\r\n let replaceOption = {};\r\n let i = 0;\r\n\r\n actorTypes.keysArray().forEach((actorType) => {\r\n if (!name.includes(actorType)) {\r\n const typeName = getNameFromType(actorType);\r\n replaceOption[i] = {\r\n label: \"Change to \" + typeName,\r\n actionName: \"replace-with-actor-\" + typeName.toLowerCase(),\r\n className: iconDictionaryService.getIconForBPMN(actorType),\r\n target: {\r\n type: actorType,\r\n },\r\n };\r\n i++;\r\n }\r\n });\r\n return replaceOption;\r\n}\r\n\r\nexport function workObjectReplaceOptions(name) {\r\n const workObjectTypes = iconDictionaryService.getTypeDictionary(\r\n elementTypes.WORKOBJECT\r\n );\r\n\r\n let replaceOption = {};\r\n let i = 0;\r\n\r\n workObjectTypes.keysArray().forEach((workObjectType) => {\r\n if (!name.includes(workObjectType)) {\r\n const typeName = getNameFromType(workObjectType);\r\n replaceOption[i] = {\r\n label: \"Change to \" + typeName,\r\n actionName: \"replace-with-actor-\" + typeName,\r\n className: iconDictionaryService.getIconForBPMN(workObjectType),\r\n target: {\r\n type: workObjectType,\r\n },\r\n };\r\n }\r\n i++;\r\n });\r\n return replaceOption;\r\n}\r\n","\"use strict\";\r\n\r\nimport inherits from \"inherits\";\r\n\r\nimport ContextPadProvider from \"bpmn-js/lib/features/context-pad/ContextPadProvider\";\r\n\r\nimport { assign, bind } from \"min-dash\";\r\nimport { generateAutomaticNumber } from \"../numbering/numbering\";\r\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\r\nimport { getAllStandardIconKeys } from \"src/app/Domain/Domain-Configuration/allIcons\";\r\nimport { getNameFromType } from \"src/app/Utils/naming\";\r\n\r\nlet dirtyFlagService;\r\nlet iconDictionaryService;\r\n\r\nexport function initializeContextPadProvider(dirtyFlag, iconDictionary) {\r\n dirtyFlagService = dirtyFlag;\r\n iconDictionaryService = iconDictionary;\r\n}\r\n\r\nexport default function DomainStoryContextPadProvider(\r\n injector,\r\n connect,\r\n translate,\r\n elementFactory,\r\n create,\r\n canvas,\r\n contextPad,\r\n popupMenu,\r\n replaceMenuProvider,\r\n commandStack,\r\n eventBus,\r\n modeling\r\n) {\r\n let startConnect;\r\n let selectedElement;\r\n\r\n injector.invoke(ContextPadProvider, this);\r\n let autoPlace = injector.get(\"autoPlace\", false);\r\n\r\n let cached = bind(this.getContextPadEntries, this);\r\n\r\n const colorPicker = document.getElementById(\"colorPicker\");\r\n colorPicker.onchange = (ev) => {\r\n const context = {\r\n businessObject: selectedElement.businessObject,\r\n newColor: ev.target.value,\r\n element: selectedElement,\r\n };\r\n\r\n commandStack.execute(\"element.colorChange\", context);\r\n dirtyFlagService.makeDirty();\r\n };\r\n\r\n popupMenu.registerProvider(\"ds-replace\", replaceMenuProvider);\r\n popupMenu.registerProvider(\"bpmn-replace\", replaceMenuProvider);\r\n\r\n this.getContextPadEntries = function (element) {\r\n const allStandardIconKeys = getAllStandardIconKeys();\r\n let actions = cached(element);\r\n\r\n startConnect = function (event, element, autoActivate) {\r\n connect.start(event, element, autoActivate);\r\n };\r\n\r\n if (element.type.includes(elementTypes.WORKOBJECT)) {\r\n if (\r\n allStandardIconKeys.includes(\r\n element.type.replace(elementTypes.WORKOBJECT, \"\")\r\n )\r\n ) {\r\n addColorChange(actions);\r\n }\r\n addConnectWithActivity(actions, startConnect);\r\n addTextAnnotation(actions);\r\n addActors(appendAction, actions);\r\n addWorkObjects(appendAction, actions);\r\n addChangeWorkObjectTypeMenu(actions);\r\n } else if (element.type.includes(elementTypes.ACTOR)) {\r\n if (\r\n allStandardIconKeys.includes(\r\n element.type.replace(elementTypes.ACTOR, \"\")\r\n )\r\n ) {\r\n addColorChange(actions);\r\n }\r\n addConnectWithActivity(actions, startConnect);\r\n addTextAnnotation(actions);\r\n addWorkObjects(appendAction, actions);\r\n addChangeActorTypeMenu(actions);\r\n } else if (element.type.includes(elementTypes.GROUP)) {\r\n delete actions.delete;\r\n addTextAnnotation(actions);\r\n assign(actions, {\r\n deleteGroup: {\r\n group: \"edit\",\r\n className: \"bpmn-icon-trash\",\r\n title: \"Remove Group without Child-Elements\",\r\n action: {\r\n click: function (event, element) {\r\n modeling.removeGroup(element);\r\n dirtyFlagService.makeDirty();\r\n },\r\n },\r\n },\r\n });\r\n addColorChange(actions);\r\n } else if (element.type.includes(elementTypes.ACTIVITY)) {\r\n moveDeleteActionToEndOfArray(actions);\r\n\r\n addColorChange(actions);\r\n\r\n assign(actions, {\r\n delete: {\r\n group: \"edit\",\r\n className: \"bpmn-icon-trash\",\r\n title: \"Remove\",\r\n action: {\r\n click: function (event, element) {\r\n modeling.removeElements({ element });\r\n dirtyFlagService.makeDirty();\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n return actions;\r\n };\r\n\r\n function moveDeleteActionToEndOfArray(actions) {\r\n delete actions.delete;\r\n\r\n assign(actions, {\r\n changeDirection: {\r\n group: \"edit\",\r\n className: \"icon-domain-story-changeDirection\",\r\n title: translate(\"Change direction\"),\r\n action: {\r\n // event needs to be addressed\r\n click: function (event, element) {\r\n changeDirection(element);\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n function addChangeActorTypeMenu(actions) {\r\n assign(actions, {\r\n replace: {\r\n group: \"edit\",\r\n className: \"bpmn-icon-screw-wrench\",\r\n title: translate(\"Change type\"),\r\n action: {\r\n click: function (event, element) {\r\n let position = assign(getReplaceMenuPosition(element), {\r\n cursor: { x: event.x, y: event.y },\r\n });\r\n popupMenu.open(element, \"ds-replace\", position);\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n function addColorChange(actions) {\r\n assign(actions, {\r\n colorChange: {\r\n group: \"edit\",\r\n className: \"icon-domain-story-color-picker\",\r\n title: translate(\"Change color\"),\r\n action: {\r\n click: function (event, element) {\r\n selectedElement = element;\r\n colorPicker.click();\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n function addTextAnnotation(actions) {\r\n assign(actions, {\r\n \"append.text-annotation\": appendAction(\r\n elementTypes.TEXTANNOTATION,\r\n \"bpmn-icon-text-annotation\",\r\n \"textannotation\",\r\n \"connect\"\r\n ),\r\n });\r\n }\r\n\r\n function addConnectWithActivity(actions, startConnect) {\r\n assign(actions, {\r\n connect: {\r\n group: \"connect\",\r\n className: \"bpmn-icon-connection\",\r\n title: translate(\"Connect with activity\"),\r\n action: {\r\n click: startConnect,\r\n dragstart: startConnect,\r\n },\r\n },\r\n });\r\n }\r\n\r\n function addWorkObjects(appendAction, actions) {\r\n let workObjectTypes = iconDictionaryService.getTypeDictionary(\r\n elementTypes.WORKOBJECT\r\n );\r\n workObjectTypes.keysArray().forEach((workObjectType) => {\r\n let name = getNameFromType(workObjectType);\r\n let icon = iconDictionaryService.getIconForBPMN(workObjectType);\r\n let action = [];\r\n action[\"append.workObject\" + name] = appendAction(\r\n workObjectType,\r\n icon,\r\n name,\r\n \"workObjects\"\r\n );\r\n assign(actions, action);\r\n });\r\n }\r\n\r\n function addActors(appendAction, actions) {\r\n let actorTypes = iconDictionaryService.getTypeDictionary(\r\n elementTypes.ACTOR\r\n );\r\n actorTypes.keysArray().forEach((actorType) => {\r\n let name = getNameFromType(actorType);\r\n let icon = iconDictionaryService.getIconForBPMN(actorType);\r\n let action = [];\r\n action[\"append.actor\" + name] = appendAction(\r\n actorType,\r\n icon,\r\n name,\r\n \"actors\"\r\n );\r\n assign(actions, action);\r\n });\r\n }\r\n\r\n function addChangeWorkObjectTypeMenu(actions) {\r\n assign(actions, {\r\n replace: {\r\n group: \"edit\",\r\n className: \"bpmn-icon-screw-wrench\",\r\n title: translate(\"Change type\"),\r\n action: {\r\n click: function (event, element) {\r\n let position = assign(getReplaceMenuPosition(element), {\r\n cursor: { x: event.x, y: event.y },\r\n });\r\n popupMenu.open(element, \"ds-replace\", position);\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n function changeDirection(element) {\r\n let context;\r\n let businessObject = element.businessObject;\r\n let newNumber;\r\n\r\n if (element.source.type.includes(elementTypes.ACTOR)) {\r\n newNumber = 0;\r\n } else {\r\n newNumber = generateAutomaticNumber(element, commandStack);\r\n }\r\n context = {\r\n businessObject: businessObject,\r\n newNumber: newNumber,\r\n element: element,\r\n };\r\n commandStack.execute(\"activity.directionChange\", context);\r\n }\r\n\r\n function getReplaceMenuPosition(element) {\r\n let Y_OFFSET = 5;\r\n\r\n let diagramContainer = canvas.getContainer(),\r\n pad = contextPad.getPad(element).html;\r\n\r\n let diagramRect = diagramContainer.getBoundingClientRect(),\r\n padRect = pad.getBoundingClientRect();\r\n\r\n let top = padRect.top - diagramRect.top;\r\n let left = padRect.left - diagramRect.left;\r\n\r\n return {\r\n x: left,\r\n y: top + padRect.height + Y_OFFSET,\r\n };\r\n }\r\n\r\n /**\r\n * create an append action\r\n *\r\n * @param {String} type\r\n * @param {String} className\r\n * @param {String} [title]\r\n * @param {String} group\r\n * @param {Object} [options]\r\n *\r\n * @return {Object} descriptor\r\n */\r\n function appendAction(type, className, title, group, options) {\r\n if (typeof title !== \"string\") {\r\n options = title;\r\n title = translate(\"{type}\", { type: type.replace(/^domainStory:/, \"\") });\r\n }\r\n\r\n function appendStart(event, element) {\r\n let shape = elementFactory.createShape(assign({ type: type }, options));\r\n let context = {\r\n elements: [shape],\r\n hints: {},\r\n source: element,\r\n };\r\n create.start(event, shape, context);\r\n }\r\n\r\n return {\r\n group: group,\r\n className: className,\r\n title: \"Append \" + title,\r\n action: {\r\n dragstart: startConnect,\r\n click: appendStart,\r\n },\r\n };\r\n }\r\n}\r\n\r\ninherits(DomainStoryContextPadProvider, ContextPadProvider);\r\n\r\nDomainStoryContextPadProvider.$inject = [\r\n \"injector\",\r\n \"connect\",\r\n \"translate\",\r\n \"elementFactory\",\r\n \"create\",\r\n \"canvas\",\r\n \"contextPad\",\r\n \"popupMenu\",\r\n \"replaceMenuProvider\",\r\n \"commandStack\",\r\n \"eventBus\",\r\n \"modeling\",\r\n];\r\n","\"use strict\";\r\n\r\nimport { assign } from \"min-dash\";\r\n\r\nimport inherits from \"inherits\";\r\n\r\nimport BpmnElementFactory from \"bpmn-js/lib/features/modeling/ElementFactory\";\r\n\r\nimport { DEFAULT_LABEL_SIZE } from \"bpmn-js/lib/util/LabelUtil\";\r\n\r\nimport DomainStoryIdFactory from \"./domainStoryIdFactory\";\r\n\r\n/**\r\n * A custom factory that knows how to create BPMN _and_ custom elements.\r\n */\r\nexport default function DomainStoryElementFactory(bpmnFactory, moddle) {\r\n BpmnElementFactory.call(this, bpmnFactory, moddle);\r\n\r\n let self = this;\r\n let domainStoryIdFactory = new DomainStoryIdFactory();\r\n\r\n /**\r\n * create a diagram-js element with the given type (any of shape, connection, label).\r\n *\r\n * @param {String} elementType\r\n * @param {Object} attrs\r\n *\r\n * @return {djs.model.Base}\r\n */\r\n this.create = function (elementType, attrs) {\r\n let type = attrs.type;\r\n\r\n if (elementType === \"label\") {\r\n return self.baseCreate(\r\n elementType,\r\n assign({ type: \"label\" }, DEFAULT_LABEL_SIZE, attrs)\r\n );\r\n }\r\n\r\n // add type to businessObject if custom\r\n if (/^domainStory:/.test(type)) {\r\n if (!attrs.businessObject) {\r\n attrs.businessObject = {\r\n type: type,\r\n name: attrs.name ? attrs.name : \"\",\r\n };\r\n }\r\n\r\n if (attrs.id) {\r\n domainStoryIdFactory.registerId(attrs.id);\r\n } else {\r\n attrs.id = domainStoryIdFactory.getId(elementType);\r\n }\r\n assign(attrs.businessObject, {\r\n id: attrs.id,\r\n });\r\n\r\n let id = attrs.id;\r\n attrs.businessObject.get = function (key) {\r\n if (key === \"id\") {\r\n return id;\r\n }\r\n };\r\n attrs.businessObject.set = function (key, value) {\r\n if (key === \"id\") {\r\n assign(attrs.businessObject, { id: value });\r\n }\r\n };\r\n\r\n if (!attrs.businessObject.$type) {\r\n assign(attrs.businessObject, { $type: \"Element\" });\r\n }\r\n assign(attrs.businessObject, { di: {} });\r\n if (!attrs.businessObject.$descriptor) {\r\n assign(attrs.businessObject, { $descriptor: {} });\r\n }\r\n\r\n // add width and height if shape\r\n if (\r\n (!/:activity$/.test(type) || !/:connection$/.test(type)) &&\r\n !((/:group$/.test(type) && attrs.height) || attrs.width)\r\n ) {\r\n assign(attrs, self._getCustomElementSize(type));\r\n }\r\n\r\n if (!(\"$instanceOf\" in attrs.businessObject)) {\r\n // ensure we can use ModelUtil#is for type checks\r\n Object.defineProperty(attrs.businessObject, \"$instanceOf\", {\r\n value: function (type) {\r\n return this.type === type;\r\n },\r\n });\r\n }\r\n\r\n return self.baseCreate(elementType, attrs);\r\n }\r\n\r\n return self.createBpmnElement(elementType, attrs);\r\n };\r\n}\r\n\r\ninherits(DomainStoryElementFactory, BpmnElementFactory);\r\n\r\nDomainStoryElementFactory.$inject = [\"bpmnFactory\", \"moddle\"];\r\n\r\n/**\r\n * returns the default size of custom shapes.\r\n *\r\n * the following example shows an interface on how\r\n * to setup the custom shape's dimensions.\r\n * *\r\n * @param {String} type\r\n *\r\n * @return {Dimensions} a {width, height} object representing the size of the element\r\n */\r\nDomainStoryElementFactory.prototype._getCustomElementSize = function (type) {\r\n let shapes = {\r\n __default: { width: 75, height: 75 },\r\n \"domainStory:textAnnotation\": { width: 100, height: 30 },\r\n \"domainStory:group\": { width: 525, height: 275 },\r\n };\r\n\r\n return shapes[type] || shapes.__default;\r\n};\r\n\r\nclass Dimensions {\r\n width;\r\n height;\r\n}\r\n","\"use strict\";\r\n\r\nlet idList = [];\r\n\r\nexport default function DomainStoryIdFactory() {}\r\n\r\nDomainStoryIdFactory.prototype.getId = function (type) {\r\n return generateId(type);\r\n};\r\n\r\nDomainStoryIdFactory.prototype.registerId = function (id) {\r\n idList.push(id);\r\n};\r\n\r\nfunction generateId(type) {\r\n let idNumber = fourDigitsId();\r\n\r\n let id = type + \"_\" + idSuffix(idNumber);\r\n\r\n while (containsId(id)) {\r\n idNumber++;\r\n\r\n id = type + \"_\" + idSuffix(idNumber);\r\n }\r\n\r\n idList.push(id);\r\n return id;\r\n}\r\n\r\nfunction idSuffix(idNumber) {\r\n let id;\r\n if (idNumber > 9999) {\r\n id = 0;\r\n } else if (idNumber < 10) {\r\n id = \"000\" + idNumber;\r\n } else if (idNumber < 100) {\r\n id = \"00\" + idNumber;\r\n } else if (idNumber < 1000) {\r\n id = \"0\" + idNumber;\r\n } else {\r\n id = \"\" + idNumber;\r\n }\r\n return id;\r\n}\r\n\r\nfunction fourDigitsId() {\r\n return Math.floor(Math.random() * 10000);\r\n}\r\n\r\nexport function containsId(id) {\r\n let same = false;\r\n idList.forEach((element) => {\r\n if (id === element) {\r\n same = true;\r\n }\r\n });\r\n return same;\r\n}\r\n","\"use strict\";\r\n\r\nimport inherits from \"inherits\";\r\nimport BaseRenderer from \"diagram-js/lib/draw/BaseRenderer\";\r\nimport Ids from \"ids\";\r\nimport { getAnnotationBoxHeight } from \"./labeling/dsLabelEditingPreview\";\r\nimport { componentsToPath, createLine } from \"diagram-js/lib/util/RenderUtil\";\r\nimport {\r\n append as svgAppend,\r\n attr as svgAttr,\r\n classes as svgClasses,\r\n create as svgCreate,\r\n} from \"tiny-svg\";\r\nimport { query as domQuery } from \"min-dom\";\r\nimport { assign, isObject } from \"min-dash\";\r\nimport { getNumberStash } from \"./labeling/dsLabelEditingProvider\";\r\nimport {\r\n addNumberToRegistry,\r\n generateAutomaticNumber,\r\n numberBoxDefinitions,\r\n} from \"./numbering/numbering\";\r\n\r\nimport { calculateTextWidth } from \"./labeling/dsLabelUtil\";\r\nimport { countLines, labelPosition } from \"./labeling/position\";\r\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\r\nimport { angleBetween } from \"../../Utils/mathExtensions\";\r\n\r\nlet RENDERER_IDS = new Ids();\r\nlet numbers = [];\r\nconst DEFAULT_COLOR = \"black\";\r\n\r\n/**\r\n * a renderer that knows how to render custom elements.\r\n */\r\nlet iconDictionary;\r\nlet elementRegistry;\r\nlet dirtyFlag;\r\n\r\nexport function initializeRenderer(\r\n iconDictionaryService,\r\n elementRegistryService,\r\n dirtyFlagService\r\n) {\r\n iconDictionary = iconDictionaryService;\r\n elementRegistry = elementRegistryService;\r\n dirtyFlag = dirtyFlagService;\r\n}\r\n\r\nexport default function DomainStoryRenderer(\r\n eventBus,\r\n styles,\r\n canvas,\r\n textRenderer,\r\n pathMap,\r\n commandStack\r\n) {\r\n BaseRenderer.call(this, eventBus, 2000);\r\n\r\n let rendererId = RENDERER_IDS.next();\r\n let markers = {};\r\n let computeStyle = styles.computeStyle;\r\n\r\n // generate the automatic Number for an activity originating from an actor\r\n function generateActivityNumber(parentGfx, element, box) {\r\n // whenever we want to edit an activity, it gets redrawn as a new object\r\n // and the custom information is lost,\r\n // so we stash it before the editing occurs and set the value here\r\n\r\n let numberStash = getNumberStash();\r\n let semantic = element.businessObject;\r\n\r\n if (numberStash.use) {\r\n semantic.number = numberStash.number;\r\n }\r\n\r\n box.x -= 65;\r\n box.y -= 12;\r\n renderNumber(parentGfx, \".\", backgroundDotStyle(box), element.type);\r\n box.x += 30;\r\n box.y += 3;\r\n renderNumber(parentGfx, \"o\", backgroundBoxStyle(box), element.type);\r\n\r\n numbers[semantic.number] = true;\r\n box.x += 9;\r\n box.y -= 7;\r\n\r\n if (semantic.number < 10) {\r\n box.x += 3;\r\n }\r\n\r\n let newRenderedNumber = renderNumber(\r\n parentGfx,\r\n semantic.number,\r\n numberStyle(box),\r\n element.type\r\n );\r\n addNumberToRegistry(newRenderedNumber, semantic.number);\r\n }\r\n\r\n // style functions\r\n function numberStyle(box) {\r\n return {\r\n box: box,\r\n fitBox: true,\r\n style: assign({}, textRenderer.getExternalStyle(), {\r\n fill: \"black\",\r\n position: \"absolute\",\r\n }),\r\n };\r\n }\r\n\r\n function backgroundBoxStyle(box) {\r\n return {\r\n box: box,\r\n fitBox: true,\r\n style: assign({}, textRenderer.getExternalStyle(), {\r\n fill: \"black\",\r\n fontSize: 50,\r\n position: \"absolute\",\r\n fontFamily: \"Courier New\",\r\n }),\r\n };\r\n }\r\n\r\n function backgroundDotStyle(box) {\r\n return {\r\n box: box,\r\n fitBox: true,\r\n style: assign({}, textRenderer.getExternalStyle(), {\r\n fill: \"white\",\r\n fontSize: 150,\r\n position: \"absolute\",\r\n fontFamily: \"Courier\",\r\n }),\r\n };\r\n }\r\n\r\n // render functions\r\n // render label associated with actors and workobjects\r\n function renderEmbeddedLabel(parentGfx, element, align, padding) {\r\n let businessObject = element.businessObject;\r\n return renderLabel(\r\n parentGfx,\r\n businessObject.name,\r\n {\r\n box: element,\r\n align: align,\r\n padding: padding ? padding : 0,\r\n style: {\r\n fill: \"#000000\",\r\n },\r\n },\r\n element.type\r\n );\r\n }\r\n\r\n // render label associated with activities\r\n function renderExternalLabel(parentGfx, element) {\r\n let semantic = element.businessObject;\r\n let waypoints = element.waypoints;\r\n let lines = countLines(semantic.name);\r\n\r\n if (element.waypoints != null) {\r\n let position = labelPosition(waypoints, lines);\r\n let startPoint = element.waypoints[position.selected];\r\n let endPoint = element.waypoints[position.selected + 1];\r\n let angle = angleBetween(startPoint, endPoint);\r\n let alignment = \"left\";\r\n let boxWidth = 500;\r\n let xStart = position.x;\r\n\r\n // if the activity is horizontal, we want to center the label\r\n if (angle === 0 || angle === 180) {\r\n boxWidth = Math.abs(startPoint.x - endPoint.x);\r\n alignment = \"center\";\r\n xStart =\r\n (startPoint.x + endPoint.x) / 2 - calculateTextWidth(semantic.name);\r\n }\r\n\r\n let box = {\r\n textAlign: alignment,\r\n width: boxWidth,\r\n height: 30,\r\n x: xStart,\r\n y: position.y,\r\n };\r\n\r\n if (semantic.name && semantic.name.length) {\r\n return renderLabel(\r\n parentGfx,\r\n semantic.name,\r\n {\r\n box: box,\r\n fitBox: true,\r\n style: assign({}, textRenderer.getExternalStyle(), {\r\n fill: \"black\",\r\n wordWrap: \"break-word\",\r\n overflowWrap: \"break-word\",\r\n hyphens: \"auto\",\r\n }),\r\n },\r\n element.type\r\n );\r\n }\r\n }\r\n }\r\n\r\n // render the number associated with an activity\r\n function renderExternalNumber(parentGfx, element) {\r\n if (element && element.source) {\r\n let semantic = element.businessObject;\r\n\r\n let box = numberBoxDefinitions(element);\r\n\r\n if (\r\n semantic.number == null &&\r\n element.source.type &&\r\n element.source.type.includes(elementTypes.ACTOR)\r\n ) {\r\n generateAutomaticNumber(element, commandStack);\r\n }\r\n\r\n // render the background for the number\r\n if (semantic.number && element.source.type.includes(elementTypes.ACTOR)) {\r\n generateActivityNumber(parentGfx, element, box);\r\n } else {\r\n semantic.number = null;\r\n }\r\n }\r\n }\r\n\r\n // render a number on the canvas\r\n function renderNumber(parentGfx, number, options, type) {\r\n if (number < 10) {\r\n number = String(number);\r\n }\r\n number = String(number);\r\n let text = textRenderer.createText(number || \"\", options);\r\n let height = 0;\r\n\r\n svgClasses(text).add(\"djs-labelNumber\");\r\n\r\n setCoordinates(type, text, options, height, parentGfx);\r\n\r\n svgAppend(parentGfx, text);\r\n return text;\r\n }\r\n\r\n // the coordinates of the activity label must be set directly and will not be taken from the box\r\n function setCoordinates(type, text, options, height, parentGfx) {\r\n if (/:activity$/.test(type)) {\r\n text.innerHTML = manipulateInnerHTMLXLabel(\r\n text.children,\r\n options.box.x,\r\n 0\r\n );\r\n text.innerHTML = manipulateInnerHTMLYLabel(\r\n text.children,\r\n options.box.y,\r\n 0\r\n );\r\n } else if (/:actor/.test(type)) {\r\n height = parentGfx.firstChild.attributes.height.nodeValue;\r\n text.innerHTML = manipulateInnerHTMLYLabel(text.children, height, 0);\r\n } else if (/:workObject/.test(type)) {\r\n height = parentGfx.firstChild.attributes.height.nodeValue;\r\n text.innerHTML = manipulateInnerHTMLYLabel(text.children, height, 26);\r\n }\r\n }\r\n\r\n // render a label on the canvas\r\n function renderLabel(parentGfx, label, options, type) {\r\n let text = textRenderer.createText(label || \"\", options);\r\n let height = 0;\r\n\r\n svgClasses(text).add(\"djs-label\");\r\n setCoordinates(type, text, options, height, parentGfx);\r\n\r\n svgAppend(parentGfx, text);\r\n return text;\r\n }\r\n\r\n // determine the Y-coordinate of the label / number to be rendered\r\n function manipulateInnerHTMLYLabel(children, y, offset) {\r\n if (children) {\r\n let result = \"\";\r\n for (let i = 0; i < children.length; i++) {\r\n result += children[i].outerHTML.replace(\r\n /y=\"-?\\d*.\\d*\"/,\r\n 'y=\"' + (Number(y) + offset + 14 * i) + '\"'\r\n );\r\n }\r\n return result;\r\n }\r\n }\r\n\r\n // determine the X-coordinate of the label / number to be rendered\r\n function manipulateInnerHTMLXLabel(children, x, offset) {\r\n if (children) {\r\n let result = \"\";\r\n for (let i = 0; i < children.length; i++) {\r\n result += children[i].outerHTML.replace(\r\n /x=\"-?\\d*.\\d*\"/,\r\n 'x=\"' + (Number(x) + offset + 14) + '\"'\r\n );\r\n }\r\n return result;\r\n }\r\n }\r\n\r\n // draw functions\r\n this.drawGroup = function (parentGfx, element) {\r\n if (!element.businessObject.pickedColor) {\r\n element.businessObject.pickedColor = DEFAULT_COLOR;\r\n }\r\n let rect = drawRect(\r\n parentGfx,\r\n element.width,\r\n element.height,\r\n 0,\r\n assign(\r\n {\r\n fill: \"none\",\r\n stroke: element.businessObject.pickedColor,\r\n },\r\n element.attrs\r\n )\r\n );\r\n renderEmbeddedLabel(parentGfx, element, \"left-top\", 8);\r\n\r\n return rect;\r\n };\r\n\r\n function useColorForElement(element, iconSRC) {\r\n if (!element.businessObject.pickedColor) {\r\n element.businessObject.pickedColor = DEFAULT_COLOR;\r\n }\r\n const match = iconSRC.match(/fill=\".*?\"/);\r\n if (match && match.length > 1) {\r\n return iconSRC.replace(\r\n /fill=\".*?\"/,\r\n 'fill=\"' + element.businessObject.pickedColor + '\"'\r\n );\r\n } else {\r\n const index = iconSRC.indexOf(\"' +\r\n ''\r\n );\r\n } else {\r\n return useColorForElement(element, iconSRC);\r\n }\r\n }\r\n\r\n this.drawActor = function (p, element) {\r\n let svgDynamicSizeAttributes = {\r\n width: element.width,\r\n height: element.height,\r\n },\r\n actor;\r\n let iconSRC = iconDictionary.getTypeIconSRC(\r\n elementTypes.ACTOR,\r\n element.type\r\n );\r\n iconSRC = getIconSrc(iconSRC, element);\r\n actor = svgCreate(iconSRC);\r\n\r\n svgAttr(actor, svgDynamicSizeAttributes);\r\n svgAppend(p, actor);\r\n\r\n renderEmbeddedLabel(p, element, \"center\", -5);\r\n return actor;\r\n };\r\n\r\n this.drawWorkObject = function (p, element) {\r\n let svgDynamicSizeAttributes = {\r\n width: element.width * 0.65,\r\n height: element.height * 0.65,\r\n x: element.width / 2 - 25,\r\n y: element.height / 2 - 25,\r\n },\r\n workObject;\r\n let iconSRC = iconDictionary.getTypeIconSRC(\r\n elementTypes.WORKOBJECT,\r\n element.type\r\n );\r\n iconSRC = getIconSrc(iconSRC, element);\r\n workObject = svgCreate(iconSRC);\r\n\r\n svgAttr(workObject, svgDynamicSizeAttributes);\r\n svgAppend(p, workObject);\r\n renderEmbeddedLabel(p, element, \"center\", -5);\r\n\r\n return workObject;\r\n };\r\n\r\n function useColorForActivity(element) {\r\n if (!element.businessObject.pickedColor) {\r\n element.businessObject.pickedColor = \"black\";\r\n }\r\n let attrs = \"\";\r\n return computeStyle(attrs, {\r\n stroke: element.businessObject.pickedColor,\r\n fill: \"none\",\r\n strokeWidth: 1.5,\r\n strokeLinejoin: \"round\",\r\n markerEnd: marker(\r\n \"activity\",\r\n \"black\",\r\n element.businessObject.pickedColor\r\n ),\r\n });\r\n }\r\n\r\n this.drawActivity = function (p, element) {\r\n adjustForTextOverlap(element);\r\n\r\n if (element) {\r\n let attrs = useColorForActivity(element);\r\n\r\n let x = svgAppend(p, createLine(element.waypoints, attrs));\r\n renderExternalLabel(p, element);\r\n renderExternalNumber(p, element);\r\n\r\n // just adjusting the start- and endpoint of the connection-element moves only the drawn connection,\r\n // not the interactive line. This can be fixed by manually overriding the points of the interactive polyline\r\n // in the HTMl with the points of the drawn one.\r\n // this however does not adjust the surrounding box of the connection.\r\n fixConnectionInHTML(p.parentElement);\r\n\r\n return x;\r\n }\r\n };\r\n\r\n function checkIfPointOverlapsText(point, source) {\r\n if (point.y > source.y + 60) {\r\n if (point.x > source.x + 3 && point.x < source.x + 72) {\r\n let lineOffset = getLineOffset(source);\r\n if (source.y + 75 + lineOffset > point.y) {\r\n point.y += lineOffset;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function adjustForTextOverlap(element) {\r\n let source = element.source;\r\n let target = element.target;\r\n\r\n let waypoints = element.waypoints;\r\n let startPoint = waypoints[0];\r\n let endPoint = waypoints[waypoints.length - 1];\r\n\r\n if (startPoint && endPoint && source && target) {\r\n checkIfPointOverlapsText(startPoint, source);\r\n checkIfPointOverlapsText(endPoint, source);\r\n }\r\n }\r\n\r\n function getLineOffset(element) {\r\n let id = element.id;\r\n let offset = 0;\r\n\r\n let objects = document.getElementsByClassName(\"djs-element djs-shape\");\r\n for (let i = 0; i < objects.length; i++) {\r\n let data_id = objects.item(i).getAttribute(\"data-element-id\");\r\n if (data_id === id) {\r\n let object = objects.item(i);\r\n let text = object.getElementsByTagName(\"text\")[0];\r\n let tspans = text.getElementsByTagName(\"tspan\");\r\n let tspan = tspans[tspans.length - 1];\r\n offset = tspan.getAttribute(\"y\");\r\n }\r\n }\r\n return offset - 70;\r\n }\r\n\r\n function fixConnectionInHTML(wantedConnection) {\r\n if (wantedConnection) {\r\n let polylines = wantedConnection.getElementsByTagName(\"polyline\");\r\n if (polylines.length > 1) {\r\n polylines[1].setAttribute(\r\n \"points\",\r\n polylines[0].getAttribute(\"points\")\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.drawDSConnection = function (p, element) {\r\n let attrs = \"\";\r\n attrs = computeStyle(attrs, {\r\n stroke: \"#000000\",\r\n strokeWidth: 1.5,\r\n strokeLinejoin: \"round\",\r\n strokeDasharray: \"5, 5\",\r\n });\r\n\r\n return svgAppend(p, createLine(element.waypoints, attrs));\r\n };\r\n\r\n this.drawAnnotation = function (parentGfx, element) {\r\n let style = {\r\n fill: \"none\",\r\n stroke: \"none\",\r\n };\r\n\r\n let text = element.businessObject.text || \"\";\r\n if (element.businessObject.text) {\r\n let height = getAnnotationBoxHeight();\r\n\r\n if (height === 0 && element.businessObject.number) {\r\n height = element.businessObject.number;\r\n }\r\n assign(element, {\r\n height: height,\r\n });\r\n\r\n // for some reason the keyword height is not exported, so we use another, which we know will be exported,\r\n // to ensure persistent annotation heights between sessions\r\n assign(element.businessObject, {\r\n number: height,\r\n });\r\n }\r\n\r\n let textElement = drawRect(\r\n parentGfx,\r\n element.width,\r\n element.height,\r\n 0,\r\n 0,\r\n style\r\n );\r\n let textPathData = pathMap.getScaledPath(\"TEXT_ANNOTATION\", {\r\n xScaleFactor: 1,\r\n yScaleFactor: 1,\r\n containerWidth: element.width,\r\n containerHeight: element.height,\r\n position: {\r\n mx: 0.0,\r\n my: 0.0,\r\n },\r\n });\r\n\r\n drawPath(parentGfx, textPathData, {\r\n stroke: \"black\",\r\n });\r\n\r\n renderLabel(parentGfx, text, {\r\n box: element,\r\n align: \"left-top\",\r\n padding: 5,\r\n style: {\r\n fill: \"black\",\r\n },\r\n });\r\n\r\n return textElement;\r\n };\r\n\r\n // draw helper functions\r\n function drawPath(parentGfx, d, attrs) {\r\n attrs = computeStyle(attrs, [\"no-fill\"], {\r\n strokeWidth: 2,\r\n stroke: \"black\",\r\n });\r\n\r\n let path = svgCreate(\"path\");\r\n svgAttr(path, { d: d });\r\n svgAttr(path, attrs);\r\n\r\n svgAppend(parentGfx, path);\r\n\r\n return path;\r\n }\r\n\r\n function drawRect(parentGfx, width, height, r, offset, attrs) {\r\n if (isObject(offset)) {\r\n attrs = offset;\r\n offset = 0;\r\n }\r\n\r\n offset = offset || 0;\r\n attrs = computeStyle(attrs, {\r\n stroke: \"black\",\r\n strokeWidth: 2,\r\n fill: \"white\",\r\n });\r\n\r\n let rect = svgCreate(\"rect\");\r\n svgAttr(rect, {\r\n x: offset,\r\n y: offset,\r\n width: width - offset * 2,\r\n height: height - offset * 2,\r\n rx: r,\r\n ry: r,\r\n });\r\n\r\n svgAttr(rect, attrs);\r\n svgAppend(parentGfx, rect);\r\n\r\n return rect;\r\n }\r\n\r\n // marker functions\r\n function marker(type, fill, stroke) {\r\n let id = type + \"-\" + fill + \"-\" + stroke + \"-\" + rendererId;\r\n\r\n if (!markers[id]) {\r\n createMarker(type, fill, stroke);\r\n }\r\n return \"url(#\" + id + \")\";\r\n }\r\n\r\n function createMarker(type, fill, stroke) {\r\n let id = type + \"-\" + fill + \"-\" + stroke + \"-\" + rendererId;\r\n\r\n if (type === \"activity\") {\r\n let sequenceflowEnd = svgCreate(\"path\");\r\n svgAttr(sequenceflowEnd, { d: \"M 1 5 L 11 10 L 1 15 Z\" });\r\n\r\n addMarker(id, {\r\n element: sequenceflowEnd,\r\n ref: { x: 11, y: 10 },\r\n scale: 0.5,\r\n attrs: {\r\n fill: stroke,\r\n stroke: stroke,\r\n },\r\n });\r\n }\r\n }\r\n\r\n function addMarker(id, options) {\r\n let attrs = assign(\r\n {\r\n fill: \"black\",\r\n strokeWidth: 1,\r\n strokeLinecap: \"round\",\r\n strokeDasharray: \"none\",\r\n },\r\n options.attrs\r\n );\r\n\r\n let ref = options.ref || { x: 0, y: 0 };\r\n let scale = options.scale || 1;\r\n\r\n // resetting stroke dash array\r\n if (attrs.strokeDasharray === \"none\") {\r\n attrs.strokeDasharray = [10000, 1];\r\n }\r\n\r\n let marker = svgCreate(\"marker\");\r\n\r\n svgAttr(options.element, attrs);\r\n svgAppend(marker, options.element);\r\n svgAttr(marker, {\r\n id: id,\r\n viewBox: \"0 0 20 20\",\r\n refX: ref.x,\r\n refY: ref.y,\r\n markerWidth: 20 * scale,\r\n markerHeight: 20 * scale,\r\n orient: \"auto\",\r\n });\r\n\r\n let defs = domQuery(\"defs\", canvas._svg);\r\n if (!defs) {\r\n defs = svgCreate(\"defs\");\r\n svgAppend(canvas._svg, defs);\r\n }\r\n svgAppend(defs, marker);\r\n markers[id] = marker;\r\n }\r\n\r\n // path functions\r\n this.getWorkObjectPath = function (shape) {\r\n let rectangle = getRectPath(shape);\r\n return componentsToPath(rectangle);\r\n };\r\n\r\n this.getGroupPath = function (shape) {\r\n let rectangle = getRectPath(shape);\r\n return componentsToPath(rectangle);\r\n };\r\n\r\n this.getActivityPath = function (connection) {\r\n let waypoints = connection.waypoints.map(function (p) {\r\n return p.original || p;\r\n });\r\n\r\n let activityPath = [[\"M\", waypoints[0].x, waypoints[0].y]];\r\n\r\n waypoints.forEach(function (waypoint, index) {\r\n if (index !== 0) {\r\n activityPath.push([\"L\", waypoint.x, waypoint.y]);\r\n }\r\n });\r\n return componentsToPath(activityPath);\r\n };\r\n\r\n this.getActorPath = function (shape) {\r\n let rectangle = getRectPath(shape);\r\n return componentsToPath(rectangle);\r\n };\r\n}\r\n\r\ninherits(DomainStoryRenderer, BaseRenderer);\r\n\r\nDomainStoryRenderer.$inject = [\r\n \"eventBus\",\r\n \"styles\",\r\n \"canvas\",\r\n \"textRenderer\",\r\n \"pathMap\",\r\n \"commandStack\",\r\n];\r\n\r\nDomainStoryRenderer.prototype.canRender = function (element) {\r\n return /^domainStory:/.test(element.type);\r\n};\r\n\r\nDomainStoryRenderer.prototype.drawShape = function (p, element) {\r\n // polyfill for tests\r\n if (!String.prototype.startsWith) {\r\n Object.defineProperty(String.prototype, \"startsWith\", {\r\n value: function (search, pos) {\r\n pos = !pos || pos < 0 ? 0 : +pos;\r\n return this.substring(pos, pos + search.length) === search;\r\n },\r\n });\r\n }\r\n\r\n let type = element.type;\r\n element.businessObject.type = type;\r\n\r\n elementRegistry.correctInitialize();\r\n dirtyFlag.makeDirty();\r\n\r\n if (type.includes(elementTypes.ACTOR)) {\r\n return this.drawActor(p, element);\r\n } else if (type.includes(elementTypes.WORKOBJECT)) {\r\n return this.drawWorkObject(p, element);\r\n } else if (type.includes(elementTypes.TEXTANNOTATION)) {\r\n return this.drawAnnotation(p, element);\r\n } else if (type.includes(elementTypes.GROUP)) {\r\n return this.drawGroup(p, element);\r\n }\r\n};\r\n\r\nDomainStoryRenderer.prototype.getShapePath = function (shape) {\r\n let type = shape.type;\r\n\r\n if (type.includes(elementTypes.ACTOR)) {\r\n return this.getActorPath(shape);\r\n } else if (type.includes(elementTypes.WORKOBJECT)) {\r\n return this.getWorkObjectPath(shape);\r\n } else if (type.includes(elementTypes.GROUP)) {\r\n return this.getGroupPath(shape);\r\n }\r\n};\r\n\r\nDomainStoryRenderer.prototype.drawConnection = function (p, element) {\r\n let type = element.type;\r\n\r\n dirtyFlag.makeDirty();\r\n\r\n // fixes activities that were copy-pasted\r\n if (!element.businessObject.type) {\r\n element.businessObject.type = type;\r\n }\r\n if (type === elementTypes.ACTIVITY) {\r\n return this.drawActivity(p, element);\r\n } else if (type === elementTypes.CONNECTION) {\r\n return this.drawDSConnection(p, element);\r\n }\r\n};\r\n\r\n// TODO check if used\r\nDomainStoryRenderer.prototype.getConnectionPath = function (connection) {\r\n let type = connection.type;\r\n\r\n if (type === elementTypes.ACTIVITY || type === elementTypes.CONNECTION) {\r\n return this.getActivityPath(connection);\r\n }\r\n};\r\n\r\n// creates a SVG path that describes a rectangle which encloses the given shape.\r\nfunction getRectPath(shape) {\r\n let offset = 5;\r\n let x = shape.x,\r\n y = shape.y,\r\n width = shape.width / 2 + offset,\r\n height = shape.height / 2 + offset;\r\n\r\n return [\r\n [\"M\", x, y],\r\n [\"l\", width, 0],\r\n [\"l\", width, height],\r\n [\"l\", -width, height],\r\n [\"l\", -width, 0],\r\n [\"z\"],\r\n ];\r\n}\r\n","\"use strict\";\r\n\r\nimport { assign, every, reduce } from \"min-dash\";\r\n\r\nimport inherits from \"inherits\";\r\n\r\nimport RuleProvider from \"diagram-js/lib/features/rules/RuleProvider\";\r\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\r\nimport { is } from \"./util\";\r\n\r\nconst HIGH_PRIORITY = 1500;\r\nconst MIN_SIZE = 125;\r\n\r\nfunction isDomainStory(element) {\r\n return element && /^domainStory:/.test(element.type);\r\n}\r\n\r\nfunction isDomainStoryGroup(element) {\r\n return element && /^domainStory:group/.test(element.type);\r\n}\r\n\r\nfunction isActor(element) {\r\n return element && /^domainStory:actor\\w*/.test(element.type);\r\n}\r\n\r\nfunction isWorkObject(element) {\r\n return element && /^domainStory:workObject/.test(element.type);\r\n}\r\n\r\nfunction isActivity(element) {\r\n return element && /^domainStory:activity/.test(element.type);\r\n}\r\n\r\nfunction isConnection(element) {\r\n return element && /^domainStory:connection/.test(element.type);\r\n}\r\n\r\nfunction isAnnotation(element) {\r\n return element && /^domainStory:textAnnotation/.test(element.type);\r\n}\r\n\r\n/**\r\n * can source and target be connected?\r\n */\r\nfunction canConnect(source, target) {\r\n // only judge about two custom elements\r\n if (\r\n isDomainStoryGroup(target) ||\r\n !isDomainStory(source) ||\r\n !isDomainStory(target)\r\n ) {\r\n return;\r\n }\r\n\r\n // do not allow a connection from one element to itself\r\n if (source === target) {\r\n return;\r\n }\r\n\r\n // do not allow a connection between two actors\r\n if (isActor(source) && isActor(target)) {\r\n return;\r\n }\r\n\r\n // do not allow a connection, where the source or target is an activity\r\n if (isActivity(source) || isActivity(target)) {\r\n return;\r\n }\r\n\r\n // do not allow a connection, where the source or target is an annotation connection\r\n if (isConnection(source) || isConnection(target)) {\r\n return;\r\n }\r\n\r\n // do not allow a connection to a connection(the special type of connection between an element and a comment box)\r\n // when the target is an annotation, the connection type is an annotation connection instead of an activity\r\n if (isAnnotation(target)) {\r\n return { type: elementTypes.CONNECTION };\r\n }\r\n\r\n return { type: elementTypes.ACTIVITY };\r\n}\r\n\r\nfunction canResize(shape, newBounds) {\r\n if (is(shape, elementTypes.GROUP)) {\r\n if (newBounds) {\r\n let lowerLeft = { x: shape.x, y: shape.y + shape.height };\r\n let lowerRight = { x: shape.x + shape.width, y: shape.y + shape.height };\r\n let upperRight = { x: shape.x + shape.width, y: shape.y };\r\n\r\n if (newBounds.x !== shape.x && newBounds.y !== shape.y) {\r\n // upper left\r\n if (newBounds.x > lowerRight.x - MIN_SIZE) {\r\n assign(newBounds, { x: lowerRight.x - MIN_SIZE });\r\n }\r\n if (newBounds.y > lowerRight.y - MIN_SIZE) {\r\n assign(newBounds, { y: lowerRight.y - MIN_SIZE });\r\n }\r\n }\r\n\r\n if (newBounds.x !== shape.x && newBounds.y === shape.y) {\r\n // lower left\r\n if (newBounds.x > upperRight.x - MIN_SIZE) {\r\n assign(newBounds, { x: upperRight.x - MIN_SIZE });\r\n }\r\n }\r\n\r\n if (newBounds.x === shape.x && newBounds.y !== shape.y) {\r\n // upper right\r\n if (newBounds.y > lowerLeft.y - MIN_SIZE) {\r\n assign(newBounds, { y: lowerLeft.y - MIN_SIZE });\r\n }\r\n }\r\n\r\n if (newBounds.height < MIN_SIZE) {\r\n assign(newBounds, {\r\n height: MIN_SIZE,\r\n });\r\n }\r\n if (newBounds.width < MIN_SIZE) {\r\n assign(newBounds, {\r\n width: MIN_SIZE,\r\n });\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction canAttach(elements, target, source) {\r\n if (!Array.isArray(elements)) {\r\n elements = [elements];\r\n }\r\n\r\n // disallow appending as boundary event\r\n if (source) {\r\n return false;\r\n }\r\n\r\n // only (re-)attach one element at a time\r\n if (elements.length !== 1) {\r\n return false;\r\n }\r\n\r\n // allow default move operation\r\n if (!target) {\r\n return true;\r\n }\r\n\r\n // only allow drop on DomainStory Elements\r\n if (!isDomainStory(target)) {\r\n return false;\r\n }\r\n\r\n return \"attach\";\r\n}\r\n\r\nfunction canConnectToAnnotation(source, target, connection) {\r\n // do not allow an activity connect to an annotation\r\n if (isActivity(connection) && isAnnotation(target)) {\r\n return false;\r\n }\r\n\r\n // do not allow an annotation connection between two annotations\r\n if (\r\n isConnection(connection) &&\r\n isAnnotation(source) &&\r\n isAnnotation(target)\r\n ) {\r\n return false;\r\n }\r\n\r\n // do not allow an annotation connection between an actor or workObject and anything except an annotation\r\n return !(\r\n isConnection(connection) &&\r\n !isAnnotation(target) &&\r\n (isActor(source) || isWorkObject(source))\r\n );\r\n}\r\n\r\n/**\r\n * specific rules for custom elements\r\n */\r\nexport default function DomainStoryRules(eventBus) {\r\n RuleProvider.call(this, eventBus);\r\n}\r\n\r\ninherits(DomainStoryRules, RuleProvider);\r\n\r\nDomainStoryRules.$inject = [\"eventBus\"];\r\n\r\nDomainStoryRules.prototype.init = function () {\r\n /**\r\n * can shape be created on target container?\r\n */\r\n function canCreate(shape, target) {\r\n // only judge about custom elements\r\n if (!isDomainStory(shape)) {\r\n return;\r\n }\r\n\r\n // allow creation just on groups\r\n return !isDomainStory(target) || isDomainStoryGroup(target);\r\n }\r\n\r\n this.addRule(\"elements.create\", function (context) {\r\n const elements = context.elements,\r\n position = context.position,\r\n target = context.target;\r\n\r\n return every(elements, function (element) {\r\n if (isConnection(element)) {\r\n return canConnect(element.source, element.target, element);\r\n }\r\n\r\n if (element.host) {\r\n return canAttach(element, element.host, null, position);\r\n }\r\n\r\n return canCreate(element, target, null, position);\r\n });\r\n });\r\n\r\n this.addRule(\"elements.move\", HIGH_PRIORITY, function (context) {\r\n let target = context.target,\r\n shapes = context.shapes;\r\n\r\n let type;\r\n\r\n // do not allow mixed movements of custom / BPMN shapes\r\n // if any shape cannot be moved, the group cannot be moved, too\r\n\r\n // reject, if we have at least one\r\n // custom element that cannot be moved\r\n return reduce(\r\n shapes,\r\n function (result, s) {\r\n if (type === undefined) {\r\n type = isDomainStory(s);\r\n }\r\n\r\n if (type !== isDomainStory(s) || result === false) {\r\n return false;\r\n }\r\n\r\n return canCreate(s, target);\r\n },\r\n undefined\r\n );\r\n });\r\n\r\n this.addRule(\"shape.create\", HIGH_PRIORITY, function (context) {\r\n let target = context.target,\r\n shape = context.shape;\r\n\r\n return canCreate(shape, target);\r\n });\r\n\r\n this.addRule(\"connection.create\", HIGH_PRIORITY, function (context) {\r\n let source = context.source,\r\n target = context.target;\r\n\r\n return canConnect(source, target);\r\n });\r\n\r\n this.addRule(\"connection.reconnect\", HIGH_PRIORITY, function (context) {\r\n let connection = context.connection,\r\n source = context.hover || context.source,\r\n target = context.target;\r\n\r\n // --------------------------------------------------------------\r\n let result = canConnectToAnnotation(source, target, connection);\r\n\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // --------------------------------------------------------------\r\n\r\n return canConnect(source, target, connection);\r\n });\r\n\r\n this.addRule(\"shape.resize\", function (context) {\r\n let shape = context.shape,\r\n newBounds = context.newBounds;\r\n\r\n return canResize(shape, newBounds);\r\n });\r\n};\r\n\r\nDomainStoryRules.prototype.canConnect = canConnect;\r\nDomainStoryRules.prototype.canAttach = canAttach;\r\nDomainStoryRules.prototype.isDomainStory = isDomainStory;\r\nDomainStoryRules.prototype.canResize = canResize;\r\n","\"use strict\";\r\n\r\nimport inherits from \"inherits\";\r\n\r\nimport { pick, assign } from \"min-dash\";\r\n\r\nimport CommandInterceptor from \"diagram-js/lib/command/CommandInterceptor\";\r\n\r\nimport {\r\n add as collectionAdd,\r\n remove as collectionRemove,\r\n} from \"diagram-js/lib/util/Collections\";\r\n\r\nimport { reworkGroupElements } from \"./util\";\r\nimport { elementTypes } from \"../../Domain/Common/elementTypes\";\r\n\r\n/**\r\n * a handler responsible for updating the custom element's businessObject\r\n * once changes on the diagram happen.\r\n */\r\nexport default function DomainStoryUpdater(eventBus, bpmnjs) {\r\n CommandInterceptor.call(this, eventBus);\r\n\r\n function updateCustomElement(e) {\r\n let context = e.context,\r\n shape = context.shape,\r\n businessObject = shape.businessObject;\r\n\r\n if (!shape || !shape.type.includes(elementTypes.DOMAINSTORY)) {\r\n return;\r\n }\r\n\r\n let parent = shape.parent;\r\n let customElements = bpmnjs._customElements;\r\n\r\n // make sure element is added / removed from bpmnjs.customElements\r\n if (!parent) {\r\n collectionRemove(customElements, businessObject);\r\n } else {\r\n collectionAdd(customElements, businessObject);\r\n }\r\n\r\n // save custom element position\r\n assign(businessObject, pick(shape, [\"x\", \"y\"]));\r\n\r\n // save custom element size if resizable\r\n if (shape.type === elementTypes.GROUP) {\r\n assign(businessObject, pick(shape, [\"height\", \"width\"]));\r\n\r\n // rework the child-parent relations if a group was moved, such that all Objects that are visually in the group are also associated with it\r\n // since we do not have access to the standard-canvas object here, we cannot use the function correctGroupChildren() from DSLabelUtil\r\n if (parent != null) {\r\n reworkGroupElements(parent, shape);\r\n }\r\n }\r\n if (\r\n shape &&\r\n shape.parent &&\r\n \"type\" in shape.parent &&\r\n shape.parent.type === elementTypes.GROUP\r\n ) {\r\n assign(businessObject, {\r\n parent: shape.parent.id,\r\n });\r\n }\r\n }\r\n\r\n function updateCustomConnection(e) {\r\n let context = e.context,\r\n connection = context.connection,\r\n source = connection.source,\r\n target = connection.target,\r\n businessObject = connection.businessObject;\r\n\r\n if (e.newTarget) {\r\n target = e.newTarget;\r\n }\r\n if (e.newSource) {\r\n source = e.newSource;\r\n }\r\n\r\n let parent = connection.parent;\r\n let customElements = bpmnjs._customElements;\r\n\r\n // make sure element is added / removed from bpmnjs.customElements\r\n if (!parent) {\r\n collectionRemove(customElements, businessObject);\r\n } else {\r\n collectionAdd(customElements, businessObject);\r\n }\r\n\r\n // update waypoints\r\n assign(businessObject, {\r\n waypoints: copyWaypoints(connection),\r\n });\r\n\r\n if (source) {\r\n if (!businessObject.source) {\r\n assign(businessObject, { source: source.id });\r\n } else {\r\n businessObject.source = source.id;\r\n }\r\n }\r\n if (target) {\r\n if (!businessObject.target) {\r\n assign(businessObject, { target: target.id });\r\n } else {\r\n businessObject.target = target.id;\r\n }\r\n }\r\n }\r\n\r\n function copyWaypoints(connection) {\r\n return connection.waypoints.map(function (p) {\r\n if (p.original) {\r\n return {\r\n original: {\r\n x: p.original.x,\r\n y: p.original.y,\r\n },\r\n x: p.x,\r\n y: p.y,\r\n };\r\n } else {\r\n return {\r\n x: p.x,\r\n y: p.y,\r\n };\r\n }\r\n });\r\n }\r\n\r\n this.executed(\r\n [\r\n \"shape.create\",\r\n \"shape.move\",\r\n \"shape.delete\",\r\n \"shape.resize\",\r\n \"shape.removeGroupWithChildren\",\r\n ],\r\n ifDomainStoryElement(updateCustomElement)\r\n );\r\n\r\n this.reverted(\r\n [\r\n \"shape.create\",\r\n \"shape.move\",\r\n \"shape.delete\",\r\n \"shape.resize\",\r\n \"shape.removeGroupWithChildren\",\r\n ],\r\n ifDomainStoryElement(updateCustomElement)\r\n );\r\n\r\n this.executed(\r\n [\r\n \"connection.create\",\r\n \"connection.reconnect\",\r\n \"connection.updateWaypoints\",\r\n \"connection.delete\",\r\n \"connection.layout\",\r\n \"connection.move\",\r\n ],\r\n ifDomainStoryElement(updateCustomConnection)\r\n );\r\n\r\n this.reverted(\r\n [\r\n \"connection.create\",\r\n \"connection.reconnect\",\r\n \"connection.updateWaypoints\",\r\n \"connection.delete\",\r\n \"connection.layout\",\r\n \"connection.move\",\r\n ],\r\n ifDomainStoryElement(updateCustomConnection)\r\n );\r\n}\r\n\r\n// check if element in the context of an event is a domainStory element\r\nfunction ifDomainStoryElement(fn) {\r\n return (event) => {\r\n const context = event.context;\r\n const element = context.shape || context.connection;\r\n\r\n if (isDomainStory(element)) {\r\n fn(event);\r\n }\r\n };\r\n}\r\n\r\nfunction isDomainStory(element) {\r\n return element && /domainStory:/.test(element.type);\r\n}\r\n\r\ninherits(DomainStoryUpdater, CommandInterceptor);\r\n\r\nDomainStoryUpdater.$inject = [\"eventBus\", \"bpmnjs\"];\r\n","\"use strict\";\r\n\r\nimport DomainStoryElementFactory from \"./domainStoryElementFactory\";\r\nimport DomainStoryRenderer from \"./domainStoryRenderer\";\r\nimport DomainStoryPalette from \"./palette/domainStoryPalette\";\r\nimport DomainStoryRules from \"./domainStoryRules\";\r\nimport DomainStoryUpdater from \"./domainStoryUpdater\";\r\nimport ElementFactory from \"bpmn-js/lib/features/modeling/ElementFactory\";\r\nimport CreateModule from \"diagram-js/lib/features/create\";\r\nimport PathMap from \"bpmn-js/lib/draw/PathMap\";\r\nimport PopupMenuModule from \"bpmn-js/lib/features/popup-menu\";\r\nimport ContextPadModule from \"diagram-js/lib/features/context-pad\";\r\nimport CommandStack from \"diagram-js/lib/command/CommandStack\";\r\nimport UpdateLabelHandler from \"./updateHandler/updateLabelHandler\";\r\nimport headlineAndDescriptionUpdateHandler from \"./updateHandler/headlineAndDescriptionUpdateHandler\";\r\nimport DomainStoryContextPadProvider from \"./context-pad/domainStoryContextPadProvider\";\r\nimport ReplaceMenuProvider from \"./change-icon/replaceMenuProvider\";\r\nimport DSModeling from \"./modeling/dSModeling\";\r\n\r\nexport default {\r\n __depends__: [CreateModule, ContextPadModule, PopupMenuModule],\r\n __init__: [\r\n \"domainStoryRenderer\",\r\n \"paletteProvider\",\r\n \"domainStoryRules\",\r\n \"domainStoryUpdater\",\r\n \"contextPadProvider\",\r\n \"replaceMenuProvider\",\r\n ],\r\n elementFactory: [\"type\", DomainStoryElementFactory],\r\n domainStoryRenderer: [\"type\", DomainStoryRenderer],\r\n paletteProvider: [\"type\", DomainStoryPalette],\r\n domainStoryRules: [\"type\", DomainStoryRules],\r\n domainStoryUpdater: [\"type\", DomainStoryUpdater],\r\n contextPadProvider: [\"type\", DomainStoryContextPadProvider],\r\n elementFactoryBpmn: [\"type\", ElementFactory],\r\n pathMap: [\"type\", PathMap],\r\n replaceMenuProvider: [\"type\", ReplaceMenuProvider],\r\n commandStack: [\"type\", CommandStack],\r\n updateLabelHandler: [\"type\", UpdateLabelHandler],\r\n headlineAndDescriptionUpdateHandler: [\r\n \"type\",\r\n headlineAndDescriptionUpdateHandler,\r\n ],\r\n modeling: [\"type\", DSModeling],\r\n};\r\n","\"use strict\";\r\n\r\nimport {\r\n append as svgAppend,\r\n attr as svgAttr,\r\n create as svgCreate,\r\n remove as svgRemove,\r\n} from \"tiny-svg\";\r\n\r\nimport { translate } from \"diagram-js/lib/util/SvgTransformUtil\";\r\nimport { elementTypes } from \"../../../Domain/Common/elementTypes\";\r\nimport { is } from \"../util\";\r\n\r\nconst MARKER_HIDDEN = \"djs-element-hidden\",\r\n MARKER_LABEL_HIDDEN = \"djs-label-hidden\";\r\n\r\nlet annotationBoxHeight = 0;\r\n\r\nexport function getAnnotationBoxHeight() {\r\n return annotationBoxHeight;\r\n}\r\n\r\nexport default function DSLabelEditingPreview(eventBus, canvas, pathMap) {\r\n let self = this;\r\n\r\n let defaultLayer = canvas.getDefaultLayer();\r\n let element, absoluteElementBBox, gfx;\r\n\r\n eventBus.on(\"directEditing.activate\", function (context) {\r\n let activeProvider = context.active;\r\n\r\n element = activeProvider.element.label || activeProvider.element;\r\n\r\n // text annotation\r\n if (is(element, elementTypes.TEXTANNOTATION)) {\r\n absoluteElementBBox = canvas.getAbsoluteBBox(element);\r\n\r\n gfx = svgCreate(\"g\");\r\n\r\n annotationBoxHeight = element.height;\r\n\r\n let textPathData = pathMap.getScaledPath(\"TEXT_ANNOTATION\", {\r\n xScaleFactor: 1,\r\n yScaleFactor: 1,\r\n containerWidth: element.width,\r\n containerHeight: element.height,\r\n position: {\r\n mx: 0.0,\r\n my: 0.0,\r\n },\r\n });\r\n\r\n let path = (self.path = svgCreate(\"path\"));\r\n\r\n svgAttr(path, {\r\n d: textPathData,\r\n strokeWidth: 2,\r\n stroke: getStrokeColor(element),\r\n });\r\n\r\n svgAppend(gfx, path);\r\n\r\n svgAppend(defaultLayer, gfx);\r\n\r\n translate(gfx, element.x, element.y);\r\n }\r\n\r\n if (is(element, elementTypes.TEXTANNOTATION) || element.labelTarget) {\r\n canvas.addMarker(element, MARKER_HIDDEN);\r\n } else if (\r\n element.type.includes(elementTypes.ACTOR) ||\r\n element.type.includes(elementTypes.WORKOBJECT) ||\r\n element.type.includes(elementTypes.ACTIVITY) ||\r\n element.type.includes(elementTypes.GROUP)\r\n ) {\r\n canvas.addMarker(element, MARKER_LABEL_HIDDEN);\r\n }\r\n });\r\n\r\n eventBus.on(\"directEditing.resize\", function (context) {\r\n // text annotation\r\n if (is(element, elementTypes.TEXTANNOTATION)) {\r\n let height = context.height,\r\n dy = context.dy;\r\n\r\n let newElementHeight = Math.max(\r\n (element.height / absoluteElementBBox.height) * (height + dy),\r\n 0\r\n );\r\n annotationBoxHeight = newElementHeight;\r\n\r\n let textPathData = pathMap.getScaledPath(\"TEXT_ANNOTATION\", {\r\n xScaleFactor: 1,\r\n yScaleFactor: 1,\r\n containerWidth: element.width,\r\n containerHeight: newElementHeight,\r\n position: {\r\n mx: 0.0,\r\n my: 0.0,\r\n },\r\n });\r\n\r\n svgAttr(self.path, {\r\n d: textPathData,\r\n });\r\n }\r\n });\r\n\r\n eventBus.on(\r\n [\"directEditing.complete\", \"directEditing.cancel\"],\r\n function (context) {\r\n let activeProvider = context.active;\r\n\r\n if (activeProvider) {\r\n canvas.removeMarker(\r\n activeProvider.element.label || activeProvider.element,\r\n MARKER_HIDDEN\r\n );\r\n canvas.removeMarker(element, MARKER_LABEL_HIDDEN);\r\n }\r\n\r\n element = undefined;\r\n absoluteElementBBox = undefined;\r\n\r\n if (gfx) {\r\n svgRemove(gfx);\r\n\r\n gfx = undefined;\r\n }\r\n }\r\n );\r\n}\r\n\r\nDSLabelEditingPreview.$inject = [\"eventBus\", \"canvas\", \"pathMap\"];\r\n\r\n// helpers ///////////////////\r\n\r\nfunction getStrokeColor() {\r\n return \"black\";\r\n}\r\n","\"use strict\";\r\n\r\nimport { assign } from \"min-dash\";\r\n\r\nimport { getLabel, autocomplete } from \"./dsLabelUtil\";\r\n\r\nimport { isAny } from \"bpmn-js/lib/features/modeling/util/ModelingUtil\";\r\n\r\nimport {\r\n getExternalLabelMid,\r\n isLabelExternal,\r\n hasExternalLabel,\r\n isLabel,\r\n} from \"bpmn-js/lib/util/LabelUtil\";\r\n\r\nimport { elementTypes } from \"../../../Domain/Common/elementTypes\";\r\nimport { is } from \"../util\";\r\n\r\nlet dictionaryService;\r\n\r\nlet numberStash = 0;\r\nlet stashUse = false;\r\n\r\nexport function initializeLabelEditingProvider(labelingDictionary) {\r\n dictionaryService = labelingDictionary;\r\n}\r\n\r\nexport function getNumberStash() {\r\n let number = { use: stashUse, number: numberStash };\r\n stashUse = false;\r\n return number;\r\n}\r\n\r\nexport function toggleStashUse(use) {\r\n stashUse = use;\r\n}\r\n\r\nexport default function DSLabelEditingProvider(\r\n eventBus,\r\n canvas,\r\n directEditing,\r\n modeling,\r\n resizeHandles,\r\n textRenderer,\r\n updateLabelHandler\r\n) {\r\n this._canvas = canvas;\r\n this._modeling = modeling;\r\n this._textRenderer = textRenderer;\r\n this._updateLabelHandler = updateLabelHandler;\r\n\r\n directEditing.registerProvider(this);\r\n\r\n // listen to dblclick on non-root elements\r\n eventBus.on(\"element.dblclick\", function (event) {\r\n activateDirectEdit(event.element, true);\r\n if (is(event.element, elementTypes.ACTIVITY)) {\r\n // if we edit an activity, we do not want the standard editing box\r\n numberStash = event.element.businessObject.number;\r\n stashUse = true;\r\n directEditing.complete();\r\n }\r\n });\r\n\r\n // complete on followup canvas operation\r\n eventBus.on(\r\n [\r\n \"element.mousedown\",\r\n \"drag.init\",\r\n \"canvas.viewbox.changing\",\r\n \"autoPlace\",\r\n \"popupMenu.open\",\r\n ],\r\n function () {\r\n if (directEditing.isActive()) {\r\n directEditing.complete();\r\n }\r\n }\r\n );\r\n\r\n // cancel on command stack changes\r\n eventBus.on([\"commandStack.changed\"], function () {\r\n if (directEditing.isActive()) {\r\n directEditing.cancel();\r\n }\r\n });\r\n\r\n eventBus.on(\"directEditing.activate\", function (event) {\r\n resizeHandles.removeResizers();\r\n let element = event.active.element;\r\n createAutocomplete(element);\r\n });\r\n\r\n eventBus.on(\"create.end\", 500, function (event) {\r\n let element = event.shape,\r\n canExecute = event.context.canExecute,\r\n isTouch = event.isTouch;\r\n\r\n if (isTouch) {\r\n return;\r\n }\r\n\r\n if (!canExecute) {\r\n return;\r\n }\r\n if (!is(element, elementTypes.ACTIVITY)) {\r\n activateDirectEdit(element);\r\n }\r\n });\r\n\r\n eventBus.on(\"autoPlace.end\", 500, function (event) {\r\n activateDirectEdit(event.shape);\r\n });\r\n\r\n function activateDirectEdit(element, force) {\r\n if (\r\n force ||\r\n isAny(element, [elementTypes.TEXTANNOTATION]) ||\r\n element.businessObject.type.includes(elementTypes.DOMAINSTORY)\r\n ) {\r\n directEditing.activate(element);\r\n }\r\n }\r\n\r\n function createAutocomplete(element) {\r\n let editingBox = document.getElementsByClassName(\r\n \"djs-direct-editing-content\"\r\n );\r\n editingBox[0].focus();\r\n autocomplete(\r\n editingBox[0],\r\n dictionaryService.getWorkObjectLabels(),\r\n element\r\n );\r\n }\r\n}\r\n\r\nDSLabelEditingProvider.$inject = [\r\n \"eventBus\",\r\n \"canvas\",\r\n \"directEditing\",\r\n \"modeling\",\r\n \"resizeHandles\",\r\n \"textRenderer\",\r\n \"updateLabelHandler\",\r\n];\r\n\r\n/**\r\n * activate direct editing for activities and text annotations.\r\n *\r\n * @param {djs.model.Base} element\r\n *\r\n * @return {Object} an object with properties bounds (position and size), text and options\r\n */\r\nDSLabelEditingProvider.prototype.activate = function (element) {\r\n // text\r\n if (element.id === \"__implicitrootbase\") {\r\n return;\r\n }\r\n let text = getLabel(element);\r\n\r\n if (text === undefined) {\r\n return;\r\n }\r\n\r\n let context = {\r\n text: text,\r\n };\r\n\r\n // bounds\r\n let bounds = this.getEditingBBox(element);\r\n\r\n assign(context, bounds);\r\n\r\n let options = {};\r\n\r\n // external labels\r\n if (isLabelExternal(element)) {\r\n assign(options, {\r\n autoResize: true,\r\n });\r\n }\r\n\r\n // text annotations\r\n if (is(element, elementTypes.TEXTANNOTATION)) {\r\n assign(options, {\r\n resizable: true,\r\n autoResize: true,\r\n });\r\n }\r\n\r\n assign(context, {\r\n options: options,\r\n });\r\n\r\n return context;\r\n};\r\n\r\n/**\r\n * get the editing bounding box based on the element's size and position\r\n *\r\n * @param {djs.model.Base} element\r\n *\r\n * @return {Object} an object containing information about position\r\n * and size (fixed or minimum and/or maximum)\r\n */\r\nDSLabelEditingProvider.prototype.getEditingBBox = function (element) {\r\n let canvas = this._canvas;\r\n\r\n let target = element.label || element;\r\n\r\n let bbox = canvas.getAbsoluteBBox(target);\r\n\r\n let mid = {\r\n x: bbox.x + bbox.width / 2,\r\n y: bbox.y + bbox.height / 2,\r\n };\r\n\r\n // default position\r\n let bounds = { x: bbox.x, y: bbox.y };\r\n\r\n /** The cavnas is an Object from BPMN, the IDE might say, that zoom is deprecated,\r\n * because it thinks canvas is the standard HTMLElement. -> Needs to stay toom **/\r\n let zoom = canvas.zoom();\r\n let defaultStyle = this._textRenderer.getDefaultStyle(),\r\n externalStyle = this._textRenderer.getExternalStyle();\r\n\r\n // take zoom into account\r\n let externalFontSize = externalStyle.fontSize * zoom,\r\n externalLineHeight = externalStyle.lineHeight,\r\n defaultFontSize = defaultStyle.fontSize * zoom,\r\n defaultLineHeight = defaultStyle.lineHeight;\r\n\r\n let style = {\r\n fontFamily: this._textRenderer.getDefaultStyle().fontFamily,\r\n fontWeight: this._textRenderer.getDefaultStyle().fontWeight,\r\n };\r\n\r\n // adjust for groups\r\n if (is(element, elementTypes.GROUP)) {\r\n assign(bounds, {\r\n minWidth: bbox.width / 2.5 > 125 ? bbox.width / 2.5 : 125,\r\n maxWidth: bbox.width,\r\n minHeight: 30 * zoom,\r\n x: bbox.x,\r\n y: bbox.y,\r\n });\r\n\r\n assign(style, {\r\n fontSize: defaultFontSize + \"px\",\r\n lineHeight: defaultLineHeight,\r\n paddingTop: 7 * zoom + \"px\",\r\n paddingBottom: 7 * zoom + \"px\",\r\n paddingLeft: 5 * zoom + \"px\",\r\n paddingRight: 5 * zoom + \"px\",\r\n textAlign: \"left\",\r\n });\r\n }\r\n\r\n // internal labels for tasks and collapsed call activities,\r\n // sub processes and participants\r\n if (\r\n /^domainStory:actor\\w*/.test(element.type) ||\r\n /^domainStory:workObject\\w*/.test(element.type)\r\n ) {\r\n assign(bounds, {\r\n width: bbox.width,\r\n minHeight: 30,\r\n y: bbox.y + bbox.height - 20,\r\n x: bbox.x,\r\n });\r\n\r\n assign(style, {\r\n fontSize: defaultFontSize + \"px\",\r\n lineHeight: defaultLineHeight,\r\n paddingTop: 7 * zoom + \"px\",\r\n paddingBottom: 7 * zoom + \"px\",\r\n paddingLeft: 5 * zoom + \"px\",\r\n paddingRight: 5 * zoom + \"px\",\r\n });\r\n }\r\n\r\n let width = 90 * zoom,\r\n paddingTop = 7 * zoom,\r\n paddingBottom = 4 * zoom;\r\n\r\n // external labels for events, data elements, gateways and connections\r\n if (target.labelTarget) {\r\n assign(bounds, {\r\n width: width,\r\n height: bbox.height + paddingTop + paddingBottom,\r\n x: mid.x - width / 2,\r\n y: bbox.y - paddingTop,\r\n });\r\n\r\n assign(style, {\r\n fontSize: externalFontSize + \"px\",\r\n lineHeight: externalLineHeight,\r\n paddingTop: paddingTop + \"px\",\r\n paddingBottom: paddingBottom + \"px\",\r\n });\r\n }\r\n\r\n // external label not yet created\r\n if (\r\n isLabelExternal(target) &&\r\n !hasExternalLabel(target) &&\r\n !isLabel(target)\r\n ) {\r\n let externalLabelMid = getExternalLabelMid(element);\r\n\r\n let absoluteBBox = canvas.getAbsoluteBBox({\r\n x: externalLabelMid.x,\r\n y: externalLabelMid.y,\r\n width: 0,\r\n height: 0,\r\n });\r\n\r\n let height = externalFontSize + paddingTop + paddingBottom;\r\n\r\n assign(bounds, {\r\n width: width,\r\n height: height,\r\n x: absoluteBBox.x - width / 2,\r\n y: absoluteBBox.y - height / 2,\r\n });\r\n\r\n assign(style, {\r\n fontSize: externalFontSize + \"px\",\r\n lineHeight: externalLineHeight,\r\n paddingTop: paddingTop + \"px\",\r\n paddingBottom: paddingBottom + \"px\",\r\n });\r\n }\r\n\r\n // text annotations\r\n if (is(element, elementTypes.TEXTANNOTATION)) {\r\n assign(bounds, {\r\n width: bbox.width,\r\n height: bbox.height,\r\n minWidth: 30 * zoom,\r\n minHeight: 10 * zoom,\r\n });\r\n\r\n assign(style, {\r\n textAlign: \"left\",\r\n paddingTop: 7 * zoom + \"px\",\r\n paddingBottom: 7 * zoom + \"px\",\r\n paddingLeft: 5 * zoom + \"px\",\r\n paddingRight: 5 * zoom + \"px\",\r\n fontSize: defaultFontSize + \"px\",\r\n lineHeight: defaultLineHeight,\r\n });\r\n }\r\n\r\n return { bounds: bounds, style: style };\r\n};\r\n\r\nDSLabelEditingProvider.prototype.update = function (\r\n element,\r\n newLabel,\r\n activeContextText,\r\n bounds\r\n) {\r\n let newBounds, bbox;\r\n\r\n if (is(element, elementTypes.TEXTANNOTATION)) {\r\n bbox = this._canvas.getAbsoluteBBox(element);\r\n\r\n newBounds = {\r\n x: element.x,\r\n y: element.y,\r\n width: (element.width / bbox.width) * bounds.width,\r\n height: (element.height / bbox.height) * bounds.height,\r\n };\r\n }\r\n\r\n this._modeling.updateLabel(element, newLabel, newBounds);\r\n};\r\n","\"use strict\";\r\n\r\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\r\nimport { is } from \"../util\";\r\n\r\nfunction getLabelAttr(semantic) {\r\n if (\r\n semantic.type.includes(elementTypes.ACTOR) ||\r\n semantic.type.includes(elementTypes.WORKOBJECT) ||\r\n semantic.type.includes(elementTypes.ACTIVITY) ||\r\n semantic.type.includes(elementTypes.GROUP)\r\n ) {\r\n return \"name\";\r\n }\r\n\r\n if (is(semantic, elementTypes.TEXTANNOTATION)) {\r\n return \"text\";\r\n }\r\n}\r\n\r\nfunction getNumberAttr(semantic) {\r\n if (is(semantic, elementTypes.ACTIVITY)) {\r\n return \"number\";\r\n }\r\n}\r\n\r\nexport function getLabel(element) {\r\n let semantic;\r\n if (element.businessObject) {\r\n semantic = element.businessObject;\r\n } else {\r\n semantic = element;\r\n }\r\n let attr = getLabelAttr(semantic);\r\n if (attr && semantic) {\r\n return semantic[attr] || \"\";\r\n }\r\n}\r\n\r\nexport function getNumber(element) {\r\n let semantic = element.businessObject,\r\n attr = getNumberAttr(semantic);\r\n\r\n if (attr) {\r\n return semantic[attr] || \"\";\r\n }\r\n}\r\n\r\nexport function setLabel(element, text) {\r\n let semantic;\r\n if (element.businessObject) {\r\n semantic = element.businessObject;\r\n } else {\r\n semantic = element;\r\n }\r\n let attr = getLabelAttr(semantic);\r\n\r\n if (attr) {\r\n semantic[attr] = text;\r\n }\r\n\r\n return element;\r\n}\r\n\r\nexport function setNumber(element, textNumber) {\r\n let semantic = element.businessObject,\r\n attr = getNumberAttr(semantic);\r\n\r\n if (attr) {\r\n semantic[attr] = textNumber;\r\n }\r\n\r\n return element;\r\n}\r\n\r\n// select at which part of the activity the label should be attached to\r\nexport function selectPartOfActivity(waypoints, angleActivity) {\r\n let selectedActivity = 0;\r\n let linelength = 49;\r\n\r\n for (let i = 0; i < waypoints.length; i++) {\r\n if (angleActivity[i] === 0 || angleActivity[i] === 180) {\r\n let length = Math.abs(waypoints[i].x - waypoints[i + 1].x);\r\n if (length > linelength) {\r\n selectedActivity = i;\r\n }\r\n }\r\n }\r\n return selectedActivity;\r\n}\r\n\r\n// approximate the width of the label text, standard fontsize: 11\r\nexport function calculateTextWidth(text) {\r\n if (!text) {\r\n return 0;\r\n }\r\n\r\n let fontsize = text.length * 5.1;\r\n fontsize = fontsize / 2;\r\n\r\n // add an initial offset to the absolute middle of the activity\r\n fontsize += 20;\r\n return fontsize;\r\n}\r\n\r\n/**\r\n * copied from https://www.w3schools.com/howto/howto_js_autocomplete.asp on 18.09.2018\r\n */\r\nexport function autocomplete(inp, arr, element) {\r\n closeAllLists();\r\n\r\n /* the autocomplete function takes three arguments,\r\n the text field element and an array of possible autocompleted values and an optional element to which it is appended:*/\r\n let currentFocus;\r\n\r\n /* execute a function when someone writes in the text field:*/\r\n inp.addEventListener(\"input\", function () {\r\n /* the direct editing field of actors and workobjects is a recycled html-element and has old values that need to be overridden*/\r\n if (element.type.includes(elementTypes.WORKOBJECT)) {\r\n this.value = this.innerHTML;\r\n }\r\n let autocompleteList,\r\n autocompleteItem,\r\n val = this.value;\r\n\r\n /* close any already open lists of autocompleted values*/\r\n closeAllLists();\r\n currentFocus = -1;\r\n\r\n /* create a DIV element that will contain the items (values):*/\r\n autocompleteList = document.createElement(\"DIV\");\r\n autocompleteList.setAttribute(\"id\", \"autocomplete-list\");\r\n autocompleteList.setAttribute(\"class\", \"autocomplete-items\");\r\n\r\n /* append the DIV element as a child of the autocomplete container:*/\r\n this.parentNode.appendChild(autocompleteList);\r\n\r\n /* for each item in the array...*/\r\n for (const name of arr) {\r\n /* check if the item starts with the same letters as the text field value:*/\r\n if (val) {\r\n if (name.substr(0, val.length).toUpperCase() == val.toUpperCase()) {\r\n /* create a DIV element for each matching element:*/\r\n autocompleteItem = document.createElement(\"DIV\");\r\n\r\n /* make the matching letters bold:*/\r\n autocompleteItem.innerHTML =\r\n \"\" +\r\n name.substr(0, val.length) +\r\n \"\" +\r\n name.substr(val.length);\r\n\r\n /* insert an input field that will hold the current name:*/\r\n autocompleteItem.innerHTML +=\r\n \"\";\r\n\r\n /* execute a function when someone clicks on the item (DIV element):*/\r\n autocompleteItem.onclick = function () {\r\n /* insert the value for the autocomplete text field:*/\r\n inp.value = this.getElementsByTagName(\"input\")[0].value;\r\n inp.innerHTML = this.getElementsByTagName(\"input\")[0].value;\r\n\r\n /* close the list of autocompleted values,\r\n (or any other open lists of autocompleted values:*/\r\n closeAllLists();\r\n };\r\n autocompleteList.appendChild(autocompleteItem);\r\n }\r\n }\r\n }\r\n\r\n // if we edit an actor, we do not want auto-complete, since actors generally are unique\r\n if (element.type.includes(elementTypes.ACTOR)) {\r\n autocompleteList.style.visibility = \"hidden\";\r\n }\r\n });\r\n\r\n /* execute a function presses a key on the keyboard:*/\r\n inp.onkeydown = function (e) {\r\n let autocompleteList = document.getElementById(\"autocomplete-list\");\r\n if (autocompleteList) {\r\n autocompleteList = autocompleteList.getElementsByTagName(\"div\");\r\n }\r\n if (e.keyCode === 40) {\r\n /* If the arrow DOWN key is pressed,\r\n increase the currentFocus letiable:*/\r\n currentFocus++;\r\n\r\n /* and and make the current item more visible:*/\r\n addActive(autocompleteList);\r\n } else if (e.keyCode === 38) {\r\n // up\r\n /* If the arrow UP key is pressed,\r\n decrease the currentFocus letiable:*/\r\n currentFocus--;\r\n\r\n /* and and make the current item more visible:*/\r\n addActive(autocompleteList);\r\n } else if (e.keyCode === 13) {\r\n /* If the ENTER key is pressed, prevent the form from being submitted,*/\r\n e.preventDefault();\r\n if (currentFocus > -1) {\r\n /* and simulate a click on the \"active\" item:*/\r\n if (autocompleteList && autocompleteList[currentFocus]) {\r\n autocompleteList[currentFocus].click();\r\n }\r\n }\r\n }\r\n };\r\n\r\n function addActive(autocompleteList) {\r\n /* a function to classify an item as \"active\":*/\r\n if (!autocompleteList || autocompleteList.length < 1) return false;\r\n\r\n /* start by removing the \"active\" class on all items:*/\r\n removeActive(autocompleteList);\r\n if (currentFocus >= autocompleteList.length) currentFocus = 0;\r\n if (currentFocus < 0) currentFocus = autocompleteList.length - 1;\r\n\r\n /* add class \"autocomplete-active\":*/\r\n autocompleteList[currentFocus].classList.add(\"autocomplete-active\");\r\n }\r\n\r\n function removeActive(autocompleteList) {\r\n /* a function to remove the \"active\" class from all autocomplete items:*/\r\n if (autocompleteList.length > 1) {\r\n for (const item of autocompleteList) {\r\n item.classList.remove(\"autocomplete-active\");\r\n }\r\n }\r\n }\r\n\r\n function closeAllLists(survivor) {\r\n /* close all autocomplete lists in the document,\r\n except the one passed as an argument:*/\r\n let autocompleteList =\r\n document.getElementsByClassName(\"autocomplete-items\");\r\n for (const item of autocompleteList) {\r\n if (survivor != item && survivor != inp) {\r\n item.parentNode.removeChild(item);\r\n }\r\n }\r\n }\r\n\r\n /* execute a function when someone clicks in the document:*/\r\n document.addEventListener(\"click\", function (e) {\r\n closeAllLists(e.target);\r\n });\r\n}\r\n","\"use strict\";\r\n\r\nimport ChangeSupportModule from \"diagram-js/lib/features/change-support\";\r\nimport ResizeModule from \"diagram-js/lib/features/resize\";\r\nimport DirectEditingModule from \"diagram-js-direct-editing\";\r\n\r\nimport CommandStack from \"diagram-js/lib/command/CommandStack\";\r\nimport UpdateLabelHandler from \"../updateHandler/updateLabelHandler\";\r\nimport DSLabelEditingPreview from \"./dsLabelEditingPreview\";\r\nimport DSLabelEditingProvider from \"./dsLabelEditingProvider\";\r\nimport DSModeling from \"../modeling/dSModeling\";\r\n\r\nexport default {\r\n __depends__: [ChangeSupportModule, ResizeModule, DirectEditingModule],\r\n __init__: [\"dSlabelEditingProvider\", \"dSlabelEditingPreview\"],\r\n dSlabelEditingProvider: [\"type\", DSLabelEditingProvider],\r\n dSlabelEditingPreview: [\"type\", DSLabelEditingPreview],\r\n updateLabelHandler: [\"type\", UpdateLabelHandler],\r\n commandStack: [\"type\", CommandStack],\r\n modeling: [\"type \", DSModeling],\r\n};\r\n","\"use strict\";\r\n\r\nimport { selectPartOfActivity } from \"./dsLabelUtil\";\r\nimport { angleBetween } from \"../../../Utils/mathExtensions\";\r\n\r\nexport function countLines(str) {\r\n return str.split(/\\r\\n|\\r|\\n/).length;\r\n}\r\n\r\n// determine the position of the label at the activity\r\nexport function labelPosition(waypoints, lines = 1) {\r\n let amountWaypoints = waypoints.length;\r\n let determinedPosition;\r\n let xPos;\r\n let yPos;\r\n\r\n if (amountWaypoints > 2) {\r\n let angleActivity = new Array(amountWaypoints - 1);\r\n for (let i = 0; i < amountWaypoints - 1; i++) {\r\n // calculate the angles of the activities\r\n angleActivity[i] = angleBetween(waypoints[i], waypoints[i + 1]);\r\n }\r\n\r\n let selectedActivity = selectPartOfActivity(waypoints, angleActivity);\r\n\r\n xPos = labelPositionX(\r\n waypoints[selectedActivity],\r\n waypoints[selectedActivity + 1]\r\n );\r\n yPos = labelPositionY(\r\n waypoints[selectedActivity],\r\n waypoints[selectedActivity + 1],\r\n lines\r\n );\r\n\r\n determinedPosition = {\r\n x: xPos,\r\n y: yPos,\r\n selected: selectedActivity,\r\n };\r\n\r\n return determinedPosition;\r\n } else {\r\n xPos = labelPositionX(waypoints[0], waypoints[1]);\r\n yPos = labelPositionY(waypoints[0], waypoints[1], lines);\r\n\r\n determinedPosition = {\r\n x: xPos,\r\n y: yPos,\r\n selected: 0,\r\n };\r\n\r\n return determinedPosition;\r\n }\r\n}\r\n\r\n// calculate the X position of the label\r\nexport function labelPositionX(startPoint, endPoint) {\r\n let angle = angleBetween(startPoint, endPoint);\r\n let offsetX = 0;\r\n let scaledAngle = 0;\r\n if (angle === 0 || angle === 180 || angle === 90 || angle === 270) {\r\n offsetX = 0;\r\n } else if (angle > 0 && angle < 90) {\r\n // endpoint in upper right quadrant\r\n offsetX = 5 - angle / 6;\r\n } else if (angle > 90 && angle < 180) {\r\n // endpoint in upper left quadrant\r\n scaledAngle = angle - 90;\r\n offsetX = 5 - scaledAngle / 18;\r\n } else if (angle > 180 && angle < 270) {\r\n // endpoint in lower left quadrant\r\n scaledAngle = angle - 180;\r\n offsetX = scaledAngle / 18;\r\n } else if (angle > 270) {\r\n // endpoint in lower right quadrant\r\n scaledAngle = angle - 270;\r\n offsetX = 5 - scaledAngle / 6;\r\n }\r\n return offsetX + (startPoint.x + endPoint.x) / 2;\r\n}\r\n\r\n// calculate the Y position of the label\r\nexport function labelPositionY(startPoint, endPoint, lines = 1) {\r\n let angle = angleBetween(startPoint, endPoint);\r\n let offsetY = 0;\r\n let scaledAngle = 0;\r\n\r\n if (angle === 0 || angle === 180) {\r\n offsetY = 15;\r\n } else if (angle === 90 || angle === 270) {\r\n offsetY = 0;\r\n } else if (angle > 0 && angle < 90) {\r\n // endpoint in upper right quadrant\r\n offsetY = 15 - angle / 6;\r\n } else if (angle > 90 && angle < 180) {\r\n // endpoint in upper left quadrant\r\n scaledAngle = angle - 90;\r\n offsetY = (-scaledAngle / 9) * lines;\r\n } else if (angle > 180 && angle < 270) {\r\n // endpoint in lower left quadrant\r\n scaledAngle = angle - 180;\r\n offsetY = 15 - scaledAngle / 3;\r\n } else if (angle > 270) {\r\n // endpoint in lower right quadrant\r\n scaledAngle = angle - 270;\r\n offsetY = (-scaledAngle / 9) * lines;\r\n }\r\n return offsetY + (startPoint.y + endPoint.y) / 2;\r\n}\r\n","\"use strict\";\r\n\r\nimport Modeling from \"bpmn-js/lib/features/modeling/Modeling\";\r\n\r\nimport { inherits } from \"util\";\r\n\r\nexport default function DSModeling(\r\n eventBus,\r\n elementFactory,\r\n commandStack,\r\n domainStoryRules\r\n) {\r\n Modeling.call(this, eventBus, elementFactory, commandStack, domainStoryRules);\r\n}\r\n\r\nModeling.prototype.updateLabel = function (element, newLabel, newBounds) {\r\n if (\r\n element.businessObject\r\n ? newLabel !== element.businessObject.name\r\n : newLabel !== element.name\r\n ) {\r\n if (/^domainStory:/.test(element.type)) {\r\n this._commandStack.execute(\"element.updateCustomLabel\", {\r\n element: element,\r\n newLabel: newLabel,\r\n newBounds: newBounds,\r\n });\r\n } else {\r\n this._commandStack.execute(\"element.updateLabel\", {\r\n element: element,\r\n newLabel: newLabel,\r\n newBounds: newBounds,\r\n });\r\n }\r\n }\r\n};\r\n\r\nModeling.prototype.updateNumber = function (element, newNumber, newBounds) {\r\n if (\r\n element.businessObject\r\n ? newNumber !== element.businessObject.number\r\n : newNumber !== element.number\r\n ) {\r\n if (/^domainStory:/.test(element.type)) {\r\n this._commandStack.execute(\"element.updateCustomLabel\", {\r\n element: element,\r\n newNumber: newNumber,\r\n newBounds: newBounds,\r\n });\r\n } else {\r\n this._commandStack.execute(\"element.updateLabel\", {\r\n element: element,\r\n newNumber: newNumber,\r\n newBounds: newBounds,\r\n });\r\n }\r\n }\r\n};\r\n\r\nModeling.prototype.replaceShape = function (oldShape, newShape, hints) {\r\n let context = {\r\n oldShape: oldShape,\r\n newData: newShape,\r\n hints: hints || {},\r\n };\r\n\r\n this._commandStack.execute(\"shape.replace\", context);\r\n return context.newShape;\r\n};\r\n\r\nModeling.prototype.removeGroup = function (element) {\r\n this._commandStack.execute(\"shape.removeGroupWithoutChildren\", {\r\n element: element,\r\n });\r\n this.removeElements({ element });\r\n};\r\n\r\ninherits(DSModeling, Modeling);\r\n\r\nDSModeling.$inject = [\r\n \"eventBus\",\r\n \"elementFactory\",\r\n \"commandStack\",\r\n \"domainStoryRules\",\r\n];\r\n","\"use strict\";\r\n\r\nimport DomainStoryPalette from \"../palette/domainStoryPalette\";\r\nimport ElementFactory from \"bpmn-js/lib/features/modeling/ElementFactory\";\r\nimport CreateModule from \"diagram-js/lib/features/create\";\r\nimport PathMap from \"bpmn-js/lib/draw/PathMap\";\r\nimport PopupMenuModule from \"bpmn-js/lib/features/popup-menu\";\r\nimport ContextPadModule from \"diagram-js/lib/features/context-pad\";\r\nimport CommandStack from \"diagram-js/lib/command/CommandStack\";\r\nimport UpdateLabelHandler from \"../updateHandler/updateLabelHandler\";\r\nimport DomainStoryUpdater from \"../domainStoryUpdater\";\r\nimport DomainStoryElementFactory from \"../domainStoryElementFactory\";\r\nimport headlineAndDescriptionUpdateHandler from \"../updateHandler/headlineAndDescriptionUpdateHandler\";\r\nimport DomainStoryRenderer from \"../domainStoryRenderer\";\r\nimport DSModeling from \"./dSModeling\";\r\nimport DomainStoryRules from \"../domainStoryRules\";\r\nimport ReplaceMenuProvider from \"../change-icon/replaceMenuProvider\";\r\nimport DomainStoryContextPadProvider from \"../context-pad/domainStoryContextPadProvider\";\r\n\r\nexport default {\r\n __depends__: [CreateModule, ContextPadModule, PopupMenuModule],\r\n __init__: [\r\n \"domainStoryRenderer\",\r\n \"paletteProvider\",\r\n \"domainStoryRules\",\r\n \"domainStoryUpdater\",\r\n \"contextPadProvider\",\r\n \"replaceMenuProvider\",\r\n ],\r\n elementFactory: [\"type\", DomainStoryElementFactory],\r\n domainStoryRenderer: [\"type\", DomainStoryRenderer],\r\n paletteProvider: [\"type\", DomainStoryPalette],\r\n domainStoryRules: [\"type\", DomainStoryRules],\r\n domainStoryUpdater: [\"type\", DomainStoryUpdater],\r\n contextPadProvider: [\"type\", DomainStoryContextPadProvider],\r\n elementFactoryBpmn: [\"type\", ElementFactory],\r\n pathMap: [\"type\", PathMap],\r\n replaceMenuProvider: [\"type\", ReplaceMenuProvider],\r\n commandStack: [\"type\", CommandStack],\r\n updateLabelHandler: [\"type\", UpdateLabelHandler],\r\n headlineAndDescriptionUpdateHandler: [\r\n \"type\",\r\n headlineAndDescriptionUpdateHandler,\r\n ],\r\n modeling: [\"type\", DSModeling],\r\n};\r\n","\"use strict\";\r\n\r\nimport { labelPosition } from \"../labeling/position\";\r\n\r\nlet numberRegistry = [];\r\nlet multipleNumberRegistry = [false];\r\n\r\nlet canvasElementRegistry;\r\n\r\nexport function initializeNumbering(canvasElementRegistryService) {\r\n canvasElementRegistry = canvasElementRegistryService;\r\n}\r\n\r\n// defines the box for activity numbers\r\nexport function numberBoxDefinitions(element) {\r\n let alignment = \"center\";\r\n let boxWidth = 30;\r\n let boxHeight = 30;\r\n let position = labelPosition(element.waypoints);\r\n\r\n return {\r\n textAlign: alignment,\r\n width: boxWidth,\r\n height: boxHeight,\r\n x: position.x,\r\n y: position.y,\r\n };\r\n}\r\n\r\n// determine the next available number that is not yet used\r\nexport function generateAutomaticNumber(elementActivity, commandStack) {\r\n const semantic = elementActivity.businessObject;\r\n const usedNumbers = [0];\r\n let wantedNumber = -1;\r\n\r\n const activitiesFromActors = canvasElementRegistry.getActivitiesFromActors();\r\n\r\n activitiesFromActors.forEach((element) => {\r\n if (element.businessObject.number) {\r\n usedNumbers.push(+element.businessObject.number);\r\n }\r\n });\r\n for (let i = 0; i < usedNumbers.length; i++) {\r\n if (!usedNumbers.includes(i)) {\r\n if (!usedNumbers.includes(i)) {\r\n wantedNumber = i;\r\n i = usedNumbers.length;\r\n }\r\n }\r\n }\r\n if (wantedNumber === -1) {\r\n wantedNumber = usedNumbers.length;\r\n }\r\n\r\n updateExistingNumbersAtGeneration(\r\n activitiesFromActors,\r\n wantedNumber,\r\n commandStack\r\n );\r\n semantic.number = wantedNumber;\r\n return wantedNumber;\r\n}\r\n\r\n// update the numbers at the activities when generating a new activity\r\nexport function updateExistingNumbersAtGeneration(\r\n activitiesFromActors,\r\n wantedNumber,\r\n commandStack\r\n) {\r\n activitiesFromActors.forEach((element) => {\r\n let number = +element.businessObject.number;\r\n\r\n if (number >= wantedNumber) {\r\n wantedNumber++;\r\n setTimeout(function () {\r\n commandStack.execute(\"activity.changed\", {\r\n businessObject: element.businessObject,\r\n newLabel: element.businessObject.name,\r\n newNumber: number,\r\n element: element,\r\n });\r\n }, 10);\r\n }\r\n });\r\n}\r\n\r\n// update the numbers at the activities when editing an activity\r\nexport function updateExistingNumbersAtEditing(\r\n activitiesFromActors,\r\n wantedNumber,\r\n eventBus\r\n) {\r\n // get a sorted list of all activities that could need changing\r\n let sortedActivities = [[]];\r\n activitiesFromActors.forEach((activity) => {\r\n if (!sortedActivities[activity.businessObject.number]) {\r\n sortedActivities[activity.businessObject.number] = [];\r\n }\r\n sortedActivities[activity.businessObject.number].push(activity);\r\n });\r\n\r\n // set the number of each activity to the next highest number, starting from the number, we overrode\r\n let currentNumber = wantedNumber;\r\n for (\r\n currentNumber;\r\n currentNumber < sortedActivities.length;\r\n currentNumber++\r\n ) {\r\n if (sortedActivities[currentNumber]) {\r\n wantedNumber++;\r\n setNumberOfActivity(\r\n sortedActivities[currentNumber],\r\n wantedNumber,\r\n eventBus\r\n );\r\n }\r\n }\r\n}\r\n\r\n// get the IDs of activities with their associated number, only returns activities that are originating from an actor\r\nexport function getNumbersAndIDs() {\r\n let iDWithNumber = [];\r\n let activities = canvasElementRegistry.getActivitiesFromActors();\r\n\r\n for (let i = activities.length - 1; i >= 0; i--) {\r\n let id = activities[i].businessObject.id;\r\n let number = activities[i].businessObject.number;\r\n iDWithNumber.push({ id: id, number: number });\r\n }\r\n return iDWithNumber;\r\n}\r\n\r\nexport function addNumberToRegistry(renderedNumber, number) {\r\n numberRegistry[number] = renderedNumber;\r\n}\r\n\r\nexport function setNumberIsMultiple(number, multi) {\r\n multipleNumberRegistry[number] = multi;\r\n}\r\n\r\n/**\r\n * @returns copy of registry\r\n */\r\nexport function getNumberRegistry() {\r\n return numberRegistry.slice(0);\r\n}\r\n\r\nexport function getMultipleNumberRegistry() {\r\n return multipleNumberRegistry.slice(0);\r\n}\r\n\r\nfunction setNumberOfActivity(elementArray, wantedNumber, eventBus) {\r\n if (elementArray) {\r\n elementArray.forEach((element) => {\r\n if (element) {\r\n let businessObject = element.businessObject;\r\n if (businessObject) {\r\n businessObject.number = wantedNumber;\r\n }\r\n eventBus.fire(\"element.changed\", { element });\r\n }\r\n });\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport { assign } from \"min-dash\";\r\nimport { overrideAppendedIcons } from \"src/app/Domain/Domain-Configuration/allIcons\";\r\nimport { Dictionary } from \"src/app/Domain/Common/dictionary/dictionary\";\r\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\r\nimport { getNameFromType } from \"src/app/Utils/naming\";\r\nimport { APPENDED_ICONS_TAG } from \"../../../Domain/Common/constants\";\r\n\r\n/**\r\n * A palette that allows you to create BPMN _and_ custom elements.\r\n */\r\n\r\nlet iconDictionary;\r\nlet configuration;\r\n\r\nexport function initializePalette(iconDictionaryService, configurationService) {\r\n iconDictionary = iconDictionaryService;\r\n configuration = configurationService;\r\n}\r\n\r\nexport default function PaletteProvider(\r\n palette,\r\n create,\r\n elementFactory,\r\n spaceTool,\r\n lassoTool\r\n) {\r\n this._create = create;\r\n this._elementFactory = elementFactory;\r\n this._spaceTool = spaceTool;\r\n this._lassoTool = lassoTool;\r\n\r\n palette.registerProvider(this);\r\n}\r\n\r\nPaletteProvider.$inject = [\r\n \"palette\",\r\n \"create\",\r\n \"elementFactory\",\r\n \"spaceTool\",\r\n \"lassoTool\",\r\n \"modeling\",\r\n];\r\n\r\nPaletteProvider.prototype.getPaletteEntries = function () {\r\n let actions = {},\r\n create = this._create,\r\n elementFactory = this._elementFactory,\r\n spaceTool = this._spaceTool,\r\n lassoTool = this._lassoTool;\r\n\r\n function createAction(type, group, className, title, options) {\r\n function createListener(event) {\r\n let shape = elementFactory.createShape(assign({ type: type }, options));\r\n\r\n assign(shape.businessObject, {\r\n id: shape.id,\r\n });\r\n\r\n if (options) {\r\n shape.businessObject.di.isExpanded = options.isExpanded;\r\n }\r\n\r\n create.start(event, shape);\r\n }\r\n\r\n let shortType = type.replace(/^domainStory:/, \"\");\r\n\r\n return {\r\n group: group,\r\n className: className,\r\n title: \"Create \" + title || \"Create \" + shortType,\r\n action: {\r\n dragstart: createListener,\r\n click: createListener,\r\n },\r\n };\r\n }\r\n\r\n return initPalette(actions, spaceTool, lassoTool, createAction);\r\n};\r\n\r\nfunction appendCSSStyleCheat(customIcons) {\r\n const sheetEl = document.createElement(\"style\");\r\n document.head.appendChild(sheetEl);\r\n\r\n let customIconDict = new Dictionary();\r\n\r\n customIconDict.appendDict(customIcons);\r\n let customIconDictKeys = customIconDict.keysArray();\r\n\r\n customIconDictKeys.forEach((name) => {\r\n if (iconDictionary.getAppendedIconDictionary().has(name)) {\r\n let src = customIconDict.get(name);\r\n\r\n const iconStyle =\r\n \".icon-domain-story-\" +\r\n name.toLowerCase() +\r\n \"::before{\" +\r\n \" display: block;\" +\r\n ' content: url(\"data:image/svg+xml;utf8,' +\r\n wrapSRCInSVG(src) +\r\n '\");' +\r\n \" margin: 3px;}\";\r\n sheetEl.sheet.insertRule(iconStyle, sheetEl.sheet.cssRules.length);\r\n }\r\n });\r\n}\r\n\r\nfunction initPalette(actions, spaceTool, lassoTool, createAction) {\r\n let config = iconDictionary?.getCurrentIconConfigurationForBPMN();\r\n\r\n let customIcons = localStorage.getItem(APPENDED_ICONS_TAG);\r\n\r\n if (customIcons) {\r\n customIcons = JSON.parse(customIcons);\r\n if (customIconsLegacy(customIcons)) {\r\n customIcons = convertLegacyAppendedIconsToDict(customIcons);\r\n }\r\n if (customIcons.entries && customIcons.entries.forEach) {\r\n const customIconsDict = new Dictionary();\r\n customIcons.entries.forEach((entry) => {\r\n customIconsDict.putEntry(entry);\r\n });\r\n overrideAppendedIcons(customIconsDict);\r\n appendCSSStyleCheat(customIcons);\r\n }\r\n }\r\n\r\n iconDictionary?.initTypeDictionaries(config.actors, config.workObjects);\r\n\r\n let actorTypes = iconDictionary?.getTypeDictionary(elementTypes.ACTOR);\r\n\r\n actorTypes?.keysArray().forEach((actorType) => {\r\n addCanvasObjectTypes(actorType, createAction, actions, \"actor\");\r\n });\r\n\r\n assign(actions, {\r\n \"actor-separator\": {\r\n group: \"actor\",\r\n separator: true,\r\n },\r\n });\r\n\r\n let workObjectTypes = iconDictionary?.getTypeDictionary(\r\n elementTypes.WORKOBJECT\r\n );\r\n\r\n workObjectTypes?.keysArray().forEach((workObjectType) => {\r\n addCanvasObjectTypes(workObjectType, createAction, actions, \"actor\"); // TODO is ClassName 'actor' correct?\r\n });\r\n\r\n assign(actions, {\r\n \"workObject-separator\": {\r\n group: \"workObject\",\r\n separator: true,\r\n },\r\n \"domainStory-group\": createAction(\r\n elementTypes.GROUP,\r\n \"group\",\r\n \"icon-domain-story-tool-group\",\r\n \"group\"\r\n ),\r\n \"group-separator\": {\r\n group: \"group\",\r\n separator: true,\r\n },\r\n \"lasso-tool\": {\r\n group: \"tools\",\r\n className: \"bpmn-icon-lasso-tool\",\r\n title: \"Activate the lasso tool\",\r\n action: {\r\n click: function (event) {\r\n lassoTool.activateSelection(event);\r\n },\r\n },\r\n },\r\n \"space-tool\": {\r\n group: \"tools\",\r\n className: \"bpmn-icon-space-tool\",\r\n title: \"Activate the create/remove space tool\",\r\n action: {\r\n click: function (event) {\r\n spaceTool.activateSelection(event);\r\n },\r\n },\r\n },\r\n });\r\n\r\n return actions;\r\n}\r\n\r\nfunction addCanvasObjectTypes(actorType, createAction, actions, className) {\r\n let name = getNameFromType(actorType);\r\n let icon = iconDictionary.getIconForBPMN(actorType);\r\n\r\n let action = [];\r\n action[\"domainStory-\" + className + name] = createAction(\r\n actorType,\r\n className,\r\n icon,\r\n name\r\n );\r\n assign(actions, action);\r\n}\r\n\r\nfunction customIconsLegacy(customIcons) {\r\n return !(\r\n Object.keys(customIcons).length === 1 &&\r\n Object.keys(customIcons)[0] === \"entries\"\r\n );\r\n}\r\n\r\nfunction convertLegacyAppendedIconsToDict(customIcons) {\r\n let dict = new Dictionary();\r\n Object.keys(customIcons).forEach((key) => {\r\n dict.set(key, customIcons[key]);\r\n });\r\n return dict;\r\n}\r\n\r\n// For some reason its important to use ' in the content for the Palette and ContextPad\r\n// Do not change!\r\nfunction wrapSRCInSVG(src) {\r\n return (\r\n \"\" +\r\n \"\"\r\n );\r\n}\r\n","\"use strict\";\r\n\r\nimport { getNumbersAndIDs } from \"../numbering/numbering\";\r\n\r\n/**\r\n * commandStack Handler for changes at activities\r\n */\r\n\r\nlet canvasElementRegistry;\r\nexport function initializeActivityUpdateHandler(canvasElementRegistryService) {\r\n canvasElementRegistry = canvasElementRegistryService;\r\n}\r\n\r\nexport default function activityUpdateHandler(commandStack, eventBus) {\r\n commandStack.registerHandler(\r\n \"activity.directionChange\",\r\n activity_directionChange\r\n );\r\n commandStack.registerHandler(\"activity.changed\", activity_changed);\r\n\r\n // update the activity from the activity-dialog, either with or without number\r\n // and change other activities too, to keep the numbers consistent\r\n function activity_changed(modeling) {\r\n this.preExecute = function (context) {\r\n context.oldLabel = context.businessObject.name || \" \";\r\n\r\n let oldNumbersWithIDs = getNumbersAndIDs();\r\n modeling.updateLabel(context.businessObject, context.newLabel);\r\n modeling.updateNumber(context.businessObject, context.newNumber);\r\n\r\n context.oldNumber = context.businessObject.number;\r\n context.oldNumbersWithIDs = oldNumbersWithIDs;\r\n };\r\n\r\n this.execute = function (context) {\r\n let semantic = context.businessObject;\r\n let element = context.element;\r\n\r\n if (context.newLabel && context.newLabel.length < 1) {\r\n context.newLabel = \" \";\r\n }\r\n\r\n semantic.name = context.newLabel;\r\n semantic.number = context.newNumber;\r\n\r\n eventBus.fire(\"element.changed\", { element });\r\n };\r\n\r\n this.revert = function (context) {\r\n let semantic = context.businessObject;\r\n let element = context.element;\r\n semantic.name = context.oldLabel;\r\n semantic.number = context.oldNumber;\r\n\r\n revertAutomaticNumberGenerationChange(\r\n context.oldNumbersWithIDs,\r\n eventBus\r\n );\r\n\r\n eventBus.fire(\"element.changed\", { element });\r\n };\r\n }\r\n\r\n // change the direction of a single activity without affecting other activities\r\n function activity_directionChange(modeling) {\r\n this.preExecute = function (context) {\r\n context.oldNumber = context.businessObject.number;\r\n context.oldWaypoints = context.element.waypoints;\r\n context.name = context.businessObject.name;\r\n\r\n if (!context.oldNumber) {\r\n context.oldNumber = 0;\r\n }\r\n modeling.updateNumber(context.businessObject, context.newNumber);\r\n };\r\n\r\n this.execute = function (context) {\r\n let businessObject = context.businessObject;\r\n let element = context.element;\r\n let swapSource = element.source;\r\n let newWaypoints = [];\r\n let waypoints = element.waypoints;\r\n\r\n for (let i = waypoints.length - 1; i >= 0; i--) {\r\n newWaypoints.push(waypoints[i]);\r\n }\r\n\r\n element.source = element.target;\r\n businessObject.source = businessObject.target;\r\n element.target = swapSource;\r\n businessObject.target = swapSource.id;\r\n\r\n businessObject.name = context.name;\r\n businessObject.number = context.newNumber;\r\n element.waypoints = newWaypoints;\r\n\r\n eventBus.fire(\"element.changed\", { element });\r\n };\r\n\r\n this.revert = function (context) {\r\n let semantic = context.businessObject;\r\n let element = context.element;\r\n let swapSource = element.source;\r\n\r\n element.source = element.target;\r\n semantic.source = semantic.target;\r\n element.target = swapSource;\r\n semantic.target = swapSource.id;\r\n\r\n semantic.name = context.name;\r\n\r\n semantic.number = context.oldNumber;\r\n element.waypoints = context.oldWaypoints;\r\n\r\n eventBus.fire(\"element.changed\", { element });\r\n };\r\n }\r\n}\r\n\r\n// reverts the automatic changed done by the automatic number-generation at editing\r\nfunction revertAutomaticNumberGenerationChange(iDWithNumber, eventBus) {\r\n let activities = canvasElementRegistry.getActivitesFromActors();\r\n for (let i = activities.length - 1; i >= 0; i--) {\r\n for (let j = iDWithNumber.length - 1; j >= 0; j--) {\r\n if (iDWithNumber[j].id.includes(activities[i].businessObject.id)) {\r\n let element = activities[i];\r\n element.businessObject.number = iDWithNumber[j].number;\r\n j = -5;\r\n eventBus.fire(\"element.changed\", { element });\r\n iDWithNumber.splice(j, 1);\r\n }\r\n }\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport { undoGroupRework } from \"../util\";\r\n\r\nexport default function elementUpdateHandler(commandStack, eventBus) {\r\n commandStack.registerHandler(\"element.colorChange\", element_colorChange);\r\n commandStack.registerHandler(\r\n \"shape.removeGroupWithoutChildren\",\r\n removeGroupWithoutChildren\r\n );\r\n\r\n function element_colorChange() {\r\n this.preExecute = function (context) {\r\n context.oldColor = context.businessObject.pickedColor;\r\n };\r\n\r\n this.execute = function (context) {\r\n let semantic = context.businessObject;\r\n let element = context.element;\r\n\r\n semantic.pickedColor = context.newColor;\r\n\r\n eventBus.fire(\"element.changed\", { element });\r\n };\r\n\r\n this.revert = function (context) {\r\n let semantic = context.businessObject;\r\n let element = context.element;\r\n\r\n semantic.pickedColor = context.oldColor;\r\n\r\n eventBus.fire(\"element.changed\", { element });\r\n };\r\n }\r\n\r\n function removeGroupWithoutChildren() {\r\n this.preExecute = function (ctx) {\r\n ctx.parent = ctx.element.parent;\r\n ctx.children = ctx.element.children.slice();\r\n };\r\n\r\n this.execute = function (ctx) {\r\n let element = ctx.element;\r\n ctx.children.forEach((child) => {\r\n undoGroupRework(element, child);\r\n eventBus.fire(\"element.changed\", { element: child });\r\n });\r\n eventBus.fire(\"shape.remove\", { element });\r\n };\r\n\r\n this.revert = function (ctx) {\r\n let element = ctx.element;\r\n eventBus.fire(\"shape.added\", { element });\r\n\r\n ctx.element.children.forEach((child) => {\r\n reworkGroupElements(element, child);\r\n });\r\n };\r\n }\r\n}\r\n","/**\r\n * a handler that updates the text of a BPMN element.\r\n */\r\nexport default function headlineAndDescriptionUpdateHandler(\r\n commandStack,\r\n titleService\r\n) {\r\n commandStack.registerHandler(\r\n \"story.updateHeadlineAndDescription\",\r\n handlerFunction\r\n );\r\n\r\n function handlerFunction() {\r\n this.execute = function (ctx) {\r\n ctx.oldTitle = titleService.getTitle();\r\n ctx.oldDescription = titleService.getDescription();\r\n\r\n titleService.updateTitleAndDescription(\r\n ctx.newTitle,\r\n ctx.newDescription,\r\n false\r\n );\r\n };\r\n\r\n this.revert = function (ctx) {\r\n titleService.updateTitleAndDescription(\r\n ctx.oldTitle,\r\n ctx.oldDescription,\r\n false\r\n );\r\n };\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nexport default function DSMassRenameHandler(commandStack, eventBus) {\r\n commandStack.registerHandler(\"domainStoryObjects.massRename\", massRename);\r\n\r\n function massRename(modeling) {\r\n this.preExecute = function (context) {\r\n let relevantElements = context.elements;\r\n\r\n context.oldLabel = relevantElements[0].businessObject.name;\r\n\r\n relevantElements.forEach((element) => {\r\n modeling.updateLabel(element.businessObject, confirm.newValue);\r\n });\r\n };\r\n\r\n this.execute = function (context) {\r\n let relevantElements = context.elements;\r\n relevantElements.forEach((element) => {\r\n let semantic = element.businessObject;\r\n semantic.name = context.newValue;\r\n\r\n eventBus.fire(\"element.changed\", { element });\r\n });\r\n };\r\n\r\n this.revert = function (context) {\r\n let relevantElements = context.elements;\r\n relevantElements.forEach((element) => {\r\n let semantic = element.businessObject;\r\n semantic.name = context.oldLabel;\r\n\r\n eventBus.fire(\"element.changed\", { element });\r\n });\r\n };\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport {\r\n setLabel,\r\n getLabel,\r\n setNumber,\r\n getNumber,\r\n} from \"../labeling/dsLabelUtil\";\r\n\r\nimport {\r\n getExternalLabelMid,\r\n isLabelExternal,\r\n hasExternalLabel,\r\n isLabel,\r\n} from \"bpmn-js/lib/util/LabelUtil\";\r\n\r\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\r\nimport { getBusinessObject, is } from \"../util\";\r\n\r\nconst NULL_DIMENSIONS = {\r\n width: 0,\r\n height: 0,\r\n};\r\n\r\n/**\r\n * a handler that updates the text of a BPMN element.\r\n */\r\nexport default function UpdateLabelHandler(\r\n modeling,\r\n textRenderer,\r\n commandStack\r\n) {\r\n commandStack.registerHandler(\"element.updateCustomLabel\", handlerFunction);\r\n\r\n function handlerFunction() {\r\n /**\r\n * Set the label and return the changed elements.\r\n *\r\n * Element parameter can be label itself or connection (i.e. sequence flow).\r\n *\r\n * @param {djs.model.Base} element\r\n * @param {String} text\r\n */\r\n\r\n this.preExecute = function (ctx) {\r\n let element = ctx.element,\r\n businessObject = element.businessObject,\r\n newLabel = ctx.newLabel,\r\n newNumber = ctx.newNumber;\r\n\r\n if (\r\n !isLabel(element) &&\r\n isLabelExternal(element) &&\r\n !hasExternalLabel(element) &&\r\n (newLabel !== \"\" || newNumber !== \"\")\r\n ) {\r\n // create label\r\n let paddingTop = 7;\r\n\r\n let labelCenter = getExternalLabelMid(element);\r\n\r\n labelCenter = {\r\n x: labelCenter.x,\r\n y: labelCenter.y + paddingTop,\r\n };\r\n\r\n modeling.createLabel(element, labelCenter, {\r\n id: businessObject.id + \"_label\",\r\n businessObject: businessObject,\r\n });\r\n }\r\n };\r\n\r\n this.execute = function (ctx) {\r\n ctx.oldLabel = getLabel(ctx.element);\r\n ctx.oldNumber = getNumber(ctx.element);\r\n return setText(ctx.element, ctx.newLabel, ctx.newNumber);\r\n };\r\n\r\n this.revert = function (ctx) {\r\n return setText(ctx.element, ctx.oldLabel, ctx.oldNumber);\r\n };\r\n\r\n this.postExecute = function (ctx) {\r\n let element = ctx.element,\r\n label = element.label || element,\r\n newLabel = ctx.newLabel,\r\n newBounds = ctx.newBounds;\r\n\r\n if (isLabel(label) && newLabel.trim() === \"\") {\r\n modeling.removeShape(label);\r\n\r\n return;\r\n }\r\n\r\n // ignore internal labels for elements except text annotations\r\n if (\r\n !isLabelExternal(element) &&\r\n !is(element, elementTypes.TEXTANNOTATION)\r\n ) {\r\n return;\r\n }\r\n\r\n let bo = getBusinessObject(label);\r\n\r\n let text = bo.name || bo.text;\r\n\r\n // don't resize without text\r\n if (!text) {\r\n return;\r\n }\r\n\r\n // resize element based on label _or_ pre-defined bounds\r\n if (typeof newBounds === \"undefined\") {\r\n newBounds = textRenderer.getLayoutedBounds(label, text);\r\n }\r\n\r\n // setting newBounds to false or _null_ will\r\n // disable the postExecute resize operation\r\n if (newBounds) {\r\n modeling.resizeShape(label, newBounds, NULL_DIMENSIONS);\r\n }\r\n };\r\n }\r\n}\r\n\r\nfunction setText(element, text, textNumber) {\r\n // external label if present\r\n let label = element.label || element;\r\n\r\n let number = element.number || element;\r\n\r\n let labelTarget = element.labelTarget || element;\r\n\r\n let numberTarget = element.numberTarget || element;\r\n setLabel(label, text);\r\n setNumber(number, textNumber);\r\n\r\n return [label, labelTarget, number, numberTarget];\r\n}\r\n\r\nUpdateLabelHandler.$inject = [\"modeling\", \"textRenderer\", \"commandStack\"];\r\n","import { some } from \"min-dash\";\r\n\r\nexport function is(element, type) {\r\n const bo = getBusinessObject(element);\r\n\r\n return bo && typeof bo.$instanceOf == \"function\" && bo.$instanceOf(type);\r\n}\r\n\r\nexport function getBusinessObject(element) {\r\n return (element && element.businessObject) || element;\r\n}\r\n\r\nexport function isAny(element, types) {\r\n return some(types, function (t) {\r\n return is(element, t);\r\n });\r\n}\r\n\r\nexport function reworkGroupElements(parent, shape) {\r\n parent.children.slice().forEach((innerShape) => {\r\n if (innerShape.id !== shape.id) {\r\n if (innerShape.x >= shape.x && innerShape.x <= shape.x + shape.width) {\r\n if (innerShape.y >= shape.y && innerShape.y <= shape.y + shape.height) {\r\n innerShape.parent = shape;\r\n if (!shape.children.includes(innerShape)) {\r\n shape.children.push(innerShape);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function undoGroupRework(parent, shape) {\r\n const superParent = parent.parent;\r\n\r\n parent.children.remove(shape);\r\n superParent.children.add(shape);\r\n\r\n shape.parent = superParent;\r\n\r\n const svgShape = document.querySelector(\r\n \"[data-element-id=\" + shape.id + \"]\"\r\n ).parentElement;\r\n const svgGroup = svgShape.parentElement;\r\n const svgGroupParent = svgGroup.parentElement.parentElement;\r\n svgGroup.removeChild(svgShape);\r\n svgGroupParent.appendChild(svgShape);\r\n}\r\n","import {\r\n SVG_LINK,\r\n TEXTSPAN_DESCRIPTION_HEIGHT,\r\n TEXTSPAN_TITLE_HEIGHT,\r\n X_OFFSET_UTIL,\r\n} from \"../../Domain/Export/exportConstants\";\r\n\r\nlet extraHeight = 0;\r\n\r\n// Has to be js File so we can access te correct non-standard HTML-Properties without excessive usage of ts-ignore\r\nexport function createTitleAndDescriptionSVGElement(\r\n title,\r\n description,\r\n xLeft,\r\n yUp,\r\n width\r\n) {\r\n title = title.replace(\"<\", \"\").replace(\">\", \"\");\r\n\r\n let titleElement = createTitle(title, width);\r\n let descriptionElement = createDescription(description, width);\r\n\r\n // to display the title and description in the SVG-file, we need to add a container for our text-elements\r\n let insertText =\r\n '' +\r\n titleElement +\r\n descriptionElement +\r\n \"\";\r\n return { insertText, extraHeight };\r\n}\r\n\r\nfunction createTitle(text, width) {\r\n let tempCanvas = document.createElement(\"canvas\");\r\n let ctx = tempCanvas.getContext(\"2d\");\r\n ctx.font = \"30px Arial\";\r\n\r\n return createTextSpans(text, width, ctx, 10, TEXTSPAN_TITLE_HEIGHT, 30);\r\n}\r\n\r\nfunction createDescription(text, width) {\r\n let description = \"\";\r\n let descriptionParts = text.split(\"
\");\r\n\r\n let tempCanvas = document.createElement(\"canvas\");\r\n let ctx = tempCanvas.getContext(\"2d\");\r\n ctx.font = \"12px Arial\";\r\n\r\n for (let i = 0; i < descriptionParts.length; i++) {\r\n description += createTextSpans(\r\n descriptionParts[i],\r\n width,\r\n ctx,\r\n 0,\r\n TEXTSPAN_DESCRIPTION_HEIGHT,\r\n 12\r\n );\r\n }\r\n return description;\r\n}\r\n\r\nfunction createTextSpans(text, width, ctx, yOffset, heightOffset, fontSize) {\r\n let textSpans = \"\";\r\n let words = text.split(\" \");\r\n\r\n let textTag =\r\n '';\r\n\r\n let textSpan = document.createElementNS(SVG_LINK, \"tspan\");\r\n let textNode = document.createTextNode(words[0]);\r\n\r\n textSpan.setAttribute(\"x\", X_OFFSET_UTIL);\r\n textSpan.setAttribute(\"y\", yOffset + extraHeight);\r\n textSpan.setAttribute(\"font-size\", fontSize);\r\n textSpan.appendChild(textNode);\r\n\r\n for (let j = 1; j < words.length; j++) {\r\n if (textSpan.firstChild && textSpan.firstChild.data) {\r\n let len = textSpan.firstChild.data.length;\r\n textNode.data += \" \" + words[j];\r\n\r\n if (ctx.measureText(textNode.data).width > width - 16) {\r\n extraHeight += heightOffset;\r\n textSpan.firstChild.data = textSpan.firstChild.data.slice(0, len); // remove overflow word\r\n\r\n textSpans += textTag + textSpan.outerHTML + \"\"; // append line\r\n\r\n // create new textspan for line break\r\n textSpan = document.createElementNS(SVG_LINK, \"tspan\");\r\n textNode = document.createTextNode(words[j]);\r\n textSpan.setAttribute(\"x\", X_OFFSET_UTIL);\r\n textSpan.setAttribute(\"y\", yOffset + extraHeight);\r\n textSpan.appendChild(textNode);\r\n }\r\n }\r\n }\r\n extraHeight += heightOffset;\r\n\r\n textSpans += textTag + textSpan.outerHTML + \"\";\r\n return textSpans;\r\n}\r\n","import { elementTypes } from './elementTypes';\r\n\r\nexport interface BusinessObject {\r\n $descriptor: any;\r\n $type: any;\r\n di: any;\r\n get: any;\r\n set: any;\r\n\r\n id: string;\r\n name: string;\r\n\r\n type: string;\r\n\r\n x: number;\r\n y: number;\r\n height: number | undefined;\r\n width: number | undefined;\r\n pickedColor: string | undefined;\r\n}\r\n\r\nexport const testBusinessObject: BusinessObject = {\r\n $descriptor: undefined,\r\n $type: undefined,\r\n di: undefined,\r\n get: undefined,\r\n set: undefined,\r\n\r\n id: 'test',\r\n name: 'test',\r\n\r\n type: elementTypes.WORKOBJECT,\r\n\r\n x: 0,\r\n y: 0,\r\n height: 38,\r\n width: 38,\r\n pickedColor: undefined,\r\n};\r\n","export class Configuration {\r\n actors: string[];\r\n workObjects: string[];\r\n\r\n constructor(actors: string[], workObjects: string[]) {\r\n this.actors = actors;\r\n this.workObjects = workObjects;\r\n }\r\n}\r\n","/** GLOBAL **/\r\nexport const VERSION = '2.0.0-beta.1';\r\n\r\n/** DEFAULT VALUES **/\r\nexport const INITIAL_TITLE = '< title >';\r\nexport const INITIAL_DESCRIPTION = '< description >';\r\nexport const INITIAL_DOMAIN_NAME = '[icons: default]';\r\n\r\n/** LocalStorageTags **/\r\nexport const APPENDED_ICONS_TAG = 'appendedIcons';\r\nexport const DOMAIN_CONFIGURATION_TAG = 'domainConfigurationTag';\r\n\r\n/** AUTOSAVE DEFAULTS **/\r\nexport const DEFAULT_AUTOSAVES_AMOUNT = 5;\r\nexport const DEFAULT_AUTOSAVES_INTERVAL = 5;\r\n\r\n/** SNACKBAR **/\r\nexport const SNACKBAR_DURATION = 2000;\r\nexport const SNACKBAR_SUCCESS = 'snackbar_success';\r\nexport const SNACKBAR_ERROR = 'snackbar_error';\r\nexport const SNACKBAR_INFO = 'snackbar_info';\r\n\r\n/** BPMN_RELEVANT_CONSTANTS **/\r\nexport const IMPLICIT_ROOT_ID = '__implicitroot';\r\n","export class Dictionary {\r\n private entries: Entry[];\r\n\r\n constructor() {\r\n this.entries = [];\r\n }\r\n\r\n get length(): number {\r\n return this.entries.length;\r\n }\r\n\r\n all(): Entry[] {\r\n return this.entries;\r\n }\r\n\r\n size(): number {\r\n return this.entries.length;\r\n }\r\n\r\n isEmpty(): boolean {\r\n return this.entries.length <= 0;\r\n }\r\n\r\n has(key: string): boolean {\r\n return this.entries.some((entry) => entry.key === key);\r\n }\r\n\r\n set(key: string, value: any): void {\r\n if (!this.has(key)) {\r\n this.entries.push(new Entry(value, key));\r\n }\r\n }\r\n\r\n add(value: any, key: string): void {\r\n this.set(key, value);\r\n }\r\n\r\n putEntry(entry: Entry): void {\r\n if (!this.has(entry.key)) {\r\n this.entries.push(new Entry(entry.value, entry.key));\r\n }\r\n }\r\n\r\n keysArray(): string[] {\r\n return this.entries.map((entry) => entry.key);\r\n }\r\n\r\n addEach(object: any): void {\r\n Object.keys(object).forEach((key) => {\r\n this.set(key, object[key]);\r\n });\r\n }\r\n\r\n appendDict(dict: Dictionary): void {\r\n dict.entries.forEach((entry) => this.putEntry(entry));\r\n }\r\n\r\n clear(): void {\r\n this.entries = [];\r\n }\r\n\r\n delete(key: string): void {\r\n this.entries = this.entries.filter((entry) => entry.key !== key);\r\n }\r\n\r\n get(key: string): any {\r\n const found = this.entries.filter((entry) => entry.key === key);\r\n return found[0] ? found[0].value : null;\r\n }\r\n\r\n sort(fn: (a: Entry, b: Entry) => number) {\r\n this.entries.sort(fn);\r\n }\r\n\r\n sortByName() {\r\n this.entries.sort((a: Entry, b: Entry) => {\r\n if (a.key.includes('_custom') == b.key.includes('_custom')) {\r\n if (a.key < b.key) return -1;\r\n else {\r\n return 1;\r\n }\r\n } else {\r\n if (a.key.includes('_custom')) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport class Entry {\r\n value: any;\r\n key: string;\r\n\r\n constructor(value: any, key: string) {\r\n this.value = value;\r\n this.key = key;\r\n }\r\n}\r\n","import { INITIAL_DOMAIN_NAME } from './constants';\r\nimport { testBusinessObject } from './businessObject';\r\nimport { elementTypes } from './elementTypes';\r\nimport { Dictionary } from './dictionary/dictionary';\r\n\r\nexport interface DomainConfiguration {\r\n name: string;\r\n actors: Dictionary;\r\n workObjects: Dictionary;\r\n}\r\n\r\nexport interface DomainConfigurationForExport {\r\n name: string;\r\n actors: any;\r\n workObjects: any;\r\n}\r\n\r\nexport interface CustomDomainConfiguration {\r\n name: string;\r\n actors: string[];\r\n workObjects: string[];\r\n}\r\nconst actor = structuredClone(testBusinessObject);\r\nactor.type = elementTypes.ACTOR;\r\n\r\nexport const testCustomDomainConfiguration: CustomDomainConfiguration = {\r\n name: INITIAL_DOMAIN_NAME,\r\n actors: ['Person'],\r\n workObjects: ['Document'],\r\n};\r\n\r\nexport function fromConfigurationFromFile(configFromFile: {\r\n name: string;\r\n actors: { [p: string]: any };\r\n workObjects: { [p: string]: any };\r\n}) {\r\n const actorsDict = new Dictionary();\r\n const workObjectsDict = new Dictionary();\r\n Object.keys(configFromFile.actors).forEach((key) => {\r\n actorsDict.add(configFromFile.actors[key], key);\r\n });\r\n Object.keys(configFromFile.workObjects).forEach((key) => {\r\n workObjectsDict.add(configFromFile.workObjects[key], key);\r\n });\r\n\r\n return {\r\n name: configFromFile.name,\r\n actors: actorsDict,\r\n workObjects: workObjectsDict,\r\n };\r\n}\r\n","export enum elementTypes {\r\n ACTIVITY = 'domainStory:activity',\r\n CONNECTION = 'domainStory:connection',\r\n ACTOR = 'domainStory:actor',\r\n WORKOBJECT = 'domainStory:workObject',\r\n GROUP = 'domainStory:group',\r\n TEXTANNOTATION = 'domainStory:textAnnotation',\r\n DOMAINSTORY = 'domainStory:',\r\n}\r\n","import { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\r\nimport { overrideAppendedIcons } from 'src/app/Domain/Domain-Configuration/allIcons';\r\nimport { Configuration } from 'src/app/Domain/Common/configuration';\r\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\r\nimport { INITIAL_DOMAIN_NAME } from './constants';\r\n\r\nexport class IconConfiguration {\r\n domainName = INITIAL_DOMAIN_NAME;\r\n\r\n private allIconDictionary: Dictionary;\r\n\r\n constructor(allIconDictionary: Dictionary) {\r\n this.allIconDictionary = allIconDictionary;\r\n }\r\n\r\n /**\r\n * Select the Iconset which you want to use\r\n */\r\n getDefaultConf(): Configuration {\r\n return defaultConf;\r\n }\r\n\r\n updateAllIconRegistry(allIconDictionary: Dictionary): void {\r\n this.allIconDictionary = allIconDictionary;\r\n }\r\n\r\n appendSRCFile(\r\n actors: string[],\r\n actorsDict: Dictionary,\r\n workObjects: string[],\r\n workObjectsDict: Dictionary\r\n ): void {\r\n const newAppendedIcons: { [key: string]: any } = {};\r\n\r\n actors.forEach((name: string) => {\r\n if (!this.allIconDictionary.has(name)) {\r\n newAppendedIcons[name] = actorsDict.get(name);\r\n }\r\n });\r\n\r\n workObjects.forEach((name: string) => {\r\n if (!this.allIconDictionary.has(name)) {\r\n newAppendedIcons[name] = workObjectsDict.get(name);\r\n }\r\n });\r\n const appen = new Dictionary();\r\n Object.keys(newAppendedIcons).forEach((key) => {\r\n appen.set(key, newAppendedIcons[key]);\r\n });\r\n\r\n overrideAppendedIcons(appen);\r\n }\r\n\r\n createCustomConf(domainConfiguration: DomainConfiguration): Configuration {\r\n this.domainName = domainConfiguration.name;\r\n\r\n let actors = domainConfiguration.actors;\r\n let workObjects = domainConfiguration.workObjects;\r\n\r\n this.appendSRCFile(\r\n actors.keysArray(),\r\n actors,\r\n workObjects.keysArray(),\r\n workObjects\r\n );\r\n\r\n return new Configuration(actors.keysArray(), workObjects.keysArray());\r\n }\r\n}\r\n\r\n/* eslint no-unused-vars: 0*/\r\n\r\n/**\r\n * All Icons as one Set\r\n * There are more Icons than fit in the palette.\r\n * This is just for reference\r\n */\r\nconst allIconsConf = {\r\n actors: ['Person', 'Group', 'System', 'Pet'],\r\n workObjects: [\r\n 'Place',\r\n 'Flag',\r\n 'World',\r\n 'Water',\r\n 'Store',\r\n 'Theater',\r\n 'Business',\r\n 'Meeting-room',\r\n 'Hotel',\r\n 'Dining',\r\n 'Courthouse',\r\n 'Gas-station',\r\n 'Car',\r\n 'Bus',\r\n 'Train',\r\n 'Truck',\r\n 'Taxi',\r\n 'Bike',\r\n 'Boat',\r\n 'Motorcycle',\r\n 'Plane',\r\n 'Flight-takeoff',\r\n 'Flight-landing',\r\n 'Shuttle',\r\n 'Walking',\r\n 'Traffic',\r\n 'Commute',\r\n 'Document',\r\n 'Folder',\r\n 'Call',\r\n 'Email',\r\n 'Copyright',\r\n 'Briefcase',\r\n 'Attach',\r\n 'Ruler',\r\n 'Sum',\r\n 'Conversation',\r\n 'Update',\r\n 'Cellphone',\r\n 'Speaker-phone',\r\n 'Signal',\r\n 'Key',\r\n 'Pencil',\r\n 'How-To-Reg',\r\n 'Settings',\r\n 'Grid',\r\n 'Label',\r\n 'Receipt',\r\n 'Calendar',\r\n 'Wrench',\r\n 'Headset',\r\n 'Keyboard',\r\n 'Mouse',\r\n 'Microphone',\r\n 'Router',\r\n 'Scanner',\r\n 'Printer',\r\n 'DNS',\r\n 'Security',\r\n 'Cloud',\r\n 'Desktop',\r\n 'Tablet',\r\n 'Assessment',\r\n 'Dashboard',\r\n 'Pie-chart',\r\n 'View-List',\r\n 'Euro',\r\n 'Dollar',\r\n 'Info',\r\n 'Alarm',\r\n 'Problem',\r\n 'Circle-Arrows',\r\n 'Picture-as-PDF',\r\n 'Credit-Card',\r\n 'Shopping',\r\n 'Favorite',\r\n 'Gavel',\r\n 'Blind',\r\n 'Hourglass',\r\n 'Time',\r\n 'Search',\r\n 'Thumb-up',\r\n 'Thumb-down',\r\n 'Thumb-up-down',\r\n 'Couch',\r\n 'Education',\r\n 'Watch',\r\n ],\r\n};\r\n\r\n/**\r\n * Default Iconset\r\n */\r\nexport const defaultConf = {\r\n actors: ['Person', 'Group', 'System'],\r\n workObjects: ['Document', 'Folder', 'Call', 'Email', 'Conversation', 'Info'],\r\n};\r\n","import { ActivityCanvasObject } from '../Common/activityCanvasObject';\r\n\r\nexport class ActivityDialogData {\r\n activity: ActivityCanvasObject;\r\n numberIsAllowedMultipleTimes: boolean;\r\n showNumberFields: boolean;\r\n\r\n saveFN: any;\r\n\r\n constructor(\r\n activity: ActivityCanvasObject,\r\n numberIsAllowedMultipleTimes: boolean,\r\n showNumberFields: boolean,\r\n saveFN: any\r\n ) {\r\n this.activity = activity;\r\n this.numberIsAllowedMultipleTimes = numberIsAllowedMultipleTimes;\r\n this.showNumberFields = showNumberFields;\r\n this.saveFN = saveFN;\r\n }\r\n}\r\n","export class ExportDialogData {\r\n title: string;\r\n options: ExportOption[];\r\n\r\n constructor(title: string, options: ExportOption[]) {\r\n this.title = title;\r\n this.options = options;\r\n }\r\n}\r\n\r\nexport class ExportOption {\r\n text: string;\r\n fn: any;\r\n tooltip: string;\r\n\r\n constructor(text: string, tooltip: string, fn: any) {\r\n this.text = text;\r\n this.tooltip = tooltip;\r\n this.fn = fn;\r\n }\r\n}\r\n","export class InfoDialogData {\r\n title: string;\r\n infoText: string;\r\n isInfo: boolean;\r\n isLink: boolean;\r\n linkText: string | undefined;\r\n\r\n constructor(\r\n title: string,\r\n infoText: string,\r\n isInfo: boolean,\r\n isLink: boolean = false,\r\n linkText?: string\r\n ) {\r\n this.title = title;\r\n this.infoText = infoText;\r\n this.isInfo = isInfo;\r\n this.isLink = isLink;\r\n this.linkText = linkText;\r\n }\r\n}\r\n","export const NUMBER_BACKGROUND_COLOR = 'white';\r\nexport const NUMBER_COLOR = 'black';\r\nexport const STROKE_WIDTH = '1.5';\r\n\r\nexport const HIGHLIGHT_NUMBER_BACKGROUNG_COLOR = '#43acbf';\r\nexport const HIGHLIGHT_NUMBER_COLOR = 'black';\r\nexport const HIGHLIGHT_COLOR = 'black';\r\nexport const HIGHLIGHT_STROKE_WIDTH = '4';\r\n","import { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\r\n\r\nexport let appendedIcons = new Dictionary();\r\nexport const allIcons = {\r\n Person:\r\n '',\r\n Group:\r\n '',\r\n Pet: '',\r\n Conversation:\r\n '',\r\n World:\r\n '',\r\n Store:\r\n '',\r\n Theater:\r\n '',\r\n Business:\r\n '',\r\n Water:\r\n '',\r\n Hotel:\r\n '',\r\n Dining:\r\n '',\r\n 'Gas-station':\r\n '',\r\n 'Meeting-room':\r\n '',\r\n Courthouse:\r\n '',\r\n Flag: '',\r\n Place:\r\n '',\r\n Car: '',\r\n Bus: '',\r\n Train:\r\n '',\r\n Truck:\r\n '',\r\n Taxi: '',\r\n Bike: '',\r\n Boat: '',\r\n Motorcycle:\r\n '',\r\n Plane:\r\n '',\r\n 'Flight-takeoff':\r\n '',\r\n 'Flight-landing':\r\n '',\r\n Shuttle:\r\n '',\r\n Walking:\r\n '',\r\n Traffic:\r\n '',\r\n Commute:\r\n '',\r\n System:\r\n '',\r\n Printer:\r\n '',\r\n Document:\r\n '',\r\n Folder:\r\n '',\r\n Call: '',\r\n Email:\r\n '',\r\n Copyright:\r\n '',\r\n DNS: '',\r\n Settings:\r\n '',\r\n Cellphone:\r\n '',\r\n Update:\r\n '',\r\n Briefcase:\r\n '',\r\n Microphone:\r\n '',\r\n Signal:\r\n '',\r\n Key: '',\r\n Pencil:\r\n '',\r\n Sum: '',\r\n Headset:\r\n '',\r\n Keyboard:\r\n '',\r\n Mouse:\r\n '',\r\n Router:\r\n '',\r\n Scanner:\r\n '',\r\n Security:\r\n '',\r\n Desktop:\r\n '',\r\n 'Speaker-phone':\r\n '',\r\n Tablet:\r\n '',\r\n Label:\r\n '',\r\n Receipt:\r\n '',\r\n Calendar:\r\n '',\r\n Cloud:\r\n '',\r\n Assessment:\r\n '',\r\n Dashboard:\r\n '',\r\n 'Pie-chart':\r\n '',\r\n Problem:\r\n '',\r\n 'Picture-as-PDF':\r\n '',\r\n Grid: '',\r\n Watch:\r\n '',\r\n Euro: '',\r\n Dollar:\r\n '',\r\n Info: '',\r\n Alarm:\r\n '',\r\n Wrench:\r\n '',\r\n 'Circle-Arrows':\r\n '',\r\n 'Credit-Card':\r\n '',\r\n Favorite:\r\n '',\r\n Gavel:\r\n '',\r\n Blind:\r\n '',\r\n Hourglass:\r\n '',\r\n Time: '',\r\n Search:\r\n '',\r\n Shopping:\r\n '',\r\n 'Thumb-up':\r\n '',\r\n 'Thumb-down':\r\n '',\r\n 'Thumb-up-down':\r\n '',\r\n Couch:\r\n '',\r\n Attach:\r\n '',\r\n Ruler:\r\n '',\r\n Education:\r\n '',\r\n 'How-To-Reg':\r\n '',\r\n 'View-List':\r\n '',\r\n};\r\n\r\nexport function getAllStandardIconKeys(): string[] {\r\n const allIconsDict = new Dictionary();\r\n\r\n allIconsDict.addEach(allIcons);\r\n\r\n return allIconsDict.keysArray();\r\n}\r\n\r\nexport function overrideAppendedIcons(newIcons: Dictionary): void {\r\n appendedIcons = newIcons;\r\n}\r\n","export enum IconFilterEnum {\r\n ICON_FILTER_ACTOR = 'ICON_FILTER_ACTOR',\r\n ICON_FILTER_WORKOBJECT = 'ICON_FILTER_WORKOBJECT',\r\n ICON_FILTER_UNASSIGNED = 'ICON_FILTER_UNASSIGNED',\r\n ICON_FILTER_NONE = 'ICON_FILTER_NONE',\r\n}\r\n","export class ConfigAndDST {\r\n domain: any;\r\n dst: any;\r\n\r\n constructor(domain: any, dst: any) {\r\n this.domain = domain;\r\n this.dst = dst;\r\n }\r\n}\r\n\r\nexport const testConfigAndDst: ConfigAndDST = {\r\n domain: JSON.parse(\r\n '{\"name\":\"\",' +\r\n '\"actors\":{\"Person\":\"' +\r\n '' +\r\n '\",' +\r\n '\"Group\":\"' +\r\n '' +\r\n '\",' +\r\n '\"System\":\"' +\r\n '\"},' +\r\n '\"workObjects\":{\"Document\":\"' +\r\n '\",' +\r\n '\"Folder\":\"' +\r\n '' +\r\n '\",' +\r\n '\"Call\":\"' +\r\n '\",' +\r\n '\"Email\":\"' +\r\n '\",' +\r\n '\"Conversation\":\"' +\r\n '\",' +\r\n '\"Info\":\"' +\r\n '' +\r\n '\"}}'\r\n ),\r\n dst:\r\n '[' +\r\n '{\"type\":\"domainStory:workObjectDocument\",\"name\":\"\",\"id\":\"shape_3792\",\"$type\":\"Element\",\"di\":{},\"$descriptor\":{},\"pickedColor\":\"black\",\"x\":302,\"y\":102},' +\r\n '{\"type\":\"domainStory:actorPerson\",\"name\":\"\",\"id\":\"shape_4666\",\"$type\":\"Element\",\"di\":{},\"$descriptor\":{},\"pickedColor\":\"black\",\"x\":103,\"y\":93},' +\r\n '{\"type\":\"domainStory:activity\",\"name\":\"\",\"id\":\"connection_4884\",\"$type\":\"Element\",\"di\":{},\"$descriptor\":{},\"pickedColor\":\"black\",\"number\":1,' +\r\n '\"waypoints\":[{\"original\":{\"x\":141,\"y\":131},\"x\":186,\"y\":133},{\"original\":{\"x\":340,\"y\":140},\"x\":302,\"y\":138}],' +\r\n '\"source\":\"shape_4666\",\"target\":\"shape_3792\"}]',\r\n};\r\n","export const SVG_LINK = 'http://www.w3.org/2000/svg';\r\nexport const X_OFFSET_UTIL = '8';\r\nexport const TEXTSPAN_TITLE_HEIGHT = 30;\r\nexport const TEXTSPAN_DESCRIPTION_HEIGHT = 15;\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AutosaveSettingsComponent } from '../Presentation/Autosave/AutosaveSettings/autosave-settings.component';\r\nimport { AutosaveOptionsComponent } from '../Presentation/Autosave/AutosaveOptions/autosave-options.component';\r\nimport { AutosavedDraftsComponent } from '../Presentation/Autosave/AutosavedDrafts/autosaved-drafts.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MaterialModule } from '../material.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n AutosaveSettingsComponent,\r\n AutosaveOptionsComponent,\r\n AutosavedDraftsComponent,\r\n ],\r\n exports: [AutosaveSettingsComponent],\r\n imports: [CommonModule, FormsModule, MaterialModule],\r\n})\r\nexport class AutosaveSettingsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HeaderButtonsComponent } from '../Presentation/Header/header-buttons.component';\r\n\r\n@NgModule({\r\n declarations: [HeaderButtonsComponent],\r\n exports: [HeaderButtonsComponent],\r\n imports: [CommonModule],\r\n})\r\nexport class DomainStoryModelerModuleModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DomainConfigurationComponent } from 'src/app/Presentation/DomainConfiguration/domain-configuration.component';\r\nimport { IconListItemComponent } from '../Presentation/DomainConfiguration/icon-list-item/icon-list-item.component';\r\nimport { DetailsListItemComponent } from '../Presentation/DomainConfiguration/details-list-item/details-list-item.component';\r\nimport { DomainDetailsComponent } from '../Presentation/DomainConfiguration/domain-details/domain-details.component';\r\nimport { GeneralSettingsComponent } from '../Presentation/Settings/General/general-settings.component';\r\nimport { LabelDictionaryComponent } from '../Presentation/LabelDictionary/label-dictionary.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MaterialModule } from '../material.module';\r\nimport { AutosaveSettingsModule } from './autosave-settings.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n DomainConfigurationComponent,\r\n GeneralSettingsComponent,\r\n LabelDictionaryComponent,\r\n IconListItemComponent,\r\n DetailsListItemComponent,\r\n DomainDetailsComponent,\r\n ],\r\n exports: [\r\n GeneralSettingsComponent,\r\n DomainConfigurationComponent,\r\n LabelDictionaryComponent,\r\n ],\r\n imports: [AutosaveSettingsModule, CommonModule, FormsModule, MaterialModule],\r\n})\r\nexport class SettingsModule {}\r\n","import { Component } from '@angular/core';\r\nimport { AutosaveConfigurationService } from '../../../Service/Autosave/autosave-configuration.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport {\r\n SNACKBAR_DURATION,\r\n SNACKBAR_ERROR,\r\n SNACKBAR_SUCCESS,\r\n} from 'src/app/Domain/Common/constants';\r\n\r\n@Component({\r\n selector: 'app-autosave-options',\r\n templateUrl: './autosave-options.component.html',\r\n styleUrls: ['./autosave-options.component.scss'],\r\n})\r\nexport class AutosaveOptionsComponent {\r\n constructor(\r\n protected autosaveConfiguration: AutosaveConfigurationService,\r\n private snackbar: MatSnackBar\r\n ) {}\r\n\r\n save(activated: boolean, amount: number, interval: number) {\r\n if (\r\n this.autosaveConfiguration.setConfiguration({\r\n activated,\r\n amount,\r\n interval,\r\n })\r\n ) {\r\n this.snackbar.open('Settings for Autosave saved', undefined, {\r\n duration: SNACKBAR_DURATION,\r\n panelClass: SNACKBAR_SUCCESS,\r\n });\r\n } else {\r\n this.snackbar.open(\r\n 'Unable to save settings for Autosave - please try again',\r\n undefined,\r\n {\r\n duration: 2 * SNACKBAR_DURATION,\r\n panelClass: SNACKBAR_ERROR,\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n Autosave Options\r\n \r\n \r\n
\r\n \r\n Enabled\r\n
\r\n
\r\n Interval\r\n \r\n
\r\n
\r\n Amount\r\n \r\n
\r\n \r\n Apply\r\n \r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-autosave-settings',\r\n templateUrl: './autosave-settings.component.html',\r\n styleUrls: ['./autosave-settings.component.scss'],\r\n})\r\nexport class AutosaveSettingsComponent {}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AutosaveService } from '../../../Service/Autosave/autosave.service';\r\nimport { Draft } from '../../../Domain/Autosave/draft';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport {\r\n SNACKBAR_DURATION,\r\n SNACKBAR_SUCCESS,\r\n} from 'src/app/Domain/Common/constants';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-autosaved-drafts',\r\n templateUrl: './autosaved-drafts.component.html',\r\n styleUrls: ['./autosaved-drafts.component.scss'],\r\n})\r\nexport class AutosavedDraftsComponent implements OnInit {\r\n drafts: Draft[] = [];\r\n subscription: Subscription;\r\n\r\n constructor(\r\n private autosaveService: AutosaveService,\r\n private snackbar: MatSnackBar\r\n ) {\r\n this.subscription = this.autosaveService.autosavedDraftsChanged$.subscribe(\r\n () => this.initDrafts()\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initDrafts();\r\n }\r\n\r\n initDrafts() {\r\n this.drafts = this.autosaveService.loadCurrentDrafts();\r\n }\r\n\r\n loadDraft(draft: Draft): void {\r\n this.autosaveService.loadDraft(draft);\r\n this.snackbar.open('Draft loaded', undefined, {\r\n duration: SNACKBAR_DURATION,\r\n panelClass: SNACKBAR_SUCCESS,\r\n });\r\n }\r\n\r\n removeAllDrafts() {\r\n this.autosaveService.removeAllDrafts();\r\n }\r\n}\r\n","\r\n \r\n \r\n Autosaves \r\n \r\n {{ drafts.length ? drafts.length : \"no\" }}\r\n {{ drafts.length > 1 ? \"drafts\" : \"draft\" }} available\r\n \r\n \r\n
\r\n
\r\n
\r\n
{{ draft.title }}
\r\n
{{ draft.date }}
\r\n
\r\n \r\n Load Draft\r\n \r\n
\r\n
\r\n
\r\n \r\n Remove All Drafts\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\nNo drafts found.\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModelerService } from '../../Service/Modeler/modeler.service';\r\n\r\n@Component({\r\n selector: 'app-modeler',\r\n templateUrl: './modeler.component.html',\r\n styleUrls: ['./modeler.component.scss'],\r\n})\r\nexport class ModelerComponent implements OnInit {\r\n constructor(private modelerService: ModelerService) {}\r\n\r\n ngOnInit(): void {\r\n this.modelerService.postInit();\r\n }\r\n}\r\n","
\r\n","import { AfterViewInit, Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivityDialogData } from 'src/app/Domain/Dialog/activityDialogData';\r\nimport { ActivityCanvasObject } from '../../../Domain/Common/activityCanvasObject';\r\n\r\n@Component({\r\n selector: 'app-activity-dialog',\r\n templateUrl: './activity-dialog.component.html',\r\n styleUrls: ['./activity-dialog.component.scss'],\r\n})\r\nexport class ActivityDialogComponent {\r\n form: UntypedFormGroup;\r\n activityLabel: string;\r\n activityNumber: number | undefined;\r\n numberIsAllowedMultipleTimes: boolean;\r\n showNumberFields: boolean;\r\n activity: ActivityCanvasObject;\r\n\r\n saveFN: any;\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: ActivityDialogData\r\n ) {\r\n this.activity = data.activity;\r\n this.activityLabel = data.activity.businessObject.name;\r\n this.numberIsAllowedMultipleTimes = data.numberIsAllowedMultipleTimes;\r\n this.activityNumber = data.activity.businessObject.number;\r\n this.showNumberFields = data.showNumberFields;\r\n\r\n this.saveFN = data.saveFN;\r\n\r\n this.form = this.fb.group({\r\n activityLabel: [this.activityLabel, []],\r\n activityNumber: [this.activityNumber, []],\r\n multipleNumbers: [this.numberIsAllowedMultipleTimes, []],\r\n });\r\n }\r\n\r\n onSubmit(): void {\r\n this.numberIsAllowedMultipleTimes = !this.numberIsAllowedMultipleTimes;\r\n this.form.patchValue({\r\n multipleNumbers: this.numberIsAllowedMultipleTimes,\r\n });\r\n }\r\n\r\n save(): void {\r\n this.saveFN({\r\n activity: this.activity,\r\n ...this.form.value,\r\n });\r\n this.dialogRef.close();\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","\r\n

Edit Activity

\r\n
\r\n
\r\n \r\n Number\r\n \r\n \r\n \r\n multiple\r\n
\r\n \r\n Label\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ExportDialogData } from 'src/app/Domain/Dialog/exportDialogData';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\n\r\n@Component({\r\n selector: 'app-export-dialog',\r\n templateUrl: './export-dialog.component.html',\r\n styleUrls: ['./export-dialog.component.scss'],\r\n})\r\nexport class ExportDialogComponent implements OnInit {\r\n title: string;\r\n options: {\r\n text: string;\r\n tooltip: string;\r\n fn: any;\r\n }[];\r\n withTitle: BehaviorSubject;\r\n useWhiteBackground: BehaviorSubject;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: ExportDialogData\r\n ) {\r\n this.withTitle = new BehaviorSubject(true);\r\n this.useWhiteBackground = new BehaviorSubject(true);\r\n this.title = data.title;\r\n this.options = data.options;\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n doOption(i: number): void {\r\n this.options[i].fn(this.withTitle.value, this.useWhiteBackground.value);\r\n this.close();\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n updateWithTitle($event: Event) {\r\n // @ts-ignore\r\n this.withTitle.next($event.target.checked);\r\n }\r\n\r\n updateUseWhiteBackground($event: Event) {\r\n // @ts-ignore\r\n this.useWhiteBackground.next($event.target.checked);\r\n }\r\n}\r\n","\r\n

{{ title }}

\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n {{ option.text }}\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { TitleService } from 'src/app/Service/Title/title.service';\r\n\r\n@Component({\r\n selector: 'app-header-dialog',\r\n templateUrl: './header-dialog.component.html',\r\n styleUrls: ['./header-dialog.component.scss'],\r\n})\r\nexport class HeaderDialogComponent implements OnInit {\r\n form: UntypedFormGroup;\r\n title: string;\r\n description: string;\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private dialogRef: MatDialogRef,\r\n private titleService: TitleService\r\n ) {\r\n this.title =\r\n this.titleService.getTitle() === '< name of this Domain Story >'\r\n ? ''\r\n : this.titleService.getTitle();\r\n this.description = this.titleService.getDescription();\r\n\r\n this.form = this.fb.group({\r\n title: [this.title, []],\r\n description: [this.description, []],\r\n });\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n save(): void {\r\n this.titleService.updateTitleAndDescription(\r\n this.form.get('title')?.value,\r\n this.form.get('description')?.value,\r\n true\r\n );\r\n this.dialogRef.close();\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","\r\n
\r\n \r\n Title\r\n \r\n \r\n
\r\n \r\n Description\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n\r\n","import { AfterViewInit, Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { InfoDialogData } from 'src/app/Domain/Dialog/infoDialogData';\r\n\r\n@Component({\r\n selector: 'app-info-dialog',\r\n templateUrl: './info-dialog.component.html',\r\n styleUrls: ['./info-dialog.component.scss'],\r\n})\r\nexport class InfoDialogComponent implements AfterViewInit {\r\n title: string;\r\n infoText: string;\r\n showConfirmButton: boolean;\r\n hasLink: boolean;\r\n linkText: string;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: InfoDialogData\r\n ) {\r\n this.title = data.title;\r\n this.infoText = data.infoText;\r\n this.showConfirmButton = !data.isInfo;\r\n this.hasLink = data.isLink;\r\n this.linkText = data.linkText || '';\r\n }\r\n\r\n ngAfterViewInit() {\r\n const span = document.getElementsByClassName(\r\n 'readOnlyText'\r\n )[0] as HTMLTextAreaElement;\r\n span.style.height = span.scrollHeight + 'px';\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","\r\n

{{ title }}

\r\n {{ infoText }} \r\n {{ linkText }}\r\n
\r\n\r\n\r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-label-dictionary-dialog',\r\n templateUrl: './label-dictionary-dialog.component.html',\r\n styleUrls: ['./label-dictionary-dialog.component.scss'],\r\n})\r\nexport class LabelDictionaryDialogComponent {\r\n constructor(\r\n private dialogRef: MatDialogRef\r\n ) {}\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","\r\n

Label Dictionary

\r\n \r\n
\r\n","import { AfterViewChecked, Component, Input } from '@angular/core';\r\nimport { IconListItem } from '../../../Domain/Domain-Configuration/iconListItem';\r\n\r\n@Component({\r\n selector: 'app-details-list-item',\r\n templateUrl: './details-list-item.component.html',\r\n styleUrls: ['./details-list-item.component.scss'],\r\n})\r\nexport class DetailsListItemComponent implements AfterViewChecked {\r\n @Input()\r\n icon!: IconListItem;\r\n\r\n private iconInitiated = false;\r\n\r\n get id(): string {\r\n return (\r\n 'domain-configuration-details-icon-' +\r\n this.icon.name.toLowerCase() +\r\n '-' +\r\n (this.icon.isWorkObject ? 'workobject' : 'actor')\r\n );\r\n }\r\n\r\n get name(): string {\r\n return this.icon.name;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.createIcon();\r\n }\r\n\r\n private createIcon(): void {\r\n const img = document.getElementById(this.id) as HTMLImageElement;\r\n if (img && !this.iconInitiated) {\r\n img.src = '' + this.icon.svg;\r\n this.iconInitiated = true;\r\n }\r\n }\r\n}\r\n","
\r\n \"{{\r\n {{ icon.name }}\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport {\r\n CustomDomainConfiguration,\r\n fromConfigurationFromFile,\r\n} from 'src/app/Domain/Common/domainConfiguration';\r\nimport { DomainConfigurationService } from 'src/app/Service/DomainConfiguration/domain-configuration.service';\r\nimport { IconDictionaryService } from 'src/app/Service/DomainConfiguration/icon-dictionary.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\r\nimport { sanitizeIconName } from 'src/app/Utils/sanitizer';\r\nimport { IconFilterEnum } from '../../Domain/Domain-Configuration/iconFilterEnum';\r\nimport { DomainCustomizationService } from '../../Service/DomainConfiguration/domain-customization.service';\r\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\r\n\r\n@Component({\r\n selector: 'app-domain-configuration',\r\n templateUrl: './domain-configuration.component.html',\r\n styleUrls: ['./domain-configuration.component.scss'],\r\n})\r\nexport class DomainConfigurationComponent implements OnInit {\r\n private domainConfigurationTypes: CustomDomainConfiguration;\r\n\r\n filter = new BehaviorSubject(IconFilterEnum.ICON_FILTER_NONE);\r\n\r\n selectedActors = new BehaviorSubject([]);\r\n selectedWorkobjects = new BehaviorSubject([]);\r\n\r\n allIcons: BehaviorSubject;\r\n allIconNames = new BehaviorSubject([]);\r\n allFilteredIconNames = new BehaviorSubject([]);\r\n\r\n constructor(\r\n private configurationService: DomainConfigurationService,\r\n private iconDictionaryService: IconDictionaryService,\r\n private domainCustomizationService: DomainCustomizationService,\r\n private elementRegistryService: ElementRegistryService\r\n ) {\r\n this.domainConfigurationTypes =\r\n this.domainCustomizationService.getDomainConfiguration().value;\r\n\r\n this.allIcons = new BehaviorSubject(\r\n this.iconDictionaryService.getFullDictionary()\r\n );\r\n this.allIcons.subscribe((allIcons) => {\r\n this.allIconNames.next(allIcons.keysArray().sort(this.sortByName));\r\n });\r\n\r\n this.selectedActors = this.domainCustomizationService.selectedActors$;\r\n this.selectedWorkobjects =\r\n this.domainCustomizationService.selectedWorkobjects$;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.filter.subscribe((type) => {\r\n let allFiltered = this.getFilteredNamesForType(type);\r\n this.allFilteredIconNames.next(allFiltered.sort(this.sortByName));\r\n });\r\n }\r\n\r\n private sortByName(a: string, b: string): number {\r\n if (a.includes('_custom') == b.includes('_custom')) {\r\n if (a < b) return -1;\r\n else {\r\n return 1;\r\n }\r\n } else {\r\n if (a.includes('_custom')) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n }\r\n\r\n /** Default Domain **/\r\n loadMinimalIconConfigurationWithDefaultIcons(): void {\r\n this.domainCustomizationService.resetDomain();\r\n }\r\n\r\n loadInitialConfiguration(): void {\r\n this.domainCustomizationService.cancel();\r\n }\r\n\r\n /** Persist Domain **/\r\n saveDomain(): void {\r\n this.domainCustomizationService.saveDomain(\r\n this.elementRegistryService.getUsedIcons()\r\n );\r\n }\r\n\r\n exportDomain(): void {\r\n this.domainCustomizationService.exportDomain();\r\n }\r\n\r\n /** Add Custom Icon **/\r\n startIconUpload(): void {\r\n document.getElementById('importIcon')?.click();\r\n }\r\n\r\n importIcon(): void {\r\n // @ts-ignore\r\n const files = document.getElementById('importIcon').files;\r\n for (let iconInputFile of files) {\r\n const reader = new FileReader();\r\n const name = sanitizeIconName(iconInputFile.name);\r\n const iconName = name + '_custom';\r\n\r\n reader.onloadend = (e: ProgressEvent) => {\r\n if (e.target) {\r\n const src: string = e.target.result as unknown as string;\r\n this.iconDictionaryService.addIMGToIconDictionary(src, iconName);\r\n this.iconDictionaryService.registerIconForBPMN(iconName, src);\r\n\r\n this.allIcons.next(this.iconDictionaryService.getFullDictionary());\r\n this.filter.next(this.filter.value);\r\n\r\n this.domainCustomizationService.addNewIcon(iconName);\r\n }\r\n };\r\n reader.readAsDataURL(iconInputFile);\r\n }\r\n }\r\n\r\n /** Import Domain **/\r\n startDomainImport(): void {\r\n document.getElementById('importDomain')?.click();\r\n }\r\n\r\n importDomain(): void {\r\n // @ts-ignore\r\n const domainInputFile = document.getElementById('importDomain').files[0];\r\n const reader = new FileReader();\r\n\r\n reader.onloadend = (e: ProgressEvent) => {\r\n const configFromFile = JSON.parse(\r\n e.target?.result as unknown as string\r\n ) as {\r\n name: string;\r\n actors: { [key: string]: any };\r\n workObjects: { [key: string]: any };\r\n };\r\n const config = fromConfigurationFromFile(configFromFile);\r\n this.configurationService.loadConfiguration(config, false);\r\n\r\n this.domainCustomizationService.importConfiguration(config);\r\n };\r\n\r\n reader.readAsText(domainInputFile);\r\n }\r\n\r\n /** Filter **/\r\n filterForActors(): void {\r\n if (this.filter.value !== IconFilterEnum.ICON_FILTER_ACTOR) {\r\n this.filter.next(IconFilterEnum.ICON_FILTER_ACTOR);\r\n } else {\r\n this.filter.next(IconFilterEnum.ICON_FILTER_NONE);\r\n }\r\n }\r\n\r\n filterForWorkobjects(): void {\r\n if (this.filter.value !== IconFilterEnum.ICON_FILTER_WORKOBJECT) {\r\n this.filter.next(IconFilterEnum.ICON_FILTER_WORKOBJECT);\r\n } else {\r\n this.filter.next(IconFilterEnum.ICON_FILTER_NONE);\r\n }\r\n }\r\n\r\n filterForUnassigned(): void {\r\n if (this.filter.value !== IconFilterEnum.ICON_FILTER_UNASSIGNED) {\r\n this.filter.next(IconFilterEnum.ICON_FILTER_UNASSIGNED);\r\n } else {\r\n this.filter.next(IconFilterEnum.ICON_FILTER_NONE);\r\n }\r\n }\r\n\r\n filterByNameAndType($event: any) {\r\n const filteredByNameAndType = this.getFilteredNamesForType(\r\n this.filter.value\r\n ).filter((name) =>\r\n name.toLowerCase().includes($event.target.value.toLowerCase())\r\n );\r\n this.allFilteredIconNames.next(filteredByNameAndType.sort(this.sortByName));\r\n }\r\n\r\n private getFilteredNamesForType(type: IconFilterEnum): string[] {\r\n let allFiltered: string[] = [];\r\n switch (type) {\r\n case IconFilterEnum.ICON_FILTER_NONE:\r\n allFiltered = this.allIconNames.value;\r\n break;\r\n case IconFilterEnum.ICON_FILTER_ACTOR:\r\n allFiltered = this.allIconNames.value.filter((name) =>\r\n this.domainCustomizationService.isIconActor(name)\r\n );\r\n break;\r\n case IconFilterEnum.ICON_FILTER_WORKOBJECT:\r\n allFiltered = this.allIconNames.value.filter((name) =>\r\n this.domainCustomizationService.isIconWorkObject(name)\r\n );\r\n break;\r\n case IconFilterEnum.ICON_FILTER_UNASSIGNED:\r\n allFiltered = this.allIconNames.value.filter(\r\n (name) =>\r\n !this.domainCustomizationService.isIconActor(name) &&\r\n !this.domainCustomizationService.isIconWorkObject(name)\r\n );\r\n break;\r\n }\r\n return allFiltered;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n home \r\n \r\n
\r\n
\r\n
\r\n
Filter:
\r\n \r\n None\r\n \r\n
\r\n \r\n Actors\r\n \r\n
\r\n \r\n Workobjects\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n unarchive\r\n \r\n \r\n
\r\n \r\n close\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n","
\r\n
\r\n

Icon Set name

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

Order of actors

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

Order of work objects

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DomainCustomizationService } from 'src/app/Service/DomainConfiguration/domain-customization.service';\r\nimport { IconListItem } from 'src/app/Domain/Domain-Configuration/iconListItem';\r\nimport { TitleService } from 'src/app/Service/Title/title.service';\r\n\r\n@Component({\r\n selector: 'app-domain-details',\r\n templateUrl: './domain-details.component.html',\r\n styleUrls: ['./domain-details.component.scss'],\r\n})\r\nexport class DomainDetailsComponent implements OnInit {\r\n domainName: Observable;\r\n\r\n private draggedList: string = '';\r\n private draggedIndex = 0;\r\n\r\n selectedActors$ = this.customizationService.selectedActors$;\r\n selectedWorkobjects$ = this.customizationService.selectedWorkobjects$;\r\n\r\n constructor(\r\n private customizationService: DomainCustomizationService,\r\n titleService: TitleService\r\n ) {\r\n this.domainName = titleService.domainName$;\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n changeName(event: Event): void {\r\n // @ts-ignore\r\n this.customizationService.changeName(event.target.value);\r\n }\r\n\r\n getIconForName(iconName: string): IconListItem {\r\n return this.customizationService.getIconForName(iconName).value;\r\n }\r\n\r\n allowDrop($event: DragEvent, listName: string) {\r\n if (this.draggedList === listName) {\r\n $event.preventDefault();\r\n }\r\n }\r\n\r\n onDrop($event: DragEvent, iconName: string, actors: boolean, index: number) {\r\n let list;\r\n if (actors) {\r\n list = this.selectedActors$;\r\n } else {\r\n list = this.selectedWorkobjects$;\r\n }\r\n const sortedList = list.value;\r\n const item = sortedList[this.draggedIndex];\r\n sortedList.splice(this.draggedIndex, 1);\r\n sortedList.splice(index, 0, item);\r\n list.next(sortedList);\r\n\r\n if (actors) {\r\n this.customizationService.setSelectedActors(sortedList);\r\n } else {\r\n this.customizationService.setSelectedWorkObject(sortedList);\r\n }\r\n }\r\n\r\n onDragStart(index: number, draggedList: string) {\r\n this.draggedList = draggedList;\r\n this.draggedIndex = index;\r\n }\r\n}\r\n","import { AfterViewChecked, Component, Input, OnInit } from '@angular/core';\r\nimport { IconListItem } from '../../../Domain/Domain-Configuration/iconListItem';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DomainCustomizationService } from '../../../Service/DomainConfiguration/domain-customization.service';\r\n\r\n@Component({\r\n selector: 'app-icon-list-item',\r\n templateUrl: './icon-list-item.component.html',\r\n styleUrls: ['./icon-list-item.component.scss'],\r\n})\r\nexport class IconListItemComponent implements OnInit, AfterViewChecked {\r\n @Input()\r\n iconName: string = '';\r\n\r\n private iconInitiated = false;\r\n\r\n // @ts-ignore\r\n icon = new BehaviorSubject({});\r\n\r\n isActor: BehaviorSubject;\r\n isWorkobject: BehaviorSubject;\r\n isNone: BehaviorSubject;\r\n\r\n get name(): string {\r\n return this.iconName;\r\n }\r\n\r\n get id() {\r\n return 'domain-configuration-icon-' + this.iconName;\r\n }\r\n\r\n constructor(private domainCustomizationService: DomainCustomizationService) {\r\n this.isActor = new BehaviorSubject(false);\r\n this.isWorkobject = new BehaviorSubject(false);\r\n this.isNone = new BehaviorSubject(true);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.icon = this.domainCustomizationService.getIconForName(this.iconName);\r\n this.icon.subscribe((value) => {\r\n this.isActor.next(value.isActor);\r\n this.isWorkobject.next(value.isWorkObject);\r\n this.isNone.next(!(value.isActor || value.isWorkObject));\r\n });\r\n this.isActor.next(this.icon.value.isActor);\r\n this.isWorkobject.next(this.icon.value.isWorkObject);\r\n this.isNone.next(\r\n !(this.icon.value.isActor || this.icon.value.isWorkObject)\r\n );\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.createIcon();\r\n }\r\n\r\n private createIcon(): void {\r\n const img = document.getElementById(this.id) as HTMLImageElement;\r\n if (img && !this.iconInitiated) {\r\n img.src = '' + this.icon.value?.svg;\r\n this.iconInitiated = true;\r\n }\r\n }\r\n\r\n toggleNone() {\r\n this.domainCustomizationService.setAsUnassigned(\r\n this.iconName,\r\n this.icon.value.isActor\r\n );\r\n }\r\n\r\n toggleActor(): void {\r\n this.domainCustomizationService.setAsActor(true, this.iconName);\r\n }\r\n\r\n toggleWorkobject(): void {\r\n this.domainCustomizationService.setAsWorkobject(true, this.iconName);\r\n }\r\n}\r\n","
\r\n
\r\n \"{{\r\n
{{ name }}
\r\n
\r\n
\r\n \r\n \r\n None\r\n \r\n \r\n Actor\r\n \r\n \r\n Workobject\r\n \r\n \r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { SettingsService } from '../../Service/Settings/settings.service';\r\nimport { TitleService } from '../../Service/Title/title.service';\r\nimport { ModelerService } from '../../Service/Modeler/modeler.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ReplayStateService } from '../../Service/Replay/replay-state.service';\r\nimport { DirtyFlagService } from '../../Service/DirtyFlag/dirty-flag.service';\r\nimport {\r\n ExportDialogData,\r\n ExportOption,\r\n} from '../../Domain/Dialog/exportDialogData';\r\nimport { MatDialogConfig } from '@angular/material/dialog';\r\nimport { ExportDialogComponent } from '../Dialog/export-dialog/export-dialog.component';\r\nimport { InfoDialogData } from '../../Domain/Dialog/infoDialogData';\r\nimport { InfoDialogComponent } from '../Dialog/info-dialog/info-dialog.component';\r\nimport { DialogService } from '../../Service/Dialog/dialog.service';\r\nimport { ReplayService } from '../../Service/Replay/replay.service';\r\nimport { ExportService } from '../../Service/Export/export.service';\r\nimport { ImportDomainStoryService } from '../../Service/Import/import-domain-story.service';\r\nimport { LabelDictionaryDialogComponent } from '../Dialog/label-dictionary-dialog/label-dictionary-dialog.component';\r\nimport { HeaderDialogComponent } from '../Dialog/header-dialog/header-dialog.component';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport {\r\n SNACKBAR_DURATION,\r\n SNACKBAR_INFO,\r\n} from '../../Domain/Common/constants';\r\n\r\n@Component({\r\n selector: 'app-header-buttons',\r\n templateUrl: './header-buttons.component.html',\r\n styleUrls: ['./header-buttons.component.scss'],\r\n})\r\nexport class HeaderButtonsComponent {\r\n isReplay$: Observable;\r\n isDirty$: Observable;\r\n\r\n showDescription: Observable;\r\n\r\n constructor(\r\n private settingsService: SettingsService,\r\n private titleService: TitleService,\r\n private modelerService: ModelerService,\r\n private replayStateService: ReplayStateService,\r\n private dirtyFlagService: DirtyFlagService,\r\n private dialogService: DialogService,\r\n private replayService: ReplayService,\r\n private exportService: ExportService,\r\n private importService: ImportDomainStoryService,\r\n private snackbar: MatSnackBar\r\n ) {\r\n this.isReplay$ = this.replayStateService.replayOn$;\r\n this.isDirty$ = this.dirtyFlagService.dirty$;\r\n this.showDescription = this.titleService.showDescription$;\r\n }\r\n import(): void {\r\n // @ts-ignore\r\n const filename = document.getElementById('import').files[0].name;\r\n if (filename.endsWith('.dst')) {\r\n this.importService.importDST(\r\n // @ts-ignore\r\n document.getElementById('import').files[0],\r\n filename,\r\n false\r\n );\r\n } else if (filename.endsWith('.dst.svg')) {\r\n this.importService.importDST(\r\n // @ts-ignore\r\n document.getElementById('import').files[0],\r\n filename,\r\n true\r\n );\r\n } else if (filename.endsWith('.egn')) {\r\n this.importService.importEGN(\r\n // @ts-ignore\r\n document.getElementById('import').files[0],\r\n filename,\r\n false\r\n );\r\n } else if (filename.endsWith('.egn.svg')) {\r\n this.importService.importEGN(\r\n // @ts-ignore\r\n document.getElementById('import').files[0],\r\n filename,\r\n true\r\n );\r\n }\r\n this.modelerService.commandStackChanged();\r\n }\r\n\r\n setShowDescription(show: boolean): void {\r\n this.titleService.setShowDescription(show);\r\n }\r\n\r\n openSettings(): void {\r\n this.settingsService.open();\r\n }\r\n\r\n /** Open Dialogs **/\r\n openDownloadDialog(): void {\r\n if (this.exportService.isDomainStoryExportable()) {\r\n const SVGDownloadOption = new ExportOption(\r\n 'SVG',\r\n 'Download an SVG-Image with the Domain-Story embedded. Can be used to save and share your Domain-Story.',\r\n (withTitle: boolean, useWhiteBackground: boolean) => this.exportService.downloadSVG(withTitle, useWhiteBackground)\r\n );\r\n const EGNDownloadOption = new ExportOption(\r\n 'EGN',\r\n 'Download an EGN-File with the Domain-Story. Can be used to save and share your Domain-Story.',\r\n (withTitle: boolean, useWhiteBackground: boolean) => this.exportService.downloadDST()\r\n );\r\n const PNGDownloadOption = new ExportOption(\r\n 'PNG',\r\n 'Donwload a PNG-Image of the DOmain-Story. This does not include the Domain-Story!',\r\n (withTitle: boolean, useWhiteBackground: boolean) => this.exportService.downloadPNG(withTitle)\r\n );\r\n const HTMLDownloadOption = new ExportOption(\r\n 'HTML-Presentation',\r\n 'Download an HTML-Presentation. This does not include the Domain-Story!',\r\n (withTitle: boolean, useWhiteBackground: boolean) => this.exportService.downloadHTMLPresentation()\r\n );\r\n\r\n const config = new MatDialogConfig();\r\n config.disableClose = false;\r\n config.autoFocus = true;\r\n config.data = new ExportDialogData('Export', [\r\n SVGDownloadOption,\r\n EGNDownloadOption,\r\n PNGDownloadOption,\r\n HTMLDownloadOption,\r\n ]);\r\n\r\n this.dialogService.openDialog(ExportDialogComponent, config);\r\n } else {\r\n this.snackbar.open('No Domain Story to be exported', undefined, {\r\n duration: SNACKBAR_DURATION,\r\n panelClass: SNACKBAR_INFO,\r\n });\r\n }\r\n }\r\n\r\n openHeaderDialog(): void {\r\n const config = new MatDialogConfig();\r\n config.disableClose = false;\r\n config.autoFocus = true;\r\n this.dialogService.openDialog(HeaderDialogComponent, config);\r\n }\r\n\r\n openKeyboardShortcutsDialog(): void {\r\n const title = 'Keyboard shortcuts';\r\n const shortCutText =\r\n 'Undo:\\t\\t\\t\\t\\tctrl + Z \\n' +\r\n 'Redo:\\t\\t\\t\\t\\tctrl + Y OR ctrl + shift + Z\\n' +\r\n 'Select All:\\t\\t\\t\\tctrl + A\\n' +\r\n 'Export as DST:\\t\\t\\tctrl + S\\n' +\r\n 'Import Domain Story: \\tctrl + L\\n' +\r\n 'Search for text:\\t\\t\\tctrl + F\\n' +\r\n 'Direct editing:\\t\\t\\tE\\n' +\r\n 'Hand tool:\\t\\t\\t\\tH\\n' +\r\n 'Lasso tool:\\t\\t\\t\\tL\\n' +\r\n 'Space tool:\\t\\t\\t\\tS';\r\n\r\n const config = new MatDialogConfig();\r\n config.disableClose = false;\r\n config.autoFocus = true;\r\n\r\n config.data = new InfoDialogData(title, shortCutText, true);\r\n\r\n this.dialogService.openDialog(InfoDialogComponent, config);\r\n }\r\n\r\n openLabelDictionary(): void {\r\n if (this.exportService.isDomainStoryExportable()) {\r\n const config = new MatDialogConfig();\r\n config.disableClose = false;\r\n config.autoFocus = true;\r\n\r\n this.dialogService.openDialog(LabelDictionaryDialogComponent, config);\r\n } else {\r\n this.snackbar.open(\r\n 'There are currently no Elements on the canvas',\r\n undefined,\r\n {\r\n duration: SNACKBAR_DURATION,\r\n panelClass: SNACKBAR_INFO,\r\n }\r\n );\r\n }\r\n }\r\n\r\n /** Replay functions **/\r\n startReplay(): void {\r\n this.replayService.startReplay();\r\n }\r\n\r\n stopReplay(): void {\r\n this.replayService.stopReplay();\r\n }\r\n\r\n previousStep(): void {\r\n this.replayService.previousStep();\r\n }\r\n\r\n nextStep(): void {\r\n this.replayService.nextStep();\r\n }\r\n}\r\n","
\r\n \r\n edit \r\n \r\n \r\n \r\n spellcheck\r\n \r\n \r\n \r\n unarchive \r\n \r\n \r\n \r\n \r\n archive\r\n \r\n \r\n archive\r\n \r\n \r\n \r\n play_arrow \r\n \r\n \r\n info \r\n \r\n\r\n \r\n\r\n \r\n expand_less \r\n \r\n \r\n expand_more\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n expand_less \r\n \r\n \r\n expand_more\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { combineLatest, map, Observable } from 'rxjs';\r\nimport { TitleService } from '../../Service/Title/title.service';\r\nimport { ReplayService } from '../../Service/Replay/replay.service';\r\nimport { ReplayStateService } from '../../Service/Replay/replay-state.service';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n})\r\nexport class HeaderComponent {\r\n title$ = this.titleService.title$;\r\n description$ = this.titleService.description$;\r\n showDescription$ = this.titleService.showDescription$;\r\n currentDomainName$ = this.titleService.domainName$;\r\n\r\n isReplay$: Observable;\r\n stepDescription$: Observable;\r\n\r\n mouseOver = false;\r\n\r\n constructor(\r\n private titleService: TitleService,\r\n private replayService: ReplayService,\r\n private replayStateService: ReplayStateService\r\n ) {\r\n this.isReplay$ = this.replayStateService.replayOn$;\r\n\r\n this.stepDescription$ = combineLatest([\r\n this.replayService.currentStep$,\r\n this.replayService.maxStepNumber$,\r\n ]).pipe(map(([step, count]) => `${step}/${count}`));\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ title$ | async }} \r\n \r\n {{ currentDomainName$ | async }} \r\n \r\n \r\n Step: {{ stepDescription$ | async }}\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n {{ description$ | async }}\r\n\r\n","import { AfterViewInit, Component, EventEmitter, Output } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { WorkObjectLabelEntry } from '../../Domain/LabelDictionary/workObjectLabelEntry';\r\nimport { LabelEntry } from '../../Domain/LabelDictionary/labelEntry';\r\nimport { LabelDictionaryService } from '../../Service/LabelDictionary/label-dictionary.service';\r\n\r\n@Component({\r\n selector: 'app-label-dictionary',\r\n templateUrl: './label-dictionary.component.html',\r\n styleUrls: ['./label-dictionary.component.scss'],\r\n})\r\nexport class LabelDictionaryComponent implements AfterViewInit {\r\n workobjectEntriesSubject: BehaviorSubject;\r\n activityEntriesSubject: BehaviorSubject;\r\n\r\n workObjectEntries: WorkObjectLabelEntry[];\r\n activityEntries: LabelEntry[];\r\n\r\n @Output()\r\n closeEmitter: EventEmitter = new EventEmitter();\r\n\r\n constructor(private labelDictionaryService: LabelDictionaryService) {\r\n this.labelDictionaryService.createLabelDictionaries();\r\n this.workObjectEntries = this.labelDictionaryService.getWorkObjectLabels();\r\n this.activityEntries = this.labelDictionaryService.getActivityLabels();\r\n\r\n this.workobjectEntriesSubject = new BehaviorSubject(this.workObjectEntries);\r\n this.activityEntriesSubject = new BehaviorSubject(this.activityEntries);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.labelDictionaryService.createLabelDictionaries();\r\n this.workobjectEntriesSubject.next(\r\n this.labelDictionaryService.getWorkObjectLabels()\r\n );\r\n this.activityEntriesSubject.next(\r\n this.labelDictionaryService.getActivityLabels()\r\n );\r\n }\r\n\r\n save(): void {\r\n this.workObjectEntries = this.workobjectEntriesSubject.value;\r\n this.activityEntries = this.activityEntriesSubject.value;\r\n\r\n const activityNames: string[] = [];\r\n const originalActivityNames: string[] = [];\r\n\r\n const workObjectNames: string[] = [];\r\n const originalWorkObjectNames: string[] = [];\r\n\r\n this.activityEntries\r\n .filter((a) => a.name !== a.originalName)\r\n .forEach((activity) => {\r\n activityNames.push(activity.name);\r\n originalActivityNames.push(activity.originalName);\r\n });\r\n\r\n this.workObjectEntries\r\n .filter((w) => w.name !== w.originalName)\r\n .forEach((workobject) => {\r\n workObjectNames.push(workobject.name);\r\n originalWorkObjectNames.push(workobject.originalName);\r\n });\r\n\r\n this.labelDictionaryService.massRenameLabels(\r\n activityNames,\r\n originalActivityNames,\r\n workObjectNames,\r\n originalWorkObjectNames\r\n );\r\n this.closeEmitter.emit();\r\n }\r\n\r\n cancel(): void {\r\n this.workObjectEntries.forEach((w) => {\r\n w.name = w.originalName;\r\n });\r\n this.activityEntries.forEach((a) => {\r\n a.name = a.originalName;\r\n });\r\n\r\n this.workobjectEntriesSubject.next(this.workObjectEntries);\r\n this.activityEntriesSubject.next(this.activityEntries);\r\n }\r\n\r\n updateActivityEntry($event: Event, activityEntry: LabelEntry) {\r\n let entries = this.activityEntriesSubject.value;\r\n entries.filter(\r\n (e) => e.originalName === activityEntry.originalName\r\n // @ts-ignore\r\n )[0].name = $event.target.value;\r\n this.activityEntriesSubject.next(entries);\r\n }\r\n\r\n updateWorkobjectEntry($event: Event, workobjectEntry: LabelEntry) {\r\n let entries = this.workobjectEntriesSubject.value;\r\n entries.filter(\r\n (e) => e.originalName === workobjectEntry.originalName\r\n // @ts-ignore\r\n )[0].name = $event.target.value;\r\n this.workobjectEntriesSubject.next(entries);\r\n }\r\n}\r\n","
\r\n
\r\n

Workobjects

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

Activities

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n library_books\r\n update Dictionaries\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-general-settings',\r\n templateUrl: './general-settings.component.html',\r\n styleUrls: ['./general-settings.component.scss'],\r\n})\r\nexport class GeneralSettingsComponent {}\r\n","
\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { SettingsService } from 'src/app/Service/Settings/settings.service';\r\nimport { ModelerService } from 'src/app/Service/Modeler/modeler.service';\r\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { AutosaveConfigurationService } from '../../Service/Autosave/autosave-configuration.service';\r\nimport { DomainCustomizationService } from '../../Service/DomainConfiguration/domain-customization.service';\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.scss'],\r\n})\r\nexport class SettingsComponent {\r\n domainConfiguration: DomainConfiguration | undefined;\r\n showGeneralSettings = new BehaviorSubject(false);\r\n showDomainCustomization = new BehaviorSubject(true);\r\n\r\n constructor(\r\n private settingsService: SettingsService,\r\n private modelerService: ModelerService,\r\n private domainCustomizationService: DomainCustomizationService\r\n ) {}\r\n\r\n close(): void {\r\n const savedConfiguration =\r\n this.domainCustomizationService.getAndClearSavedConfiguration();\r\n if (savedConfiguration) {\r\n this.modelerService.restart(savedConfiguration);\r\n }\r\n this.settingsService.close();\r\n }\r\n\r\n openGeneralSettings() {\r\n this.showGeneralSettings.next(true);\r\n this.showDomainCustomization.next(false);\r\n }\r\n\r\n openDomainCustomization() {\r\n this.showGeneralSettings.next(false);\r\n this.showDomainCustomization.next(true);\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n \r\n Customize Icons for Your Domain\r\n \r\n \r\n General Settings\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { StorageService } from '../BrowserStorage/storage.service';\r\nimport { AutosaveConfiguration } from '../../Domain/Autosave/autosave-configuration';\r\nimport {\r\n DEFAULT_AUTOSAVES_AMOUNT,\r\n DEFAULT_AUTOSAVES_INTERVAL,\r\n} from 'src/app/Domain/Common/constants';\r\n\r\nconst AUTOSAVE_CONFIGURATION_TAG = 'autosaveConfiguration';\r\n\r\nconst defaultConfiguration: AutosaveConfiguration = {\r\n activated: false,\r\n interval: DEFAULT_AUTOSAVES_INTERVAL,\r\n amount: DEFAULT_AUTOSAVES_AMOUNT,\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AutosaveConfigurationService {\r\n private configuration = defaultConfiguration;\r\n\r\n private readonly configurationSubject =\r\n new ReplaySubject(1);\r\n readonly configuration$ = this.configurationSubject.asObservable();\r\n\r\n constructor(private storageService: StorageService) {\r\n this.initializeConfiguration();\r\n }\r\n\r\n private initializeConfiguration() {\r\n this.loadConfiguration();\r\n this.configurationSubject.next(this.configuration);\r\n }\r\n\r\n setConfiguration(configuration: AutosaveConfiguration): boolean {\r\n try {\r\n this.configuration = configuration;\r\n this.saveConfiguration();\r\n this.configurationSubject.next(configuration);\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n private loadConfiguration() {\r\n this.configuration =\r\n this.storageService.get(AUTOSAVE_CONFIGURATION_TAG) ??\r\n defaultConfiguration;\r\n }\r\n\r\n private saveConfiguration() {\r\n this.storageService.set(AUTOSAVE_CONFIGURATION_TAG, this.configuration);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RendererService } from '../Renderer/renderer.service';\r\nimport { ExportService } from '../Export/export.service';\r\nimport { Draft } from '../../Domain/Autosave/draft';\r\nimport { AutosaveConfigurationService } from './autosave-configuration.service';\r\nimport { IconDictionaryService } from '../DomainConfiguration/icon-dictionary.service';\r\nimport { elementTypes } from '../../Domain/Common/elementTypes';\r\nimport { fromConfigurationFromFile } from '../../Domain/Common/domainConfiguration';\r\nimport { StorageService } from '../BrowserStorage/storage.service';\r\nimport { TitleService } from '../Title/title.service';\r\nimport { AutosaveConfiguration } from '../../Domain/Autosave/autosave-configuration';\r\nimport {\r\n SNACKBAR_DURATION,\r\n SNACKBAR_INFO,\r\n} from 'src/app/Domain/Common/constants';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport const DRAFTS_TAG = 'autosaveDrafts';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AutosaveService {\r\n private autosaveTimer: any;\r\n autosavedDraftsChanged$ = new Subject();\r\n\r\n constructor(\r\n private autosaveConfiguration: AutosaveConfigurationService,\r\n private exportService: ExportService,\r\n private iconDistionaryService: IconDictionaryService,\r\n private rendererService: RendererService,\r\n private snackbar: MatSnackBar,\r\n private storageService: StorageService,\r\n private titleService: TitleService\r\n ) {\r\n this.autosaveConfiguration.configuration$.subscribe((configuration) =>\r\n this.updateConfiguration(configuration)\r\n );\r\n }\r\n\r\n loadCurrentDrafts(): Draft[] {\r\n const drafts = this.readDrafts();\r\n this.sortDrafts(drafts);\r\n return drafts;\r\n }\r\n\r\n loadDraft(draft: Draft): void {\r\n const configFromFile = draft.configAndDST.domain;\r\n const config = fromConfigurationFromFile(configFromFile);\r\n const story = JSON.parse(draft.configAndDST.dst);\r\n\r\n this.titleService.updateTitleAndDescription(\r\n draft.title,\r\n draft.description,\r\n false\r\n );\r\n\r\n const actorIcons = this.iconDistionaryService.getElementsOfType(\r\n story,\r\n elementTypes.ACTOR\r\n );\r\n const workObjectIcons = this.iconDistionaryService.getElementsOfType(\r\n story,\r\n elementTypes.WORKOBJECT\r\n );\r\n this.iconDistionaryService.updateIconRegistries(\r\n actorIcons,\r\n workObjectIcons,\r\n config\r\n );\r\n this.rendererService.importStory(story, true, config, false);\r\n }\r\n\r\n removeAllDrafts() {\r\n this.storageService.set(DRAFTS_TAG, []);\r\n this.autosavedDraftsChanged$.next();\r\n }\r\n\r\n private updateConfiguration(configuration: AutosaveConfiguration) {\r\n this.stopTimer();\r\n\r\n if (configuration.activated) {\r\n this.startTimer(configuration.interval, configuration.amount);\r\n }\r\n }\r\n\r\n private stopTimer(): void {\r\n if (this.autosaveTimer) {\r\n clearInterval(this.autosaveTimer);\r\n this.autosaveTimer = undefined;\r\n }\r\n }\r\n\r\n private startTimer(interval: number, amount: number): void {\r\n this.autosaveTimer = setInterval(() => {\r\n const drafts = this.loadCurrentDrafts();\r\n const newDraft = this.createDraft();\r\n let isChanged = amount > 0;\r\n if (drafts.length > 0) {\r\n isChanged = isChanged && !this.isSame(newDraft, drafts[0]);\r\n }\r\n if (isChanged) {\r\n drafts.unshift(this.createDraft());\r\n while (drafts.length > amount) {\r\n drafts.pop();\r\n }\r\n this.writeDrafts(drafts);\r\n this.snackbar.open('Draft Saved', undefined, {\r\n panelClass: SNACKBAR_INFO,\r\n duration: SNACKBAR_DURATION,\r\n });\r\n this.autosavedDraftsChanged$.next();\r\n }\r\n }, interval * 60000);\r\n }\r\n\r\n private isSame(a: Draft, b: Draft) {\r\n return (\r\n a.title === b.title &&\r\n a.description === b.description &&\r\n JSON.stringify(a.configAndDST) === JSON.stringify(b.configAndDST)\r\n );\r\n }\r\n\r\n private writeDrafts(drafts: Draft[]) {\r\n this.storageService.set(DRAFTS_TAG, drafts);\r\n }\r\n\r\n private readDrafts(): Draft[] {\r\n return this.storageService.get(DRAFTS_TAG) ?? [];\r\n }\r\n\r\n private createDraft(): Draft {\r\n const dst = JSON.stringify(this.rendererService.getStory(), null, 2);\r\n const configAndDST = this.exportService.createConfigAndDST(dst);\r\n\r\n const date = new Date().toString().slice(0, 25);\r\n\r\n return {\r\n title: this.titleService.getTitle(),\r\n description: this.titleService.getDescription(),\r\n configAndDST,\r\n date,\r\n };\r\n }\r\n\r\n private sortDrafts(drafts: Draft[]): void {\r\n drafts.sort((a: Draft, b: Draft) => {\r\n const aDate = Date.parse(a.date);\r\n const bDate = Date.parse(b.date);\r\n return aDate > bDate ? 0 : 1;\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DOMAIN_CONFIGURATION_TAG } from '../../Domain/Common/constants';\r\nimport {\r\n DomainConfiguration,\r\n fromConfigurationFromFile,\r\n} from '../../Domain/Common/domainConfiguration';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StorageService {\r\n set(key: string, value: any) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n get(key: string): any {\r\n const json = localStorage.getItem(key);\r\n if (json) {\r\n return JSON.parse(json);\r\n }\r\n return null;\r\n }\r\n\r\n removeItem(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n checkValidityOfConfiguration(configuratioFromFile: DomainConfiguration) {\r\n return (\r\n configuratioFromFile.actors.keysArray().length > 1 &&\r\n configuratioFromFile.workObjects.keysArray().length > 1 &&\r\n !configuratioFromFile.actors\r\n .all()\r\n .some((e) => typeof e.value !== 'string') &&\r\n !configuratioFromFile.workObjects\r\n .all()\r\n .some((e) => typeof e.value !== 'string')\r\n );\r\n }\r\n\r\n getStoredDomainConfiguration(): DomainConfiguration | undefined {\r\n const domainString = localStorage.getItem(DOMAIN_CONFIGURATION_TAG);\r\n\r\n if (!domainString) {\r\n return;\r\n } else {\r\n const configuratioFromFile = fromConfigurationFromFile(\r\n JSON.parse(domainString)\r\n );\r\n if (this.checkValidityOfConfiguration(configuratioFromFile)) {\r\n return configuratioFromFile;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n setStoredDomainConfiguration(config: DomainConfiguration): void {\r\n const actors: {\r\n [p: string]: any;\r\n } = {};\r\n config.actors.keysArray().forEach((key) => {\r\n actors[key] = config.actors.get(key);\r\n });\r\n const workObjects: {\r\n [p: string]: any;\r\n } = {};\r\n config.workObjects.keysArray().forEach((key) => {\r\n workObjects[key] = config.workObjects.get(key);\r\n });\r\n\r\n const configForStorage = {\r\n name: config.name,\r\n actors: actors,\r\n workObjects: workObjects,\r\n };\r\n\r\n localStorage.setItem(\r\n DOMAIN_CONFIGURATION_TAG,\r\n JSON.stringify(configForStorage, null, 2)\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommandStackService {\r\n private commandStack: any;\r\n\r\n constructor() {}\r\n\r\n setCommandStack(commandStack: any): void {\r\n this.commandStack = commandStack;\r\n }\r\n\r\n execute(action: string, payload: any) {\r\n this.commandStack.execute(action, payload);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\nimport { ComponentType } from '@angular/cdk/overlay';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DialogService {\r\n constructor(private matDialog: MatDialog) {}\r\n\r\n openDialog(dialog: ComponentType, config: MatDialogConfig): void {\r\n this.matDialog.open(dialog, config);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DirtyFlagService {\r\n private isDirtySubject = new BehaviorSubject(false);\r\n dirty$ = this.isDirtySubject.asObservable();\r\n\r\n makeDirty(): void {\r\n this.isDirtySubject.next(true);\r\n }\r\n\r\n makeClean(): void {\r\n this.isDirtySubject.next(false);\r\n }\r\n\r\n get dirty(): boolean {\r\n return this.isDirtySubject.value;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\r\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\r\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\r\nimport { StoryStep } from 'src/app/Domain/Replay/storyStep';\r\nimport {\r\n HIGHLIGHT_COLOR,\r\n HIGHLIGHT_NUMBER_BACKGROUNG_COLOR,\r\n HIGHLIGHT_NUMBER_COLOR,\r\n HIGHLIGHT_STROKE_WIDTH,\r\n NUMBER_BACKGROUND_COLOR,\r\n NUMBER_COLOR,\r\n STROKE_WIDTH,\r\n} from '../../Domain/DomManipulation/replayConstants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * Manipulates the DOM during replay to only show the elements of the current Step\r\n */\r\nexport class DomManipulationService {\r\n constructor(private elementRegistryService: ElementRegistryService) {}\r\n\r\n showAll(): void {\r\n this.removeHighlights();\r\n this.elementRegistryService\r\n .getAllCanvasObjects()\r\n .slice()\r\n .concat(this.elementRegistryService.getAllGroups().slice())\r\n .map((e) => e.businessObject)\r\n .forEach((element) => {\r\n const domObject = document.querySelector(\r\n '[data-element-id=' + element.id + ']'\r\n );\r\n // @ts-ignore\r\n domObject.style.display = 'block';\r\n });\r\n }\r\n\r\n showStep(replayStep: StoryStep, previousStep?: StoryStep): void {\r\n this.removeHighlights();\r\n const notShown = this.getAllNotShown(replayStep.objects);\r\n\r\n notShown.forEach((element) => {\r\n const domObject = document.querySelector(\r\n '[data-element-id=' + element.id + ']'\r\n );\r\n if (domObject) {\r\n // @ts-ignore\r\n domObject.style.display = 'none';\r\n }\r\n });\r\n\r\n this.hightlightStep(\r\n previousStep\r\n ? replayStep.objects.filter((o) => !previousStep.objects.includes(o))\r\n : replayStep.objects\r\n );\r\n\r\n replayStep.objects.forEach((element) => {\r\n const domObject = document.querySelector(\r\n '[data-element-id=' + element.id + ']'\r\n );\r\n if (domObject) {\r\n // @ts-ignore\r\n domObject.style.display = 'block';\r\n }\r\n });\r\n }\r\n\r\n getNumberDomForActivity(activity: SVGPolylineElement): any {\r\n const numberDOMS = activity.parentElement?.getElementsByClassName(\r\n 'djs-labelNumber'\r\n ) || ['', ''];\r\n return {\r\n numberBackgroundDom: numberDOMS[0],\r\n numberTextDom: numberDOMS[1],\r\n };\r\n }\r\n\r\n private removeHighlights(): void {\r\n const allActivities = this.elementRegistryService.getAllActivities();\r\n const allConnections = this.elementRegistryService.getAllConnections();\r\n\r\n allActivities.forEach((activity) => {\r\n const querySelector = document.querySelector(\r\n '[data-element-id=' + activity.id + ']'\r\n );\r\n if (querySelector) {\r\n const activityDomObject =\r\n querySelector.getElementsByTagName('polyline')[0];\r\n\r\n activityDomObject.style.stroke =\r\n activity.businessObject.pickedColor || 'black';\r\n activityDomObject.style.strokeWidth = STROKE_WIDTH;\r\n\r\n const { numberBackgroundDom, numberTextDom } =\r\n this.getNumberDomForActivity(activityDomObject);\r\n if (numberBackgroundDom && numberTextDom) {\r\n numberBackgroundDom.style.fill = NUMBER_BACKGROUND_COLOR;\r\n numberTextDom.style.fill = NUMBER_COLOR;\r\n }\r\n }\r\n });\r\n\r\n allConnections.forEach((connection) => {\r\n // @ts-ignore\r\n const connectionDomObject = document\r\n .querySelector('[data-element-id=' + connection.id + ']')\r\n .getElementsByTagName('polyline')[0];\r\n\r\n connectionDomObject.style.stroke =\r\n connection.businessObject.pickedColor || 'black';\r\n connectionDomObject.style.strokeWidth = '1.5';\r\n });\r\n }\r\n\r\n private hightlightStep(stepObjects: BusinessObject[]): void {\r\n stepObjects\r\n .filter((e) => e.type === elementTypes.ACTIVITY)\r\n .forEach((activity) => {\r\n const querySelector = document.querySelector(\r\n '[data-element-id=' + activity.id + ']'\r\n );\r\n if (querySelector) {\r\n const activityDomObject =\r\n querySelector.getElementsByTagName('polyline')[0];\r\n\r\n activityDomObject.style.stroke = HIGHLIGHT_COLOR;\r\n activityDomObject.style.strokeWidth = HIGHLIGHT_STROKE_WIDTH;\r\n\r\n const { numberBackgroundDom, numberTextDom } =\r\n this.getNumberDomForActivity(activityDomObject);\r\n if (numberTextDom && numberBackgroundDom) {\r\n numberBackgroundDom.style.fill = HIGHLIGHT_NUMBER_BACKGROUNG_COLOR;\r\n numberTextDom.style.fill = HIGHLIGHT_NUMBER_COLOR;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getAllNotShown(shownElements: BusinessObject[]): BusinessObject[] {\r\n const notShownElements: BusinessObject[] = [];\r\n const allObjects = this.elementRegistryService\r\n .getAllCanvasObjects()\r\n .concat(this.elementRegistryService.getAllGroups());\r\n\r\n allObjects.forEach((element) => {\r\n if (!shownElements.includes(element.businessObject)) {\r\n if (element.type.includes(elementTypes.CONNECTION)) {\r\n // @ts-ignore\r\n if (!element.source.type.includes(elementTypes.GROUP)) {\r\n notShownElements.push(element.businessObject);\r\n } else {\r\n // @ts-ignore\r\n shownElements.push(element.target);\r\n }\r\n } else {\r\n notShownElements.push(element.businessObject);\r\n }\r\n }\r\n });\r\n return notShownElements;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\r\nimport { IconDictionaryService } from 'src/app/Service/DomainConfiguration/icon-dictionary.service';\r\nimport { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\r\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\r\nimport {\r\n CustomDomainConfiguration,\r\n DomainConfiguration,\r\n DomainConfigurationForExport,\r\n} from 'src/app/Domain/Common/domainConfiguration';\r\nimport { defaultConf } from '../../Domain/Common/iconConfiguration';\r\nimport { TitleService } from '../Title/title.service';\r\nimport { INITIAL_DOMAIN_NAME } from '../../Domain/Common/constants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DomainConfigurationService {\r\n constructor(\r\n private iconDictionaryService: IconDictionaryService,\r\n private elementRegistryService: ElementRegistryService,\r\n private titleService: TitleService\r\n ) {}\r\n\r\n setDomainName(domainName: string): void {\r\n this.titleService.setDomainName(\r\n domainName ? domainName : INITIAL_DOMAIN_NAME\r\n );\r\n }\r\n\r\n exportConfiguration(): void {\r\n const domainConfiguration = this.getCurrentConfigurationForExport();\r\n if (!domainConfiguration) {\r\n return;\r\n }\r\n\r\n const configJSONString = JSON.stringify(domainConfiguration, null, 2);\r\n const filename = this.titleService.getDomainName();\r\n const element = document.createElement('a');\r\n\r\n element.setAttribute(\r\n 'href',\r\n 'data:text/plain;charset=utf-8,' + encodeURIComponent(configJSONString)\r\n );\r\n element.setAttribute('download', filename + '.domain');\r\n element.style.display = 'none';\r\n document.body.appendChild(element);\r\n\r\n element.click();\r\n\r\n document.body.removeChild(element);\r\n }\r\n\r\n loadConfiguration(\r\n customConfig: DomainConfiguration,\r\n updateDomainName = true\r\n ): void {\r\n let actorDict = new Dictionary();\r\n let workObjectDict = new Dictionary();\r\n\r\n if (customConfig.actors.keysArray()) {\r\n actorDict = customConfig.actors;\r\n workObjectDict = customConfig.workObjects;\r\n } else {\r\n actorDict.addEach(customConfig.actors);\r\n workObjectDict.addEach(customConfig.workObjects);\r\n }\r\n\r\n const actorKeys = actorDict.keysArray();\r\n const workObjectKeys = workObjectDict.keysArray();\r\n\r\n this.iconDictionaryService.updateIconRegistries([], [], customConfig);\r\n\r\n this.iconDictionaryService\r\n .getIconConfiguration()\r\n .appendSRCFile(actorKeys, actorDict, workObjectKeys, workObjectDict);\r\n\r\n this.iconDictionaryService.addIconsFromDomainConfiguration(\r\n elementTypes.ACTOR,\r\n actorKeys.map((a) => elementTypes.ACTOR + a)\r\n );\r\n this.iconDictionaryService.addIconsFromDomainConfiguration(\r\n elementTypes.WORKOBJECT,\r\n workObjectKeys.map((w) => elementTypes.WORKOBJECT + w)\r\n );\r\n\r\n if (updateDomainName) {\r\n const configurationName = customConfig.name;\r\n this.setDomainName(configurationName);\r\n }\r\n }\r\n\r\n getCurrentConfiguration(): DomainConfiguration | undefined {\r\n const actors = this.iconDictionaryService.getActorsDictionary();\r\n const workObjects = this.iconDictionaryService.getWorkObjectsDictionary();\r\n\r\n let domainConfiguration;\r\n\r\n if (actors.size() > 0 && workObjects.size() > 0) {\r\n domainConfiguration = this.createConfigFromDictionaries(\r\n actors,\r\n workObjects\r\n );\r\n }\r\n return domainConfiguration;\r\n }\r\n\r\n getCurrentConfigurationForExport(): DomainConfigurationForExport | undefined {\r\n const currentConfiguration = this.getCurrentConfiguration();\r\n\r\n if (currentConfiguration) {\r\n const actors: any = {};\r\n const workObjects: any = {};\r\n\r\n currentConfiguration.actors.all().forEach((entry) => {\r\n actors[entry.key] = entry.value;\r\n });\r\n currentConfiguration.workObjects.all().forEach((entry) => {\r\n workObjects[entry.key] = entry.value;\r\n });\r\n\r\n return {\r\n name: currentConfiguration.name,\r\n actors: actors,\r\n workObjects: workObjects,\r\n };\r\n }\r\n return;\r\n }\r\n\r\n getCurrentConfigurationNamesWithoutPrefix(): CustomDomainConfiguration {\r\n return {\r\n name: this.titleService.getDomainName() || INITIAL_DOMAIN_NAME,\r\n actors: this.iconDictionaryService\r\n .getActorsDictionary()\r\n .keysArray()\r\n .map((a) => a.replace(elementTypes.ACTOR, '')),\r\n workObjects: this.iconDictionaryService\r\n .getWorkObjectsDictionary()\r\n .keysArray()\r\n .map((w) => w.replace(elementTypes.WORKOBJECT, '')),\r\n };\r\n }\r\n\r\n createMinimalConfigurationWithDefaultIcons(): DomainConfiguration {\r\n const minimalConfig = this.createConfigFromCanvas();\r\n\r\n defaultConf.actors.forEach((iconName) => {\r\n minimalConfig.actors.add(\r\n this.iconDictionaryService.getIconSource(iconName),\r\n iconName\r\n );\r\n });\r\n defaultConf.workObjects.forEach((iconName) => {\r\n minimalConfig.workObjects.add(\r\n this.iconDictionaryService.getIconSource(iconName),\r\n iconName\r\n );\r\n });\r\n\r\n return minimalConfig;\r\n }\r\n\r\n private createConfigFromDictionaries(\r\n actorsDict: Dictionary,\r\n workObjectsDict: Dictionary\r\n ): DomainConfiguration {\r\n const actorNames = actorsDict.keysArray();\r\n const workobjectNames = workObjectsDict.keysArray();\r\n const newActors = new Dictionary();\r\n const newWorkobjects = new Dictionary();\r\n\r\n // Fill Configuration from Canvas-Objects\r\n actorNames.forEach((actor) => {\r\n newActors.add(\r\n actorsDict.get(actor),\r\n actor.replace(elementTypes.ACTOR, '')\r\n );\r\n });\r\n workobjectNames.forEach((workObject) => {\r\n newWorkobjects.add(\r\n workObjectsDict.get(workObject),\r\n workObject.replace(elementTypes.WORKOBJECT, '')\r\n );\r\n });\r\n\r\n return {\r\n name: this.titleService.getDomainName(),\r\n actors: newActors,\r\n workObjects: newWorkobjects,\r\n };\r\n }\r\n\r\n private createConfigFromCanvas(): DomainConfiguration {\r\n const config = {\r\n name: INITIAL_DOMAIN_NAME,\r\n actors: new Dictionary(),\r\n workObjects: new Dictionary(),\r\n };\r\n\r\n let allCanvasObjects = this.elementRegistryService.getAllCanvasObjects();\r\n\r\n allCanvasObjects\r\n .map((e) => e.businessObject)\r\n .forEach((element) => {\r\n const type = element.type\r\n .replace(elementTypes.ACTOR, '')\r\n .replace(elementTypes.WORKOBJECT, '');\r\n if (element.type.includes(elementTypes.ACTOR)) {\r\n let src = this.iconDictionaryService.getIconSource(type) || '';\r\n config.actors.add(src, type);\r\n } else if (element.type.includes(elementTypes.WORKOBJECT)) {\r\n let src = this.iconDictionaryService.getIconSource(type) || '';\r\n config.workObjects.add(src, type);\r\n }\r\n });\r\n\r\n return config;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CustomDomainConfiguration,\r\n DomainConfiguration,\r\n} from '../../Domain/Common/domainConfiguration';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DomainConfigurationService } from './domain-configuration.service';\r\nimport { IconDictionaryService } from './icon-dictionary.service';\r\nimport { getNameFromType } from '../../Utils/naming';\r\nimport { elementTypes } from '../../Domain/Common/elementTypes';\r\nimport { IconListItem } from '../../Domain/Domain-Configuration/iconListItem';\r\nimport { Dictionary } from '../../Domain/Common/dictionary/dictionary';\r\nimport { ImportDomainStoryService } from '../Import/import-domain-story.service';\r\nimport { TitleService } from '../Title/title.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport {\r\n SNACKBAR_DURATION,\r\n SNACKBAR_INFO,\r\n SNACKBAR_SUCCESS,\r\n} from '../../Domain/Common/constants';\r\nimport { StorageService } from '../BrowserStorage/storage.service';\r\nimport { UsedIconList } from 'src/app/Domain/Domain-Configuration/UsedIconList';\r\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DomainCustomizationService {\r\n private readonly domainConfigurationTypes: BehaviorSubject;\r\n\r\n private allIconListItems = new Dictionary();\r\n\r\n private configurationHasChanged = false;\r\n\r\n selectedActors$ = new BehaviorSubject([]);\r\n selectedWorkobjects$ = new BehaviorSubject([]);\r\n private changedDomainCofiguration: DomainConfiguration | undefined;\r\n\r\n constructor(\r\n private configurationService: DomainConfigurationService,\r\n private iconDictionaryService: IconDictionaryService,\r\n private importService: ImportDomainStoryService,\r\n private titleService: TitleService,\r\n private storageService: StorageService,\r\n private elementRegistryService: ElementRegistryService,\r\n private snackbar: MatSnackBar\r\n ) {\r\n this.domainConfigurationTypes = new BehaviorSubject(\r\n this.configurationService.getCurrentConfigurationNamesWithoutPrefix()\r\n );\r\n\r\n this.selectedWorkobjects$.next(\r\n this.domainConfigurationTypes.value.workObjects\r\n );\r\n this.selectedActors$.next(this.domainConfigurationTypes.value.actors);\r\n\r\n iconDictionaryService\r\n .getAllIconDictionary()\r\n .keysArray()\r\n .forEach((iconName) => {\r\n this.addIconToAllIconList(iconName);\r\n });\r\n\r\n importService.importedConfigurationEvent.subscribe((config) => {\r\n this.importConfiguration(config);\r\n });\r\n const storedDomainConfiguration =\r\n this.storageService.getStoredDomainConfiguration();\r\n if (storedDomainConfiguration) {\r\n this.importConfiguration(storedDomainConfiguration, false);\r\n }\r\n const importedConfiguration = this.importService.getImportedConfiguration();\r\n if (importedConfiguration) {\r\n this.importConfiguration(importedConfiguration, false);\r\n }\r\n }\r\n\r\n importConfiguration(\r\n customConfig: DomainConfiguration,\r\n saveDomain = true\r\n ): void {\r\n const actorKeys = customConfig.actors.keysArray();\r\n const workObjectKeys = customConfig.workObjects.keysArray();\r\n\r\n actorKeys.forEach((iconName) => {\r\n if (!this.allIconListItems.has(iconName)) {\r\n this.addIconToAllIconList(iconName);\r\n }\r\n const selectedActorNames = this.selectedActors$.value;\r\n if (!selectedActorNames.includes(iconName)) {\r\n this.selectActor(iconName);\r\n }\r\n });\r\n workObjectKeys.forEach((iconName) => {\r\n if (!this.allIconListItems.has(iconName)) {\r\n this.addIconToAllIconList(iconName);\r\n }\r\n const selectedWorkobjectNames = this.selectedWorkobjects$.value;\r\n if (!selectedWorkobjectNames.includes(iconName)) {\r\n this.selectWorkObject(iconName);\r\n }\r\n });\r\n if (saveDomain) {\r\n this.saveDomain(this.elementRegistryService.getUsedIcons(), true);\r\n }\r\n }\r\n\r\n /** Getter & Setter **/\r\n getDomainConfiguration(): BehaviorSubject {\r\n return this.domainConfigurationTypes;\r\n }\r\n\r\n getIconForName(iconName: string): BehaviorSubject {\r\n return this.allIconListItems.get(iconName);\r\n }\r\n\r\n isIconActor(iconName: string): boolean {\r\n return (\r\n this.domainConfigurationTypes.value.actors.filter(\r\n (actor: string) => actor === iconName\r\n ).length > 0\r\n );\r\n }\r\n\r\n isIconWorkObject(iconName: string): boolean {\r\n return (\r\n this.domainConfigurationTypes.value.workObjects.filter(\r\n (workObject: string) => workObject === iconName\r\n ).length > 0\r\n );\r\n }\r\n\r\n changeName(domainName: string): void {\r\n this.titleService.setDomainName(domainName);\r\n const changedDomain = this.domainConfigurationTypes.value;\r\n changedDomain.name = domainName;\r\n this.domainConfigurationTypes.next(changedDomain);\r\n }\r\n\r\n /** Seleted Icons **/\r\n setAsUnassigned(iconName: string, isActor: boolean): void {\r\n if (isActor) {\r\n this.deselectActor(iconName);\r\n } else {\r\n this.deselectWorkobject(iconName);\r\n }\r\n this.updateIcon(false, false, iconName);\r\n }\r\n\r\n setAsActor(isActor: boolean, actor: string): void {\r\n if (isActor) {\r\n this.updateIcon(true, false, actor);\r\n this.selectActor(actor);\r\n this.deselectWorkobject(actor);\r\n } else {\r\n this.deselectActor(actor);\r\n this.updateIcon(false, false, actor);\r\n }\r\n }\r\n\r\n setAsWorkobject(isWorkobject: boolean, workobject: string): void {\r\n if (isWorkobject) {\r\n this.updateIcon(false, true, workobject);\r\n this.selectWorkObject(workobject);\r\n this.deselectActor(workobject);\r\n } else {\r\n this.deselectWorkobject(workobject);\r\n this.updateIcon(false, false, workobject);\r\n }\r\n }\r\n\r\n selectActor(actor: string): void {\r\n const value = this.domainConfigurationTypes.value;\r\n if (!value.actors.includes(actor)) {\r\n value.actors.push(actor);\r\n this.domainConfigurationTypes.next(value);\r\n this.updateActorSubject();\r\n }\r\n }\r\n\r\n selectWorkObject(workObject: string): void {\r\n const value = this.domainConfigurationTypes.value;\r\n if (!value.workObjects.includes(workObject)) {\r\n value.workObjects.push(workObject);\r\n this.domainConfigurationTypes.next(value);\r\n this.updateWorkObjectSubject();\r\n }\r\n }\r\n\r\n deselectActor(actor: string): void {\r\n if (this.domainConfigurationTypes) {\r\n this.domainConfigurationTypes.next({\r\n name: this.domainConfigurationTypes.value.name,\r\n actors: this.domainConfigurationTypes.value.actors.filter(\r\n (a: string) => !a.includes(actor)\r\n ),\r\n workObjects: this.domainConfigurationTypes.value.workObjects,\r\n });\r\n }\r\n this.updateActorSubject();\r\n }\r\n\r\n deselectWorkobject(workobject: string): void {\r\n if (this.domainConfigurationTypes) {\r\n this.domainConfigurationTypes.next({\r\n name: this.domainConfigurationTypes.value.name,\r\n actors: this.domainConfigurationTypes.value.actors,\r\n workObjects: this.domainConfigurationTypes.value.workObjects.filter(\r\n (w: string) => !w.includes(workobject)\r\n ),\r\n });\r\n }\r\n this.updateWorkObjectSubject();\r\n }\r\n\r\n setSelectedWorkObject(sortedList: string[]): void {\r\n const value = this.domainConfigurationTypes.value;\r\n value.workObjects = sortedList;\r\n this.domainConfigurationTypes.next(value);\r\n this.updateWorkObjectSubject();\r\n }\r\n\r\n setSelectedActors(sortedList: string[]): void {\r\n const value = this.domainConfigurationTypes.value;\r\n value.actors = sortedList;\r\n this.domainConfigurationTypes.next(value);\r\n this.updateActorSubject();\r\n }\r\n\r\n private updateActorSubject(): void {\r\n this.selectedActors$.next(this.domainConfigurationTypes.value.actors);\r\n this.configurationHasChanged = true;\r\n }\r\n\r\n private updateWorkObjectSubject(): void {\r\n this.selectedWorkobjects$.next(\r\n this.domainConfigurationTypes.value.workObjects\r\n );\r\n this.configurationHasChanged = true;\r\n }\r\n\r\n /** Revert Domain **/\r\n resetDomain(): void {\r\n const defaultConfig =\r\n this.configurationService.createMinimalConfigurationWithDefaultIcons();\r\n\r\n this.selectedWorkobjects$.value.forEach((workObjectName) => {\r\n if (!defaultConfig.workObjects.has(workObjectName)) {\r\n this.deselectWorkobject(workObjectName);\r\n }\r\n });\r\n this.selectedActors$.value.forEach((actorName) => {\r\n if (!defaultConfig.actors.has(actorName)) {\r\n this.deselectActor(actorName);\r\n }\r\n });\r\n\r\n this.domainConfigurationTypes.next({\r\n name: defaultConfig.name,\r\n actors: defaultConfig.actors.keysArray(),\r\n workObjects: defaultConfig.workObjects.keysArray(),\r\n } as CustomDomainConfiguration);\r\n\r\n this.updateAllIconBehaviourSubjects();\r\n }\r\n\r\n cancel(): void {\r\n this.domainConfigurationTypes.next(\r\n this.configurationService.getCurrentConfigurationNamesWithoutPrefix()\r\n );\r\n this.updateAllIconBehaviourSubjects();\r\n this.resetToInitialConfiguration();\r\n }\r\n\r\n private resetToInitialConfiguration(): void {\r\n this.updateActorSubject();\r\n this.updateWorkObjectSubject();\r\n }\r\n\r\n /** Persist Domain **/\r\n saveDomain(usedIcons: UsedIconList, imported = false): void {\r\n const changedActors: string[] = [];\r\n const changedWorkobjects: string[] = [];\r\n if (this.configurationHasChanged) {\r\n const changedDomain = this.createDomainConfiguration();\r\n\r\n const configurationActors = changedDomain.actors.keysArray();\r\n usedIcons?.actors.forEach((actor) => {\r\n if (\r\n !configurationActors?.includes(actor) &&\r\n !changedActors.includes(actor)\r\n ) {\r\n changedActors.push(actor);\r\n }\r\n });\r\n const configurationWorkobjects = changedDomain.workObjects.keysArray();\r\n usedIcons?.workobjects.forEach((workobject) => {\r\n if (\r\n !configurationWorkobjects?.includes(workobject) &&\r\n !changedWorkobjects.includes(workobject)\r\n ) {\r\n changedWorkobjects.push(workobject);\r\n }\r\n });\r\n\r\n if (!changedActors.length && !changedWorkobjects.length) {\r\n this.changedDomainCofiguration = changedDomain;\r\n\r\n this.updateIcons(changedDomain);\r\n\r\n this.storageService.setStoredDomainConfiguration(\r\n this.changedDomainCofiguration\r\n );\r\n this.snackbar.open(\r\n imported\r\n ? 'Configuration imported successfully'\r\n : 'Configuration saved sucessfully',\r\n undefined,\r\n {\r\n duration: SNACKBAR_DURATION,\r\n panelClass: SNACKBAR_SUCCESS,\r\n }\r\n );\r\n }\r\n } else {\r\n this.snackbar.open(\r\n imported\r\n ? 'No configuration to be imported'\r\n : 'No configuration to be saved',\r\n undefined,\r\n {\r\n duration: SNACKBAR_DURATION,\r\n panelClass: SNACKBAR_INFO,\r\n }\r\n );\r\n }\r\n if (changedActors.length || changedWorkobjects.length) {\r\n if (changedActors.length) {\r\n const actors = changedActors.join(', ');\r\n this.snackbar.open(\r\n `The following icons are already in use as actors and cannot be changed: ${actors}`,\r\n undefined,\r\n {\r\n duration: SNACKBAR_DURATION * 3,\r\n panelClass: SNACKBAR_INFO,\r\n }\r\n );\r\n }\r\n if (changedWorkobjects.length) {\r\n const workobjects = changedWorkobjects.join(', ');\r\n this.snackbar.open(\r\n `The following icons are already in use as workobjects and cannot be changed: ${workobjects}`,\r\n undefined,\r\n {\r\n duration: SNACKBAR_DURATION * 3,\r\n panelClass: SNACKBAR_INFO,\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n exportDomain(): void {\r\n this.configurationService.exportConfiguration();\r\n }\r\n\r\n getAndClearSavedConfiguration(): DomainConfiguration | undefined {\r\n const temp = this.changedDomainCofiguration;\r\n this.changedDomainCofiguration = undefined;\r\n\r\n return temp;\r\n }\r\n\r\n private createDomainConfiguration(): DomainConfiguration {\r\n const actors = new Dictionary();\r\n const workObjects = new Dictionary();\r\n\r\n this.domainConfigurationTypes.value.actors.forEach((type: string) => {\r\n actors.add(this.iconDictionaryService.getIconSource(type), type);\r\n });\r\n this.domainConfigurationTypes.value.workObjects.forEach((type: string) => {\r\n workObjects.add(this.iconDictionaryService.getIconSource(type), type);\r\n });\r\n\r\n return {\r\n name: this.domainConfigurationTypes.value.name || '',\r\n actors,\r\n workObjects,\r\n };\r\n }\r\n\r\n /** Update Icons **/\r\n addNewIcon(iconName: string): void {\r\n const iconDict = new Dictionary();\r\n iconDict.add(this.getSrcForIcon(iconName), iconName);\r\n this.iconDictionaryService.addIconsToCss(iconDict);\r\n this.addIconToAllIconList(iconName);\r\n }\r\n\r\n private addIconToAllIconList(iconName: string): void {\r\n this.allIconListItems.add(\r\n new BehaviorSubject({\r\n name: iconName,\r\n svg: this.getSrcForIcon(iconName),\r\n isActor: this.isIconActor(iconName),\r\n isWorkObject: this.isIconWorkObject(iconName),\r\n }),\r\n iconName\r\n );\r\n }\r\n\r\n private updateIcon(\r\n isActor: boolean,\r\n isWorkobject: boolean,\r\n iconName: string\r\n ) {\r\n const iconBehaviourSubject = this.getIconForName(iconName);\r\n const icon = iconBehaviourSubject.value;\r\n icon.isActor = isActor;\r\n icon.isWorkObject = isWorkobject;\r\n\r\n iconBehaviourSubject.next(icon);\r\n }\r\n\r\n private updateAllIconBehaviourSubjects(): void {\r\n const customDomainCofiguration = this.domainConfigurationTypes.value;\r\n this.allIconListItems.keysArray().forEach((iconName) => {\r\n if (customDomainCofiguration.actors.includes(iconName)) {\r\n this.updateIcon(true, false, iconName);\r\n } else if (customDomainCofiguration.workObjects.includes(iconName)) {\r\n this.updateIcon(false, true, iconName);\r\n } else {\r\n this.updateIcon(false, false, iconName);\r\n }\r\n });\r\n }\r\n\r\n private getSrcForIcon(name: string): string {\r\n let iconName: string;\r\n if (name.includes(elementTypes.DOMAINSTORY)) {\r\n iconName = getNameFromType(name);\r\n } else {\r\n iconName = name;\r\n }\r\n const rawSrc = this.iconDictionaryService.getIconSource(iconName);\r\n\r\n if (!rawSrc) {\r\n return '';\r\n }\r\n\r\n if (rawSrc.startsWith('data')) {\r\n return rawSrc;\r\n } else {\r\n return 'data:image/svg+xml,' + rawSrc;\r\n }\r\n }\r\n\r\n private updateIcons(changedDomain: DomainConfiguration) {\r\n this.allIconListItems\r\n .keysArray()\r\n .forEach((item) => this.setAsUnassigned(item, this.isIconActor(item)));\r\n changedDomain.actors\r\n .keysArray()\r\n .forEach((actor) => this.setAsActor(true, actor));\r\n changedDomain.workObjects\r\n .keysArray()\r\n .forEach((workObject) => this.setAsWorkobject(true, workObject));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\r\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\r\nimport { getNameFromType } from 'src/app/Utils/naming';\r\nimport {\r\n allIcons,\r\n appendedIcons,\r\n} from 'src/app/Domain/Domain-Configuration/allIcons';\r\nimport {\r\n defaultConf,\r\n IconConfiguration,\r\n} from 'src/app/Domain/Common/iconConfiguration';\r\nimport { Configuration } from 'src/app/Domain/Common/configuration';\r\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\r\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\r\nimport { sanitizeIconName } from '../../Utils/sanitizer';\r\n\r\nexport const ICON_PREFIX = 'icon-domain-story-';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class IconDictionaryService {\r\n private actorIconDictionary = new Dictionary();\r\n private workObjectDictionary = new Dictionary();\r\n\r\n private allIconDictionary = new Dictionary();\r\n private iconDictionaryForBPMN = new Dictionary();\r\n\r\n private customConfiguration?: DomainConfiguration;\r\n\r\n private readonly iconConfig: IconConfiguration;\r\n\r\n constructor() {\r\n this.allIconDictionary.addEach(allIcons);\r\n this.iconConfig = new IconConfiguration(this.allIconDictionary);\r\n }\r\n\r\n initTypeDictionaries(actors: string[], workObjects: string[]): void {\r\n if (!actors || actors.length == 0) {\r\n actors = defaultConf.actors;\r\n }\r\n if (!workObjects || workObjects.length == 0) {\r\n workObjects = defaultConf.workObjects;\r\n }\r\n\r\n const allTypes = new Dictionary();\r\n allTypes.addEach(allIcons);\r\n allTypes.appendDict(this.getAppendedIconDictionary());\r\n\r\n this.initDictionary(\r\n actors,\r\n allTypes,\r\n this.actorIconDictionary,\r\n elementTypes.ACTOR\r\n );\r\n this.initDictionary(\r\n workObjects,\r\n allTypes,\r\n this.workObjectDictionary,\r\n elementTypes.WORKOBJECT\r\n );\r\n }\r\n\r\n private initDictionary(\r\n keys: string[],\r\n allTypes: Dictionary,\r\n dictionary: Dictionary,\r\n namePrefix: elementTypes\r\n ) {\r\n dictionary.clear();\r\n for (const key of keys) {\r\n const name = namePrefix + key;\r\n dictionary.add(allTypes.get(key), name);\r\n }\r\n\r\n dictionary.keysArray().forEach((entry) => {\r\n const name = getNameFromType(entry);\r\n this.registerIconForBPMN(\r\n entry,\r\n ICON_PREFIX + sanitizeIconName(name.toLowerCase())\r\n );\r\n });\r\n }\r\n\r\n getCurrentIconConfigurationForBPMN(): Configuration {\r\n if (this.customConfiguration) {\r\n return this.iconConfig.createCustomConf(this.customConfiguration);\r\n }\r\n return this.iconConfig.getDefaultConf();\r\n }\r\n\r\n allInTypeDictionary(type: elementTypes, elements: BusinessObject[]): boolean {\r\n let collection: Dictionary;\r\n if (type === elementTypes.ACTOR) {\r\n collection = this.actorIconDictionary;\r\n } else if (type === elementTypes.WORKOBJECT) {\r\n collection = this.workObjectDictionary;\r\n }\r\n\r\n let allIn = true;\r\n if (elements) {\r\n elements.forEach((element) => {\r\n if (!collection.has(element.type)) {\r\n allIn = false;\r\n }\r\n });\r\n } else {\r\n return false;\r\n }\r\n return allIn;\r\n }\r\n\r\n /** Load Icons from Configuration **/\r\n\r\n addIconsFromDomainConfiguration(\r\n dictionaryType: elementTypes,\r\n iconTypes: string[]\r\n ): void {\r\n let collection: Dictionary;\r\n if (dictionaryType === elementTypes.ACTOR) {\r\n collection = this.actorIconDictionary;\r\n } else if (dictionaryType === elementTypes.WORKOBJECT) {\r\n collection = this.workObjectDictionary;\r\n }\r\n\r\n const allTypes = new Dictionary();\r\n allTypes.addEach(allIcons);\r\n allTypes.appendDict(appendedIcons);\r\n\r\n iconTypes.forEach((type) => {\r\n if (!collection.has(type)) {\r\n const name = getNameFromType(type);\r\n const src = allTypes.get(name);\r\n if (src) {\r\n this.registerIconForType(dictionaryType, type, src);\r\n this.registerIconForBPMN(\r\n type,\r\n sanitizeIconName(ICON_PREFIX + name.toLowerCase())\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n /** Add Icon(s) to Dictionary **/\r\n registerIconForBPMN(name: string, src: string): void {\r\n this.iconDictionaryForBPMN.set(name, src);\r\n }\r\n\r\n addIconsToTypeDictionary(\r\n actorIcons: BusinessObject[],\r\n workObjectIcons: BusinessObject[]\r\n ) {\r\n if (!this.allInTypeDictionary(elementTypes.ACTOR, actorIcons)) {\r\n this.addIconsFromDomainConfiguration(\r\n elementTypes.ACTOR,\r\n actorIcons.map((element) => element.type)\r\n );\r\n }\r\n if (!this.allInTypeDictionary(elementTypes.WORKOBJECT, workObjectIcons)) {\r\n this.addIconsFromDomainConfiguration(\r\n elementTypes.WORKOBJECT,\r\n workObjectIcons.map((element) => element.type)\r\n );\r\n }\r\n }\r\n\r\n registerIconForType(type: elementTypes, name: string, src: string): void {\r\n if (!name.includes(type)) {\r\n name = type + name;\r\n }\r\n\r\n let collection = new Dictionary();\r\n if (type === elementTypes.ACTOR) {\r\n collection = this.actorIconDictionary;\r\n } else if (type === elementTypes.WORKOBJECT) {\r\n collection = this.workObjectDictionary;\r\n }\r\n collection.set(name, src);\r\n }\r\n\r\n updateIconRegistries(\r\n actors: BusinessObject[],\r\n workObjects: BusinessObject[],\r\n config: DomainConfiguration\r\n ): void {\r\n const elements: BusinessObject[] = [];\r\n\r\n actors.forEach((a) => elements.push(a));\r\n workObjects.forEach((w) => elements.push(w));\r\n\r\n const customIcons = new Dictionary();\r\n\r\n const actorsDict = new Dictionary();\r\n const workObjectsDict = new Dictionary();\r\n config.actors.keysArray().forEach((key) => {\r\n actorsDict.add(config.actors.get(key), key);\r\n });\r\n config.workObjects.keysArray().forEach((key) => {\r\n workObjectsDict.add(config.workObjects.get(key), key);\r\n });\r\n\r\n this.extractCustomIconsFromDictionary(actorsDict, customIcons);\r\n this.extractCustomIconsFromDictionary(workObjectsDict, customIcons);\r\n\r\n elements.forEach((element) => {\r\n const name = sanitizeIconName(\r\n element.type\r\n .replace(elementTypes.ACTOR, '')\r\n .replace(elementTypes.WORKOBJECT, '')\r\n );\r\n if (\r\n (element.type.includes(elementTypes.ACTOR) ||\r\n element.type.includes(elementTypes.WORKOBJECT)) &&\r\n !this.getFullDictionary().has(name)\r\n ) {\r\n this.registerIconForBPMN(\r\n ICON_PREFIX + name.toLowerCase(),\r\n element.type\r\n );\r\n }\r\n });\r\n\r\n this.addNewIconsToDictionary(customIcons);\r\n this.addIconsToTypeDictionary(actors, workObjects);\r\n }\r\n\r\n private extractCustomIconsFromDictionary(\r\n elementDictionary: Dictionary,\r\n customIcons: Dictionary\r\n ) {\r\n elementDictionary.keysArray().forEach((name) => {\r\n const sanitizedName = sanitizeIconName(name);\r\n if (!this.getFullDictionary().has(sanitizedName)) {\r\n customIcons.add(elementDictionary.get(name), sanitizedName);\r\n }\r\n });\r\n }\r\n\r\n /** Add new Icon(s) **/\r\n\r\n addNewIconsToDictionary(customIcons: Dictionary) {\r\n customIcons.keysArray().forEach((key) => {\r\n const custom = customIcons.get(key);\r\n this.addIMGToIconDictionary(custom.src, key);\r\n });\r\n this.addIconsToCss(customIcons);\r\n }\r\n\r\n addIMGToIconDictionary(input: string, name: string): void {\r\n appendedIcons.set(name, input);\r\n }\r\n\r\n addIconsToCss(customIcons: Dictionary) {\r\n const sheetEl = document.getElementById('iconsCss');\r\n customIcons.keysArray().forEach((key) => {\r\n const src = customIcons.get(key);\r\n const iconStyle =\r\n '.' +\r\n ICON_PREFIX +\r\n sanitizeIconName(key.toLowerCase()) +\r\n '::before{ content: url(\"data:image/svg+xml;utf8,' +\r\n this.wrapSRCInSVG(src) +\r\n '\"); margin: 3px;}';\r\n // @ts-ignore\r\n sheetEl?.sheet?.insertRule(iconStyle, sheetEl.sheet.cssRules.length);\r\n });\r\n }\r\n\r\n private wrapSRCInSVG(src: string): string {\r\n return (\r\n \"\"\r\n );\r\n }\r\n\r\n /** Getter & Setter **/\r\n\r\n getFullDictionary(): Dictionary {\r\n const fullDictionary = new Dictionary();\r\n fullDictionary.appendDict(this.allIconDictionary);\r\n fullDictionary.appendDict(this.getAppendedIconDictionary());\r\n return fullDictionary;\r\n }\r\n\r\n getAppendedIconDictionary(): Dictionary {\r\n const appendedDict = new Dictionary();\r\n appendedIcons.keysArray().forEach((key) => {\r\n if (!this.allIconDictionary.has(key)) {\r\n appendedDict.set(key, appendedIcons.get(key));\r\n }\r\n });\r\n return appendedDict;\r\n }\r\n\r\n getTypeDictionary(type: elementTypes): Dictionary {\r\n if (type === elementTypes.ACTOR) {\r\n return this.actorIconDictionary;\r\n } else if (type === elementTypes.WORKOBJECT) {\r\n return this.workObjectDictionary;\r\n }\r\n return new Dictionary();\r\n }\r\n\r\n getTypeDictionaryKeys(type: elementTypes): string[] {\r\n return this.getTypeDictionary(type).keysArray();\r\n }\r\n\r\n getTypeIconSRC(type: elementTypes, name: string): string | null {\r\n if (type === elementTypes.ACTOR) {\r\n if (!name.startsWith(elementTypes.ACTOR)) {\r\n name = elementTypes.ACTOR + name;\r\n }\r\n return this.actorIconDictionary.get(name);\r\n } else if (type === elementTypes.WORKOBJECT) {\r\n if (!name.startsWith(elementTypes.WORKOBJECT)) {\r\n name = elementTypes.WORKOBJECT + name;\r\n }\r\n return this.workObjectDictionary.get(name);\r\n }\r\n return null;\r\n }\r\n\r\n getIconForBPMN(type: elementTypes): string | null {\r\n return this.iconDictionaryForBPMN.get(type);\r\n }\r\n\r\n getIconSource(name: string): string | null {\r\n if (this.allIconDictionary.has(name)) {\r\n return this.allIconDictionary.get(name);\r\n } else if (appendedIcons.has(name)) {\r\n return appendedIcons.get(name);\r\n }\r\n return null;\r\n }\r\n\r\n getElementsOfType(\r\n elements: BusinessObject[],\r\n type: elementTypes\r\n ): BusinessObject[] {\r\n const elementOfType: any = [];\r\n elements.forEach((element) => {\r\n if (element.type.includes(type)) {\r\n elementOfType.push(element);\r\n }\r\n });\r\n return elementOfType;\r\n }\r\n\r\n getAllIconDictionary(): Dictionary {\r\n return this.allIconDictionary;\r\n }\r\n\r\n getActorsDictionary(): Dictionary {\r\n return this.actorIconDictionary;\r\n }\r\n\r\n getWorkObjectsDictionary(): Dictionary {\r\n return this.workObjectDictionary;\r\n }\r\n\r\n getIconConfiguration(): IconConfiguration {\r\n return this.iconConfig;\r\n }\r\n\r\n setCusomtConfiguration(customConfiguration: DomainConfiguration): void {\r\n this.customConfiguration = customConfiguration;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\r\nimport { CanvasObject } from 'src/app/Domain/Common/canvasObject';\r\nimport { GroupCanvasObject } from '../../Domain/Common/groupCanvasObject';\r\nimport { ActivityCanvasObject } from '../../Domain/Common/activityCanvasObject';\r\nimport { UsedIconList } from 'src/app/Domain/Domain-Configuration/UsedIconList';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ElementRegistryService {\r\n private registry: any;\r\n private fullyInitialized = false;\r\n\r\n /**\r\n * Initially the registry has only the root-Element.\r\n * Once the canvas has bees initialized, we adjust the reference to point to the elements on the canvas for convenience\r\n */\r\n correctInitialize(): void {\r\n if (!this.fullyInitialized) {\r\n if (this.registry.__implicitroot) {\r\n this.registry = this.registry.__implicitroot.element.children;\r\n this.fullyInitialized = true;\r\n }\r\n }\r\n }\r\n\r\n setElementRegistry(registry: any): void {\r\n this.registry = registry._elements;\r\n }\r\n\r\n clear(): void {\r\n this.registry = null;\r\n this.fullyInitialized = false;\r\n }\r\n\r\n createObjectListForDSTDownload(): CanvasObject[] {\r\n if (this.registry) {\r\n const allObjectsFromCanvas = this.getAllCanvasObjects();\r\n const groups = this.getAllGroups();\r\n\r\n const objectList: CanvasObject[] = [];\r\n\r\n this.fillListOfCanvasObjects(allObjectsFromCanvas, objectList, groups);\r\n\r\n return objectList;\r\n }\r\n return [];\r\n }\r\n\r\n private fillListOfCanvasObjects(\r\n allObjectsFromCanvas: CanvasObject[],\r\n objectList: CanvasObject[],\r\n groups: GroupCanvasObject[]\r\n ): void {\r\n allObjectsFromCanvas.forEach((canvasElement) => {\r\n if (canvasElement.type === elementTypes.ACTIVITY) {\r\n objectList.push(canvasElement);\r\n }\r\n\r\n // ensure that Activities are always after Actors, Workobjects and Groups in .dst files\r\n else {\r\n if (canvasElement.type === elementTypes.TEXTANNOTATION) {\r\n canvasElement.businessObject.width = canvasElement.width;\r\n canvasElement.businessObject.height = canvasElement.height;\r\n }\r\n if (!objectList.includes(canvasElement)) {\r\n objectList.unshift(canvasElement);\r\n }\r\n }\r\n });\r\n\r\n groups.forEach((group) => {\r\n objectList.push(group);\r\n });\r\n }\r\n\r\n getAllActivities(): ActivityCanvasObject[] {\r\n const activities: ActivityCanvasObject[] = [];\r\n\r\n this.getAllCanvasObjects().forEach((element) => {\r\n if (element.type.includes(elementTypes.ACTIVITY)) {\r\n activities.push(element as ActivityCanvasObject);\r\n }\r\n });\r\n return activities;\r\n }\r\n\r\n getAllConnections(): ActivityCanvasObject[] {\r\n const connections: ActivityCanvasObject[] = [];\r\n this.getAllCanvasObjects().forEach((element) => {\r\n const type = element.type;\r\n if (type === elementTypes.CONNECTION) {\r\n connections.push(element as ActivityCanvasObject);\r\n }\r\n });\r\n return connections;\r\n }\r\n\r\n getAllCanvasObjects(): CanvasObject[] {\r\n const allObjects: CanvasObject[] = [];\r\n const groupObjects: GroupCanvasObject[] = [];\r\n\r\n this.checkChildForGroup(groupObjects, allObjects);\r\n\r\n // for each memorized group, remove it from the group-array and check its children, whether they are groups or not\r\n // if a child is a group, memorize it in the group-array\r\n // other children should already be in the allObjects list\r\n let i = groupObjects.length - 1;\r\n while (groupObjects.length >= 1) {\r\n const currentGroup = groupObjects.pop();\r\n // @ts-ignore\r\n currentGroup.children.forEach((child: CanvasObject) => {\r\n const type = child.type;\r\n if (type.includes(elementTypes.GROUP)) {\r\n groupObjects.push(child as GroupCanvasObject);\r\n }\r\n });\r\n i = groupObjects.length - 1;\r\n }\r\n return allObjects;\r\n }\r\n\r\n // returns all groups on the canvas and inside other groups\r\n getAllGroups(): GroupCanvasObject[] {\r\n const groupObjects: GroupCanvasObject[] = [];\r\n const allObjects: CanvasObject[] = [];\r\n\r\n this.checkChildForGroup(groupObjects, allObjects);\r\n\r\n for (const group of groupObjects) {\r\n group.children?.forEach((child: CanvasObject) => {\r\n if (child.type.includes(elementTypes.GROUP)) {\r\n groupObjects.push(child as GroupCanvasObject);\r\n }\r\n });\r\n }\r\n return groupObjects;\r\n }\r\n\r\n private checkChildForGroup(\r\n groupObjects: GroupCanvasObject[],\r\n allObjects: CanvasObject[]\r\n ): void {\r\n const registryElementNames = Object.keys(this.registry);\r\n for (let name of registryElementNames) {\r\n const entry = this.registry[name].element;\r\n if (entry.businessObject) {\r\n const type = entry.type;\r\n if (type && type.includes(elementTypes.GROUP)) {\r\n // if it is a group, memorize this for later\r\n groupObjects.push(entry);\r\n } else if (type) {\r\n allObjects.push(entry);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // get a list of activities, that originate from an actor-type\r\n getActivitiesFromActors(): ActivityCanvasObject[] {\r\n const activitiesFromActors: ActivityCanvasObject[] = [];\r\n const activities = this.getAllActivities();\r\n\r\n activities.forEach((activity: ActivityCanvasObject) => {\r\n if (activity.source?.type.includes(elementTypes.ACTOR)) {\r\n activitiesFromActors.push(activity);\r\n }\r\n });\r\n return activitiesFromActors;\r\n }\r\n\r\n getUsedIcons(): UsedIconList {\r\n const actors = this.getAllActors();\r\n const workobjects = this.getAllWorkobjects();\r\n\r\n return {\r\n actors: actors.map((a) => a.type.replace(elementTypes.ACTOR, '')),\r\n workobjects: workobjects.map((w) =>\r\n w.type.replace(elementTypes.WORKOBJECT, '')\r\n ),\r\n };\r\n }\r\n\r\n private getAllActors() {\r\n return this.getAllCanvasObjects().filter((co) =>\r\n co.type.includes(elementTypes.ACTOR)\r\n );\r\n }\r\n\r\n private getAllWorkobjects() {\r\n return this.getAllCanvasObjects().filter((co) =>\r\n co.type.includes(elementTypes.WORKOBJECT)\r\n );\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { DomainConfigurationService } from 'src/app/Service/DomainConfiguration/domain-configuration.service';\r\nimport { sanitizeForDesktop } from 'src/app/Utils/sanitizer';\r\nimport { TitleService } from 'src/app/Service/Title/title.service';\r\nimport { ConfigAndDST } from 'src/app/Domain/Export/configAndDst';\r\nimport { DirtyFlagService } from 'src/app/Service/DirtyFlag/dirty-flag.service';\r\nimport { PngService } from 'src/app/Service/Export/png.service';\r\nimport { SvgService } from 'src/app/Service/Export/svg.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { RendererService } from '../Renderer/renderer.service';\r\nimport { HtmlPresentationService } from './html-presentation.service';\r\nimport { VERSION } from '../../Domain/Common/constants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ExportService implements OnDestroy {\r\n titleSubscription: Subscription;\r\n descriptionSubscription: Subscription;\r\n\r\n title = '';\r\n description = '';\r\n\r\n constructor(\r\n private configurationService: DomainConfigurationService,\r\n private titleService: TitleService,\r\n private dirtyFlagService: DirtyFlagService,\r\n private pngService: PngService,\r\n private svgService: SvgService,\r\n private htmlPresentationService: HtmlPresentationService,\r\n private rendererService: RendererService\r\n ) {\r\n this.titleSubscription = this.titleService.title$.subscribe(\r\n (title: string) => {\r\n this.title = title;\r\n }\r\n );\r\n this.descriptionSubscription = this.titleService.description$.subscribe(\r\n (description: string) => {\r\n this.description = description;\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.titleSubscription.unsubscribe();\r\n this.descriptionSubscription.unsubscribe();\r\n }\r\n\r\n isDomainStoryExportable(): boolean {\r\n return this.rendererService.getStory().length >= 1;\r\n }\r\n\r\n createConfigAndDST(DomainStory: any): ConfigAndDST {\r\n return new ConfigAndDST(\r\n this.configurationService.getCurrentConfigurationForExport(),\r\n DomainStory\r\n );\r\n }\r\n\r\n downloadDST(): void {\r\n const dst = this.getStoryForDownload();\r\n const configAndDST = this.createConfigAndDST(dst);\r\n const json = JSON.stringify(configAndDST, null, 2);\r\n\r\n const filename = sanitizeForDesktop(\r\n this.title + '_' + new Date().toString().slice(0, 10)\r\n );\r\n\r\n this.downloadFile(\r\n json,\r\n 'data:text/plain;charset=utf-8,',\r\n filename,\r\n '.egn',\r\n true\r\n );\r\n }\r\n\r\n private downloadFile(\r\n data: string,\r\n datatype: string,\r\n filename: string,\r\n fileEnding: string,\r\n makeClean: boolean\r\n ) {\r\n const element = document.createElement('a');\r\n element.setAttribute('href', datatype + encodeURIComponent(data));\r\n element.setAttribute('download', filename + fileEnding);\r\n\r\n element.style.display = 'none';\r\n document.body.appendChild(element);\r\n\r\n element.click();\r\n\r\n if (makeClean) {\r\n this.dirtyFlagService.makeClean();\r\n }\r\n\r\n document.body.removeChild(element);\r\n }\r\n\r\n downloadSVG(withTitle: boolean, useWhiteBackground: boolean): void {\r\n const story = this.getStoryForDownload();\r\n const dst = this.createConfigAndDST(story);\r\n\r\n const svgData = this.svgService.createSVGData(\r\n this.title,\r\n this.description,\r\n dst,\r\n withTitle,\r\n useWhiteBackground\r\n );\r\n\r\n this.downloadFile(\r\n svgData,\r\n 'data:application/bpmn20-xml;charset=UTF-8,',\r\n sanitizeForDesktop(this.title),\r\n '.egn.svg',\r\n true\r\n );\r\n }\r\n\r\n downloadPNG(withTitle: boolean): void {\r\n const canvas = document.getElementById('canvas');\r\n if (canvas) {\r\n const container = canvas.getElementsByClassName('djs-container');\r\n const svgElements = container[0].getElementsByTagName('svg');\r\n const outerSVGElement = svgElements[0];\r\n const viewport = outerSVGElement.getElementsByClassName('viewport')[0];\r\n const layerBase = viewport.getElementsByClassName('layer-base')[0];\r\n\r\n const image = document.createElement('img');\r\n\r\n // removes unwanted black dots in image\r\n let svg = this.pngService.extractSVG(viewport, outerSVGElement);\r\n\r\n svg = this.pngService.prepareSVG(\r\n svg,\r\n layerBase,\r\n this.description,\r\n this.title,\r\n withTitle\r\n );\r\n\r\n image.onload = () => {\r\n const tempCanvas = document.createElement('canvas');\r\n\r\n // add a 10px buffer to the right and lower boundary\r\n tempCanvas.width = this.pngService.getWidth() + 10;\r\n tempCanvas.height = this.pngService.getHeight() + 10;\r\n\r\n const ctx = tempCanvas.getContext('2d');\r\n if (ctx) {\r\n // fill with white background\r\n ctx.rect(0, 0, tempCanvas.width, tempCanvas.height);\r\n ctx.fillStyle = 'white';\r\n ctx.fill();\r\n\r\n ctx.drawImage(image, 0, 0);\r\n }\r\n\r\n const png64 = tempCanvas.toDataURL('image/png');\r\n const ele = document.createElement('a');\r\n ele.setAttribute(\r\n 'download',\r\n sanitizeForDesktop(this.title) +\r\n '_' +\r\n new Date().toISOString().slice(0, 10) +\r\n '.png'\r\n );\r\n ele.setAttribute('href', png64);\r\n document.body.appendChild(ele);\r\n ele.click();\r\n document.body.removeChild(ele);\r\n\r\n // image source has to be removed to circumvent browser caching\r\n image.src = '';\r\n };\r\n image.onchange = image.onload;\r\n\r\n image.width = this.pngService.getWidth();\r\n image.height = this.pngService.getHeight();\r\n\r\n image.src = 'data:image/svg+xml,' + svg;\r\n }\r\n }\r\n\r\n downloadHTMLPresentation(): void {\r\n const filename = sanitizeForDesktop(\r\n this.title + '_' + new Date().toString().slice(0, 10)\r\n );\r\n this.htmlPresentationService.downloadHTMLPresentation(filename).then();\r\n }\r\n\r\n private getStoryForDownload(): unknown[] {\r\n const story = this.rendererService.getStory() as unknown[];\r\n story.push({ info: this.titleService.getDescription() });\r\n story.push({ version: VERSION });\r\n return story;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { sanitizeForDesktop } from '../../Utils/sanitizer';\r\nimport { ReplayService } from '../Replay/replay.service';\r\n// @ts-ignore\r\nimport doT from 'dot';\r\nimport { TitleService } from '../Title/title.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * Initial idea and PR from https://github.com/indika-dev\r\n */\r\nexport class HtmlPresentationService {\r\n constructor(\r\n private replayService: ReplayService,\r\n private titleService: TitleService\r\n ) {}\r\n\r\n private multiplexSecret: any;\r\n private multiplexId: any;\r\n\r\n private modeler: any;\r\n\r\n setModelerClasses(canvas: any, selection: any, modeler: any): void {\r\n this.modeler = modeler;\r\n }\r\n\r\n private static viewBoxCoordinates(svg: any): any {\r\n const ViewBoxCoordinate =\r\n /width=\"([^\"]+)\"\\s+height=\"([^\"]+)\"\\s+viewBox=\"([^\"]+)\"/;\r\n const match = svg.match(ViewBoxCoordinate);\r\n return match[3];\r\n }\r\n\r\n /*\r\n ---------------------------\r\n SVG handling starts here\r\n ----------------------------\r\n */\r\n\r\n async downloadHTMLPresentation(filename: string): Promise {\r\n const svgData = [];\r\n // export all sentences of domain story\r\n this.replayService.startReplay();\r\n try {\r\n const result = await this.modeler.saveSVG({});\r\n this.fixActivityMarkersForEachStep(\r\n result,\r\n this.replayService.getCurrentStepNumber()\r\n );\r\n svgData.push({\r\n content: HtmlPresentationService.createSVGData(result.svg),\r\n transition: 'slide',\r\n });\r\n } catch (err) {\r\n alert('There was an error exporting the SVG.\\n' + err);\r\n }\r\n while (\r\n this.replayService.getCurrentStepNumber() <\r\n this.replayService.getMaxStepNumber()\r\n ) {\r\n this.replayService.nextStep();\r\n try {\r\n const result = await this.modeler.saveSVG({});\r\n this.fixActivityMarkersForEachStep(\r\n result,\r\n this.replayService.getCurrentStepNumber()\r\n );\r\n svgData.push({\r\n content: HtmlPresentationService.createSVGData(result.svg),\r\n transition: 'slide',\r\n });\r\n } catch (err) {\r\n alert('There was an error exporting the SVG.\\n' + err);\r\n }\r\n }\r\n this.replayService.stopReplay();\r\n\r\n // create download for presentation\r\n const revealjsTemplate = document.getElementById('revealjs-template');\r\n const dots = doT.template(revealjsTemplate?.innerHTML);\r\n const revealjsData = {\r\n script: 'script',\r\n title: this.titleService.getTitle(),\r\n description: this.titleService.getDescription(),\r\n sentences: svgData,\r\n multiplexSecret: this.multiplexSecret,\r\n multiplexId: this.multiplexId,\r\n };\r\n const element = document.createElement('a');\r\n element.setAttribute(\r\n 'href',\r\n 'data:text/html;charset=UTF-8,' +\r\n this.fixMalformedHtmlScript(dots, revealjsData)\r\n );\r\n element.setAttribute('download', sanitizeForDesktop(filename) + '.html');\r\n element.style.display = 'none';\r\n document.body.appendChild(element);\r\n element.click();\r\n document.body.removeChild(element);\r\n }\r\n\r\n private fixMalformedHtmlScript(\r\n dots: any,\r\n revealjsData: {\r\n multiplexId: any;\r\n sentences: any[];\r\n multiplexSecret: any;\r\n description: string;\r\n title: string;\r\n script: string;\r\n }\r\n ) {\r\n return dots(revealjsData).replace(''),\r\n result.svg.indexOf('') + 7\r\n );\r\n const split = defs.split(' {\r\n const idToReplace = id.substring(4, id.length - 1);\r\n const newId =\r\n idToReplace.slice(0, id.length - 5) +\r\n 'customId' +\r\n sectionIndex +\r\n idToReplace.slice(idToReplace.length - 2);\r\n // @ts-ignore\r\n result.svg = result.svg.replaceAll(idToReplace, newId);\r\n });\r\n newDefs += '= 72) {\r\n fix = true;\r\n // https://www.chromestatus.com/features/5656049583390720\r\n }\r\n } else if (name.includes('Firefox')) {\r\n fix = true;\r\n\r\n // versionNumber of implementation unknown\r\n }\r\n if (fix) {\r\n while (svg.includes('#')) {\r\n svg = svg.replace('#', '%23');\r\n }\r\n }\r\n return svg;\r\n }\r\n\r\n findMostOuterElements(svg: HTMLElement): Box {\r\n let xLeft = 0;\r\n let xRight = 0;\r\n let yUp = 0;\r\n let yDown = 0;\r\n\r\n const elements = svg.getElementsByClassName('djs-group');\r\n\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n const sub = element.children;\r\n\r\n let elXLeft: number;\r\n let elXRight: number;\r\n let elYUp: number;\r\n let elYDown: number;\r\n\r\n const transform = sub[0].getAttribute('transform');\r\n if (transform) {\r\n let nums;\r\n\r\n if (transform.includes('matrix')) {\r\n transform.replace('matrix(', '');\r\n transform.replace(')', '');\r\n nums = transform.split(' ');\r\n elXLeft = parseInt(nums[4]);\r\n elYUp = parseInt(nums[5]);\r\n } else {\r\n transform.replace('translate(', '');\r\n transform.replace(')', '');\r\n nums = transform.split(' ');\r\n elXLeft = parseInt(nums[0]);\r\n elYUp = parseInt(nums[1]);\r\n }\r\n\r\n const rects = sub[0].getElementsByTagName('rect');\r\n const outerRect = rects[rects.length - 1];\r\n\r\n const width = outerRect.getAttribute('width');\r\n\r\n elXRight = elXLeft + parseInt(width != null ? width : '0');\r\n elYDown = elYUp + sub[0].getBoundingClientRect().height;\r\n } else {\r\n const rects = element.getElementsByTagName('rect');\r\n const outerRect = rects[rects.length - 1];\r\n\r\n const x = outerRect.getAttribute('x');\r\n const y = outerRect.getAttribute('y');\r\n\r\n elXLeft = parseInt(x != null ? x : '0');\r\n elYUp = parseInt(y != null ? y : '0');\r\n\r\n const width = outerRect.getAttribute('width');\r\n const height = outerRect.getAttribute('height');\r\n\r\n elXRight = elXLeft + parseInt(width != null ? width : '0');\r\n elYDown = elYUp + parseInt(height != null ? height : '0') + 20; // Add 20 px as Padding for text at the bottom\r\n }\r\n if (elXLeft < xLeft) {\r\n xLeft = elXLeft;\r\n }\r\n if (elXRight > xRight) {\r\n xRight = elXRight;\r\n }\r\n if (elYUp < yUp) {\r\n yUp = elYUp;\r\n }\r\n if (elYDown > yDown) {\r\n yDown = elYDown;\r\n }\r\n }\r\n\r\n yUp -= 75; // we need to adjust yUp to have space for the title and description\r\n\r\n return {\r\n xLeft,\r\n xRight,\r\n yUp,\r\n yDown,\r\n };\r\n }\r\n\r\n prepareSVG(\r\n svg: string,\r\n layerBase: any,\r\n description: string,\r\n title: string,\r\n withTitle: boolean\r\n ): string {\r\n const box = this.findMostOuterElements(layerBase);\r\n let viewBoxIndex = svg.indexOf('width=\"');\r\n\r\n this.calculateWidthAndHeight(box);\r\n\r\n const { insertText, extraHeight } = createTitleAndDescriptionSVGElement(\r\n title,\r\n description,\r\n box.xLeft,\r\n box.yUp + 20,\r\n this.width\r\n );\r\n if (withTitle) {\r\n this.height += extraHeight;\r\n }\r\n\r\n const bounds = this.createBounds(box, extraHeight);\r\n\r\n const dataStart = svg.substring(0, viewBoxIndex);\r\n viewBoxIndex = svg.indexOf('style=\"');\r\n\r\n const dataEnd = svg.substring(viewBoxIndex);\r\n dataEnd.substring(viewBoxIndex);\r\n\r\n svg = dataStart + bounds + dataEnd;\r\n\r\n const insertIndex = svg.indexOf('') + 20;\r\n\r\n if (withTitle) {\r\n svg = [\r\n svg.slice(0, insertIndex),\r\n insertText,\r\n svg.slice(insertIndex),\r\n ].join('');\r\n }\r\n svg = this.URIHashtagFix(svg);\r\n\r\n return svg;\r\n }\r\n\r\n private createBounds(box: Box, extraHeight: number) {\r\n return (\r\n 'width=\"' +\r\n this.width +\r\n '\" height=\"' +\r\n this.height +\r\n '\" viewBox=\" ' +\r\n box.xLeft +\r\n ' ' +\r\n (box.yUp - extraHeight) +\r\n ' ' +\r\n this.width +\r\n ' ' +\r\n this.height +\r\n '\" '\r\n );\r\n }\r\n\r\n /**\r\n * Calculate the Width and Height of the Bounding Box for the PNG so no Parts are cut off\r\n * TODO Longer Iconnames can still be cut of, when the Element is the lowest Object on the canvas, same for Activities\r\n */\r\n private calculateWidthAndHeight(box: Box): [number, number] {\r\n if (box.xLeft < 0) {\r\n if (box.xRight < 0) {\r\n this.width = Math.abs(box.xLeft - box.xRight);\r\n } else {\r\n this.width = Math.abs(box.xLeft) + box.xRight;\r\n }\r\n } else {\r\n this.width = box.xRight - box.xLeft;\r\n }\r\n\r\n if (box.yUp < 0) {\r\n if (box.yDown < 0) {\r\n this.height = Math.abs(box.yUp - box.yDown);\r\n } else {\r\n this.height = Math.abs(box.yUp) + box.yDown;\r\n }\r\n } else {\r\n this.height = box.yDown - box.yUp;\r\n }\r\n\r\n // if the domain-Story is smaller than 300px in width or height, increase its dimensions\r\n if (this.height < 300) {\r\n this.height += 300;\r\n box.yUp -= 150;\r\n box.yDown += 150;\r\n }\r\n if (this.width < 300) {\r\n this.width += 300;\r\n box.xLeft -= 150;\r\n box.xRight += 150;\r\n }\r\n return [this.height, this.width];\r\n }\r\n\r\n extractSVG(viewport: any, outerSVGElement: any): string {\r\n const layerResizers = viewport.getElementsByClassName('layer-resizers');\r\n const layerOverlays = viewport.getElementsByClassName('layer-overlays');\r\n const transform = viewport.getAttribute('transform');\r\n const translate = viewport.getAttribute('translate');\r\n\r\n if (layerResizers[0]) {\r\n layerResizers[0].parentNode.removeChild(layerResizers[0]);\r\n }\r\n if (layerOverlays[0]) {\r\n layerOverlays[0].parentNode.removeChild(layerOverlays[0]);\r\n }\r\n\r\n // remove canvas scrolling and scaling before serializeToString of SVG\r\n if (transform) {\r\n viewport.removeAttribute('transform');\r\n }\r\n if (translate) {\r\n viewport.removeAttribute('translate');\r\n }\r\n\r\n const svg = new XMLSerializer().serializeToString(outerSVGElement);\r\n\r\n // re-add canvas scrolling and scaling\r\n if (transform) {\r\n viewport.setAttribute('transform', transform);\r\n }\r\n if (translate) {\r\n viewport.setAttribute('translate', translate);\r\n }\r\n return svg;\r\n }\r\n\r\n getWidth(): number {\r\n return this.width;\r\n }\r\n\r\n getHeight(): number {\r\n return this.height;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ConfigAndDST } from 'src/app/Domain/Export/configAndDst';\r\nimport { createTitleAndDescriptionSVGElement } from 'src/app/Service/Export/exportUtil';\r\nimport { ModelerService } from '../Modeler/modeler.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SvgService {\r\n private cacheData = '';\r\n\r\n constructor(private modelerService: ModelerService) {}\r\n\r\n createSVGData(\r\n title: string,\r\n description: string,\r\n dst: ConfigAndDST,\r\n withTitle: boolean,\r\n useWhiteBackground: boolean\r\n ): string {\r\n this.cacheData = this.modelerService.getEncoded();\r\n\r\n let data = structuredClone(this.cacheData);\r\n\r\n let viewBoxIndex = data.indexOf('width=\"');\r\n\r\n let { width, height, viewBox } = this.viewBoxCoordinates(data);\r\n\r\n let xLeft: number;\r\n let xRight: number;\r\n let yUp: number;\r\n let yDown: number;\r\n const splitViewBox = viewBox.split(/\\s/);\r\n\r\n xLeft = +splitViewBox[0];\r\n yUp = +splitViewBox[1];\r\n xRight = +splitViewBox[2];\r\n yDown = +splitViewBox[3];\r\n\r\n if (xRight < 300) {\r\n xRight += 300;\r\n width += 300;\r\n }\r\n\r\n const { insertText, extraHeight } = createTitleAndDescriptionSVGElement(\r\n title,\r\n description,\r\n xLeft,\r\n yUp,\r\n width\r\n );\r\n if (withTitle) {\r\n // to display the title and description in the SVG-file, we need to add a container for the text-elements\r\n height += extraHeight + 80;\r\n }\r\n\r\n const svgIndex = data.indexOf('width=\"');\r\n if(useWhiteBackground) {\r\n const backgroundColorWhite = 'style=\"background-color:white\" ';\r\n data = [\r\n data.slice(0, svgIndex),\r\n backgroundColorWhite,\r\n data.slice(svgIndex),\r\n ].join('');\r\n }\r\n\r\n const bounds = this.createBounds(\r\n width,\r\n height,\r\n xLeft,\r\n yUp,\r\n xRight,\r\n yDown,\r\n withTitle\r\n );\r\n\r\n const dataStart = data.substring(0, viewBoxIndex);\r\n viewBoxIndex = data.indexOf('\" version');\r\n\r\n const dataEnd = data.substring(viewBoxIndex);\r\n dataEnd.substring(viewBoxIndex);\r\n\r\n data = dataStart + bounds + dataEnd;\r\n\r\n const insertIndex = this.findIndexToInsertData(data);\r\n\r\n if (withTitle) {\r\n data = [\r\n data.slice(0, insertIndex),\r\n insertText,\r\n data.slice(insertIndex),\r\n ].join('');\r\n }\r\n\r\n return this.appendDST(data, dst);\r\n }\r\n\r\n private findIndexToInsertData(data: string) {\r\n let insertIndex = data.indexOf('');\r\n if (insertIndex < 0) {\r\n insertIndex = data.indexOf('version=\"1.2\">') + 14;\r\n } else {\r\n insertIndex += 7;\r\n }\r\n return insertIndex;\r\n }\r\n\r\n private createBounds(\r\n width: number,\r\n height: number,\r\n xLeft: number,\r\n yUp: number,\r\n xRight: number,\r\n yDown: number,\r\n withTitle: boolean\r\n ): string {\r\n return (\r\n 'width=\"' +\r\n width +\r\n '\" height=\" ' +\r\n height +\r\n '\" viewBox=\"' +\r\n xLeft +\r\n ' ' +\r\n (withTitle ? yUp - 80 : yUp) +\r\n ' ' +\r\n xRight +\r\n ' ' +\r\n (yDown + 30)\r\n );\r\n }\r\n\r\n private viewBoxCoordinates(svg: string): {\r\n width: number;\r\n height: number;\r\n viewBox: string;\r\n } {\r\n const ViewBoxCoordinate =\r\n /width=\"([^\"]+)\"\\s+height=\"([^\"]+)\"\\s+viewBox=\"([^\"]+)\"/;\r\n const match = svg.match(ViewBoxCoordinate);\r\n if (match) {\r\n return { width: +match[1], height: +match[2], viewBox: match[3] };\r\n }\r\n return { width: 0, height: 0, viewBox: '' };\r\n }\r\n\r\n private appendDST(data: string, dst: ConfigAndDST): string {\r\n data += '\\n';\r\n return data;\r\n }\r\n}\r\n","import { EventEmitter, Injectable, OnDestroy } from '@angular/core';\r\nimport { IconDictionaryService } from 'src/app/Service/DomainConfiguration/icon-dictionary.service';\r\nimport { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\r\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\r\nimport { TitleService } from 'src/app/Service/Title/title.service';\r\nimport { ImportRepairService } from 'src/app/Service/Import/import-repair.service';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { RendererService } from 'src/app/Service/Renderer/renderer.service';\r\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\r\nimport {\r\n DomainConfiguration,\r\n fromConfigurationFromFile,\r\n} from 'src/app/Domain/Common/domainConfiguration';\r\nimport { DialogService } from '../Dialog/dialog.service';\r\nimport { InfoDialogComponent } from '../../Presentation/Dialog/info-dialog/info-dialog.component';\r\nimport { MatDialogConfig } from '@angular/material/dialog';\r\nimport { InfoDialogData } from '../../Domain/Dialog/infoDialogData';\r\nimport { restoreTitleFromFileName } from '../../Utils/sanitizer';\r\nimport {\r\n INITIAL_DESCRIPTION,\r\n INITIAL_TITLE,\r\n} from '../../Domain/Common/constants';\r\nimport { DomainConfigurationService } from '../DomainConfiguration/domain-configuration.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ImportDomainStoryService implements OnDestroy {\r\n titleSubscription: Subscription;\r\n descriptionSubscription: Subscription;\r\n\r\n title = INITIAL_TITLE;\r\n description = INITIAL_DESCRIPTION;\r\n private importedConfiguration: DomainConfiguration | null = null;\r\n\r\n private importedConfigurationEmitter =\r\n new EventEmitter();\r\n\r\n constructor(\r\n private iconDictionaryService: IconDictionaryService,\r\n private importRepairService: ImportRepairService,\r\n private titleService: TitleService,\r\n private rendererService: RendererService,\r\n private dialogService: DialogService,\r\n private domainConfigurationService: DomainConfigurationService\r\n ) {\r\n this.titleSubscription = this.titleService.title$.subscribe(\r\n (title: string) => {\r\n this.title = title;\r\n }\r\n );\r\n this.descriptionSubscription = this.titleService.description$.subscribe(\r\n (description: string) => {\r\n this.description = description;\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.titleSubscription.unsubscribe();\r\n this.descriptionSubscription.unsubscribe();\r\n }\r\n\r\n get importedConfigurationEvent(): Observable {\r\n return this.importedConfigurationEmitter.asObservable();\r\n }\r\n\r\n getImportedConfiguration(): DomainConfiguration {\r\n const config: DomainConfiguration = {\r\n name: this.importedConfiguration?.name || '',\r\n actors: this.importedConfiguration?.actors || new Dictionary(),\r\n workObjects: this.importedConfiguration?.workObjects || new Dictionary(),\r\n };\r\n this.importedConfiguration = null;\r\n return config;\r\n }\r\n\r\n importDST(input: Blob, filename: string, isSVG: boolean): void {\r\n const fileReader = new FileReader();\r\n const titleText = restoreTitleFromFileName(filename, isSVG);\r\n\r\n // no need to put this on the commandStack\r\n this.titleService.updateTitleAndDescription(titleText, null, false);\r\n\r\n fileReader.onloadend = (e) => {\r\n if (e && e.target) {\r\n this.fileReaderFunction(e.target.result, isSVG, false);\r\n }\r\n };\r\n\r\n fileReader.readAsText(input);\r\n }\r\n\r\n importEGN(input: Blob, filename: string, isSVG: boolean): void {\r\n const fileReader = new FileReader();\r\n const titleText = restoreTitleFromFileName(filename, isSVG);\r\n\r\n // no need to put this on the commandStack\r\n this.titleService.updateTitleAndDescription(titleText, null, false);\r\n\r\n fileReader.onloadend = (e) => {\r\n if (e && e.target) {\r\n this.fileReaderFunction(e.target.result, isSVG, true);\r\n }\r\n };\r\n\r\n fileReader.readAsText(input);\r\n }\r\n\r\n private fileReaderFunction(\r\n text: string | ArrayBuffer | null,\r\n isSVG: boolean,\r\n isEGN: boolean\r\n ): void {\r\n let dstText;\r\n if (typeof text === 'string') {\r\n if (isSVG) {\r\n dstText = this.removeXMLComments(text);\r\n } else {\r\n dstText = text;\r\n }\r\n\r\n let elements: any[];\r\n let config: DomainConfiguration;\r\n let configFromFile: {\r\n name: string;\r\n actors: { [key: string]: any };\r\n workObjects: { [key: string]: any };\r\n };\r\n\r\n let dstAndConfig = this.extractDstAndConfig(dstText, isSVG);\r\n if (dstAndConfig == null) {\r\n return;\r\n }\r\n\r\n // current implementation\r\n if (dstAndConfig.domain) {\r\n configFromFile = isEGN\r\n ? dstAndConfig.domain\r\n : JSON.parse(dstAndConfig.domain);\r\n config = fromConfigurationFromFile(configFromFile);\r\n elements = isEGN ? dstAndConfig.dst : JSON.parse(dstAndConfig.dst);\r\n } else {\r\n // legacy implementation\r\n if (dstAndConfig.config) {\r\n configFromFile = JSON.parse(dstAndConfig.config);\r\n config = fromConfigurationFromFile(configFromFile);\r\n elements = JSON.parse(dstAndConfig.dst);\r\n } else {\r\n // implementation prior to configuration\r\n elements = JSON.parse(dstText);\r\n config =\r\n this.domainConfigurationService.createMinimalConfigurationWithDefaultIcons();\r\n }\r\n }\r\n\r\n const configChanged = this.checkConfigForChanges(config);\r\n\r\n let lastElement = elements[elements.length - 1];\r\n if (!lastElement.id) {\r\n lastElement = elements.pop();\r\n let importVersionNumber = lastElement;\r\n\r\n // if the last element has the importedVersionNumber has the tag version,\r\n // then there exists another meta tag 'info' for the description\r\n if (importVersionNumber.version) {\r\n lastElement = elements.pop();\r\n }\r\n\r\n if (importVersionNumber.version) {\r\n importVersionNumber = importVersionNumber.version as string;\r\n } else {\r\n importVersionNumber = '?';\r\n // TODO show error for unreadable version number\r\n }\r\n elements = this.handleVersionNumber(importVersionNumber, elements);\r\n }\r\n\r\n if (\r\n !this.importRepairService.checkForUnreferencedElementsInActivitiesAndRepair(\r\n elements\r\n )\r\n ) {\r\n this.showBrokenImportDialog(isSVG ? 'SVG' : 'DST');\r\n }\r\n\r\n this.titleService.updateTitleAndDescription(\r\n null,\r\n lastElement.info,\r\n false\r\n );\r\n\r\n this.importRepairService.adjustPositions(elements);\r\n\r\n this.updateIconRegistries(elements, config);\r\n this.rendererService.importStory(elements, configChanged, config);\r\n }\r\n }\r\n\r\n private handleVersionNumber(\r\n importVersionNumber: string,\r\n elements: BusinessObject[]\r\n ): BusinessObject[] {\r\n const versionPrefix = +importVersionNumber.substring(\r\n 0,\r\n importVersionNumber.lastIndexOf('.')\r\n );\r\n if (versionPrefix <= 0.5) {\r\n elements =\r\n this.importRepairService.updateCustomElementsPreviousV050(elements);\r\n this.showPreviousV050Dialog(versionPrefix);\r\n }\r\n return elements;\r\n }\r\n\r\n private extractDstAndConfig(dstText: string, isSVG: boolean) {\r\n let dstAndConfig = null;\r\n try {\r\n dstAndConfig = JSON.parse(dstText);\r\n } catch (e) {\r\n this.showBrokenImportDialog(isSVG ? 'SVG' : 'DST');\r\n }\r\n return dstAndConfig;\r\n }\r\n\r\n private removeXMLComments(xmlText: string): string {\r\n xmlText = xmlText.substring(xmlText.indexOf(''));\r\n while (xmlText.includes('')) {\r\n xmlText = xmlText.replace('', '');\r\n }\r\n xmlText = xmlText.replace('', '');\r\n xmlText = xmlText.replace('', '');\r\n return xmlText;\r\n }\r\n\r\n checkConfigForChanges(domainConfiguration: DomainConfiguration): boolean {\r\n const newActorKeys = domainConfiguration.actors.keysArray();\r\n const newWorkObjectKeys = domainConfiguration.workObjects.keysArray();\r\n\r\n const currentActorKeys = this.iconDictionaryService.getTypeDictionaryKeys(\r\n elementTypes.ACTOR\r\n );\r\n const currentWorkobjectKeys =\r\n this.iconDictionaryService.getTypeDictionaryKeys(elementTypes.WORKOBJECT);\r\n\r\n let changed = false;\r\n\r\n if (\r\n newActorKeys.length !== currentActorKeys.length ||\r\n newWorkObjectKeys.length !== currentWorkobjectKeys.length\r\n ) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < newActorKeys.length; i++) {\r\n changed =\r\n this.clearName(currentActorKeys[i]) !== this.clearName(newActorKeys[i]);\r\n if (changed) {\r\n i = newActorKeys.length;\r\n }\r\n }\r\n if (changed) {\r\n return changed;\r\n }\r\n for (let i = 0; i < newWorkObjectKeys.length; i++) {\r\n changed =\r\n this.clearName(currentWorkobjectKeys[i]) !==\r\n this.clearName(newWorkObjectKeys[i]);\r\n if (changed) {\r\n i = newWorkObjectKeys.length;\r\n }\r\n }\r\n return changed;\r\n }\r\n private clearName(name: string): string {\r\n return name\r\n .replace(elementTypes.ACTOR, '')\r\n .replace(elementTypes.WORKOBJECT, '');\r\n }\r\n\r\n private updateIconRegistries(\r\n elements: BusinessObject[],\r\n config: DomainConfiguration\r\n ): void {\r\n const actorIcons = this.iconDictionaryService.getElementsOfType(\r\n elements,\r\n elementTypes.ACTOR\r\n );\r\n const workObjectIcons = this.iconDictionaryService.getElementsOfType(\r\n elements,\r\n elementTypes.WORKOBJECT\r\n );\r\n this.iconDictionaryService.updateIconRegistries(\r\n actorIcons,\r\n workObjectIcons,\r\n config\r\n );\r\n\r\n this.setImportedConfigurationAndEmit(config);\r\n }\r\n\r\n private showPreviousV050Dialog(version: number): void {\r\n const title = 'Compatability-Warning';\r\n const text =\r\n 'The uploaded Domain-Story is from version ' +\r\n version +\r\n '. There may be problems with the default actors or workobjects contained in the story.';\r\n\r\n const config = new MatDialogConfig();\r\n config.disableClose = false;\r\n config.autoFocus = true;\r\n\r\n config.data = new InfoDialogData(title, text, true);\r\n\r\n this.dialogService.openDialog(InfoDialogComponent, config);\r\n }\r\n\r\n private setImportedConfigurationAndEmit(config: DomainConfiguration) {\r\n this.importedConfiguration = config;\r\n this.importedConfigurationEmitter.emit(config);\r\n }\r\n\r\n private showBrokenImportDialog(type: string) {\r\n const config = new MatDialogConfig();\r\n config.disableClose = false;\r\n config.autoFocus = true;\r\n config.data = new InfoDialogData(\r\n 'Error during import',\r\n 'The uploaded ' +\r\n type +\r\n ' is not complete, there could be elements missing from the canvas.',\r\n true,\r\n false\r\n );\r\n\r\n this.dialogService.openDialog(InfoDialogComponent, config);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\r\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\r\nimport { Waypoint } from 'src/app/Domain/Common/waypoint';\r\nimport { ActivityBusinessObject } from '../../Domain/Common/activityBusinessObject';\r\n\r\n/**\r\n * Repairs broken Domain Stories so that it can be rendered onto the canvas\r\n * by removing activities and connections that reference elements that don't exists\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ImportRepairService {\r\n checkForUnreferencedElementsInActivitiesAndRepair(\r\n elements: BusinessObject[]\r\n ): boolean {\r\n const activities: ActivityBusinessObject[] = [];\r\n const objectIDs: string[] = [];\r\n\r\n let complete = true;\r\n\r\n elements.forEach((element) => {\r\n const type = element.type;\r\n if (type === elementTypes.ACTIVITY || type === elementTypes.CONNECTION) {\r\n activities.push(element as ActivityBusinessObject);\r\n } else {\r\n objectIDs.push(element.id);\r\n }\r\n });\r\n\r\n activities.forEach((activity) => {\r\n const source = activity.source;\r\n const target = activity.target;\r\n if (!objectIDs.includes(source) || !objectIDs.includes(target)) {\r\n complete = false;\r\n const activityIndex = elements.indexOf(activity);\r\n elements = elements.splice(activityIndex, 1);\r\n }\r\n });\r\n return complete;\r\n }\r\n\r\n /**\r\n * Ensure backwards compatibility.\r\n * Previously Document had no special name and was just addressed as workObject\r\n * Bubble was renamed to Conversation\r\n */\r\n updateCustomElementsPreviousV050(\r\n elements: BusinessObject[]\r\n ): BusinessObject[] {\r\n for (const element of elements) {\r\n if (element.type === elementTypes.WORKOBJECT) {\r\n element.type = elementTypes.WORKOBJECT + 'Document';\r\n } else if (element.type === elementTypes.WORKOBJECT + 'Bubble') {\r\n element.type = elementTypes.WORKOBJECT + 'Conversation';\r\n }\r\n }\r\n return elements;\r\n }\r\n\r\n /**\r\n * Adjusts Positions of Elements to ensure the Domain Story starts in the visible parts of the canvas\r\n */\r\n adjustPositions(elements: BusinessObject[]): void {\r\n let xLeft = 0;\r\n let yUp = 0;\r\n let isFirst = true;\r\n\r\n this.findFirstElement(elements, isFirst, xLeft, yUp);\r\n\r\n if (xLeft < 75 || xLeft > 150 || yUp < 0 || yUp > 50) {\r\n // add Padding for the Palette and the top\r\n xLeft -= 75;\r\n yUp -= 50;\r\n\r\n elements.forEach((element) =>\r\n this.adjustElementPosition(element, xLeft, yUp)\r\n );\r\n }\r\n }\r\n\r\n private adjustElementPosition(\r\n element: BusinessObject,\r\n xLeft: number,\r\n yUp: number\r\n ): void {\r\n if (\r\n element.type === elementTypes.ACTIVITY ||\r\n element.type === elementTypes.CONNECTION\r\n ) {\r\n const waypoints = (element as ActivityBusinessObject).waypoints;\r\n waypoints.forEach((point: Waypoint) => {\r\n point.x -= xLeft;\r\n point.y -= yUp;\r\n\r\n if (point.original) {\r\n point.original.x = point.x;\r\n point.original.y = point.y;\r\n }\r\n });\r\n } else {\r\n element.x -= xLeft;\r\n element.y -= yUp;\r\n }\r\n }\r\n\r\n private findFirstElement(\r\n elements: BusinessObject[],\r\n isFirst: boolean,\r\n xLeft: number,\r\n yUp: number\r\n ) {\r\n elements.forEach((element) => {\r\n let elXLeft;\r\n let elYUp;\r\n if (\r\n element.type !== elementTypes.ACTIVITY &&\r\n element.type !== elementTypes.CONNECTION\r\n ) {\r\n if (isFirst) {\r\n xLeft = element.x;\r\n yUp = element.y;\r\n isFirst = false;\r\n }\r\n elXLeft = element.x;\r\n elYUp = element.y;\r\n if (elXLeft < xLeft) {\r\n xLeft = elXLeft;\r\n }\r\n if (elYUp < yUp) {\r\n yUp = elYUp;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\r\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\r\nimport { MassNamingService } from 'src/app/Service/LabelDictionary/mass-naming.service';\r\nimport { IconDictionaryService } from '../DomainConfiguration/icon-dictionary.service';\r\nimport { WorkObjectLabelEntry } from '../../Domain/LabelDictionary/workObjectLabelEntry';\r\nimport { LabelEntry } from '../../Domain/LabelDictionary/labelEntry';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LabelDictionaryService {\r\n activityLabels: LabelEntry[] = [];\r\n workObjektLabels: WorkObjectLabelEntry[] = [];\r\n\r\n constructor(\r\n private massNamingService: MassNamingService,\r\n private elementRegistryService: ElementRegistryService,\r\n private iconDictionaryService: IconDictionaryService\r\n ) {}\r\n\r\n createLabelDictionaries(): void {\r\n this.activityLabels = [];\r\n this.workObjektLabels = [];\r\n\r\n const allObjects = this.elementRegistryService.getAllCanvasObjects();\r\n\r\n allObjects.forEach((element) => {\r\n const name = element.businessObject.name;\r\n if (\r\n name &&\r\n name.length > 0 &&\r\n element.type.includes(elementTypes.ACTIVITY) &&\r\n !this.activityLabels.map((a) => a.name).includes(name)\r\n ) {\r\n this.activityLabels.push({\r\n name,\r\n originalName: name,\r\n });\r\n } else if (\r\n name &&\r\n name.length > 0 &&\r\n element.type.includes(elementTypes.WORKOBJECT) &&\r\n !this.workObjektLabels.map((e) => e.name).includes(name)\r\n ) {\r\n const iconName = element.type.replace(elementTypes.WORKOBJECT, '');\r\n let icon = this.iconDictionaryService.getIconSource(iconName);\r\n if (!icon) {\r\n return;\r\n }\r\n if (!icon.startsWith('data')) {\r\n icon = 'data:image/svg+xml,' + icon;\r\n }\r\n this.workObjektLabels.push({\r\n name,\r\n originalName: name,\r\n icon,\r\n });\r\n }\r\n });\r\n this.activityLabels.sort((a, b) => {\r\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\r\n });\r\n this.workObjektLabels.sort((a, b) => {\r\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\r\n });\r\n }\r\n\r\n getActivityLabels(): LabelEntry[] {\r\n return this.activityLabels.slice();\r\n }\r\n\r\n getWorkObjectLabels(): WorkObjectLabelEntry[] {\r\n return this.workObjektLabels.slice();\r\n }\r\n\r\n massRenameLabels(\r\n activityNames: string[],\r\n originalActivityNames: string[],\r\n workObjectNames: string[],\r\n originalWorkObjectNames: string[]\r\n ): void {\r\n for (let i = 0; i < originalActivityNames.length; i++) {\r\n if (!activityNames[i]) {\r\n activityNames[i] = '';\r\n }\r\n if (!(activityNames[i] == originalActivityNames[i])) {\r\n this.massNamingService.massChangeNames(\r\n originalActivityNames[i],\r\n activityNames[i],\r\n elementTypes.ACTIVITY\r\n );\r\n }\r\n }\r\n for (let i = 0; i < originalWorkObjectNames.length; i++) {\r\n if (!workObjectNames[i]) {\r\n workObjectNames[i] = '';\r\n }\r\n if (!(workObjectNames[i] == originalWorkObjectNames[i])) {\r\n this.massNamingService.massChangeNames(\r\n originalWorkObjectNames[i],\r\n workObjectNames[i],\r\n elementTypes.WORKOBJECT\r\n );\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\r\nimport { CanvasObject } from 'src/app/Domain/Common/canvasObject';\r\nimport { elementTypes } from '../../Domain/Common/elementTypes';\r\nimport { CommandStackService } from '../CommandStack/command-stack.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MassNamingService {\r\n constructor(\r\n private elementRegistryService: ElementRegistryService,\r\n private commandStackService: CommandStackService\r\n ) {}\r\n\r\n massChangeNames(\r\n oldValue: string,\r\n newValue: string,\r\n type: elementTypes\r\n ): void {\r\n const allRelevantObjects: CanvasObject[] = [];\r\n\r\n this.elementRegistryService.getAllCanvasObjects().forEach((element) => {\r\n if (\r\n element.type.includes(type) &&\r\n element.businessObject.name === oldValue\r\n ) {\r\n allRelevantObjects.push(element);\r\n }\r\n });\r\n\r\n const context = {\r\n elements: allRelevantObjects,\r\n newValue,\r\n };\r\n\r\n this.commandStackService.execute('domainStoryObjects.massRename', context);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { initializeContextPadProvider } from '../../Modeler/modeler/context-pad/domainStoryContextPadProvider';\r\nimport {\r\n getMultipleNumberRegistry,\r\n getNumberRegistry,\r\n initializeNumbering,\r\n setNumberIsMultiple,\r\n updateExistingNumbersAtEditing,\r\n} from '../../Modeler/modeler/numbering/numbering';\r\nimport { initializePalette } from '../../Modeler/modeler/palette/domainStoryPalette';\r\nimport { initializeRenderer } from '../../Modeler/modeler/domainStoryRenderer';\r\nimport {\r\n initializeLabelEditingProvider,\r\n toggleStashUse,\r\n} from '../../Modeler/modeler/labeling/dsLabelEditingProvider';\r\nimport { initializeReplaceOptions } from '../../Modeler/modeler/change-icon/replaceOptions';\r\n\r\nimport { DirtyFlagService } from '../DirtyFlag/dirty-flag.service';\r\nimport { IconDictionaryService } from '../DomainConfiguration/icon-dictionary.service';\r\nimport { ElementRegistryService } from '../ElementRegistry/element-registry.service';\r\nimport { DomainConfigurationService } from '../DomainConfiguration/domain-configuration.service';\r\nimport { LabelDictionaryService } from '../LabelDictionary/label-dictionary.service';\r\nimport { elementTypes } from '../../Domain/Common/elementTypes';\r\nimport { ReplayStateService } from '../Replay/replay-state.service';\r\nimport { MatDialogConfig } from '@angular/material/dialog';\r\nimport { ActivityDialogData } from '../../Domain/Dialog/activityDialogData';\r\nimport { ActivityDialogComponent } from '../../Presentation/Dialog/activity-dialog/activity-dialog.component';\r\nimport { DialogService } from '../Dialog/dialog.service';\r\nimport massRenameHandler from '../../Modeler/modeler/updateHandler/massRenameHandler';\r\nimport headlineAndDescriptionUpdateHandler from '../../Modeler/modeler/updateHandler/headlineAndDescriptionUpdateHandler';\r\nimport { TitleService } from '../Title/title.service';\r\nimport { ActivityCanvasObject } from '../../Domain/Common/activityCanvasObject';\r\nimport { HtmlPresentationService } from '../Export/html-presentation.service';\r\nimport { positionsMatch } from '../../Utils/mathExtensions';\r\nimport activityUpdateHandler, {\r\n initializeActivityUpdateHandler,\r\n} from '../../Modeler/modeler/updateHandler/activityUpdateHandlers';\r\nimport elementUpdateHandler from '../../Modeler/modeler/updateHandler/elementUpdateHandler';\r\nimport { CommandStackService } from '../CommandStack/command-stack.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InitializerService {\r\n constructor(\r\n private dirtyFlagService: DirtyFlagService,\r\n private iconDictionaryService: IconDictionaryService,\r\n private elementRegistryService: ElementRegistryService,\r\n private configurationService: DomainConfigurationService,\r\n private labelDictionaryService: LabelDictionaryService,\r\n private replayStateService: ReplayStateService,\r\n private dialogService: DialogService,\r\n private commandStackService: CommandStackService,\r\n private titleService: TitleService,\r\n private htmlPresentationService: HtmlPresentationService\r\n ) {}\r\n\r\n initializeDomainStoryModelerClasses(): void {\r\n initializeContextPadProvider(\r\n this.dirtyFlagService,\r\n this.iconDictionaryService\r\n );\r\n /** The Palette and the Context Menu need the Icons present in the Domain,\r\n * so the IconDictionaryService and the DomainConfigurationService needs to be given to the Palette **/\r\n initializePalette(this.iconDictionaryService, this.configurationService);\r\n initializeRenderer(\r\n this.iconDictionaryService,\r\n this.elementRegistryService,\r\n this.dirtyFlagService\r\n );\r\n initializeLabelEditingProvider(this.labelDictionaryService);\r\n initializeReplaceOptions(this.iconDictionaryService);\r\n initializeNumbering(this.elementRegistryService);\r\n initializeActivityUpdateHandler(this.elementRegistryService);\r\n }\r\n\r\n propagateDomainStoryModelerClassesToServices(\r\n commandStack: any,\r\n elementRegistry: any,\r\n canvas: any,\r\n selection: any,\r\n modeler: any\r\n ): void {\r\n this.commandStackService.setCommandStack(commandStack);\r\n this.elementRegistryService.setElementRegistry(elementRegistry);\r\n this.htmlPresentationService.setModelerClasses(canvas, selection, modeler);\r\n }\r\n\r\n initializeDomainStoryModelerEventHandlers(\r\n commandStack: any,\r\n eventBus: any\r\n ): void {\r\n activityUpdateHandler(commandStack, eventBus);\r\n massRenameHandler(commandStack, eventBus);\r\n elementUpdateHandler(commandStack, eventBus);\r\n headlineAndDescriptionUpdateHandler(commandStack, this.titleService);\r\n }\r\n\r\n initiateEventBusListeners(eventBus: any, commandStack: any): void {\r\n eventBus.on('element.dblclick', (e: any) => {\r\n if (!this.replayStateService.getReplayOn()) {\r\n const element = e.element;\r\n if (element.type === elementTypes.ACTIVITY) {\r\n // override the doubleClickListener on activities\r\n this.activityDoubleClick(element, eventBus, commandStack);\r\n } else {\r\n const renderedNumberRegistry = getNumberRegistry();\r\n\r\n // add a DoubleClickListener to the number on activities\r\n if (renderedNumberRegistry.length > 1) {\r\n const allActivities =\r\n this.elementRegistryService.getActivitiesFromActors();\r\n\r\n if (allActivities.length > 0) {\r\n const htmlCanvas = document.getElementById('canvas');\r\n if (htmlCanvas) {\r\n const container =\r\n htmlCanvas.getElementsByClassName('djs-container');\r\n const svgElements = container[0].getElementsByTagName('svg');\r\n const outerSVGElement = svgElements[0];\r\n const viewport =\r\n outerSVGElement.getElementsByClassName('viewport')[0];\r\n let transform = viewport.getAttribute('transform');\r\n\r\n let transformX = 0;\r\n let transformY = 0;\r\n let zoomX = 1;\r\n let zoomY = 1;\r\n let nums;\r\n\r\n const clickX = e.originalEvent.offsetX;\r\n const clickY = e.originalEvent.offsetY;\r\n\r\n // adjust for zoom and panning\r\n if (transform) {\r\n transform = transform.replace('matrix(', '');\r\n transform.replace(')', '');\r\n nums = transform.split(',');\r\n zoomX = parseFloat(nums[0]);\r\n zoomY = parseFloat(nums[3]);\r\n transformX = parseInt(nums[4], undefined);\r\n transformY = parseInt(nums[5], undefined);\r\n }\r\n\r\n const width = 25 * zoomX;\r\n const height = 22 * zoomY;\r\n\r\n for (let i = 1; i < renderedNumberRegistry.length; i++) {\r\n const currentNum = renderedNumberRegistry[i];\r\n if (currentNum) {\r\n const tspan = currentNum.getElementsByTagName('tspan')[0];\r\n const tx = tspan.getAttribute('x');\r\n const ty = tspan.getAttribute('y');\r\n const tNumber = parseInt(tspan.innerHTML, undefined);\r\n\r\n const elementX = Math.floor(\r\n tx * zoomX + (transformX - 11 * zoomX)\r\n );\r\n const elementY = Math.floor(\r\n ty * zoomY + (transformY - 15 * zoomY)\r\n );\r\n\r\n allActivities.forEach((activity: ActivityCanvasObject) => {\r\n const activityNumber = activity.businessObject.number;\r\n if (activityNumber === tNumber) {\r\n if (\r\n positionsMatch(\r\n width,\r\n height,\r\n elementX,\r\n elementY,\r\n clickX,\r\n clickY\r\n )\r\n ) {\r\n this.activityDoubleClick(\r\n activity,\r\n eventBus,\r\n commandStack\r\n );\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n // when in replay, do not allow any interaction on the canvas\r\n eventBus.on(\r\n [\r\n 'element.click',\r\n 'element.dblclick',\r\n 'element.mousedown',\r\n 'drag.init',\r\n 'canvas.viewbox.changing',\r\n 'autoPlace',\r\n 'popupMenu.open',\r\n ],\r\n 10000000000,\r\n (event: any) => {\r\n if (this.replayStateService.getReplayOn()) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n );\r\n }\r\n\r\n /** Overrrides for Canvas Functions **/\r\n private activityDoubleClick(\r\n activity: ActivityCanvasObject,\r\n eventBus: any,\r\n commandStack: any\r\n ): void {\r\n const source = activity.source;\r\n\r\n // ensure the right number when changing the direction of an activity\r\n toggleStashUse(false);\r\n\r\n const config = new MatDialogConfig();\r\n config.disableClose = false;\r\n config.autoFocus = true;\r\n\r\n if (\r\n activity.businessObject.number &&\r\n source &&\r\n source.type.includes(elementTypes.ACTOR)\r\n ) {\r\n config.data = new ActivityDialogData(\r\n activity,\r\n getMultipleNumberRegistry()[activity.businessObject.number],\r\n true,\r\n (data: any) => this.saveActivityInputLabel(data, eventBus, commandStack)\r\n );\r\n } else if (source && source.type.includes(elementTypes.WORKOBJECT)) {\r\n config.data = new ActivityDialogData(\r\n activity,\r\n false,\r\n false,\r\n (activityData: any) =>\r\n this.saveActivityInputLabel(activityData, eventBus, commandStack)\r\n );\r\n }\r\n this.dialogService.openDialog(ActivityDialogComponent, config);\r\n }\r\n\r\n private saveActivityInputLabel(\r\n activityData: any,\r\n eventBus: any,\r\n commandStack: any\r\n ): void {\r\n const label = activityData.activityLabel;\r\n const hasNumber = activityData.multipleNumbers !== undefined;\r\n const activityNumber = activityData.activityNumber;\r\n const multipleNumberAllowed = activityData.multipleNumbers;\r\n const element = activityData.activity;\r\n\r\n const activitiesFromActors =\r\n this.elementRegistryService.getActivitiesFromActors();\r\n const index = activitiesFromActors.indexOf(element);\r\n\r\n activitiesFromActors.splice(index, 1);\r\n if (hasNumber) {\r\n setNumberIsMultiple(activityNumber, multipleNumberAllowed);\r\n }\r\n element.businessObject.multipleNumberAllowed = multipleNumberAllowed;\r\n\r\n let options: any;\r\n if (hasNumber) {\r\n options = {\r\n businessObject: element.businessObject,\r\n newLabel: label,\r\n newNumber: activityNumber,\r\n element,\r\n };\r\n } else {\r\n options = {\r\n businessObject: element.businessObject,\r\n newLabel: label,\r\n element,\r\n };\r\n }\r\n\r\n commandStack.execute('activity.changed', options);\r\n if (element.businessObject.multipleNumberAllowed !== false) {\r\n if (getMultipleNumberRegistry()[activityNumber] === false) {\r\n updateExistingNumbersAtEditing(\r\n activitiesFromActors,\r\n activityNumber,\r\n eventBus\r\n );\r\n }\r\n } else if (element.businessObject.multipleNumberAllowed === false) {\r\n updateExistingNumbersAtEditing(\r\n activitiesFromActors,\r\n activityNumber,\r\n eventBus\r\n );\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { assign } from 'min-dash';\r\nimport DomainStoryModeler from 'src/app/Modeler';\r\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\r\nimport { InitializerService } from './initializer.service';\r\nimport { ElementRegistryService } from '../ElementRegistry/element-registry.service';\r\nimport { IconDictionaryService } from '../DomainConfiguration/icon-dictionary.service';\r\nimport { DomainConfigurationService } from '../DomainConfiguration/domain-configuration.service';\r\nimport { BusinessObject } from '../../Domain/Common/businessObject';\r\nimport { StorageService } from '../BrowserStorage/storage.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ModelerService {\r\n constructor(\r\n private initializerService: InitializerService,\r\n private elementRegistryService: ElementRegistryService,\r\n private iconDictionaryService: IconDictionaryService,\r\n private domainConfigurationService: DomainConfigurationService,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n private modeler: any;\r\n private canvas: any;\r\n private elementRegistry: any;\r\n private commandStack: any;\r\n private selection: any;\r\n private eventBus: any;\r\n\r\n private encoded: string | undefined;\r\n\r\n postInit(): void {\r\n const storedDomainConfiguration =\r\n this.storageService.getStoredDomainConfiguration();\r\n if (storedDomainConfiguration) {\r\n this.iconDictionaryService.setCusomtConfiguration(\r\n storedDomainConfiguration\r\n );\r\n this.domainConfigurationService.loadConfiguration(\r\n storedDomainConfiguration\r\n );\r\n }\r\n this.initializerService.initializeDomainStoryModelerClasses();\r\n this.modeler = new DomainStoryModeler({\r\n container: '#canvas',\r\n keyboard: {\r\n bindTo: document,\r\n },\r\n\r\n // Disable BPMN-SearchModule and re-enable browser Search\r\n additionalModules: [\r\n {\r\n bpmnSearch: ['value', 'foo'],\r\n },\r\n ],\r\n });\r\n\r\n if (this.modeler.get) {\r\n this.canvas = this.modeler.get('canvas');\r\n this.elementRegistry = this.modeler.get('elementRegistry');\r\n this.eventBus = this.modeler.get('eventBus');\r\n this.commandStack = this.modeler.get('commandStack');\r\n this.selection = this.modeler.get('selection');\r\n }\r\n\r\n this.initializerService.initializeDomainStoryModelerEventHandlers(\r\n this.commandStack,\r\n this.eventBus\r\n );\r\n this.initializerService.propagateDomainStoryModelerClassesToServices(\r\n this.commandStack,\r\n this.elementRegistry,\r\n this.canvas,\r\n this.selection,\r\n this.modeler\r\n );\r\n\r\n const exportArtifacts = this.debounce(this.saveSVG, 500);\r\n if (this.modeler.get) {\r\n this.modeler.on('commandStack.changed', exportArtifacts);\r\n }\r\n\r\n this.initializerService.initiateEventBusListeners(\r\n this.eventBus,\r\n this.commandStack\r\n );\r\n\r\n this.modeler.createDiagram();\r\n // expose bpmnjs to window for debugging purposes\r\n assign(window, { bpmnjs: this.modeler });\r\n\r\n this.startDebounce();\r\n }\r\n\r\n restart(\r\n domainConfiguration?: DomainConfiguration,\r\n domainStory?: BusinessObject[]\r\n ): void {\r\n const currentStory =\r\n domainStory != undefined\r\n ? domainStory\r\n : this.elementRegistryService\r\n .createObjectListForDSTDownload()\r\n .map((e) => e.businessObject);\r\n if (!domainConfiguration) {\r\n domainConfiguration = this.storageService.getStoredDomainConfiguration();\r\n }\r\n if (domainConfiguration) {\r\n this.storageService.setStoredDomainConfiguration(domainConfiguration);\r\n this.iconDictionaryService.setCusomtConfiguration(domainConfiguration);\r\n this.domainConfigurationService.loadConfiguration(domainConfiguration);\r\n }\r\n\r\n this.elementRegistryService.clear();\r\n this.modeler?.destroy();\r\n this.postInit();\r\n if (currentStory && this.modeler.get) {\r\n this.modeler.importCustomElements(currentStory);\r\n }\r\n }\r\n\r\n /** Interactions with the Modeler **/\r\n getModeler(): any {\r\n return this.modeler;\r\n }\r\n\r\n commandStackChanged(): void {\r\n // to update the title of the svg, we need to tell the command stack, that a value has changed\r\n this.eventBus.fire(\r\n 'commandStack.changed',\r\n this.debounce(this.saveSVG, 500)\r\n );\r\n }\r\n\r\n startDebounce(): void {\r\n this.debounce(this.saveSVG, 500);\r\n }\r\n\r\n debounce(fn: any, timeout: number): any {\r\n return () => {\r\n let timer;\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n timer = setTimeout(() => {\r\n // tslint:disable-next-line:no-unused-expression\r\n fn(this.modeler).then((svg: string) => {\r\n this.encoded = svg;\r\n }) as Promise;\r\n }, timeout);\r\n };\r\n }\r\n\r\n getEncoded(): string {\r\n return this.encoded ? this.encoded : '';\r\n }\r\n\r\n async saveSVG(modeler: any): Promise {\r\n try {\r\n const result = await modeler.saveSVG();\r\n return result.svg;\r\n } catch (err) {\r\n alert('There was an error saving the SVG.\\n' + err);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelerService } from 'src/app/Service/Modeler/modeler.service';\r\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\r\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\r\nimport { DirtyFlagService } from 'src/app/Service/DirtyFlag/dirty-flag.service';\r\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RendererService {\r\n constructor(\r\n private modelerService: ModelerService,\r\n private elementRegistryService: ElementRegistryService,\r\n private dirtyFlagService: DirtyFlagService\r\n ) {}\r\n\r\n renderStory(domainStory: BusinessObject[]): void {\r\n this.modelerService.getModeler().importCustomElements(domainStory);\r\n }\r\n\r\n importStory(\r\n domainStory: BusinessObject[],\r\n configurationChange: boolean,\r\n config?: DomainConfiguration,\r\n makeClean = true\r\n ): void {\r\n this.modelerService.restart(config, domainStory);\r\n this.renderStory(domainStory);\r\n\r\n this.elementRegistryService.correctInitialize();\r\n\r\n this.modelerService.commandStackChanged();\r\n this.modelerService.startDebounce();\r\n\r\n if (makeClean) {\r\n this.dirtyFlagService.makeClean();\r\n }\r\n }\r\n\r\n getStory(): BusinessObject[] {\r\n return this.elementRegistryService\r\n .createObjectListForDSTDownload()\r\n .map((c) => c.businessObject);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ReplayStateService {\r\n private replayOnSubject = new BehaviorSubject(false);\r\n\r\n replayOn$ = this.replayOnSubject.asObservable();\r\n\r\n setReplayState(state: boolean): void {\r\n this.replayOnSubject.next(state);\r\n }\r\n\r\n getReplayOn(): boolean {\r\n return this.replayOnSubject.value;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ReplayStateService } from 'src/app/Service/Replay/replay-state.service';\r\nimport { DomManipulationService } from 'src/app/Service/DomManipulation/dom-manipulation.service';\r\nimport { StoryStep } from 'src/app/Domain/Replay/storyStep';\r\nimport { StoryCreatorService } from './storyCreator/story-creator.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport {\r\n SNACKBAR_DURATION,\r\n SNACKBAR_INFO,\r\n} from '../../Domain/Common/constants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ReplayService {\r\n private story: StoryStep[] = [];\r\n private currentStep = new BehaviorSubject(-1);\r\n private maxStepNumber = new BehaviorSubject(0);\r\n\r\n currentStep$ = this.currentStep.asObservable();\r\n maxStepNumber$ = this.maxStepNumber.asObservable();\r\n\r\n constructor(\r\n private replayStateService: ReplayStateService,\r\n private domManipulationService: DomManipulationService,\r\n private storyCreatorService: StoryCreatorService,\r\n private snackbar: MatSnackBar\r\n ) {}\r\n\r\n initializeReplay(): void {\r\n this.currentStep.next(1);\r\n this.story = this.storyCreatorService.traceActivitiesAndCreateStory();\r\n this.maxStepNumber.next(this.story.length);\r\n }\r\n\r\n getCurrentStepNumber(): number {\r\n return this.currentStep.value;\r\n }\r\n\r\n getMaxStepNumber(): number {\r\n return this.maxStepNumber.value;\r\n }\r\n\r\n nextStep(): void {\r\n if (this.currentStep.value < this.story.length) {\r\n this.currentStep.next(this.currentStep.value + 1);\r\n this.showCurrentStep();\r\n }\r\n }\r\n\r\n previousStep(): void {\r\n if (this.currentStep.value > 1) {\r\n this.currentStep.next(this.currentStep.value - 1);\r\n this.showCurrentStep();\r\n }\r\n }\r\n\r\n private showCurrentStep() {\r\n this.domManipulationService.showStep(\r\n this.story[this.currentStep.value - 1],\r\n this.currentStep.value > 1\r\n ? this.story[this.currentStep.value - 2]\r\n : undefined\r\n );\r\n }\r\n\r\n startReplay(): void {\r\n this.initializeReplay();\r\n if (this.story?.length) {\r\n const missingSteps = this.storyCreatorService.getMissingSteps(this.story);\r\n if (missingSteps.length === 0) {\r\n this.replayStateService.setReplayState(true);\r\n this.domManipulationService.showStep(\r\n this.story[this.currentStep.getValue() - 1]\r\n );\r\n } else {\r\n const steps = missingSteps.join(', ');\r\n this.snackbar.open(\r\n steps.length === 1\r\n ? `The Domain Story is not complete. Step ${steps} is missing.`\r\n : `The Domain Story is not complete. Steps ${steps} are missing.`,\r\n undefined,\r\n {\r\n duration: SNACKBAR_DURATION * 2,\r\n panelClass: SNACKBAR_INFO,\r\n }\r\n );\r\n }\r\n } else {\r\n this.snackbar.open('You need a Domain Story for replay.', undefined, {\r\n duration: SNACKBAR_DURATION * 2,\r\n panelClass: SNACKBAR_INFO,\r\n });\r\n }\r\n }\r\n\r\n stopReplay(): void {\r\n this.currentStep.next(-1);\r\n this.maxStepNumber.next(0);\r\n this.replayStateService.setReplayState(false);\r\n this.domManipulationService.showAll();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { elementTypes } from '../../../Domain/Common/elementTypes';\r\nimport { ActivityCanvasObject } from '../../../Domain/Common/activityCanvasObject';\r\nimport { BusinessObject } from '../../../Domain/Common/businessObject';\r\nimport { CanvasObject } from '../../../Domain/Common/canvasObject';\r\nimport { ElementRegistryService } from '../../ElementRegistry/element-registry.service';\r\nimport { StoryStep } from '../../../Domain/Replay/storyStep';\r\nimport { Dictionary } from '../../../Domain/Common/dictionary/dictionary';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StoryCreatorService {\r\n constructor(private elementRegistryService: ElementRegistryService) {}\r\n\r\n traceActivitiesAndCreateStory(): StoryStep[] {\r\n const tracedActivityMap = new Dictionary();\r\n const story: StoryStep[] = [];\r\n const activities = this.elementRegistryService.getActivitiesFromActors();\r\n\r\n activities.forEach((activity) => {\r\n const activityNumber = Number(activity.businessObject.number); // Sometimes the activityNumber is a string for some reason\r\n const tracedItem = tracedActivityMap.get(`${activityNumber - 1}`)\r\n ? tracedActivityMap.get(`${activityNumber - 1}`)\r\n : [];\r\n tracedItem.push(activity);\r\n tracedActivityMap.set(`${activityNumber - 1}`, tracedItem);\r\n });\r\n\r\n for (let i = 0; i < tracedActivityMap.keysArray().length; i++) {\r\n this.createStep(tracedActivityMap, i, story);\r\n }\r\n this.addGroupStep(story);\r\n return story;\r\n }\r\n\r\n private createStep(\r\n tracedActivityMap: Dictionary,\r\n i: number,\r\n story: StoryStep[]\r\n ): void {\r\n const stepObjects = this.getStepObjects(\r\n tracedActivityMap.get(`${i}`) || []\r\n );\r\n const highlightedElements = stepObjects.map((t) => t.id);\r\n if (i > 0) {\r\n story[i - 1].objects.forEach((object) => {\r\n if (!stepObjects.includes(object)) {\r\n stepObjects.push(object);\r\n }\r\n });\r\n }\r\n story[i] = {\r\n highlightedObjects: highlightedElements,\r\n objects: stepObjects,\r\n };\r\n }\r\n\r\n getMissingSteps(story: StoryStep[]): number[] {\r\n if (!story || story.length === 0) {\r\n return [];\r\n }\r\n\r\n const missingSteps: number[] = [];\r\n let complete = true;\r\n for (let i = 0; i < story.length; i++) {\r\n if (\r\n !story[i] ||\r\n !(story[i].objects.length > 0) ||\r\n story[i].objects.filter(\r\n (element) => element.type === elementTypes.ACTIVITY\r\n ).length <= 0\r\n ) {\r\n missingSteps.push(i + 1);\r\n complete = false;\r\n }\r\n }\r\n return missingSteps;\r\n }\r\n\r\n private getStepObjects(\r\n tracedActivity: ActivityCanvasObject[]\r\n ): BusinessObject[] {\r\n const initialSource: CanvasObject[] = [];\r\n const activities = tracedActivity;\r\n const targetObjects: CanvasObject[] = [];\r\n\r\n tracedActivity.forEach((parallelStep: ActivityCanvasObject) => {\r\n initialSource.push(parallelStep.source);\r\n\r\n const firstTarget = parallelStep.target;\r\n targetObjects.push(firstTarget);\r\n\r\n // check the outgoing activities for each target\r\n for (const checkTarget of targetObjects) {\r\n if (\r\n checkTarget.businessObject &&\r\n !checkTarget.businessObject.type.includes('actor') &&\r\n checkTarget.outgoing\r\n ) {\r\n // check the target for each outgoing activity\r\n checkTarget.outgoing.forEach((activity: ActivityCanvasObject) => {\r\n activities.push(activity);\r\n const activityTarget = activity.target;\r\n if (activityTarget && !targetObjects.includes(activityTarget)) {\r\n targetObjects.push(activityTarget);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n return initialSource\r\n .map((e) => e.businessObject)\r\n .concat(activities.map((a) => a.businessObject))\r\n .concat(targetObjects.map((t) => t.businessObject));\r\n }\r\n\r\n /** Groups should be shown at the End of the Story **/\r\n private addGroupStep(story: StoryStep[]): void {\r\n const groups = this.elementRegistryService.getAllGroups() as CanvasObject[];\r\n if (groups.length > 0) {\r\n story.push({\r\n highlightedObjects: [],\r\n objects: groups\r\n .map((g) => g.businessObject)\r\n .concat(story[story.length - 1].objects),\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SettingsService {\r\n private showSettings = new BehaviorSubject(false);\r\n showSettings$ = this.showSettings.asObservable();\r\n\r\n close(): void {\r\n this.showSettings.next(false);\r\n }\r\n\r\n open(): void {\r\n this.showSettings.next(true);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {\r\n INITIAL_DESCRIPTION,\r\n INITIAL_DOMAIN_NAME,\r\n INITIAL_TITLE,\r\n VERSION,\r\n} from '../../Domain/Common/constants';\r\nimport { CommandStackService } from '../CommandStack/command-stack.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TitleService {\r\n private titleSubject = new BehaviorSubject(INITIAL_TITLE);\r\n private descriptionSubject = new BehaviorSubject(INITIAL_DESCRIPTION);\r\n private domainNameSubject = new BehaviorSubject(INITIAL_DOMAIN_NAME);\r\n private showDescriptionSubject = new BehaviorSubject(true);\r\n\r\n title$ = this.titleSubject.asObservable();\r\n description$ = this.descriptionSubject.asObservable();\r\n showDescription$ = this.showDescriptionSubject.asObservable();\r\n domainName$ = this.domainNameSubject.asObservable();\r\n\r\n constructor(private commandStackService: CommandStackService) {}\r\n\r\n updateTitleAndDescription(\r\n title: string | null,\r\n description: string | null,\r\n allowUndo: boolean\r\n ): void {\r\n if (allowUndo) {\r\n this.fireTitleAndDescriptionUpdate(title, description);\r\n } else {\r\n this.updateTitle(title);\r\n this.updateDescription(description);\r\n }\r\n }\r\n\r\n private updateTitle(title: string | null): void {\r\n this.titleSubject.next(title ?? this.titleSubject.value);\r\n document.title = title ?? this.titleSubject.value + ' - egon.io';\r\n }\r\n\r\n private updateDescription(description: string | null): void {\r\n this.descriptionSubject.next(description ?? this.descriptionSubject.value);\r\n }\r\n\r\n setShowDescription(show: boolean): void {\r\n this.showDescriptionSubject.next(show);\r\n }\r\n\r\n setDomainName(name: string): void {\r\n this.domainNameSubject.next(name);\r\n }\r\n\r\n getTitle(): string {\r\n return this.titleSubject.value;\r\n }\r\n\r\n getDescription(): string {\r\n return this.descriptionSubject.value;\r\n }\r\n\r\n getDomainName(): string {\r\n return this.domainNameSubject.value;\r\n }\r\n\r\n getVersion(): string {\r\n return VERSION;\r\n }\r\n\r\n private fireTitleAndDescriptionUpdate(\r\n newTitle: string | null,\r\n newDescription: string | null\r\n ): void {\r\n const context = {\r\n newTitle,\r\n newDescription,\r\n };\r\n this.commandStackService.execute(\r\n 'story.updateHeadlineAndDescription',\r\n context\r\n );\r\n }\r\n}\r\n","'use strict';\r\n\r\n// convert rad to deg\r\nexport function degrees(radians: number): number {\r\n return (radians * 180) / Math.PI;\r\n}\r\n\r\n// calculate the angle between two points in 2D\r\nexport function angleBetween(\r\n startPoint: Point,\r\n endPoint: Point\r\n): number | undefined {\r\n let quadrant;\r\n\r\n // determine in which quadrant we are\r\n if (startPoint.x <= endPoint.x) {\r\n if (startPoint.y >= endPoint.y) {\r\n quadrant = 0;\r\n } // upper right quadrant\r\n else {\r\n quadrant = 3;\r\n } // lower right quadrant\r\n } else {\r\n if (startPoint.y >= endPoint.y) {\r\n quadrant = 1;\r\n } // upper left Quadrant\r\n else {\r\n quadrant = 2;\r\n } // lower left quadrant\r\n }\r\n\r\n const adjacent = Math.abs(startPoint.y - endPoint.y);\r\n const opposite = Math.abs(startPoint.x - endPoint.x);\r\n\r\n // since the arcus-tangens only gives values between 0 and 90, we have to adjust for the quadrant we are in\r\n\r\n if (quadrant === 0) {\r\n return 90 - degrees(Math.atan2(opposite, adjacent));\r\n }\r\n if (quadrant === 1) {\r\n return 90 + degrees(Math.atan2(opposite, adjacent));\r\n }\r\n if (quadrant === 2) {\r\n return 270 - degrees(Math.atan2(opposite, adjacent));\r\n }\r\n if (quadrant === 3) {\r\n return 270 + degrees(Math.atan2(opposite, adjacent));\r\n }\r\n return undefined;\r\n}\r\n\r\nexport function positionsMatch(\r\n width: number,\r\n height: number,\r\n elementX: number,\r\n elementY: number,\r\n clickX: number,\r\n clickY: number\r\n): boolean {\r\n if (clickX > elementX && clickX < elementX + width) {\r\n if (clickY > elementY && clickY < elementY + height) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nexport class Point {\r\n y = 0;\r\n x = 0;\r\n}\r\n","import { elementTypes } from 'src/app/Domain/Common/elementTypes';\r\n\r\nexport function getNameFromType(type: string): string {\r\n if (type.includes(elementTypes.ACTOR)) {\r\n return type.replace(elementTypes.ACTOR, '');\r\n } else if (type.includes(elementTypes.WORKOBJECT)) {\r\n return type.replace(elementTypes.WORKOBJECT, '');\r\n }\r\n return '';\r\n}\r\n","'use strict';\r\n\r\n// sanitize user-Input to be Desktop-Filename safe\r\nexport function sanitizeForDesktop(str: string): string {\r\n const map: { [key: string]: string } = {\r\n '/': '',\r\n '\\\\': '',\r\n ':': '',\r\n '*': '',\r\n '?': '',\r\n '\"': '',\r\n '<': '',\r\n '>': '',\r\n '|': '',\r\n };\r\n const reg = /[/\\\\:*?\"<>|]/gi;\r\n return str ? str.replace(reg, (match) => map[match]) : '';\r\n}\r\n\r\nexport function sanitizeIconName(name: string): string {\r\n const map: { [key: string]: string } = {\r\n '/': '',\r\n '\\\\': '',\r\n ':': '',\r\n '*': '',\r\n '?': '',\r\n '\"': '',\r\n '<': '',\r\n '>': '',\r\n '|': '',\r\n '(': '',\r\n ')': '',\r\n ' ': '-',\r\n '.': '_',\r\n };\r\n const reg = /[/\\\\:*?\"<>|() .]/gi;\r\n return name\r\n ? name.replace(reg, (match) => {\r\n return map[match];\r\n })\r\n : '';\r\n}\r\n\r\nexport function restoreTitleFromFileName(\r\n filename: string,\r\n isSVG: boolean\r\n): string {\r\n let title;\r\n\r\n const dstRegex = /_\\d+-\\d+-\\d+( ?_?-?\\(\\d+\\))?(-?\\d)?(.dst|.egn)/;\r\n const svgRegex = /_\\d+-\\d+-\\d+( ?_?-?\\(\\d+\\))?(-?\\d)?(.dst|.egn).svg/;\r\n\r\n const egnSuffix = '.dst';\r\n const dstSuffix = '.dst';\r\n const svgSuffix = '.svg';\r\n\r\n let filenameWithoutDateSuffix = filename.replace(\r\n isSVG ? svgRegex : dstRegex,\r\n ''\r\n );\r\n if (filenameWithoutDateSuffix.includes(isSVG ? svgSuffix : dstSuffix)) {\r\n filenameWithoutDateSuffix = filenameWithoutDateSuffix\r\n .replace(svgSuffix, '')\r\n .replace(dstSuffix, '')\r\n .replace(egnSuffix, '');\r\n }\r\n title = filenameWithoutDateSuffix;\r\n return title;\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SettingsService } from 'src/app/Service/Settings/settings.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { DialogService } from './Service/Dialog/dialog.service';\r\nimport { MatDialogConfig } from '@angular/material/dialog';\r\nimport { InfoDialogData } from './Domain/Dialog/infoDialogData';\r\nimport { InfoDialogComponent } from './Presentation/Dialog/info-dialog/info-dialog.component';\r\nimport { TitleService } from './Service/Title/title.service';\r\nimport { VERSION } from './Domain/Common/constants';\r\nimport { ExportService } from './Service/Export/export.service';\r\nimport { ReplayStateService } from './Service/Replay/replay-state.service';\r\nimport { ReplayService } from './Service/Replay/replay.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n})\r\nexport class AppComponent implements OnInit {\r\n showSettings$: Observable | BehaviorSubject;\r\n showDescription$: Observable;\r\n version: string = '';\r\n\r\n constructor(\r\n private settingsService: SettingsService,\r\n private dialogService: DialogService,\r\n private titleService: TitleService,\r\n private exportService: ExportService,\r\n private replayStateSerice: ReplayStateService,\r\n private replayService: ReplayService\r\n ) {\r\n this.showSettings$ = new BehaviorSubject(false);\r\n this.showDescription$ = new BehaviorSubject(true);\r\n this.version = VERSION;\r\n\r\n document.onkeydown = (e: KeyboardEvent) => {\r\n if (e.ctrlKey && e.key === 's') {\r\n if (this.exportService.isDomainStoryExportable()) {\r\n this.exportService.downloadDST();\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n if (e.ctrlKey && e.key === 'l') {\r\n document.getElementById('import')?.click();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n if (e.key === 'ArrowRight' && this.replayStateSerice.getReplayOn()) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n replayService.nextStep();\r\n }\r\n if (e.key === 'ArrowLeft' && this.replayStateSerice.getReplayOn()) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n replayService.previousStep();\r\n }\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showDescription$ = this.titleService.showDescription$;\r\n this.showSettings$ = this.settingsService.showSettings$;\r\n }\r\n\r\n openLinkDialog(link: string, title: string, text: string): void {\r\n const config = new MatDialogConfig();\r\n config.disableClose = false;\r\n config.autoFocus = true;\r\n\r\n config.data = new InfoDialogData(title, text, true, true, link);\r\n\r\n this.dialogService.openDialog(InfoDialogComponent, config);\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n","import { ApplicationRef, DoBootstrap, NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport {\r\n MAT_CHECKBOX_DEFAULT_OPTIONS,\r\n MatCheckboxDefaultOptions,\r\n} from '@angular/material/checkbox';\r\n\r\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HeaderComponent } from 'src/app/Presentation/Header/header.component';\r\nimport { SettingsComponent } from 'src/app/Presentation/Settings/settings.component';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { ExportService } from 'src/app/Service/Export/export.service';\r\nimport { ImportDomainStoryService } from 'src/app/Service/Import/import-domain-story.service';\r\nimport { ImportRepairService } from 'src/app/Service/Import/import-repair.service';\r\nimport { ModelerService } from 'src/app/Service/Modeler/modeler.service';\r\nimport { TitleService } from 'src/app/Service/Title/title.service';\r\nimport { LabelDictionaryService } from 'src/app/Service/LabelDictionary/label-dictionary.service';\r\nimport { ReplayService } from 'src/app/Service/Replay/replay.service';\r\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\r\nimport { DomainConfigurationService } from 'src/app/Service/DomainConfiguration/domain-configuration.service';\r\nimport { MassNamingService } from 'src/app/Service/LabelDictionary/mass-naming.service';\r\nimport { InfoDialogComponent } from 'src/app/Presentation/Dialog/info-dialog/info-dialog.component';\r\nimport { ExportDialogComponent } from 'src/app/Presentation/Dialog/export-dialog/export-dialog.component';\r\nimport { ActivityDialogComponent } from 'src/app/Presentation/Dialog/activity-dialog/activity-dialog.component';\r\nimport { UntypedFormBuilder, ReactiveFormsModule } from '@angular/forms';\r\nimport { HeaderDialogComponent } from 'src/app/Presentation/Dialog/header-dialog/header-dialog.component';\r\nimport { IconDictionaryService } from 'src/app/Service/DomainConfiguration/icon-dictionary.service';\r\nimport { ModelerComponent } from 'src/app/Presentation/Canvas/modeler.component';\r\nimport { SettingsModule } from 'src/app/Modules/settings.module';\r\nimport { AutosaveService } from './Service/Autosave/autosave.service';\r\nimport { DomainStoryModelerModuleModule } from './Modules/domain-story-modeler-module.module';\r\nimport { LabelDictionaryDialogComponent } from './Presentation/Dialog/label-dictionary-dialog/label-dictionary-dialog.component';\r\nimport { MaterialModule } from './material.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n HeaderComponent,\r\n SettingsComponent,\r\n AppComponent,\r\n InfoDialogComponent,\r\n ExportDialogComponent,\r\n ActivityDialogComponent,\r\n HeaderDialogComponent,\r\n ModelerComponent,\r\n LabelDictionaryDialogComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n NoopAnimationsModule,\r\n ReactiveFormsModule,\r\n SettingsModule,\r\n DomainStoryModelerModuleModule,\r\n MaterialModule,\r\n ],\r\n providers: [\r\n AutosaveService,\r\n ExportService,\r\n ImportDomainStoryService,\r\n ImportRepairService,\r\n IconDictionaryService,\r\n TitleService,\r\n LabelDictionaryService,\r\n ReplayService,\r\n ElementRegistryService,\r\n DomainConfigurationService,\r\n ModelerService,\r\n MassNamingService,\r\n UntypedFormBuilder,\r\n {\r\n provide: MAT_CHECKBOX_DEFAULT_OPTIONS,\r\n useValue: { clickAction: 'noop' } as MatCheckboxDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class AppModule implements DoBootstrap {\r\n constructor(private autosaveService: AutosaveService) {\r\n // autosaveService wird so automatisch initialisiert, auf keinen Fall entfernen!\r\n }\r\n\r\n ngDoBootstrap(app: ApplicationRef): void {\r\n const componentElement = document.createElement('app-root');\r\n document.body.append(componentElement);\r\n app.bootstrap(AppComponent);\r\n }\r\n}\r\n","import { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\n@NgModule({\r\n imports: [\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatListModule,\r\n MatCheckboxModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatGridListModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n MatExpansionModule,\r\n MatSnackBarModule,\r\n MatCardModule,\r\n ],\r\n exports: [\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatListModule,\r\n MatCheckboxModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatGridListModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n MatExpansionModule,\r\n MatSnackBarModule,\r\n MatCardModule,\r\n ],\r\n})\r\nexport class MaterialModule {}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.error(err));\r\n"],"names":["Modeler","ResizeModule","assign","isArray","inherits","DomainStoryModule","LabelEditingModule","ModelingModule","elementTypes","DomainStoryModeler","options","call","_customElements","_groupElements","prototype","_modules","concat","_addCustomShape","customElement","parentId","parent","children","push","canvas","get","elementFactory","customAttrs","businessObject","customShape","create","isGroup","id","parentShape","addShape","_addCustomConnection","elementRegistry","connection","source","target","addConnection","importCustomElements","elements","fire","addCustomElements","customElements","Error","shapes","connections","groups","forEach","isConnection","getCustomElements","createDiagram","done","element","type","ACTIVITY","CONNECTION","GROUP","Replace","modeling","_modeling","replaceElement","oldElement","newElementData","newElement","setCenterOfElement","outgoingActivities","outgoing","incomingActivities","incoming","x","Math","ceil","width","y","height","name","replaceShape","replaceOptions","ReplaceMenuProvider","_dsReplace","$inject","getEntries","entries","includes","actorReplaceOptions","workObjectReplaceOptions","_createEntries","menuEntries","self","definition","entry","_createMenuEntry","action","replaceAction","label","className","actionName","getNameFromType","iconDictionaryService","initializeReplaceOptions","iconDictionary","actorTypes","getTypeDictionary","ACTOR","replaceOption","i","keysArray","actorType","typeName","toLowerCase","getIconForBPMN","workObjectTypes","WORKOBJECT","workObjectType","ContextPadProvider","bind","generateAutomaticNumber","getAllStandardIconKeys","dirtyFlagService","initializeContextPadProvider","dirtyFlag","DomainStoryContextPadProvider","injector","connect","translate","contextPad","popupMenu","replaceMenuProvider","commandStack","eventBus","startConnect","selectedElement","invoke","autoPlace","cached","getContextPadEntries","colorPicker","document","getElementById","onchange","ev","context","newColor","value","execute","makeDirty","registerProvider","allStandardIconKeys","actions","event","autoActivate","start","replace","addColorChange","addConnectWithActivity","addTextAnnotation","addActors","appendAction","addWorkObjects","addChangeWorkObjectTypeMenu","addChangeActorTypeMenu","delete","deleteGroup","group","title","click","removeGroup","moveDeleteActionToEndOfArray","removeElements","changeDirection","position","getReplaceMenuPosition","cursor","open","colorChange","TEXTANNOTATION","dragstart","icon","newNumber","Y_OFFSET","diagramContainer","getContainer","pad","getPad","html","diagramRect","getBoundingClientRect","padRect","top","left","appendStart","shape","createShape","hints","BpmnElementFactory","DEFAULT_LABEL_SIZE","DomainStoryIdFactory","DomainStoryElementFactory","bpmnFactory","moddle","domainStoryIdFactory","elementType","attrs","baseCreate","test","registerId","getId","key","set","$type","di","$descriptor","_getCustomElementSize","Object","defineProperty","createBpmnElement","__default","Dimensions","idList","generateId","idNumber","fourDigitsId","idSuffix","containsId","floor","random","same","BaseRenderer","Ids","getAnnotationBoxHeight","componentsToPath","createLine","append","svgAppend","attr","svgAttr","classes","svgClasses","svgCreate","query","domQuery","isObject","getNumberStash","addNumberToRegistry","numberBoxDefinitions","calculateTextWidth","countLines","labelPosition","angleBetween","RENDERER_IDS","numbers","DEFAULT_COLOR","initializeRenderer","elementRegistryService","DomainStoryRenderer","styles","textRenderer","pathMap","rendererId","next","markers","computeStyle","generateActivityNumber","parentGfx","box","numberStash","semantic","use","number","renderNumber","backgroundDotStyle","backgroundBoxStyle","newRenderedNumber","numberStyle","fitBox","style","getExternalStyle","fill","fontSize","fontFamily","renderEmbeddedLabel","align","padding","renderLabel","renderExternalLabel","waypoints","lines","startPoint","selected","endPoint","angle","alignment","boxWidth","xStart","abs","textAlign","length","wordWrap","overflowWrap","hyphens","renderExternalNumber","String","text","createText","add","setCoordinates","innerHTML","manipulateInnerHTMLXLabel","manipulateInnerHTMLYLabel","firstChild","attributes","nodeValue","offset","result","outerHTML","Number","drawGroup","pickedColor","rect","drawRect","stroke","useColorForElement","iconSRC","match","index","indexOf","substring","getIconSrc","startsWith","drawActor","p","svgDynamicSizeAttributes","actor","getTypeIconSRC","drawWorkObject","workObject","useColorForActivity","strokeWidth","strokeLinejoin","markerEnd","marker","drawActivity","adjustForTextOverlap","fixConnectionInHTML","parentElement","checkIfPointOverlapsText","point","lineOffset","getLineOffset","objects","getElementsByClassName","data_id","item","getAttribute","object","getElementsByTagName","tspans","tspan","wantedConnection","polylines","setAttribute","drawDSConnection","strokeDasharray","drawAnnotation","textElement","textPathData","getScaledPath","xScaleFactor","yScaleFactor","containerWidth","containerHeight","mx","my","drawPath","d","path","r","rx","ry","createMarker","sequenceflowEnd","addMarker","ref","scale","strokeLinecap","viewBox","refX","refY","markerWidth","markerHeight","orient","defs","_svg","getWorkObjectPath","rectangle","getRectPath","getGroupPath","getActivityPath","map","original","activityPath","waypoint","getActorPath","canRender","drawShape","search","pos","correctInitialize","getShapePath","drawConnection","getConnectionPath","every","reduce","RuleProvider","is","HIGH_PRIORITY","MIN_SIZE","isDomainStory","isDomainStoryGroup","isActor","isWorkObject","isActivity","isAnnotation","canConnect","canResize","newBounds","lowerLeft","lowerRight","upperRight","canAttach","Array","canConnectToAnnotation","DomainStoryRules","init","canCreate","addRule","host","s","undefined","hover","pick","CommandInterceptor","collectionAdd","remove","collectionRemove","reworkGroupElements","DomainStoryUpdater","bpmnjs","updateCustomElement","e","DOMAINSTORY","updateCustomConnection","newTarget","newSource","copyWaypoints","executed","ifDomainStoryElement","reverted","fn","DomainStoryPalette","ElementFactory","CreateModule","PathMap","PopupMenuModule","ContextPadModule","CommandStack","UpdateLabelHandler","headlineAndDescriptionUpdateHandler","DSModeling","__depends__","__init__","domainStoryRenderer","paletteProvider","domainStoryRules","domainStoryUpdater","contextPadProvider","elementFactoryBpmn","updateLabelHandler","svgRemove","MARKER_HIDDEN","MARKER_LABEL_HIDDEN","annotationBoxHeight","DSLabelEditingPreview","defaultLayer","getDefaultLayer","absoluteElementBBox","gfx","on","activeProvider","active","getAbsoluteBBox","getStrokeColor","labelTarget","dy","newElementHeight","max","removeMarker","getLabel","autocomplete","isAny","getExternalLabelMid","isLabelExternal","hasExternalLabel","isLabel","dictionaryService","stashUse","initializeLabelEditingProvider","labelingDictionary","toggleStashUse","DSLabelEditingProvider","directEditing","resizeHandles","_canvas","_textRenderer","_updateLabelHandler","activateDirectEdit","complete","isActive","cancel","removeResizers","createAutocomplete","canExecute","isTouch","force","activate","editingBox","focus","getWorkObjectLabels","bounds","getEditingBBox","autoResize","resizable","bbox","mid","zoom","defaultStyle","getDefaultStyle","externalStyle","externalFontSize","externalLineHeight","lineHeight","defaultFontSize","defaultLineHeight","fontWeight","minWidth","maxWidth","minHeight","paddingTop","paddingBottom","paddingLeft","paddingRight","externalLabelMid","absoluteBBox","update","newLabel","activeContextText","updateLabel","getLabelAttr","getNumberAttr","getNumber","setLabel","setNumber","textNumber","selectPartOfActivity","angleActivity","selectedActivity","linelength","fontsize","inp","arr","closeAllLists","currentFocus","addEventListener","autocompleteList","autocompleteItem","val","createElement","parentNode","appendChild","substr","toUpperCase","onclick","visibility","onkeydown","keyCode","addActive","preventDefault","removeActive","classList","survivor","removeChild","ChangeSupportModule","DirectEditingModule","dSlabelEditingProvider","dSlabelEditingPreview","str","split","amountWaypoints","determinedPosition","xPos","yPos","labelPositionX","labelPositionY","offsetX","scaledAngle","offsetY","Modeling","_commandStack","updateNumber","oldShape","newShape","newData","numberRegistry","multipleNumberRegistry","canvasElementRegistry","initializeNumbering","canvasElementRegistryService","boxHeight","elementActivity","usedNumbers","wantedNumber","activitiesFromActors","getActivitiesFromActors","updateExistingNumbersAtGeneration","setTimeout","updateExistingNumbersAtEditing","sortedActivities","activity","currentNumber","setNumberOfActivity","getNumbersAndIDs","iDWithNumber","activities","renderedNumber","setNumberIsMultiple","multi","getNumberRegistry","slice","getMultipleNumberRegistry","elementArray","overrideAppendedIcons","Dictionary","APPENDED_ICONS_TAG","configuration","initializePalette","configurationService","PaletteProvider","palette","spaceTool","lassoTool","_create","_elementFactory","_spaceTool","_lassoTool","getPaletteEntries","createAction","createListener","isExpanded","shortType","initPalette","appendCSSStyleCheat","customIcons","sheetEl","head","customIconDict","appendDict","customIconDictKeys","getAppendedIconDictionary","has","src","iconStyle","wrapSRCInSVG","sheet","insertRule","cssRules","config","getCurrentIconConfigurationForBPMN","localStorage","getItem","JSON","parse","customIconsLegacy","convertLegacyAppendedIconsToDict","customIconsDict","putEntry","initTypeDictionaries","actors","workObjects","addCanvasObjectTypes","separator","activateSelection","keys","dict","initializeActivityUpdateHandler","activityUpdateHandler","registerHandler","activity_directionChange","activity_changed","preExecute","oldLabel","oldNumbersWithIDs","oldNumber","revert","revertAutomaticNumberGenerationChange","oldWaypoints","swapSource","newWaypoints","getActivitesFromActors","j","splice","undoGroupRework","elementUpdateHandler","element_colorChange","removeGroupWithoutChildren","oldColor","ctx","child","titleService","handlerFunction","oldTitle","getTitle","oldDescription","getDescription","updateTitleAndDescription","newTitle","newDescription","DSMassRenameHandler","massRename","relevantElements","confirm","newValue","getBusinessObject","NULL_DIMENSIONS","labelCenter","createLabel","setText","postExecute","trim","removeShape","bo","getLayoutedBounds","resizeShape","numberTarget","some","$instanceOf","types","t","innerShape","superParent","svgShape","querySelector","svgGroup","svgGroupParent","SVG_LINK","TEXTSPAN_DESCRIPTION_HEIGHT","TEXTSPAN_TITLE_HEIGHT","X_OFFSET_UTIL","extraHeight","createTitleAndDescriptionSVGElement","description","xLeft","yUp","titleElement","createTitle","descriptionElement","createDescription","insertText","tempCanvas","getContext","font","createTextSpans","descriptionParts","yOffset","heightOffset","textSpans","words","textTag","textSpan","createElementNS","textNode","createTextNode","data","len","measureText","testBusinessObject","Configuration","constructor","VERSION","INITIAL_TITLE","INITIAL_DESCRIPTION","INITIAL_DOMAIN_NAME","DOMAIN_CONFIGURATION_TAG","DEFAULT_AUTOSAVES_AMOUNT","DEFAULT_AUTOSAVES_INTERVAL","SNACKBAR_DURATION","SNACKBAR_SUCCESS","SNACKBAR_ERROR","SNACKBAR_INFO","IMPLICIT_ROOT_ID","all","size","isEmpty","Entry","addEach","clear","filter","found","sort","sortByName","a","b","structuredClone","testCustomDomainConfiguration","fromConfigurationFromFile","configFromFile","actorsDict","workObjectsDict","IconConfiguration","allIconDictionary","getDefaultConf","defaultConf","updateAllIconRegistry","appendSRCFile","newAppendedIcons","appen","createCustomConf","domainConfiguration","domainName","allIconsConf","ActivityDialogData","numberIsAllowedMultipleTimes","showNumberFields","saveFN","ExportDialogData","ExportOption","tooltip","InfoDialogData","infoText","isInfo","isLink","linkText","NUMBER_BACKGROUND_COLOR","NUMBER_COLOR","STROKE_WIDTH","HIGHLIGHT_NUMBER_BACKGROUNG_COLOR","HIGHLIGHT_NUMBER_COLOR","HIGHLIGHT_COLOR","HIGHLIGHT_STROKE_WIDTH","appendedIcons","allIcons","Person","Group","Pet","Conversation","World","Store","Theater","Business","Water","Hotel","Dining","Courthouse","Flag","Place","Car","Bus","Train","Truck","Taxi","Bike","Boat","Motorcycle","Plane","Shuttle","Walking","Traffic","Commute","System","Printer","Document","Folder","Call","Email","Copyright","DNS","Settings","Cellphone","Update","Briefcase","Microphone","Signal","Key","Pencil","Sum","Headset","Keyboard","Mouse","Router","Scanner","Security","Desktop","Tablet","Label","Receipt","Calendar","Cloud","Assessment","Dashboard","Problem","Grid","Watch","Euro","Dollar","Info","Alarm","Wrench","Favorite","Gavel","Blind","Hourglass","Time","Search","Shopping","Couch","Attach","Ruler","Education","allIconsDict","newIcons","IconFilterEnum","ConfigAndDST","domain","dst","testConfigAndDst","CommonModule","AutosaveSettingsComponent","AutosaveOptionsComponent","AutosavedDraftsComponent","FormsModule","MaterialModule","AutosaveSettingsModule","declarations","imports","exports","HeaderButtonsComponent","DomainStoryModelerModuleModule","DomainConfigurationComponent","IconListItemComponent","DetailsListItemComponent","DomainDetailsComponent","GeneralSettingsComponent","LabelDictionaryComponent","SettingsModule","i0","autosaveConfiguration","snackbar","save","activated","amount","interval","setConfiguration","duration","panelClass","selectors","decls","vars","consts","template","autosaveService","subscription","autosavedDraftsChanged$","subscribe","initDrafts","ngOnInit","drafts","loadCurrentDrafts","loadDraft","draft","removeAllDrafts","ModelerComponent","modelerService","postInit","MAT_DIALOG_DATA","ActivityDialogComponent","fb","dialogRef","activityLabel","activityNumber","form","multipleNumbers","onSubmit","patchValue","close","BehaviorSubject","ExportDialogComponent","withTitle","useWhiteBackground","doOption","updateWithTitle","$event","checked","updateUseWhiteBackground","HeaderDialogComponent","InfoDialogComponent","showConfirmButton","hasLink","ngAfterViewInit","span","scrollHeight","LabelDictionaryDialogComponent","ngAfterViewChecked","createIcon","img","iconInitiated","svg","inputs","sanitizeIconName","domainCustomizationService","ICON_FILTER_NONE","domainConfigurationTypes","getDomainConfiguration","getFullDictionary","allIconNames","selectedActors","selectedActors$","selectedWorkobjects","selectedWorkobjects$","allFiltered","getFilteredNamesForType","allFilteredIconNames","loadMinimalIconConfigurationWithDefaultIcons","resetDomain","loadInitialConfiguration","saveDomain","getUsedIcons","exportDomain","startIconUpload","importIcon","files","iconInputFile","reader","FileReader","iconName","onloadend","addIMGToIconDictionary","registerIconForBPMN","addNewIcon","readAsDataURL","startDomainImport","importDomain","domainInputFile","loadConfiguration","importConfiguration","readAsText","filterForActors","ICON_FILTER_ACTOR","filterForWorkobjects","ICON_FILTER_WORKOBJECT","filterForUnassigned","ICON_FILTER_UNASSIGNED","filterByNameAndType","filteredByNameAndType","isIconActor","isIconWorkObject","customizationService","domainName$","changeName","getIconForName","allowDrop","listName","draggedList","onDrop","list","sortedList","draggedIndex","setSelectedActors","setSelectedWorkObject","onDragStart","isWorkobject","isNone","toggleNone","setAsUnassigned","toggleActor","setAsActor","toggleWorkobject","setAsWorkobject","MatDialogConfig","settingsService","replayStateService","dialogService","replayService","exportService","importService","isReplay$","replayOn$","isDirty$","dirty$","showDescription","showDescription$","import","filename","endsWith","importDST","importEGN","commandStackChanged","setShowDescription","show","openSettings","openDownloadDialog","isDomainStoryExportable","SVGDownloadOption","downloadSVG","EGNDownloadOption","downloadDST","PNGDownloadOption","downloadPNG","HTMLDownloadOption","downloadHTMLPresentation","disableClose","autoFocus","openDialog","openHeaderDialog","openKeyboardShortcutsDialog","shortCutText","openLabelDictionary","startReplay","stopReplay","previousStep","nextStep","combineLatest","HeaderComponent","title$","description$","stepDescription$","currentStep$","maxStepNumber$","pipe","step","count","EventEmitter","labelDictionaryService","createLabelDictionaries","workObjectEntries","activityEntries","getActivityLabels","workobjectEntriesSubject","activityEntriesSubject","activityNames","originalActivityNames","workObjectNames","originalWorkObjectNames","originalName","w","workobject","massRenameLabels","closeEmitter","emit","updateActivityEntry","activityEntry","updateWorkobjectEntry","workobjectEntry","outputs","SettingsComponent","savedConfiguration","getAndClearSavedConfiguration","restart","openGeneralSettings","showGeneralSettings","showDomainCustomization","openDomainCustomization","ReplaySubject","AUTOSAVE_CONFIGURATION_TAG","defaultConfiguration","AutosaveConfigurationService","storageService","configurationSubject","asObservable","initializeConfiguration","saveConfiguration","factory","providedIn","Subject","DRAFTS_TAG","AutosaveService","iconDistionaryService","rendererService","configuration$","updateConfiguration","readDrafts","sortDrafts","configAndDST","story","actorIcons","getElementsOfType","workObjectIcons","updateIconRegistries","importStory","stopTimer","startTimer","autosaveTimer","clearInterval","setInterval","newDraft","createDraft","isChanged","isSame","unshift","pop","writeDrafts","stringify","getStory","createConfigAndDST","date","Date","toString","aDate","bDate","StorageService","setItem","json","removeItem","checkValidityOfConfiguration","configuratioFromFile","getStoredDomainConfiguration","domainString","setStoredDomainConfiguration","configForStorage","CommandStackService","setCommandStack","payload","DialogService","matDialog","dialog","DirtyFlagService","isDirtySubject","makeClean","dirty","DomManipulationService","showAll","removeHighlights","getAllCanvasObjects","getAllGroups","domObject","display","showStep","replayStep","notShown","getAllNotShown","hightlightStep","o","getNumberDomForActivity","numberDOMS","numberBackgroundDom","numberTextDom","allActivities","getAllActivities","allConnections","getAllConnections","activityDomObject","connectionDomObject","stepObjects","shownElements","notShownElements","allObjects","DomainConfigurationService","setDomainName","exportConfiguration","getCurrentConfigurationForExport","configJSONString","getDomainName","encodeURIComponent","body","customConfig","updateDomainName","actorDict","workObjectDict","actorKeys","workObjectKeys","getIconConfiguration","addIconsFromDomainConfiguration","configurationName","getCurrentConfiguration","getActorsDictionary","getWorkObjectsDictionary","createConfigFromDictionaries","currentConfiguration","getCurrentConfigurationNamesWithoutPrefix","createMinimalConfigurationWithDefaultIcons","minimalConfig","createConfigFromCanvas","getIconSource","actorNames","workobjectNames","newActors","newWorkobjects","allCanvasObjects","DomainCustomizationService","getAllIconDictionary","addIconToAllIconList","importedConfigurationEvent","storedDomainConfiguration","importedConfiguration","getImportedConfiguration","allIconListItems","selectedActorNames","selectActor","selectedWorkobjectNames","selectWorkObject","changedDomain","deselectActor","deselectWorkobject","updateIcon","updateActorSubject","updateWorkObjectSubject","configurationHasChanged","defaultConfig","workObjectName","actorName","updateAllIconBehaviourSubjects","resetToInitialConfiguration","usedIcons","imported","changedActors","changedWorkobjects","createDomainConfiguration","configurationActors","configurationWorkobjects","workobjects","changedDomainCofiguration","updateIcons","join","temp","iconDict","getSrcForIcon","addIconsToCss","iconBehaviourSubject","customDomainCofiguration","rawSrc","ICON_PREFIX","IconDictionaryService","iconConfig","allTypes","initDictionary","actorIconDictionary","workObjectDictionary","dictionary","namePrefix","customConfiguration","allInTypeDictionary","collection","allIn","dictionaryType","iconTypes","registerIconForType","iconDictionaryForBPMN","addIconsToTypeDictionary","extractCustomIconsFromDictionary","addNewIconsToDictionary","elementDictionary","sanitizedName","custom","input","fullDictionary","appendedDict","getTypeDictionaryKeys","elementOfType","setCusomtConfiguration","ElementRegistryService","fullyInitialized","registry","__implicitroot","setElementRegistry","_elements","createObjectListForDSTDownload","allObjectsFromCanvas","objectList","fillListOfCanvasObjects","canvasElement","groupObjects","checkChildForGroup","currentGroup","registryElementNames","getAllActors","getAllWorkobjects","co","sanitizeForDesktop","ExportService","pngService","svgService","htmlPresentationService","titleSubscription","descriptionSubscription","ngOnDestroy","unsubscribe","DomainStory","getStoryForDownload","downloadFile","datatype","fileEnding","svgData","createSVGData","container","svgElements","outerSVGElement","viewport","layerBase","image","extractSVG","prepareSVG","onload","getWidth","getHeight","fillStyle","drawImage","png64","toDataURL","ele","toISOString","then","info","version","doT","HtmlPresentationService","setModelerClasses","selection","modeler","viewBoxCoordinates","ViewBoxCoordinate","saveSVG","fixActivityMarkersForEachStep","getCurrentStepNumber","content","transition","err","alert","getMaxStepNumber","revealjsTemplate","dots","revealjsData","script","sentences","multiplexSecret","multiplexId","fixMalformedHtmlScript","viewBoxIndex","splitViewBox","dataStart","dataEnd","createBounds","sectionIndex","newDefs","ids","idToReplace","newId","replaceAll","PngService","browserSpecs","ua","navigator","userAgent","tem","M","exec","appName","appVersion","URIHashtagFix","fix","browser","parseInt","findMostOuterElements","xRight","yDown","sub","elXLeft","elXRight","elYUp","elYDown","transform","nums","rects","outerRect","calculateWidthAndHeight","insertIndex","layerResizers","layerOverlays","removeAttribute","XMLSerializer","serializeToString","SvgService","cacheData","getEncoded","svgIndex","backgroundColorWhite","findIndexToInsertData","appendDST","restoreTitleFromFileName","ImportDomainStoryService","importRepairService","domainConfigurationService","importedConfigurationEmitter","isSVG","fileReader","titleText","fileReaderFunction","isEGN","dstText","removeXMLComments","dstAndConfig","extractDstAndConfig","configChanged","checkConfigForChanges","lastElement","importVersionNumber","handleVersionNumber","checkForUnreferencedElementsInActivitiesAndRepair","showBrokenImportDialog","adjustPositions","versionPrefix","lastIndexOf","updateCustomElementsPreviousV050","showPreviousV050Dialog","xmlText","newActorKeys","newWorkObjectKeys","currentActorKeys","currentWorkobjectKeys","changed","clearName","setImportedConfigurationAndEmit","ImportRepairService","objectIDs","activityIndex","isFirst","findFirstElement","adjustElementPosition","LabelDictionaryService","massNamingService","activityLabels","workObjektLabels","localeCompare","massChangeNames","MassNamingService","commandStackService","oldValue","allRelevantObjects","massRenameHandler","positionsMatch","InitializerService","initializeDomainStoryModelerClasses","propagateDomainStoryModelerClassesToServices","initializeDomainStoryModelerEventHandlers","initiateEventBusListeners","getReplayOn","activityDoubleClick","renderedNumberRegistry","htmlCanvas","transformX","transformY","zoomX","zoomY","clickX","originalEvent","clickY","parseFloat","currentNum","tx","ty","tNumber","elementX","elementY","stopPropagation","saveActivityInputLabel","activityData","hasNumber","multipleNumberAllowed","ModelerService","initializerService","keyboard","bindTo","additionalModules","bpmnSearch","exportArtifacts","debounce","window","startDebounce","domainStory","currentStory","destroy","getModeler","timeout","timer","clearTimeout","encoded","RendererService","renderStory","configurationChange","c","ReplayStateService","replayOnSubject","setReplayState","state","ReplayService","domManipulationService","storyCreatorService","currentStep","maxStepNumber","initializeReplay","traceActivitiesAndCreateStory","showCurrentStep","missingSteps","getMissingSteps","getValue","steps","StoryCreatorService","tracedActivityMap","tracedItem","createStep","addGroupStep","getStepObjects","highlightedElements","highlightedObjects","tracedActivity","initialSource","targetObjects","parallelStep","firstTarget","checkTarget","activityTarget","g","SettingsService","showSettings","TitleService","titleSubject","descriptionSubject","showDescriptionSubject","domainNameSubject","allowUndo","fireTitleAndDescriptionUpdate","updateTitle","updateDescription","getVersion","degrees","radians","PI","quadrant","adjacent","opposite","atan2","Point","reg","dstRegex","svgRegex","egnSuffix","dstSuffix","svgSuffix","filenameWithoutDateSuffix","AppComponent","replayStateSerice","showSettings$","ctrlKey","openLinkDialog","link","BrowserModule","MAT_CHECKBOX_DEFAULT_OPTIONS","NoopAnimationsModule","UntypedFormBuilder","ReactiveFormsModule","AppModule","ngDoBootstrap","app","componentElement","bootstrap","provide","useValue","clickAction","MatDialogModule","MatFormFieldModule","MatInputModule","MatToolbarModule","MatExpansionModule","MatCardModule","MatSnackBarModule","MatButtonModule","MatGridListModule","MatButtonToggleModule","MatListModule","MatCheckboxModule","environment","production","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","console","error"],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file +{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/Modeler/index.js","./src/app/Modeler/modeler/change-icon/replace.js","./src/app/Modeler/modeler/change-icon/replaceMenuProvider.js","./src/app/Modeler/modeler/change-icon/replaceOptions.js","./src/app/Modeler/modeler/context-pad/domainStoryContextPadProvider.js","./src/app/Modeler/modeler/domainStoryElementFactory.js","./src/app/Modeler/modeler/domainStoryIdFactory.js","./src/app/Modeler/modeler/domainStoryRenderer.js","./src/app/Modeler/modeler/domainStoryRules.js","./src/app/Modeler/modeler/domainStoryUpdater.js","./src/app/Modeler/modeler/index.js","./src/app/Modeler/modeler/labeling/dsLabelEditingPreview.js","./src/app/Modeler/modeler/labeling/dsLabelEditingProvider.js","./src/app/Modeler/modeler/labeling/dsLabelUtil.js","./src/app/Modeler/modeler/labeling/index.js","./src/app/Modeler/modeler/labeling/position.js","./src/app/Modeler/modeler/modeling/dSModeling.js","./src/app/Modeler/modeler/modeling/index.js","./src/app/Modeler/modeler/numbering/numbering.js","./src/app/Modeler/modeler/palette/domainStoryPalette.js","./src/app/Modeler/modeler/updateHandler/activityUpdateHandlers.js","./src/app/Modeler/modeler/updateHandler/elementUpdateHandler.js","./src/app/Modeler/modeler/updateHandler/headlineAndDescriptionUpdateHandler.js","./src/app/Modeler/modeler/updateHandler/massRenameHandler.js","./src/app/Modeler/modeler/updateHandler/updateLabelHandler.js","./src/app/Modeler/modeler/util.js","./src/app/Service/Export/exportUtil.js","./src/app/Domain/Common/businessObject.ts","./src/app/Domain/Common/configuration.ts","./src/app/Domain/Common/constants.ts","./src/app/Domain/Common/dictionary/dictionary.ts","./src/app/Domain/Common/domainConfiguration.ts","./src/app/Domain/Common/elementTypes.ts","./src/app/Domain/Common/iconConfiguration.ts","./src/app/Domain/Dialog/activityDialogData.ts","./src/app/Domain/Dialog/exportDialogData.ts","./src/app/Domain/Dialog/infoDialogData.ts","./src/app/Domain/DomManipulation/replayConstants.ts","./src/app/Domain/Domain-Configuration/allIcons.ts","./src/app/Domain/Domain-Configuration/iconFilterEnum.ts","./src/app/Domain/Export/configAndDst.ts","./src/app/Domain/Export/exportConstants.ts","./src/app/Modules/autosave-settings.module.ts","./src/app/Modules/domain-story-modeler-module.module.ts","./src/app/Modules/settings.module.ts","./src/app/Presentation/Autosave/AutosaveOptions/autosave-options.component.ts","./src/app/Presentation/Autosave/AutosaveOptions/autosave-options.component.html","./src/app/Presentation/Autosave/AutosaveSettings/autosave-settings.component.ts","./src/app/Presentation/Autosave/AutosaveSettings/autosave-settings.component.html","./src/app/Presentation/Autosave/AutosavedDrafts/autosaved-drafts.component.ts","./src/app/Presentation/Autosave/AutosavedDrafts/autosaved-drafts.component.html","./src/app/Presentation/Canvas/modeler.component.ts","./src/app/Presentation/Canvas/modeler.component.html","./src/app/Presentation/Dialog/activity-dialog/activity-dialog.component.ts","./src/app/Presentation/Dialog/activity-dialog/activity-dialog.component.html","./src/app/Presentation/Dialog/export-dialog/export-dialog.component.ts","./src/app/Presentation/Dialog/export-dialog/export-dialog.component.html","./src/app/Presentation/Dialog/header-dialog/header-dialog.component.ts","./src/app/Presentation/Dialog/header-dialog/header-dialog.component.html","./src/app/Presentation/Dialog/info-dialog/info-dialog.component.ts","./src/app/Presentation/Dialog/info-dialog/info-dialog.component.html","./src/app/Presentation/Dialog/label-dictionary-dialog/label-dictionary-dialog.component.ts","./src/app/Presentation/Dialog/label-dictionary-dialog/label-dictionary-dialog.component.html","./src/app/Presentation/DomainConfiguration/details-list-item/details-list-item.component.ts","./src/app/Presentation/DomainConfiguration/details-list-item/details-list-item.component.html","./src/app/Presentation/DomainConfiguration/domain-configuration.component.ts","./src/app/Presentation/DomainConfiguration/domain-configuration.component.html","./src/app/Presentation/DomainConfiguration/domain-details/domain-details.component.html","./src/app/Presentation/DomainConfiguration/domain-details/domain-details.component.ts","./src/app/Presentation/DomainConfiguration/icon-list-item/icon-list-item.component.ts","./src/app/Presentation/DomainConfiguration/icon-list-item/icon-list-item.component.html","./src/app/Presentation/Header/header-buttons.component.ts","./src/app/Presentation/Header/header-buttons.component.html","./src/app/Presentation/Header/header.component.ts","./src/app/Presentation/Header/header.component.html","./src/app/Presentation/LabelDictionary/label-dictionary.component.ts","./src/app/Presentation/LabelDictionary/label-dictionary.component.html","./src/app/Presentation/Settings/General/general-settings.component.ts","./src/app/Presentation/Settings/General/general-settings.component.html","./src/app/Presentation/Settings/settings.component.ts","./src/app/Presentation/Settings/settings.component.html","./src/app/Service/Autosave/autosave-configuration.service.ts","./src/app/Service/Autosave/autosave.service.ts","./src/app/Service/BrowserStorage/storage.service.ts","./src/app/Service/CommandStack/command-stack.service.ts","./src/app/Service/Dialog/dialog.service.ts","./src/app/Service/DirtyFlag/dirty-flag.service.ts","./src/app/Service/DomManipulation/dom-manipulation.service.ts","./src/app/Service/DomainConfiguration/domain-configuration.service.ts","./src/app/Service/DomainConfiguration/domain-customization.service.ts","./src/app/Service/DomainConfiguration/icon-dictionary.service.ts","./src/app/Service/ElementRegistry/element-registry.service.ts","./src/app/Service/Export/export.service.ts","./src/app/Service/Export/html-presentation.service.ts","./src/app/Service/Export/png.service.ts","./src/app/Service/Export/svg.service.ts","./src/app/Service/Import/import-domain-story.service.ts","./src/app/Service/Import/import-repair.service.ts","./src/app/Service/LabelDictionary/label-dictionary.service.ts","./src/app/Service/LabelDictionary/mass-naming.service.ts","./src/app/Service/Modeler/initializer.service.ts","./src/app/Service/Modeler/modeler.service.ts","./src/app/Service/Renderer/renderer.service.ts","./src/app/Service/Replay/replay-state.service.ts","./src/app/Service/Replay/replay.service.ts","./src/app/Service/Replay/storyCreator/story-creator.service.ts","./src/app/Service/Settings/settings.service.ts","./src/app/Service/Title/title.service.ts","./src/app/Utils/mathExtensions.ts","./src/app/Utils/naming.ts","./src/app/Utils/sanitizer.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/material.module.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import Modeler from \"bpmn-js/lib/Modeler\";\nimport ResizeModule from \"diagram-js/lib/features/resize\";\nimport { assign, isArray } from \"min-dash\";\nimport inherits from \"inherits\";\n\nimport DomainStoryModule from \"./modeler\";\nimport LabelEditingModule from \"./modeler/labeling\";\nimport ModelingModule from \"./modeler/modeling\";\nimport { elementTypes } from \"../Domain/Common/elementTypes\";\n\nexport default function DomainStoryModeler(options) {\n Modeler.call(this, options);\n\n this._customElements = [];\n this._groupElements = [];\n}\n\ninherits(DomainStoryModeler, Modeler);\n\nDomainStoryModeler.prototype._modules = [].concat(\n DomainStoryModeler.prototype._modules,\n [DomainStoryModule, LabelEditingModule, ModelingModule],\n [ResizeModule]\n);\n\n/**\n * add a single custom element to the underlying diagram\n *\n * @param {Object} customElement\n */\nDomainStoryModeler.prototype._addCustomShape = function (customElement) {\n let parentId = customElement.parent;\n delete customElement.children;\n delete customElement.parent;\n this._customElements.push(customElement);\n\n let canvas = this.get(\"canvas\"),\n elementFactory = this.get(\"elementFactory\");\n\n let customAttrs = assign({ businessObject: customElement }, customElement);\n let customShape = elementFactory.create(\"shape\", customAttrs);\n\n if (isGroup(customElement)) {\n this._groupElements[customElement.id] = customShape;\n }\n\n if (parentId) {\n let parentShape = this._groupElements[parentId];\n\n if (isGroup(parentShape)) {\n return canvas.addShape(customShape, parentShape, parentShape.id);\n }\n }\n return canvas.addShape(customShape);\n};\n\nDomainStoryModeler.prototype._addCustomConnection = function (customElement) {\n this._customElements.push(customElement);\n\n let canvas = this.get(\"canvas\"),\n elementFactory = this.get(\"elementFactory\"),\n elementRegistry = this.get(\"elementRegistry\");\n\n let customAttrs = assign({ businessObject: customElement }, customElement);\n\n let connection = elementFactory.create(\n \"connection\",\n assign(customAttrs, {\n source: elementRegistry.get(customElement.source),\n target: elementRegistry.get(customElement.target),\n }),\n elementRegistry.get(customElement.source).parent\n );\n\n return canvas.addConnection(connection);\n};\n\n//** We import BusinessObjects, not the whole Canvas Object!!!!!!!!\nDomainStoryModeler.prototype.importCustomElements = function (elements) {\n this.get(\"eventBus\").fire(\"diagram.clear\", {});\n this._customElements = [];\n this._groupElements = [];\n\n this.addCustomElements(elements);\n};\n\n/**\n * add a number of custom elements and connections to the underlying diagram.\n *\n * @param {Array} customElements\n */\nDomainStoryModeler.prototype.addCustomElements = function (customElements) {\n if (!isArray(customElements)) {\n throw new Error(\"argument must be an array\");\n }\n\n let shapes = [],\n connections = [],\n groups = [];\n\n customElements.forEach(function (customElement) {\n if (isConnection(customElement)) {\n connections.push(customElement);\n } else if (isGroup(customElement)) {\n groups.push(customElement);\n } else {\n shapes.push(customElement);\n }\n });\n\n // add groups before shapes and shapes before connections so that connections\n // can already rely on the shapes being part of the diagram\n groups.forEach(this._addCustomShape, this);\n shapes.forEach(this._addCustomShape, this);\n connections.forEach(this._addCustomConnection, this);\n};\n\n/**\n * get custom elements with their current status.\n *\n * @return {Array} custom elements on the diagram\n */\nDomainStoryModeler.prototype.getCustomElements = function () {\n return this._customElements;\n};\n\n// override standard function to prevent default elements on canvas\nDomainStoryModeler.prototype.createDiagram = function (done) {};\n\nfunction isConnection(element) {\n return (\n element.type === elementTypes.ACTIVITY ||\n element.type === elementTypes.CONNECTION\n );\n}\n\nfunction isGroup(element) {\n return element && element.type === elementTypes.GROUP;\n}\n","\"use strict\";\n\nimport { assign } from \"min-dash\";\n\n/**\n * service that allow replacing of elements.\n */\nexport default function Replace(modeling) {\n this._modeling = modeling;\n}\n\n/**\n * @param {Element} oldElement - element to be replaced\n * @param {Object} newElementData - containing information about the new Element, for example height, width, type.\n * @param modeling\n */\nfunction replaceElement(oldElement, newElementData, modeling) {\n // let modeling = this._modeling;\n\n let newElement = setCenterOfElement(newElementData, oldElement, modeling);\n let outgoingActivities = newElement.outgoing;\n let incomingActivities = newElement.incoming;\n\n outgoingActivities.forEach((element) => {\n element.businessObject.source = newElement.id;\n });\n\n incomingActivities.forEach((element) => {\n element.businessObject.target = newElement.id;\n });\n\n return newElement;\n}\n\nfunction setCenterOfElement(newElementData, oldElement, modeling) {\n newElementData.x = Math.ceil(\n oldElement.x + (newElementData.width || oldElement.width) / 2\n );\n newElementData.y = Math.ceil(\n oldElement.y + (newElementData.height || oldElement.height) / 2\n );\n\n assign(newElementData, { name: oldElement.businessObject.name });\n\n return modeling.replaceShape(oldElement, newElementData, {});\n}\n\nReplace.prototype.replaceElement = replaceElement;\n","\"use strict\";\n\nimport Replace from \"./replace\";\nimport * as replaceOptions from \"./replaceOptions\";\n\nimport { forEach } from \"min-dash\";\n\n/**\n * This module is an element agnostic replace menu provider for the popup menu.\n */\nexport default function ReplaceMenuProvider(modeling) {\n this._dsReplace = new Replace(modeling);\n this._modeling = modeling;\n}\n\nReplaceMenuProvider.$inject = [\"modeling\"];\n\n/**\n * Get all entries from replaceOptions for the given element and apply filters\n * on them. Get for example only elements, which are different from the current one.\n *\n * @param {djs.model.Base} element\n *\n * @return {Array} a list of menu entry items\n */\nReplaceMenuProvider.prototype.getEntries = function (element) {\n let entries;\n if (element.type.includes(\"actor\")) {\n entries = replaceOptions.actorReplaceOptions(element.type);\n } else if (element.type.includes(\"workObject\")) {\n entries = replaceOptions.workObjectReplaceOptions(element.type);\n }\n\n return this._createEntries(element, entries);\n};\n\n/**\n * Creates an array of menu entry objects for a given element and filters the replaceOptions\n * according to a filter function.\n *\n * @param {djs.model.Base} element\n * @param {Object} replaceOptions\n *\n * @return {Array} a list of menu items\n */\nReplaceMenuProvider.prototype._createEntries = function (\n element,\n replaceOptions\n) {\n let menuEntries = [];\n\n let self = this;\n\n forEach(replaceOptions, function (definition) {\n let entry = self._createMenuEntry(definition, element);\n\n menuEntries.push(entry);\n });\n\n return menuEntries;\n};\n\n/**\n * Creates and returns a single menu entry item.\n *\n * @param {Object} definition a single replace options definition object\n * @param {djs.model.Base} element\n * @param {Function} [action] an action callback function which gets called when\n * the menu entry is being triggered.\n *\n * @return {Object} menu entry item\n */\nReplaceMenuProvider.prototype._createMenuEntry = function (\n definition,\n element,\n action\n) {\n let replaceElement = this._dsReplace.replaceElement;\n let modeling = this._modeling;\n let replaceAction = function () {\n return replaceElement(element, definition.target, modeling);\n };\n\n action = action || replaceAction;\n\n return {\n label: definition.label,\n className: definition.className,\n id: definition.actionName,\n action: action,\n };\n};\n","import { elementTypes } from \"src/app/Domain/Common/elementTypes\";\nimport { getNameFromType } from \"src/app/Utils/naming\";\n\nlet iconDictionaryService;\n\nexport function initializeReplaceOptions(iconDictionary) {\n iconDictionaryService = iconDictionary;\n}\n\nexport function actorReplaceOptions(name) {\n const actorTypes = iconDictionaryService.getTypeDictionary(\n elementTypes.ACTOR\n );\n\n let replaceOption = {};\n let i = 0;\n\n actorTypes.keysArray().forEach((actorType) => {\n if (!name.includes(actorType)) {\n const typeName = getNameFromType(actorType);\n replaceOption[i] = {\n label: \"Change to \" + typeName,\n actionName: \"replace-with-actor-\" + typeName.toLowerCase(),\n className: iconDictionaryService.getIconForBPMN(actorType),\n target: {\n type: actorType,\n },\n };\n i++;\n }\n });\n return replaceOption;\n}\n\nexport function workObjectReplaceOptions(name) {\n const workObjectTypes = iconDictionaryService.getTypeDictionary(\n elementTypes.WORKOBJECT\n );\n\n let replaceOption = {};\n let i = 0;\n\n workObjectTypes.keysArray().forEach((workObjectType) => {\n if (!name.includes(workObjectType)) {\n const typeName = getNameFromType(workObjectType);\n replaceOption[i] = {\n label: \"Change to \" + typeName,\n actionName: \"replace-with-actor-\" + typeName,\n className: iconDictionaryService.getIconForBPMN(workObjectType),\n target: {\n type: workObjectType,\n },\n };\n }\n i++;\n });\n return replaceOption;\n}\n","\"use strict\";\n\nimport inherits from \"inherits\";\n\nimport ContextPadProvider from \"bpmn-js/lib/features/context-pad/ContextPadProvider\";\n\nimport { assign, bind } from \"min-dash\";\nimport { generateAutomaticNumber } from \"../numbering/numbering\";\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\nimport { getAllStandardIconKeys } from \"src/app/Domain/Domain-Configuration/allIcons\";\nimport { getNameFromType } from \"src/app/Utils/naming\";\n\nlet dirtyFlagService;\nlet iconDictionaryService;\n\nexport function initializeContextPadProvider(dirtyFlag, iconDictionary) {\n dirtyFlagService = dirtyFlag;\n iconDictionaryService = iconDictionary;\n}\n\nexport default function DomainStoryContextPadProvider(\n injector,\n connect,\n translate,\n elementFactory,\n create,\n canvas,\n contextPad,\n popupMenu,\n replaceMenuProvider,\n commandStack,\n eventBus,\n modeling\n) {\n let startConnect;\n let selectedElement;\n\n injector.invoke(ContextPadProvider, this);\n let autoPlace = injector.get(\"autoPlace\", false);\n\n let cached = bind(this.getContextPadEntries, this);\n\n const colorPicker = document.getElementById(\"colorPicker\");\n colorPicker.onchange = (ev) => {\n const context = {\n businessObject: selectedElement.businessObject,\n newColor: ev.target.value,\n element: selectedElement,\n };\n\n commandStack.execute(\"element.colorChange\", context);\n dirtyFlagService.makeDirty();\n };\n\n popupMenu.registerProvider(\"ds-replace\", replaceMenuProvider);\n popupMenu.registerProvider(\"bpmn-replace\", replaceMenuProvider);\n\n this.getContextPadEntries = function (element) {\n const allStandardIconKeys = getAllStandardIconKeys();\n let actions = cached(element);\n\n startConnect = function (event, element, autoActivate) {\n connect.start(event, element, autoActivate);\n };\n\n if (element.type.includes(elementTypes.WORKOBJECT)) {\n if (\n allStandardIconKeys.includes(\n element.type.replace(elementTypes.WORKOBJECT, \"\")\n )\n ) {\n addColorChange(actions);\n }\n addConnectWithActivity(actions, startConnect);\n addTextAnnotation(actions);\n addActors(appendAction, actions);\n addWorkObjects(appendAction, actions);\n addChangeWorkObjectTypeMenu(actions);\n } else if (element.type.includes(elementTypes.ACTOR)) {\n if (\n allStandardIconKeys.includes(\n element.type.replace(elementTypes.ACTOR, \"\")\n )\n ) {\n addColorChange(actions);\n }\n addConnectWithActivity(actions, startConnect);\n addTextAnnotation(actions);\n addWorkObjects(appendAction, actions);\n addChangeActorTypeMenu(actions);\n } else if (element.type.includes(elementTypes.GROUP)) {\n delete actions.delete;\n addTextAnnotation(actions);\n assign(actions, {\n deleteGroup: {\n group: \"edit\",\n className: \"bpmn-icon-trash\",\n title: \"Remove Group without Child-Elements\",\n action: {\n click: function (event, element) {\n modeling.removeGroup(element);\n dirtyFlagService.makeDirty();\n },\n },\n },\n });\n addColorChange(actions);\n } else if (element.type.includes(elementTypes.ACTIVITY)) {\n moveDeleteActionToEndOfArray(actions);\n\n addColorChange(actions);\n\n assign(actions, {\n delete: {\n group: \"edit\",\n className: \"bpmn-icon-trash\",\n title: \"Remove\",\n action: {\n click: function (event, element) {\n modeling.removeElements({ element });\n dirtyFlagService.makeDirty();\n },\n },\n },\n });\n }\n\n return actions;\n };\n\n function moveDeleteActionToEndOfArray(actions) {\n delete actions.delete;\n\n assign(actions, {\n changeDirection: {\n group: \"edit\",\n className: \"icon-domain-story-changeDirection\",\n title: translate(\"Change direction\"),\n action: {\n // event needs to be addressed\n click: function (event, element) {\n changeDirection(element);\n },\n },\n },\n });\n }\n\n function addChangeActorTypeMenu(actions) {\n assign(actions, {\n replace: {\n group: \"edit\",\n className: \"bpmn-icon-screw-wrench\",\n title: translate(\"Change type\"),\n action: {\n click: function (event, element) {\n let position = assign(getReplaceMenuPosition(element), {\n cursor: { x: event.x, y: event.y },\n });\n popupMenu.open(element, \"ds-replace\", position);\n },\n },\n },\n });\n }\n\n function addColorChange(actions) {\n assign(actions, {\n colorChange: {\n group: \"edit\",\n className: \"icon-domain-story-color-picker\",\n title: translate(\"Change color\"),\n action: {\n click: function (event, element) {\n selectedElement = element;\n colorPicker.click();\n },\n },\n },\n });\n }\n\n function addTextAnnotation(actions) {\n assign(actions, {\n \"append.text-annotation\": appendAction(\n elementTypes.TEXTANNOTATION,\n \"bpmn-icon-text-annotation\",\n \"textannotation\",\n \"connect\"\n ),\n });\n }\n\n function addConnectWithActivity(actions, startConnect) {\n assign(actions, {\n connect: {\n group: \"connect\",\n className: \"bpmn-icon-connection\",\n title: translate(\"Connect with activity\"),\n action: {\n click: startConnect,\n dragstart: startConnect,\n },\n },\n });\n }\n\n function addWorkObjects(appendAction, actions) {\n let workObjectTypes = iconDictionaryService.getTypeDictionary(\n elementTypes.WORKOBJECT\n );\n workObjectTypes.keysArray().forEach((workObjectType) => {\n let name = getNameFromType(workObjectType);\n let icon = iconDictionaryService.getIconForBPMN(workObjectType);\n let action = [];\n action[\"append.workObject\" + name] = appendAction(\n workObjectType,\n icon,\n name,\n \"workObjects\"\n );\n assign(actions, action);\n });\n }\n\n function addActors(appendAction, actions) {\n let actorTypes = iconDictionaryService.getTypeDictionary(\n elementTypes.ACTOR\n );\n actorTypes.keysArray().forEach((actorType) => {\n let name = getNameFromType(actorType);\n let icon = iconDictionaryService.getIconForBPMN(actorType);\n let action = [];\n action[\"append.actor\" + name] = appendAction(\n actorType,\n icon,\n name,\n \"actors\"\n );\n assign(actions, action);\n });\n }\n\n function addChangeWorkObjectTypeMenu(actions) {\n assign(actions, {\n replace: {\n group: \"edit\",\n className: \"bpmn-icon-screw-wrench\",\n title: translate(\"Change type\"),\n action: {\n click: function (event, element) {\n let position = assign(getReplaceMenuPosition(element), {\n cursor: { x: event.x, y: event.y },\n });\n popupMenu.open(element, \"ds-replace\", position);\n },\n },\n },\n });\n }\n\n function changeDirection(element) {\n let context;\n let businessObject = element.businessObject;\n let newNumber;\n\n if (element.source.type.includes(elementTypes.ACTOR)) {\n newNumber = 0;\n } else {\n newNumber = generateAutomaticNumber(element, commandStack);\n }\n context = {\n businessObject: businessObject,\n newNumber: newNumber,\n element: element,\n };\n commandStack.execute(\"activity.directionChange\", context);\n }\n\n function getReplaceMenuPosition(element) {\n let Y_OFFSET = 5;\n\n let diagramContainer = canvas.getContainer(),\n pad = contextPad.getPad(element).html;\n\n let diagramRect = diagramContainer.getBoundingClientRect(),\n padRect = pad.getBoundingClientRect();\n\n let top = padRect.top - diagramRect.top;\n let left = padRect.left - diagramRect.left;\n\n return {\n x: left,\n y: top + padRect.height + Y_OFFSET,\n };\n }\n\n /**\n * create an append action\n *\n * @param {String} type\n * @param {String} className\n * @param {String} [title]\n * @param {String} group\n * @param {Object} [options]\n *\n * @return {Object} descriptor\n */\n function appendAction(type, className, title, group, options) {\n if (typeof title !== \"string\") {\n options = title;\n title = translate(\"{type}\", { type: type.replace(/^domainStory:/, \"\") });\n }\n\n function appendStart(event, element) {\n let shape = elementFactory.createShape(assign({ type: type }, options));\n let context = {\n elements: [shape],\n hints: {},\n source: element,\n };\n create.start(event, shape, context);\n }\n\n return {\n group: group,\n className: className,\n title: \"Append \" + title,\n action: {\n dragstart: startConnect,\n click: appendStart,\n },\n };\n }\n}\n\ninherits(DomainStoryContextPadProvider, ContextPadProvider);\n\nDomainStoryContextPadProvider.$inject = [\n \"injector\",\n \"connect\",\n \"translate\",\n \"elementFactory\",\n \"create\",\n \"canvas\",\n \"contextPad\",\n \"popupMenu\",\n \"replaceMenuProvider\",\n \"commandStack\",\n \"eventBus\",\n \"modeling\",\n];\n","\"use strict\";\n\nimport { assign } from \"min-dash\";\n\nimport inherits from \"inherits\";\n\nimport BpmnElementFactory from \"bpmn-js/lib/features/modeling/ElementFactory\";\n\nimport { DEFAULT_LABEL_SIZE } from \"bpmn-js/lib/util/LabelUtil\";\n\nimport DomainStoryIdFactory from \"./domainStoryIdFactory\";\n\n/**\n * A custom factory that knows how to create BPMN _and_ custom elements.\n */\nexport default function DomainStoryElementFactory(bpmnFactory, moddle) {\n BpmnElementFactory.call(this, bpmnFactory, moddle);\n\n let self = this;\n let domainStoryIdFactory = new DomainStoryIdFactory();\n\n /**\n * create a diagram-js element with the given type (any of shape, connection, label).\n *\n * @param {String} elementType\n * @param {Object} attrs\n *\n * @return {djs.model.Base}\n */\n this.create = function (elementType, attrs) {\n let type = attrs.type;\n\n if (elementType === \"label\") {\n return self.baseCreate(\n elementType,\n assign({ type: \"label\" }, DEFAULT_LABEL_SIZE, attrs)\n );\n }\n\n // add type to businessObject if custom\n if (/^domainStory:/.test(type)) {\n if (!attrs.businessObject) {\n attrs.businessObject = {\n type: type,\n name: attrs.name ? attrs.name : \"\",\n };\n }\n\n if (attrs.id) {\n domainStoryIdFactory.registerId(attrs.id);\n } else {\n attrs.id = domainStoryIdFactory.getId(elementType);\n }\n assign(attrs.businessObject, {\n id: attrs.id,\n });\n\n let id = attrs.id;\n attrs.businessObject.get = function (key) {\n if (key === \"id\") {\n return id;\n }\n };\n attrs.businessObject.set = function (key, value) {\n if (key === \"id\") {\n assign(attrs.businessObject, { id: value });\n }\n };\n\n if (!attrs.businessObject.$type) {\n assign(attrs.businessObject, { $type: \"Element\" });\n }\n assign(attrs.businessObject, { di: {} });\n if (!attrs.businessObject.$descriptor) {\n assign(attrs.businessObject, { $descriptor: {} });\n }\n\n // add width and height if shape\n if (\n (!/:activity$/.test(type) || !/:connection$/.test(type)) &&\n !((/:group$/.test(type) && attrs.height) || attrs.width)\n ) {\n assign(attrs, self._getCustomElementSize(type));\n }\n\n if (!(\"$instanceOf\" in attrs.businessObject)) {\n // ensure we can use ModelUtil#is for type checks\n Object.defineProperty(attrs.businessObject, \"$instanceOf\", {\n value: function (type) {\n return this.type === type;\n },\n });\n }\n\n return self.baseCreate(elementType, attrs);\n }\n\n return self.createBpmnElement(elementType, attrs);\n };\n}\n\ninherits(DomainStoryElementFactory, BpmnElementFactory);\n\nDomainStoryElementFactory.$inject = [\"bpmnFactory\", \"moddle\"];\n\n/**\n * returns the default size of custom shapes.\n *\n * the following example shows an interface on how\n * to setup the custom shape's dimensions.\n * *\n * @param {String} type\n *\n * @return {Dimensions} a {width, height} object representing the size of the element\n */\nDomainStoryElementFactory.prototype._getCustomElementSize = function (type) {\n let shapes = {\n __default: { width: 75, height: 75 },\n \"domainStory:textAnnotation\": { width: 100, height: 30 },\n \"domainStory:group\": { width: 525, height: 275 },\n };\n\n return shapes[type] || shapes.__default;\n};\n\nclass Dimensions {\n width;\n height;\n}\n","\"use strict\";\n\nlet idList = [];\n\nexport default function DomainStoryIdFactory() {}\n\nDomainStoryIdFactory.prototype.getId = function (type) {\n return generateId(type);\n};\n\nDomainStoryIdFactory.prototype.registerId = function (id) {\n idList.push(id);\n};\n\nfunction generateId(type) {\n let idNumber = fourDigitsId();\n\n let id = type + \"_\" + idSuffix(idNumber);\n\n while (containsId(id)) {\n idNumber++;\n\n id = type + \"_\" + idSuffix(idNumber);\n }\n\n idList.push(id);\n return id;\n}\n\nfunction idSuffix(idNumber) {\n let id;\n if (idNumber > 9999) {\n id = 0;\n } else if (idNumber < 10) {\n id = \"000\" + idNumber;\n } else if (idNumber < 100) {\n id = \"00\" + idNumber;\n } else if (idNumber < 1000) {\n id = \"0\" + idNumber;\n } else {\n id = \"\" + idNumber;\n }\n return id;\n}\n\nfunction fourDigitsId() {\n return Math.floor(Math.random() * 10000);\n}\n\nexport function containsId(id) {\n let same = false;\n idList.forEach((element) => {\n if (id === element) {\n same = true;\n }\n });\n return same;\n}\n","\"use strict\";\n\nimport inherits from \"inherits\";\nimport BaseRenderer from \"diagram-js/lib/draw/BaseRenderer\";\nimport Ids from \"ids\";\nimport { getAnnotationBoxHeight } from \"./labeling/dsLabelEditingPreview\";\nimport { componentsToPath, createLine } from \"diagram-js/lib/util/RenderUtil\";\nimport {\n append as svgAppend,\n attr as svgAttr,\n classes as svgClasses,\n create as svgCreate,\n} from \"tiny-svg\";\nimport { query as domQuery } from \"min-dom\";\nimport { assign, isObject } from \"min-dash\";\nimport { getNumberStash } from \"./labeling/dsLabelEditingProvider\";\nimport {\n addNumberToRegistry,\n generateAutomaticNumber,\n numberBoxDefinitions,\n} from \"./numbering/numbering\";\n\nimport { calculateTextWidth } from \"./labeling/dsLabelUtil\";\nimport { countLines, labelPosition } from \"./labeling/position\";\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\nimport { angleBetween } from \"../../Utils/mathExtensions\";\n\nlet RENDERER_IDS = new Ids();\nlet numbers = [];\nconst DEFAULT_COLOR = \"black\";\n\n/**\n * a renderer that knows how to render custom elements.\n */\nlet iconDictionary;\nlet elementRegistry;\nlet dirtyFlag;\n\nexport function initializeRenderer(\n iconDictionaryService,\n elementRegistryService,\n dirtyFlagService\n) {\n iconDictionary = iconDictionaryService;\n elementRegistry = elementRegistryService;\n dirtyFlag = dirtyFlagService;\n}\n\nexport default function DomainStoryRenderer(\n eventBus,\n styles,\n canvas,\n textRenderer,\n pathMap,\n commandStack\n) {\n BaseRenderer.call(this, eventBus, 2000);\n\n let rendererId = RENDERER_IDS.next();\n let markers = {};\n let computeStyle = styles.computeStyle;\n\n // generate the automatic Number for an activity originating from an actor\n function generateActivityNumber(parentGfx, element, box) {\n // whenever we want to edit an activity, it gets redrawn as a new object\n // and the custom information is lost,\n // so we stash it before the editing occurs and set the value here\n\n let numberStash = getNumberStash();\n let semantic = element.businessObject;\n\n if (numberStash.use) {\n semantic.number = numberStash.number;\n }\n\n box.x -= 65;\n box.y -= 12;\n renderNumber(parentGfx, \".\", backgroundDotStyle(box), element.type);\n box.x += 30;\n box.y += 3;\n renderNumber(parentGfx, \"o\", backgroundBoxStyle(box), element.type);\n\n numbers[semantic.number] = true;\n box.x += 9;\n box.y -= 7;\n\n if (semantic.number < 10) {\n box.x += 3;\n }\n\n let newRenderedNumber = renderNumber(\n parentGfx,\n semantic.number,\n numberStyle(box),\n element.type\n );\n addNumberToRegistry(newRenderedNumber, semantic.number);\n }\n\n // style functions\n function numberStyle(box) {\n return {\n box: box,\n fitBox: true,\n style: assign({}, textRenderer.getExternalStyle(), {\n fill: \"black\",\n position: \"absolute\",\n }),\n };\n }\n\n function backgroundBoxStyle(box) {\n return {\n box: box,\n fitBox: true,\n style: assign({}, textRenderer.getExternalStyle(), {\n fill: \"black\",\n fontSize: 50,\n position: \"absolute\",\n fontFamily: \"Courier New\",\n }),\n };\n }\n\n function backgroundDotStyle(box) {\n return {\n box: box,\n fitBox: true,\n style: assign({}, textRenderer.getExternalStyle(), {\n fill: \"white\",\n fontSize: 150,\n position: \"absolute\",\n fontFamily: \"Courier\",\n }),\n };\n }\n\n // render functions\n // render label associated with actors and workobjects\n function renderEmbeddedLabel(parentGfx, element, align, padding) {\n let businessObject = element.businessObject;\n return renderLabel(\n parentGfx,\n businessObject.name,\n {\n box: element,\n align: align,\n padding: padding ? padding : 0,\n style: {\n fill: \"#000000\",\n },\n },\n element.type\n );\n }\n\n // render label associated with activities\n function renderExternalLabel(parentGfx, element) {\n let semantic = element.businessObject;\n let waypoints = element.waypoints;\n let lines = countLines(semantic.name);\n\n if (element.waypoints != null) {\n let position = labelPosition(waypoints, lines);\n let startPoint = element.waypoints[position.selected];\n let endPoint = element.waypoints[position.selected + 1];\n let angle = angleBetween(startPoint, endPoint);\n let alignment = \"left\";\n let boxWidth = 500;\n let xStart = position.x;\n\n // if the activity is horizontal, we want to center the label\n if (angle === 0 || angle === 180) {\n boxWidth = Math.abs(startPoint.x - endPoint.x);\n alignment = \"center\";\n xStart =\n (startPoint.x + endPoint.x) / 2 - calculateTextWidth(semantic.name);\n }\n\n let box = {\n textAlign: alignment,\n width: boxWidth,\n height: 30,\n x: xStart,\n y: position.y,\n };\n\n if (semantic.name && semantic.name.length) {\n return renderLabel(\n parentGfx,\n semantic.name,\n {\n box: box,\n fitBox: true,\n style: assign({}, textRenderer.getExternalStyle(), {\n fill: \"black\",\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n hyphens: \"auto\",\n }),\n },\n element.type\n );\n }\n }\n }\n\n // render the number associated with an activity\n function renderExternalNumber(parentGfx, element) {\n if (element && element.source) {\n let semantic = element.businessObject;\n\n let box = numberBoxDefinitions(element);\n\n if (\n semantic.number == null &&\n element.source.type &&\n element.source.type.includes(elementTypes.ACTOR)\n ) {\n generateAutomaticNumber(element, commandStack);\n }\n\n // render the background for the number\n if (semantic.number && element.source.type.includes(elementTypes.ACTOR)) {\n generateActivityNumber(parentGfx, element, box);\n } else {\n semantic.number = null;\n }\n }\n }\n\n // render a number on the canvas\n function renderNumber(parentGfx, number, options, type) {\n if (number < 10) {\n number = String(number);\n }\n number = String(number);\n let text = textRenderer.createText(number || \"\", options);\n let height = 0;\n\n svgClasses(text).add(\"djs-labelNumber\");\n\n setCoordinates(type, text, options, height, parentGfx);\n\n svgAppend(parentGfx, text);\n return text;\n }\n\n // the coordinates of the activity label must be set directly and will not be taken from the box\n function setCoordinates(type, text, options, height, parentGfx) {\n if (/:activity$/.test(type)) {\n text.innerHTML = manipulateInnerHTMLXLabel(\n text.children,\n options.box.x,\n 0\n );\n text.innerHTML = manipulateInnerHTMLYLabel(\n text.children,\n options.box.y,\n 0\n );\n } else if (/:actor/.test(type)) {\n height = parentGfx.firstChild.attributes.height.nodeValue;\n text.innerHTML = manipulateInnerHTMLYLabel(text.children, height, 0);\n } else if (/:workObject/.test(type)) {\n height = parentGfx.firstChild.attributes.height.nodeValue;\n text.innerHTML = manipulateInnerHTMLYLabel(text.children, height, 26);\n }\n }\n\n // render a label on the canvas\n function renderLabel(parentGfx, label, options, type) {\n let text = textRenderer.createText(label || \"\", options);\n let height = 0;\n\n svgClasses(text).add(\"djs-label\");\n setCoordinates(type, text, options, height, parentGfx);\n\n svgAppend(parentGfx, text);\n return text;\n }\n\n // determine the Y-coordinate of the label / number to be rendered\n function manipulateInnerHTMLYLabel(children, y, offset) {\n if (children) {\n let result = \"\";\n for (let i = 0; i < children.length; i++) {\n result += children[i].outerHTML.replace(\n /y=\"-?\\d*.\\d*\"/,\n 'y=\"' + (Number(y) + offset + 14 * i) + '\"'\n );\n }\n return result;\n }\n }\n\n // determine the X-coordinate of the label / number to be rendered\n function manipulateInnerHTMLXLabel(children, x, offset) {\n if (children) {\n let result = \"\";\n for (let i = 0; i < children.length; i++) {\n result += children[i].outerHTML.replace(\n /x=\"-?\\d*.\\d*\"/,\n 'x=\"' + (Number(x) + offset + 14) + '\"'\n );\n }\n return result;\n }\n }\n\n // draw functions\n this.drawGroup = function (parentGfx, element) {\n if (!element.businessObject.pickedColor) {\n element.businessObject.pickedColor = DEFAULT_COLOR;\n }\n let rect = drawRect(\n parentGfx,\n element.width,\n element.height,\n 0,\n assign(\n {\n fill: \"none\",\n stroke: element.businessObject.pickedColor,\n },\n element.attrs\n )\n );\n renderEmbeddedLabel(parentGfx, element, \"left-top\", 8);\n\n return rect;\n };\n\n function useColorForElement(element, iconSRC) {\n if (!element.businessObject.pickedColor) {\n element.businessObject.pickedColor = DEFAULT_COLOR;\n }\n const match = iconSRC.match(/fill=\".*?\"/);\n if (match && match.length > 1) {\n return iconSRC.replace(\n /fill=\".*?\"/,\n 'fill=\"' + element.businessObject.pickedColor + '\"'\n );\n } else {\n const index = iconSRC.indexOf(\"' +\n ''\n );\n } else {\n return useColorForElement(element, iconSRC);\n }\n }\n\n this.drawActor = function (p, element) {\n let svgDynamicSizeAttributes = {\n width: element.width,\n height: element.height,\n },\n actor;\n let iconSRC = iconDictionary.getTypeIconSRC(\n elementTypes.ACTOR,\n element.type\n );\n iconSRC = getIconSrc(iconSRC, element);\n actor = svgCreate(iconSRC);\n\n svgAttr(actor, svgDynamicSizeAttributes);\n svgAppend(p, actor);\n\n renderEmbeddedLabel(p, element, \"center\", -5);\n return actor;\n };\n\n this.drawWorkObject = function (p, element) {\n let svgDynamicSizeAttributes = {\n width: element.width * 0.65,\n height: element.height * 0.65,\n x: element.width / 2 - 25,\n y: element.height / 2 - 25,\n },\n workObject;\n let iconSRC = iconDictionary.getTypeIconSRC(\n elementTypes.WORKOBJECT,\n element.type\n );\n iconSRC = getIconSrc(iconSRC, element);\n workObject = svgCreate(iconSRC);\n\n svgAttr(workObject, svgDynamicSizeAttributes);\n svgAppend(p, workObject);\n renderEmbeddedLabel(p, element, \"center\", -5);\n\n return workObject;\n };\n\n function useColorForActivity(element) {\n if (!element.businessObject.pickedColor) {\n element.businessObject.pickedColor = \"black\";\n }\n let attrs = \"\";\n return computeStyle(attrs, {\n stroke: element.businessObject.pickedColor,\n fill: \"none\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\",\n markerEnd: marker(\n \"activity\",\n \"black\",\n element.businessObject.pickedColor\n ),\n });\n }\n\n this.drawActivity = function (p, element) {\n adjustForTextOverlap(element);\n\n if (element) {\n let attrs = useColorForActivity(element);\n\n let x = svgAppend(p, createLine(element.waypoints, attrs));\n renderExternalLabel(p, element);\n renderExternalNumber(p, element);\n\n // just adjusting the start- and endpoint of the connection-element moves only the drawn connection,\n // not the interactive line. This can be fixed by manually overriding the points of the interactive polyline\n // in the HTMl with the points of the drawn one.\n // this however does not adjust the surrounding box of the connection.\n fixConnectionInHTML(p.parentElement);\n\n return x;\n }\n };\n\n function checkIfPointOverlapsText(point, source) {\n if (point.y > source.y + 60) {\n if (point.x > source.x + 3 && point.x < source.x + 72) {\n let lineOffset = getLineOffset(source);\n if (source.y + 75 + lineOffset > point.y) {\n point.y += lineOffset;\n }\n }\n }\n }\n\n function adjustForTextOverlap(element) {\n let source = element.source;\n let target = element.target;\n\n let waypoints = element.waypoints;\n let startPoint = waypoints[0];\n let endPoint = waypoints[waypoints.length - 1];\n\n if (startPoint && endPoint && source && target) {\n checkIfPointOverlapsText(startPoint, source);\n checkIfPointOverlapsText(endPoint, source);\n }\n }\n\n function getLineOffset(element) {\n let id = element.id;\n let offset = 0;\n\n let objects = document.getElementsByClassName(\"djs-element djs-shape\");\n for (let i = 0; i < objects.length; i++) {\n let data_id = objects.item(i).getAttribute(\"data-element-id\");\n if (data_id === id) {\n let object = objects.item(i);\n let text = object.getElementsByTagName(\"text\")[0];\n let tspans = text.getElementsByTagName(\"tspan\");\n let tspan = tspans[tspans.length - 1];\n offset = tspan.getAttribute(\"y\");\n }\n }\n return offset - 70;\n }\n\n function fixConnectionInHTML(wantedConnection) {\n if (wantedConnection) {\n let polylines = wantedConnection.getElementsByTagName(\"polyline\");\n if (polylines.length > 1) {\n polylines[1].setAttribute(\n \"points\",\n polylines[0].getAttribute(\"points\")\n );\n }\n }\n }\n\n this.drawDSConnection = function (p, element) {\n let attrs = \"\";\n attrs = computeStyle(attrs, {\n stroke: \"#000000\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\",\n strokeDasharray: \"5, 5\",\n });\n\n return svgAppend(p, createLine(element.waypoints, attrs));\n };\n\n this.drawAnnotation = function (parentGfx, element) {\n let style = {\n fill: \"none\",\n stroke: \"none\",\n };\n\n let text = element.businessObject.text || \"\";\n if (element.businessObject.text) {\n let height = getAnnotationBoxHeight();\n\n if (height === 0 && element.businessObject.number) {\n height = element.businessObject.number;\n }\n assign(element, {\n height: height,\n });\n\n // for some reason the keyword height is not exported, so we use another, which we know will be exported,\n // to ensure persistent annotation heights between sessions\n assign(element.businessObject, {\n number: height,\n });\n }\n\n let textElement = drawRect(\n parentGfx,\n element.width,\n element.height,\n 0,\n 0,\n style\n );\n let textPathData = pathMap.getScaledPath(\"TEXT_ANNOTATION\", {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.0,\n my: 0.0,\n },\n });\n\n drawPath(parentGfx, textPathData, {\n stroke: \"black\",\n });\n\n renderLabel(parentGfx, text, {\n box: element,\n align: \"left-top\",\n padding: 5,\n style: {\n fill: \"black\",\n },\n });\n\n return textElement;\n };\n\n // draw helper functions\n function drawPath(parentGfx, d, attrs) {\n attrs = computeStyle(attrs, [\"no-fill\"], {\n strokeWidth: 2,\n stroke: \"black\",\n });\n\n let path = svgCreate(\"path\");\n svgAttr(path, { d: d });\n svgAttr(path, attrs);\n\n svgAppend(parentGfx, path);\n\n return path;\n }\n\n function drawRect(parentGfx, width, height, r, offset, attrs) {\n if (isObject(offset)) {\n attrs = offset;\n offset = 0;\n }\n\n offset = offset || 0;\n attrs = computeStyle(attrs, {\n stroke: \"black\",\n strokeWidth: 2,\n fill: \"white\",\n });\n\n let rect = svgCreate(\"rect\");\n svgAttr(rect, {\n x: offset,\n y: offset,\n width: width - offset * 2,\n height: height - offset * 2,\n rx: r,\n ry: r,\n });\n\n svgAttr(rect, attrs);\n svgAppend(parentGfx, rect);\n\n return rect;\n }\n\n // marker functions\n function marker(type, fill, stroke) {\n let id = type + \"-\" + fill + \"-\" + stroke + \"-\" + rendererId;\n\n if (!markers[id]) {\n createMarker(type, fill, stroke);\n }\n return \"url(#\" + id + \")\";\n }\n\n function createMarker(type, fill, stroke) {\n let id = type + \"-\" + fill + \"-\" + stroke + \"-\" + rendererId;\n\n if (type === \"activity\") {\n let sequenceflowEnd = svgCreate(\"path\");\n svgAttr(sequenceflowEnd, { d: \"M 1 5 L 11 10 L 1 15 Z\" });\n\n addMarker(id, {\n element: sequenceflowEnd,\n ref: { x: 11, y: 10 },\n scale: 0.5,\n attrs: {\n fill: stroke,\n stroke: stroke,\n },\n });\n }\n }\n\n function addMarker(id, options) {\n let attrs = assign(\n {\n fill: \"black\",\n strokeWidth: 1,\n strokeLinecap: \"round\",\n strokeDasharray: \"none\",\n },\n options.attrs\n );\n\n let ref = options.ref || { x: 0, y: 0 };\n let scale = options.scale || 1;\n\n // resetting stroke dash array\n if (attrs.strokeDasharray === \"none\") {\n attrs.strokeDasharray = [10000, 1];\n }\n\n let marker = svgCreate(\"marker\");\n\n svgAttr(options.element, attrs);\n svgAppend(marker, options.element);\n svgAttr(marker, {\n id: id,\n viewBox: \"0 0 20 20\",\n refX: ref.x,\n refY: ref.y,\n markerWidth: 20 * scale,\n markerHeight: 20 * scale,\n orient: \"auto\",\n });\n\n let defs = domQuery(\"defs\", canvas._svg);\n if (!defs) {\n defs = svgCreate(\"defs\");\n svgAppend(canvas._svg, defs);\n }\n svgAppend(defs, marker);\n markers[id] = marker;\n }\n\n // path functions\n this.getWorkObjectPath = function (shape) {\n let rectangle = getRectPath(shape);\n return componentsToPath(rectangle);\n };\n\n this.getGroupPath = function (shape) {\n let rectangle = getRectPath(shape);\n return componentsToPath(rectangle);\n };\n\n this.getActivityPath = function (connection) {\n let waypoints = connection.waypoints.map(function (p) {\n return p.original || p;\n });\n\n let activityPath = [[\"M\", waypoints[0].x, waypoints[0].y]];\n\n waypoints.forEach(function (waypoint, index) {\n if (index !== 0) {\n activityPath.push([\"L\", waypoint.x, waypoint.y]);\n }\n });\n return componentsToPath(activityPath);\n };\n\n this.getActorPath = function (shape) {\n let rectangle = getRectPath(shape);\n return componentsToPath(rectangle);\n };\n}\n\ninherits(DomainStoryRenderer, BaseRenderer);\n\nDomainStoryRenderer.$inject = [\n \"eventBus\",\n \"styles\",\n \"canvas\",\n \"textRenderer\",\n \"pathMap\",\n \"commandStack\",\n];\n\nDomainStoryRenderer.prototype.canRender = function (element) {\n return /^domainStory:/.test(element.type);\n};\n\nDomainStoryRenderer.prototype.drawShape = function (p, element) {\n // polyfill for tests\n if (!String.prototype.startsWith) {\n Object.defineProperty(String.prototype, \"startsWith\", {\n value: function (search, pos) {\n pos = !pos || pos < 0 ? 0 : +pos;\n return this.substring(pos, pos + search.length) === search;\n },\n });\n }\n\n let type = element.type;\n element.businessObject.type = type;\n\n elementRegistry.correctInitialize();\n dirtyFlag.makeDirty();\n\n if (type.includes(elementTypes.ACTOR)) {\n return this.drawActor(p, element);\n } else if (type.includes(elementTypes.WORKOBJECT)) {\n return this.drawWorkObject(p, element);\n } else if (type.includes(elementTypes.TEXTANNOTATION)) {\n return this.drawAnnotation(p, element);\n } else if (type.includes(elementTypes.GROUP)) {\n return this.drawGroup(p, element);\n }\n};\n\nDomainStoryRenderer.prototype.getShapePath = function (shape) {\n let type = shape.type;\n\n if (type.includes(elementTypes.ACTOR)) {\n return this.getActorPath(shape);\n } else if (type.includes(elementTypes.WORKOBJECT)) {\n return this.getWorkObjectPath(shape);\n } else if (type.includes(elementTypes.GROUP)) {\n return this.getGroupPath(shape);\n }\n};\n\nDomainStoryRenderer.prototype.drawConnection = function (p, element) {\n let type = element.type;\n\n dirtyFlag.makeDirty();\n\n // fixes activities that were copy-pasted\n if (!element.businessObject.type) {\n element.businessObject.type = type;\n }\n if (type === elementTypes.ACTIVITY) {\n return this.drawActivity(p, element);\n } else if (type === elementTypes.CONNECTION) {\n return this.drawDSConnection(p, element);\n }\n};\n\n// TODO check if used\nDomainStoryRenderer.prototype.getConnectionPath = function (connection) {\n let type = connection.type;\n\n if (type === elementTypes.ACTIVITY || type === elementTypes.CONNECTION) {\n return this.getActivityPath(connection);\n }\n};\n\n// creates a SVG path that describes a rectangle which encloses the given shape.\nfunction getRectPath(shape) {\n let offset = 5;\n let x = shape.x,\n y = shape.y,\n width = shape.width / 2 + offset,\n height = shape.height / 2 + offset;\n\n return [\n [\"M\", x, y],\n [\"l\", width, 0],\n [\"l\", width, height],\n [\"l\", -width, height],\n [\"l\", -width, 0],\n [\"z\"],\n ];\n}\n","\"use strict\";\n\nimport { assign, every, reduce } from \"min-dash\";\n\nimport inherits from \"inherits\";\n\nimport RuleProvider from \"diagram-js/lib/features/rules/RuleProvider\";\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\nimport { is } from \"./util\";\n\nconst HIGH_PRIORITY = 1500;\nconst MIN_SIZE = 125;\n\nfunction isDomainStory(element) {\n return element && /^domainStory:/.test(element.type);\n}\n\nfunction isDomainStoryGroup(element) {\n return element && /^domainStory:group/.test(element.type);\n}\n\nfunction isActor(element) {\n return element && /^domainStory:actor\\w*/.test(element.type);\n}\n\nfunction isWorkObject(element) {\n return element && /^domainStory:workObject/.test(element.type);\n}\n\nfunction isActivity(element) {\n return element && /^domainStory:activity/.test(element.type);\n}\n\nfunction isConnection(element) {\n return element && /^domainStory:connection/.test(element.type);\n}\n\nfunction isAnnotation(element) {\n return element && /^domainStory:textAnnotation/.test(element.type);\n}\n\n/**\n * can source and target be connected?\n */\nfunction canConnect(source, target) {\n // only judge about two custom elements\n if (\n isDomainStoryGroup(target) ||\n !isDomainStory(source) ||\n !isDomainStory(target)\n ) {\n return;\n }\n\n // do not allow a connection from one element to itself\n if (source === target) {\n return;\n }\n\n // do not allow a connection between two actors\n if (isActor(source) && isActor(target)) {\n return;\n }\n\n // do not allow a connection, where the source or target is an activity\n if (isActivity(source) || isActivity(target)) {\n return;\n }\n\n // do not allow a connection, where the source or target is an annotation connection\n if (isConnection(source) || isConnection(target)) {\n return;\n }\n\n // do not allow a connection to a connection(the special type of connection between an element and a comment box)\n // when the target is an annotation, the connection type is an annotation connection instead of an activity\n if (isAnnotation(target)) {\n return { type: elementTypes.CONNECTION };\n }\n\n return { type: elementTypes.ACTIVITY };\n}\n\nfunction canResize(shape, newBounds) {\n if (is(shape, elementTypes.GROUP)) {\n if (newBounds) {\n let lowerLeft = { x: shape.x, y: shape.y + shape.height };\n let lowerRight = { x: shape.x + shape.width, y: shape.y + shape.height };\n let upperRight = { x: shape.x + shape.width, y: shape.y };\n\n if (newBounds.x !== shape.x && newBounds.y !== shape.y) {\n // upper left\n if (newBounds.x > lowerRight.x - MIN_SIZE) {\n assign(newBounds, { x: lowerRight.x - MIN_SIZE });\n }\n if (newBounds.y > lowerRight.y - MIN_SIZE) {\n assign(newBounds, { y: lowerRight.y - MIN_SIZE });\n }\n }\n\n if (newBounds.x !== shape.x && newBounds.y === shape.y) {\n // lower left\n if (newBounds.x > upperRight.x - MIN_SIZE) {\n assign(newBounds, { x: upperRight.x - MIN_SIZE });\n }\n }\n\n if (newBounds.x === shape.x && newBounds.y !== shape.y) {\n // upper right\n if (newBounds.y > lowerLeft.y - MIN_SIZE) {\n assign(newBounds, { y: lowerLeft.y - MIN_SIZE });\n }\n }\n\n if (newBounds.height < MIN_SIZE) {\n assign(newBounds, {\n height: MIN_SIZE,\n });\n }\n if (newBounds.width < MIN_SIZE) {\n assign(newBounds, {\n width: MIN_SIZE,\n });\n }\n }\n return true;\n }\n\n return false;\n}\n\nfunction canAttach(elements, target, source) {\n if (!Array.isArray(elements)) {\n elements = [elements];\n }\n\n // disallow appending as boundary event\n if (source) {\n return false;\n }\n\n // only (re-)attach one element at a time\n if (elements.length !== 1) {\n return false;\n }\n\n // allow default move operation\n if (!target) {\n return true;\n }\n\n // only allow drop on DomainStory Elements\n if (!isDomainStory(target)) {\n return false;\n }\n\n return \"attach\";\n}\n\nfunction canConnectToAnnotation(source, target, connection) {\n // do not allow an activity connect to an annotation\n if (isActivity(connection) && isAnnotation(target)) {\n return false;\n }\n\n // do not allow an annotation connection between two annotations\n if (\n isConnection(connection) &&\n isAnnotation(source) &&\n isAnnotation(target)\n ) {\n return false;\n }\n\n // do not allow an annotation connection between an actor or workObject and anything except an annotation\n return !(\n isConnection(connection) &&\n !isAnnotation(target) &&\n (isActor(source) || isWorkObject(source))\n );\n}\n\n/**\n * specific rules for custom elements\n */\nexport default function DomainStoryRules(eventBus) {\n RuleProvider.call(this, eventBus);\n}\n\ninherits(DomainStoryRules, RuleProvider);\n\nDomainStoryRules.$inject = [\"eventBus\"];\n\nDomainStoryRules.prototype.init = function () {\n /**\n * can shape be created on target container?\n */\n function canCreate(shape, target) {\n // only judge about custom elements\n if (!isDomainStory(shape)) {\n return;\n }\n\n // allow creation just on groups\n return !isDomainStory(target) || isDomainStoryGroup(target);\n }\n\n this.addRule(\"elements.create\", function (context) {\n const elements = context.elements,\n position = context.position,\n target = context.target;\n\n return every(elements, function (element) {\n if (isConnection(element)) {\n return canConnect(element.source, element.target, element);\n }\n\n if (element.host) {\n return canAttach(element, element.host, null, position);\n }\n\n return canCreate(element, target, null, position);\n });\n });\n\n this.addRule(\"elements.move\", HIGH_PRIORITY, function (context) {\n let target = context.target,\n shapes = context.shapes;\n\n let type;\n\n // do not allow mixed movements of custom / BPMN shapes\n // if any shape cannot be moved, the group cannot be moved, too\n\n // reject, if we have at least one\n // custom element that cannot be moved\n return reduce(\n shapes,\n function (result, s) {\n if (type === undefined) {\n type = isDomainStory(s);\n }\n\n if (type !== isDomainStory(s) || result === false) {\n return false;\n }\n\n return canCreate(s, target);\n },\n undefined\n );\n });\n\n this.addRule(\"shape.create\", HIGH_PRIORITY, function (context) {\n let target = context.target,\n shape = context.shape;\n\n return canCreate(shape, target);\n });\n\n this.addRule(\"connection.create\", HIGH_PRIORITY, function (context) {\n let source = context.source,\n target = context.target;\n\n return canConnect(source, target);\n });\n\n this.addRule(\"connection.reconnect\", HIGH_PRIORITY, function (context) {\n let connection = context.connection,\n source = context.hover || context.source,\n target = context.target;\n\n // --------------------------------------------------------------\n let result = canConnectToAnnotation(source, target, connection);\n\n if (!result) {\n return;\n }\n\n // --------------------------------------------------------------\n\n return canConnect(source, target, connection);\n });\n\n this.addRule(\"shape.resize\", function (context) {\n let shape = context.shape,\n newBounds = context.newBounds;\n\n return canResize(shape, newBounds);\n });\n};\n\nDomainStoryRules.prototype.canConnect = canConnect;\nDomainStoryRules.prototype.canAttach = canAttach;\nDomainStoryRules.prototype.isDomainStory = isDomainStory;\nDomainStoryRules.prototype.canResize = canResize;\n","\"use strict\";\n\nimport inherits from \"inherits\";\n\nimport { pick, assign } from \"min-dash\";\n\nimport CommandInterceptor from \"diagram-js/lib/command/CommandInterceptor\";\n\nimport {\n add as collectionAdd,\n remove as collectionRemove,\n} from \"diagram-js/lib/util/Collections\";\n\nimport { reworkGroupElements } from \"./util\";\nimport { elementTypes } from \"../../Domain/Common/elementTypes\";\n\n/**\n * a handler responsible for updating the custom element's businessObject\n * once changes on the diagram happen.\n */\nexport default function DomainStoryUpdater(eventBus, bpmnjs) {\n CommandInterceptor.call(this, eventBus);\n\n function updateCustomElement(e) {\n let context = e.context,\n shape = context.shape,\n businessObject = shape.businessObject;\n\n if (!shape || !shape.type.includes(elementTypes.DOMAINSTORY)) {\n return;\n }\n\n let parent = shape.parent;\n let customElements = bpmnjs._customElements;\n\n // make sure element is added / removed from bpmnjs.customElements\n if (!parent) {\n collectionRemove(customElements, businessObject);\n } else {\n collectionAdd(customElements, businessObject);\n }\n\n // save custom element position\n assign(businessObject, pick(shape, [\"x\", \"y\"]));\n\n // save custom element size if resizable\n if (shape.type === elementTypes.GROUP) {\n assign(businessObject, pick(shape, [\"height\", \"width\"]));\n\n // rework the child-parent relations if a group was moved, such that all Objects that are visually in the group are also associated with it\n // since we do not have access to the standard-canvas object here, we cannot use the function correctGroupChildren() from DSLabelUtil\n if (parent != null) {\n reworkGroupElements(parent, shape);\n }\n }\n if (\n shape &&\n shape.parent &&\n \"type\" in shape.parent &&\n shape.parent.type === elementTypes.GROUP\n ) {\n assign(businessObject, {\n parent: shape.parent.id,\n });\n }\n }\n\n function updateCustomConnection(e) {\n let context = e.context,\n connection = context.connection,\n source = connection.source,\n target = connection.target,\n businessObject = connection.businessObject;\n\n if (e.newTarget) {\n target = e.newTarget;\n }\n if (e.newSource) {\n source = e.newSource;\n }\n\n let parent = connection.parent;\n let customElements = bpmnjs._customElements;\n\n // make sure element is added / removed from bpmnjs.customElements\n if (!parent) {\n collectionRemove(customElements, businessObject);\n } else {\n collectionAdd(customElements, businessObject);\n }\n\n // update waypoints\n assign(businessObject, {\n waypoints: copyWaypoints(connection),\n });\n\n if (source) {\n if (!businessObject.source) {\n assign(businessObject, { source: source.id });\n } else {\n businessObject.source = source.id;\n }\n }\n if (target) {\n if (!businessObject.target) {\n assign(businessObject, { target: target.id });\n } else {\n businessObject.target = target.id;\n }\n }\n }\n\n function copyWaypoints(connection) {\n return connection.waypoints.map(function (p) {\n if (p.original) {\n return {\n original: {\n x: p.original.x,\n y: p.original.y,\n },\n x: p.x,\n y: p.y,\n };\n } else {\n return {\n x: p.x,\n y: p.y,\n };\n }\n });\n }\n\n this.executed(\n [\n \"shape.create\",\n \"shape.move\",\n \"shape.delete\",\n \"shape.resize\",\n \"shape.removeGroupWithChildren\",\n ],\n ifDomainStoryElement(updateCustomElement)\n );\n\n this.reverted(\n [\n \"shape.create\",\n \"shape.move\",\n \"shape.delete\",\n \"shape.resize\",\n \"shape.removeGroupWithChildren\",\n ],\n ifDomainStoryElement(updateCustomElement)\n );\n\n this.executed(\n [\n \"connection.create\",\n \"connection.reconnect\",\n \"connection.updateWaypoints\",\n \"connection.delete\",\n \"connection.layout\",\n \"connection.move\",\n ],\n ifDomainStoryElement(updateCustomConnection)\n );\n\n this.reverted(\n [\n \"connection.create\",\n \"connection.reconnect\",\n \"connection.updateWaypoints\",\n \"connection.delete\",\n \"connection.layout\",\n \"connection.move\",\n ],\n ifDomainStoryElement(updateCustomConnection)\n );\n}\n\n// check if element in the context of an event is a domainStory element\nfunction ifDomainStoryElement(fn) {\n return (event) => {\n const context = event.context;\n const element = context.shape || context.connection;\n\n if (isDomainStory(element)) {\n fn(event);\n }\n };\n}\n\nfunction isDomainStory(element) {\n return element && /domainStory:/.test(element.type);\n}\n\ninherits(DomainStoryUpdater, CommandInterceptor);\n\nDomainStoryUpdater.$inject = [\"eventBus\", \"bpmnjs\"];\n","\"use strict\";\n\nimport DomainStoryElementFactory from \"./domainStoryElementFactory\";\nimport DomainStoryRenderer from \"./domainStoryRenderer\";\nimport DomainStoryPalette from \"./palette/domainStoryPalette\";\nimport DomainStoryRules from \"./domainStoryRules\";\nimport DomainStoryUpdater from \"./domainStoryUpdater\";\nimport ElementFactory from \"bpmn-js/lib/features/modeling/ElementFactory\";\nimport CreateModule from \"diagram-js/lib/features/create\";\nimport PathMap from \"bpmn-js/lib/draw/PathMap\";\nimport PopupMenuModule from \"bpmn-js/lib/features/popup-menu\";\nimport ContextPadModule from \"diagram-js/lib/features/context-pad\";\nimport CommandStack from \"diagram-js/lib/command/CommandStack\";\nimport UpdateLabelHandler from \"./updateHandler/updateLabelHandler\";\nimport headlineAndDescriptionUpdateHandler from \"./updateHandler/headlineAndDescriptionUpdateHandler\";\nimport DomainStoryContextPadProvider from \"./context-pad/domainStoryContextPadProvider\";\nimport ReplaceMenuProvider from \"./change-icon/replaceMenuProvider\";\nimport DSModeling from \"./modeling/dSModeling\";\n\nexport default {\n __depends__: [CreateModule, ContextPadModule, PopupMenuModule],\n __init__: [\n \"domainStoryRenderer\",\n \"paletteProvider\",\n \"domainStoryRules\",\n \"domainStoryUpdater\",\n \"contextPadProvider\",\n \"replaceMenuProvider\",\n ],\n elementFactory: [\"type\", DomainStoryElementFactory],\n domainStoryRenderer: [\"type\", DomainStoryRenderer],\n paletteProvider: [\"type\", DomainStoryPalette],\n domainStoryRules: [\"type\", DomainStoryRules],\n domainStoryUpdater: [\"type\", DomainStoryUpdater],\n contextPadProvider: [\"type\", DomainStoryContextPadProvider],\n elementFactoryBpmn: [\"type\", ElementFactory],\n pathMap: [\"type\", PathMap],\n replaceMenuProvider: [\"type\", ReplaceMenuProvider],\n commandStack: [\"type\", CommandStack],\n updateLabelHandler: [\"type\", UpdateLabelHandler],\n headlineAndDescriptionUpdateHandler: [\n \"type\",\n headlineAndDescriptionUpdateHandler,\n ],\n modeling: [\"type\", DSModeling],\n};\n","\"use strict\";\n\nimport {\n append as svgAppend,\n attr as svgAttr,\n create as svgCreate,\n remove as svgRemove,\n} from \"tiny-svg\";\n\nimport { translate } from \"diagram-js/lib/util/SvgTransformUtil\";\nimport { elementTypes } from \"../../../Domain/Common/elementTypes\";\nimport { is } from \"../util\";\n\nconst MARKER_HIDDEN = \"djs-element-hidden\",\n MARKER_LABEL_HIDDEN = \"djs-label-hidden\";\n\nlet annotationBoxHeight = 0;\n\nexport function getAnnotationBoxHeight() {\n return annotationBoxHeight;\n}\n\nexport default function DSLabelEditingPreview(eventBus, canvas, pathMap) {\n let self = this;\n\n let defaultLayer = canvas.getDefaultLayer();\n let element, absoluteElementBBox, gfx;\n\n eventBus.on(\"directEditing.activate\", function (context) {\n let activeProvider = context.active;\n\n element = activeProvider.element.label || activeProvider.element;\n\n // text annotation\n if (is(element, elementTypes.TEXTANNOTATION)) {\n absoluteElementBBox = canvas.getAbsoluteBBox(element);\n\n gfx = svgCreate(\"g\");\n\n annotationBoxHeight = element.height;\n\n let textPathData = pathMap.getScaledPath(\"TEXT_ANNOTATION\", {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.0,\n my: 0.0,\n },\n });\n\n let path = (self.path = svgCreate(\"path\"));\n\n svgAttr(path, {\n d: textPathData,\n strokeWidth: 2,\n stroke: getStrokeColor(element),\n });\n\n svgAppend(gfx, path);\n\n svgAppend(defaultLayer, gfx);\n\n translate(gfx, element.x, element.y);\n }\n\n if (is(element, elementTypes.TEXTANNOTATION) || element.labelTarget) {\n canvas.addMarker(element, MARKER_HIDDEN);\n } else if (\n element.type.includes(elementTypes.ACTOR) ||\n element.type.includes(elementTypes.WORKOBJECT) ||\n element.type.includes(elementTypes.ACTIVITY) ||\n element.type.includes(elementTypes.GROUP)\n ) {\n canvas.addMarker(element, MARKER_LABEL_HIDDEN);\n }\n });\n\n eventBus.on(\"directEditing.resize\", function (context) {\n // text annotation\n if (is(element, elementTypes.TEXTANNOTATION)) {\n let height = context.height,\n dy = context.dy;\n\n let newElementHeight = Math.max(\n (element.height / absoluteElementBBox.height) * (height + dy),\n 0\n );\n annotationBoxHeight = newElementHeight;\n\n let textPathData = pathMap.getScaledPath(\"TEXT_ANNOTATION\", {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: newElementHeight,\n position: {\n mx: 0.0,\n my: 0.0,\n },\n });\n\n svgAttr(self.path, {\n d: textPathData,\n });\n }\n });\n\n eventBus.on(\n [\"directEditing.complete\", \"directEditing.cancel\"],\n function (context) {\n let activeProvider = context.active;\n\n if (activeProvider) {\n canvas.removeMarker(\n activeProvider.element.label || activeProvider.element,\n MARKER_HIDDEN\n );\n canvas.removeMarker(element, MARKER_LABEL_HIDDEN);\n }\n\n element = undefined;\n absoluteElementBBox = undefined;\n\n if (gfx) {\n svgRemove(gfx);\n\n gfx = undefined;\n }\n }\n );\n}\n\nDSLabelEditingPreview.$inject = [\"eventBus\", \"canvas\", \"pathMap\"];\n\n// helpers ///////////////////\n\nfunction getStrokeColor() {\n return \"black\";\n}\n","\"use strict\";\n\nimport { assign } from \"min-dash\";\n\nimport { getLabel, autocomplete } from \"./dsLabelUtil\";\n\nimport { isAny } from \"bpmn-js/lib/features/modeling/util/ModelingUtil\";\n\nimport {\n getExternalLabelMid,\n isLabelExternal,\n hasExternalLabel,\n isLabel,\n} from \"bpmn-js/lib/util/LabelUtil\";\n\nimport { elementTypes } from \"../../../Domain/Common/elementTypes\";\nimport { is } from \"../util\";\n\nlet dictionaryService;\n\nlet numberStash = 0;\nlet stashUse = false;\n\nexport function initializeLabelEditingProvider(labelingDictionary) {\n dictionaryService = labelingDictionary;\n}\n\nexport function getNumberStash() {\n let number = { use: stashUse, number: numberStash };\n stashUse = false;\n return number;\n}\n\nexport function toggleStashUse(use) {\n stashUse = use;\n}\n\nexport default function DSLabelEditingProvider(\n eventBus,\n canvas,\n directEditing,\n modeling,\n resizeHandles,\n textRenderer,\n updateLabelHandler\n) {\n this._canvas = canvas;\n this._modeling = modeling;\n this._textRenderer = textRenderer;\n this._updateLabelHandler = updateLabelHandler;\n\n directEditing.registerProvider(this);\n\n // listen to dblclick on non-root elements\n eventBus.on(\"element.dblclick\", function (event) {\n activateDirectEdit(event.element, true);\n if (is(event.element, elementTypes.ACTIVITY)) {\n // if we edit an activity, we do not want the standard editing box\n numberStash = event.element.businessObject.number;\n stashUse = true;\n directEditing.complete();\n }\n });\n\n // complete on followup canvas operation\n eventBus.on(\n [\n \"element.mousedown\",\n \"drag.init\",\n \"canvas.viewbox.changing\",\n \"autoPlace\",\n \"popupMenu.open\",\n ],\n function () {\n if (directEditing.isActive()) {\n directEditing.complete();\n }\n }\n );\n\n // cancel on command stack changes\n eventBus.on([\"commandStack.changed\"], function () {\n if (directEditing.isActive()) {\n directEditing.cancel();\n }\n });\n\n eventBus.on(\"directEditing.activate\", function (event) {\n resizeHandles.removeResizers();\n let element = event.active.element;\n createAutocomplete(element);\n });\n\n eventBus.on(\"create.end\", 500, function (event) {\n let element = event.shape,\n canExecute = event.context.canExecute,\n isTouch = event.isTouch;\n\n if (isTouch) {\n return;\n }\n\n if (!canExecute) {\n return;\n }\n if (!is(element, elementTypes.ACTIVITY)) {\n activateDirectEdit(element);\n }\n });\n\n eventBus.on(\"autoPlace.end\", 500, function (event) {\n activateDirectEdit(event.shape);\n });\n\n function activateDirectEdit(element, force) {\n if (\n force ||\n isAny(element, [elementTypes.TEXTANNOTATION]) ||\n element.businessObject.type.includes(elementTypes.DOMAINSTORY)\n ) {\n directEditing.activate(element);\n }\n }\n\n function createAutocomplete(element) {\n let editingBox = document.getElementsByClassName(\n \"djs-direct-editing-content\"\n );\n editingBox[0].focus();\n autocomplete(\n editingBox[0],\n dictionaryService.getWorkObjectLabels(),\n element\n );\n }\n}\n\nDSLabelEditingProvider.$inject = [\n \"eventBus\",\n \"canvas\",\n \"directEditing\",\n \"modeling\",\n \"resizeHandles\",\n \"textRenderer\",\n \"updateLabelHandler\",\n];\n\n/**\n * activate direct editing for activities and text annotations.\n *\n * @param {djs.model.Base} element\n *\n * @return {Object} an object with properties bounds (position and size), text and options\n */\nDSLabelEditingProvider.prototype.activate = function (element) {\n // text\n if (element.id === \"__implicitrootbase\") {\n return;\n }\n let text = getLabel(element);\n\n if (text === undefined) {\n return;\n }\n\n let context = {\n text: text,\n };\n\n // bounds\n let bounds = this.getEditingBBox(element);\n\n assign(context, bounds);\n\n let options = {};\n\n // external labels\n if (isLabelExternal(element)) {\n assign(options, {\n autoResize: true,\n });\n }\n\n // text annotations\n if (is(element, elementTypes.TEXTANNOTATION)) {\n assign(options, {\n resizable: true,\n autoResize: true,\n });\n }\n\n assign(context, {\n options: options,\n });\n\n return context;\n};\n\n/**\n * get the editing bounding box based on the element's size and position\n *\n * @param {djs.model.Base} element\n *\n * @return {Object} an object containing information about position\n * and size (fixed or minimum and/or maximum)\n */\nDSLabelEditingProvider.prototype.getEditingBBox = function (element) {\n let canvas = this._canvas;\n\n let target = element.label || element;\n\n let bbox = canvas.getAbsoluteBBox(target);\n\n let mid = {\n x: bbox.x + bbox.width / 2,\n y: bbox.y + bbox.height / 2,\n };\n\n // default position\n let bounds = { x: bbox.x, y: bbox.y };\n\n /** The cavnas is an Object from BPMN, the IDE might say, that zoom is deprecated,\n * because it thinks canvas is the standard HTMLElement. -> Needs to stay toom **/\n let zoom = canvas.zoom();\n let defaultStyle = this._textRenderer.getDefaultStyle(),\n externalStyle = this._textRenderer.getExternalStyle();\n\n // take zoom into account\n let externalFontSize = externalStyle.fontSize * zoom,\n externalLineHeight = externalStyle.lineHeight,\n defaultFontSize = defaultStyle.fontSize * zoom,\n defaultLineHeight = defaultStyle.lineHeight;\n\n let style = {\n fontFamily: this._textRenderer.getDefaultStyle().fontFamily,\n fontWeight: this._textRenderer.getDefaultStyle().fontWeight,\n };\n\n // adjust for groups\n if (is(element, elementTypes.GROUP)) {\n assign(bounds, {\n minWidth: bbox.width / 2.5 > 125 ? bbox.width / 2.5 : 125,\n maxWidth: bbox.width,\n minHeight: 30 * zoom,\n x: bbox.x,\n y: bbox.y,\n });\n\n assign(style, {\n fontSize: defaultFontSize + \"px\",\n lineHeight: defaultLineHeight,\n paddingTop: 7 * zoom + \"px\",\n paddingBottom: 7 * zoom + \"px\",\n paddingLeft: 5 * zoom + \"px\",\n paddingRight: 5 * zoom + \"px\",\n textAlign: \"left\",\n });\n }\n\n // internal labels for tasks and collapsed call activities,\n // sub processes and participants\n if (\n /^domainStory:actor\\w*/.test(element.type) ||\n /^domainStory:workObject\\w*/.test(element.type)\n ) {\n assign(bounds, {\n width: bbox.width,\n minHeight: 30,\n y: bbox.y + bbox.height - 20,\n x: bbox.x,\n });\n\n assign(style, {\n fontSize: defaultFontSize + \"px\",\n lineHeight: defaultLineHeight,\n paddingTop: 7 * zoom + \"px\",\n paddingBottom: 7 * zoom + \"px\",\n paddingLeft: 5 * zoom + \"px\",\n paddingRight: 5 * zoom + \"px\",\n });\n }\n\n let width = 90 * zoom,\n paddingTop = 7 * zoom,\n paddingBottom = 4 * zoom;\n\n // external labels for events, data elements, gateways and connections\n if (target.labelTarget) {\n assign(bounds, {\n width: width,\n height: bbox.height + paddingTop + paddingBottom,\n x: mid.x - width / 2,\n y: bbox.y - paddingTop,\n });\n\n assign(style, {\n fontSize: externalFontSize + \"px\",\n lineHeight: externalLineHeight,\n paddingTop: paddingTop + \"px\",\n paddingBottom: paddingBottom + \"px\",\n });\n }\n\n // external label not yet created\n if (\n isLabelExternal(target) &&\n !hasExternalLabel(target) &&\n !isLabel(target)\n ) {\n let externalLabelMid = getExternalLabelMid(element);\n\n let absoluteBBox = canvas.getAbsoluteBBox({\n x: externalLabelMid.x,\n y: externalLabelMid.y,\n width: 0,\n height: 0,\n });\n\n let height = externalFontSize + paddingTop + paddingBottom;\n\n assign(bounds, {\n width: width,\n height: height,\n x: absoluteBBox.x - width / 2,\n y: absoluteBBox.y - height / 2,\n });\n\n assign(style, {\n fontSize: externalFontSize + \"px\",\n lineHeight: externalLineHeight,\n paddingTop: paddingTop + \"px\",\n paddingBottom: paddingBottom + \"px\",\n });\n }\n\n // text annotations\n if (is(element, elementTypes.TEXTANNOTATION)) {\n assign(bounds, {\n width: bbox.width,\n height: bbox.height,\n minWidth: 30 * zoom,\n minHeight: 10 * zoom,\n });\n\n assign(style, {\n textAlign: \"left\",\n paddingTop: 7 * zoom + \"px\",\n paddingBottom: 7 * zoom + \"px\",\n paddingLeft: 5 * zoom + \"px\",\n paddingRight: 5 * zoom + \"px\",\n fontSize: defaultFontSize + \"px\",\n lineHeight: defaultLineHeight,\n });\n }\n\n return { bounds: bounds, style: style };\n};\n\nDSLabelEditingProvider.prototype.update = function (\n element,\n newLabel,\n activeContextText,\n bounds\n) {\n let newBounds, bbox;\n\n if (is(element, elementTypes.TEXTANNOTATION)) {\n bbox = this._canvas.getAbsoluteBBox(element);\n\n newBounds = {\n x: element.x,\n y: element.y,\n width: (element.width / bbox.width) * bounds.width,\n height: (element.height / bbox.height) * bounds.height,\n };\n }\n\n this._modeling.updateLabel(element, newLabel, newBounds);\n};\n","\"use strict\";\n\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\nimport { is } from \"../util\";\n\nfunction getLabelAttr(semantic) {\n if (\n semantic.type.includes(elementTypes.ACTOR) ||\n semantic.type.includes(elementTypes.WORKOBJECT) ||\n semantic.type.includes(elementTypes.ACTIVITY) ||\n semantic.type.includes(elementTypes.GROUP)\n ) {\n return \"name\";\n }\n\n if (is(semantic, elementTypes.TEXTANNOTATION)) {\n return \"text\";\n }\n}\n\nfunction getNumberAttr(semantic) {\n if (is(semantic, elementTypes.ACTIVITY)) {\n return \"number\";\n }\n}\n\nexport function getLabel(element) {\n let semantic;\n if (element.businessObject) {\n semantic = element.businessObject;\n } else {\n semantic = element;\n }\n let attr = getLabelAttr(semantic);\n if (attr && semantic) {\n return semantic[attr] || \"\";\n }\n}\n\nexport function getNumber(element) {\n let semantic = element.businessObject,\n attr = getNumberAttr(semantic);\n\n if (attr) {\n return semantic[attr] || \"\";\n }\n}\n\nexport function setLabel(element, text) {\n let semantic;\n if (element.businessObject) {\n semantic = element.businessObject;\n } else {\n semantic = element;\n }\n let attr = getLabelAttr(semantic);\n\n if (attr) {\n semantic[attr] = text;\n }\n\n return element;\n}\n\nexport function setNumber(element, textNumber) {\n let semantic = element.businessObject,\n attr = getNumberAttr(semantic);\n\n if (attr) {\n semantic[attr] = textNumber;\n }\n\n return element;\n}\n\n// select at which part of the activity the label should be attached to\nexport function selectPartOfActivity(waypoints, angleActivity) {\n let selectedActivity = 0;\n let linelength = 49;\n\n for (let i = 0; i < waypoints.length; i++) {\n if (angleActivity[i] === 0 || angleActivity[i] === 180) {\n let length = Math.abs(waypoints[i].x - waypoints[i + 1].x);\n if (length > linelength) {\n selectedActivity = i;\n }\n }\n }\n return selectedActivity;\n}\n\n// approximate the width of the label text, standard fontsize: 11\nexport function calculateTextWidth(text) {\n if (!text) {\n return 0;\n }\n\n let fontsize = text.length * 5.1;\n fontsize = fontsize / 2;\n\n // add an initial offset to the absolute middle of the activity\n fontsize += 20;\n return fontsize;\n}\n\n/**\n * copied from https://www.w3schools.com/howto/howto_js_autocomplete.asp on 18.09.2018\n */\nexport function autocomplete(inp, arr, element) {\n closeAllLists();\n\n /* the autocomplete function takes three arguments,\n the text field element and an array of possible autocompleted values and an optional element to which it is appended:*/\n let currentFocus;\n\n /* execute a function when someone writes in the text field:*/\n inp.addEventListener(\"input\", function () {\n /* the direct editing field of actors and workobjects is a recycled html-element and has old values that need to be overridden*/\n if (element.type.includes(elementTypes.WORKOBJECT)) {\n this.value = this.innerHTML;\n }\n let autocompleteList,\n autocompleteItem,\n val = this.value;\n\n /* close any already open lists of autocompleted values*/\n closeAllLists();\n currentFocus = -1;\n\n /* create a DIV element that will contain the items (values):*/\n autocompleteList = document.createElement(\"DIV\");\n autocompleteList.setAttribute(\"id\", \"autocomplete-list\");\n autocompleteList.setAttribute(\"class\", \"autocomplete-items\");\n\n /* append the DIV element as a child of the autocomplete container:*/\n this.parentNode.appendChild(autocompleteList);\n\n /* for each item in the array...*/\n for (const name of arr) {\n /* check if the item starts with the same letters as the text field value:*/\n if (val) {\n if (name.substr(0, val.length).toUpperCase() == val.toUpperCase()) {\n /* create a DIV element for each matching element:*/\n autocompleteItem = document.createElement(\"DIV\");\n\n /* make the matching letters bold:*/\n autocompleteItem.innerHTML =\n \"\" +\n name.substr(0, val.length) +\n \"\" +\n name.substr(val.length);\n\n /* insert an input field that will hold the current name:*/\n autocompleteItem.innerHTML +=\n \"\";\n\n /* execute a function when someone clicks on the item (DIV element):*/\n autocompleteItem.onclick = function () {\n /* insert the value for the autocomplete text field:*/\n inp.value = this.getElementsByTagName(\"input\")[0].value;\n inp.innerHTML = this.getElementsByTagName(\"input\")[0].value;\n\n /* close the list of autocompleted values,\n (or any other open lists of autocompleted values:*/\n closeAllLists();\n };\n autocompleteList.appendChild(autocompleteItem);\n }\n }\n }\n\n // if we edit an actor, we do not want auto-complete, since actors generally are unique\n if (element.type.includes(elementTypes.ACTOR)) {\n autocompleteList.style.visibility = \"hidden\";\n }\n });\n\n /* execute a function presses a key on the keyboard:*/\n inp.onkeydown = function (e) {\n let autocompleteList = document.getElementById(\"autocomplete-list\");\n if (autocompleteList) {\n autocompleteList = autocompleteList.getElementsByTagName(\"div\");\n }\n if (e.keyCode === 40) {\n /* If the arrow DOWN key is pressed,\n increase the currentFocus letiable:*/\n currentFocus++;\n\n /* and and make the current item more visible:*/\n addActive(autocompleteList);\n } else if (e.keyCode === 38) {\n // up\n /* If the arrow UP key is pressed,\n decrease the currentFocus letiable:*/\n currentFocus--;\n\n /* and and make the current item more visible:*/\n addActive(autocompleteList);\n } else if (e.keyCode === 13) {\n /* If the ENTER key is pressed, prevent the form from being submitted,*/\n e.preventDefault();\n if (currentFocus > -1) {\n /* and simulate a click on the \"active\" item:*/\n if (autocompleteList && autocompleteList[currentFocus]) {\n autocompleteList[currentFocus].click();\n }\n }\n }\n };\n\n function addActive(autocompleteList) {\n /* a function to classify an item as \"active\":*/\n if (!autocompleteList || autocompleteList.length < 1) return false;\n\n /* start by removing the \"active\" class on all items:*/\n removeActive(autocompleteList);\n if (currentFocus >= autocompleteList.length) currentFocus = 0;\n if (currentFocus < 0) currentFocus = autocompleteList.length - 1;\n\n /* add class \"autocomplete-active\":*/\n autocompleteList[currentFocus].classList.add(\"autocomplete-active\");\n }\n\n function removeActive(autocompleteList) {\n /* a function to remove the \"active\" class from all autocomplete items:*/\n if (autocompleteList.length > 1) {\n for (const item of autocompleteList) {\n item.classList.remove(\"autocomplete-active\");\n }\n }\n }\n\n function closeAllLists(survivor) {\n /* close all autocomplete lists in the document,\n except the one passed as an argument:*/\n let autocompleteList =\n document.getElementsByClassName(\"autocomplete-items\");\n for (const item of autocompleteList) {\n if (survivor != item && survivor != inp) {\n item.parentNode.removeChild(item);\n }\n }\n }\n\n /* execute a function when someone clicks in the document:*/\n document.addEventListener(\"click\", function (e) {\n closeAllLists(e.target);\n });\n}\n","\"use strict\";\n\nimport ChangeSupportModule from \"diagram-js/lib/features/change-support\";\nimport ResizeModule from \"diagram-js/lib/features/resize\";\nimport DirectEditingModule from \"diagram-js-direct-editing\";\n\nimport CommandStack from \"diagram-js/lib/command/CommandStack\";\nimport UpdateLabelHandler from \"../updateHandler/updateLabelHandler\";\nimport DSLabelEditingPreview from \"./dsLabelEditingPreview\";\nimport DSLabelEditingProvider from \"./dsLabelEditingProvider\";\nimport DSModeling from \"../modeling/dSModeling\";\n\nexport default {\n __depends__: [ChangeSupportModule, ResizeModule, DirectEditingModule],\n __init__: [\"dSlabelEditingProvider\", \"dSlabelEditingPreview\"],\n dSlabelEditingProvider: [\"type\", DSLabelEditingProvider],\n dSlabelEditingPreview: [\"type\", DSLabelEditingPreview],\n updateLabelHandler: [\"type\", UpdateLabelHandler],\n commandStack: [\"type\", CommandStack],\n modeling: [\"type \", DSModeling],\n};\n","\"use strict\";\n\nimport { selectPartOfActivity } from \"./dsLabelUtil\";\nimport { angleBetween } from \"../../../Utils/mathExtensions\";\n\nexport function countLines(str) {\n return str.split(/\\r\\n|\\r|\\n/).length;\n}\n\n// determine the position of the label at the activity\nexport function labelPosition(waypoints, lines = 1) {\n let amountWaypoints = waypoints.length;\n let determinedPosition;\n let xPos;\n let yPos;\n\n if (amountWaypoints > 2) {\n let angleActivity = new Array(amountWaypoints - 1);\n for (let i = 0; i < amountWaypoints - 1; i++) {\n // calculate the angles of the activities\n angleActivity[i] = angleBetween(waypoints[i], waypoints[i + 1]);\n }\n\n let selectedActivity = selectPartOfActivity(waypoints, angleActivity);\n\n xPos = labelPositionX(\n waypoints[selectedActivity],\n waypoints[selectedActivity + 1]\n );\n yPos = labelPositionY(\n waypoints[selectedActivity],\n waypoints[selectedActivity + 1],\n lines\n );\n\n determinedPosition = {\n x: xPos,\n y: yPos,\n selected: selectedActivity,\n };\n\n return determinedPosition;\n } else {\n xPos = labelPositionX(waypoints[0], waypoints[1]);\n yPos = labelPositionY(waypoints[0], waypoints[1], lines);\n\n determinedPosition = {\n x: xPos,\n y: yPos,\n selected: 0,\n };\n\n return determinedPosition;\n }\n}\n\n// calculate the X position of the label\nexport function labelPositionX(startPoint, endPoint) {\n let angle = angleBetween(startPoint, endPoint);\n let offsetX = 0;\n let scaledAngle = 0;\n if (angle === 0 || angle === 180 || angle === 90 || angle === 270) {\n offsetX = 0;\n } else if (angle > 0 && angle < 90) {\n // endpoint in upper right quadrant\n offsetX = 5 - angle / 6;\n } else if (angle > 90 && angle < 180) {\n // endpoint in upper left quadrant\n scaledAngle = angle - 90;\n offsetX = 5 - scaledAngle / 18;\n } else if (angle > 180 && angle < 270) {\n // endpoint in lower left quadrant\n scaledAngle = angle - 180;\n offsetX = scaledAngle / 18;\n } else if (angle > 270) {\n // endpoint in lower right quadrant\n scaledAngle = angle - 270;\n offsetX = 5 - scaledAngle / 6;\n }\n return offsetX + (startPoint.x + endPoint.x) / 2;\n}\n\n// calculate the Y position of the label\nexport function labelPositionY(startPoint, endPoint, lines = 1) {\n let angle = angleBetween(startPoint, endPoint);\n let offsetY = 0;\n let scaledAngle = 0;\n\n if (angle === 0 || angle === 180) {\n offsetY = 15;\n } else if (angle === 90 || angle === 270) {\n offsetY = 0;\n } else if (angle > 0 && angle < 90) {\n // endpoint in upper right quadrant\n offsetY = 15 - angle / 6;\n } else if (angle > 90 && angle < 180) {\n // endpoint in upper left quadrant\n scaledAngle = angle - 90;\n offsetY = (-scaledAngle / 9) * lines;\n } else if (angle > 180 && angle < 270) {\n // endpoint in lower left quadrant\n scaledAngle = angle - 180;\n offsetY = 15 - scaledAngle / 3;\n } else if (angle > 270) {\n // endpoint in lower right quadrant\n scaledAngle = angle - 270;\n offsetY = (-scaledAngle / 9) * lines;\n }\n return offsetY + (startPoint.y + endPoint.y) / 2;\n}\n","\"use strict\";\n\nimport Modeling from \"bpmn-js/lib/features/modeling/Modeling\";\n\nimport { inherits } from \"util\";\n\nexport default function DSModeling(\n eventBus,\n elementFactory,\n commandStack,\n domainStoryRules\n) {\n Modeling.call(this, eventBus, elementFactory, commandStack, domainStoryRules);\n}\n\nModeling.prototype.updateLabel = function (element, newLabel, newBounds) {\n if (\n element.businessObject\n ? newLabel !== element.businessObject.name\n : newLabel !== element.name\n ) {\n if (/^domainStory:/.test(element.type)) {\n this._commandStack.execute(\"element.updateCustomLabel\", {\n element: element,\n newLabel: newLabel,\n newBounds: newBounds,\n });\n } else {\n this._commandStack.execute(\"element.updateLabel\", {\n element: element,\n newLabel: newLabel,\n newBounds: newBounds,\n });\n }\n }\n};\n\nModeling.prototype.updateNumber = function (element, newNumber, newBounds) {\n if (\n element.businessObject\n ? newNumber !== element.businessObject.number\n : newNumber !== element.number\n ) {\n if (/^domainStory:/.test(element.type)) {\n this._commandStack.execute(\"element.updateCustomLabel\", {\n element: element,\n newNumber: newNumber,\n newBounds: newBounds,\n });\n } else {\n this._commandStack.execute(\"element.updateLabel\", {\n element: element,\n newNumber: newNumber,\n newBounds: newBounds,\n });\n }\n }\n};\n\nModeling.prototype.replaceShape = function (oldShape, newShape, hints) {\n let context = {\n oldShape: oldShape,\n newData: newShape,\n hints: hints || {},\n };\n\n this._commandStack.execute(\"shape.replace\", context);\n return context.newShape;\n};\n\nModeling.prototype.removeGroup = function (element) {\n this._commandStack.execute(\"shape.removeGroupWithoutChildren\", {\n element: element,\n });\n this.removeElements({ element });\n};\n\ninherits(DSModeling, Modeling);\n\nDSModeling.$inject = [\n \"eventBus\",\n \"elementFactory\",\n \"commandStack\",\n \"domainStoryRules\",\n];\n","\"use strict\";\n\nimport DomainStoryPalette from \"../palette/domainStoryPalette\";\nimport ElementFactory from \"bpmn-js/lib/features/modeling/ElementFactory\";\nimport CreateModule from \"diagram-js/lib/features/create\";\nimport PathMap from \"bpmn-js/lib/draw/PathMap\";\nimport PopupMenuModule from \"bpmn-js/lib/features/popup-menu\";\nimport ContextPadModule from \"diagram-js/lib/features/context-pad\";\nimport CommandStack from \"diagram-js/lib/command/CommandStack\";\nimport UpdateLabelHandler from \"../updateHandler/updateLabelHandler\";\nimport DomainStoryUpdater from \"../domainStoryUpdater\";\nimport DomainStoryElementFactory from \"../domainStoryElementFactory\";\nimport headlineAndDescriptionUpdateHandler from \"../updateHandler/headlineAndDescriptionUpdateHandler\";\nimport DomainStoryRenderer from \"../domainStoryRenderer\";\nimport DSModeling from \"./dSModeling\";\nimport DomainStoryRules from \"../domainStoryRules\";\nimport ReplaceMenuProvider from \"../change-icon/replaceMenuProvider\";\nimport DomainStoryContextPadProvider from \"../context-pad/domainStoryContextPadProvider\";\n\nexport default {\n __depends__: [CreateModule, ContextPadModule, PopupMenuModule],\n __init__: [\n \"domainStoryRenderer\",\n \"paletteProvider\",\n \"domainStoryRules\",\n \"domainStoryUpdater\",\n \"contextPadProvider\",\n \"replaceMenuProvider\",\n ],\n elementFactory: [\"type\", DomainStoryElementFactory],\n domainStoryRenderer: [\"type\", DomainStoryRenderer],\n paletteProvider: [\"type\", DomainStoryPalette],\n domainStoryRules: [\"type\", DomainStoryRules],\n domainStoryUpdater: [\"type\", DomainStoryUpdater],\n contextPadProvider: [\"type\", DomainStoryContextPadProvider],\n elementFactoryBpmn: [\"type\", ElementFactory],\n pathMap: [\"type\", PathMap],\n replaceMenuProvider: [\"type\", ReplaceMenuProvider],\n commandStack: [\"type\", CommandStack],\n updateLabelHandler: [\"type\", UpdateLabelHandler],\n headlineAndDescriptionUpdateHandler: [\n \"type\",\n headlineAndDescriptionUpdateHandler,\n ],\n modeling: [\"type\", DSModeling],\n};\n","\"use strict\";\n\nimport { labelPosition } from \"../labeling/position\";\n\nlet numberRegistry = [];\nlet multipleNumberRegistry = [false];\n\nlet canvasElementRegistry;\n\nexport function initializeNumbering(canvasElementRegistryService) {\n canvasElementRegistry = canvasElementRegistryService;\n}\n\n// defines the box for activity numbers\nexport function numberBoxDefinitions(element) {\n let alignment = \"center\";\n let boxWidth = 30;\n let boxHeight = 30;\n let position = labelPosition(element.waypoints);\n\n return {\n textAlign: alignment,\n width: boxWidth,\n height: boxHeight,\n x: position.x,\n y: position.y,\n };\n}\n\n// determine the next available number that is not yet used\nexport function generateAutomaticNumber(elementActivity, commandStack) {\n const semantic = elementActivity.businessObject;\n const usedNumbers = [0];\n let wantedNumber = -1;\n\n const activitiesFromActors = canvasElementRegistry.getActivitiesFromActors();\n\n activitiesFromActors.forEach((element) => {\n if (element.businessObject.number) {\n usedNumbers.push(+element.businessObject.number);\n }\n });\n for (let i = 0; i < usedNumbers.length; i++) {\n if (!usedNumbers.includes(i)) {\n if (!usedNumbers.includes(i)) {\n wantedNumber = i;\n i = usedNumbers.length;\n }\n }\n }\n if (wantedNumber === -1) {\n wantedNumber = usedNumbers.length;\n }\n\n updateExistingNumbersAtGeneration(\n activitiesFromActors,\n wantedNumber,\n commandStack\n );\n semantic.number = wantedNumber;\n return wantedNumber;\n}\n\n// update the numbers at the activities when generating a new activity\nexport function updateExistingNumbersAtGeneration(\n activitiesFromActors,\n wantedNumber,\n commandStack\n) {\n activitiesFromActors.forEach((element) => {\n let number = +element.businessObject.number;\n\n if (number >= wantedNumber) {\n wantedNumber++;\n setTimeout(function () {\n commandStack.execute(\"activity.changed\", {\n businessObject: element.businessObject,\n newLabel: element.businessObject.name,\n newNumber: number,\n element: element,\n });\n }, 10);\n }\n });\n}\n\n// update the numbers at the activities when editing an activity\nexport function updateExistingNumbersAtEditing(\n activitiesFromActors,\n wantedNumber,\n eventBus\n) {\n // get a sorted list of all activities that could need changing\n let sortedActivities = [[]];\n activitiesFromActors.forEach((activity) => {\n if (!sortedActivities[activity.businessObject.number]) {\n sortedActivities[activity.businessObject.number] = [];\n }\n sortedActivities[activity.businessObject.number].push(activity);\n });\n\n // set the number of each activity to the next highest number, starting from the number, we overrode\n let currentNumber = wantedNumber;\n for (\n currentNumber;\n currentNumber < sortedActivities.length;\n currentNumber++\n ) {\n if (sortedActivities[currentNumber]) {\n wantedNumber++;\n setNumberOfActivity(\n sortedActivities[currentNumber],\n wantedNumber,\n eventBus\n );\n }\n }\n}\n\n// get the IDs of activities with their associated number, only returns activities that are originating from an actor\nexport function getNumbersAndIDs() {\n let iDWithNumber = [];\n let activities = canvasElementRegistry.getActivitiesFromActors();\n\n for (let i = activities.length - 1; i >= 0; i--) {\n let id = activities[i].businessObject.id;\n let number = activities[i].businessObject.number;\n iDWithNumber.push({ id: id, number: number });\n }\n return iDWithNumber;\n}\n\nexport function addNumberToRegistry(renderedNumber, number) {\n numberRegistry[number] = renderedNumber;\n}\n\nexport function setNumberIsMultiple(number, multi) {\n multipleNumberRegistry[number] = multi;\n}\n\n/**\n * @returns copy of registry\n */\nexport function getNumberRegistry() {\n return numberRegistry.slice(0);\n}\n\nexport function getMultipleNumberRegistry() {\n return multipleNumberRegistry.slice(0);\n}\n\nfunction setNumberOfActivity(elementArray, wantedNumber, eventBus) {\n if (elementArray) {\n elementArray.forEach((element) => {\n if (element) {\n let businessObject = element.businessObject;\n if (businessObject) {\n businessObject.number = wantedNumber;\n }\n eventBus.fire(\"element.changed\", { element });\n }\n });\n }\n}\n","\"use strict\";\n\nimport { assign } from \"min-dash\";\nimport { overrideAppendedIcons } from \"src/app/Domain/Domain-Configuration/allIcons\";\nimport { Dictionary } from \"src/app/Domain/Common/dictionary/dictionary\";\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\nimport { getNameFromType } from \"src/app/Utils/naming\";\nimport { APPENDED_ICONS_TAG } from \"../../../Domain/Common/constants\";\n\n/**\n * A palette that allows you to create BPMN _and_ custom elements.\n */\n\nlet iconDictionary;\nlet configuration;\n\nexport function initializePalette(iconDictionaryService, configurationService) {\n iconDictionary = iconDictionaryService;\n configuration = configurationService;\n}\n\nexport default function PaletteProvider(\n palette,\n create,\n elementFactory,\n spaceTool,\n lassoTool\n) {\n this._create = create;\n this._elementFactory = elementFactory;\n this._spaceTool = spaceTool;\n this._lassoTool = lassoTool;\n\n palette.registerProvider(this);\n}\n\nPaletteProvider.$inject = [\n \"palette\",\n \"create\",\n \"elementFactory\",\n \"spaceTool\",\n \"lassoTool\",\n \"modeling\",\n];\n\nPaletteProvider.prototype.getPaletteEntries = function () {\n let actions = {},\n create = this._create,\n elementFactory = this._elementFactory,\n spaceTool = this._spaceTool,\n lassoTool = this._lassoTool;\n\n function createAction(type, group, className, title, options) {\n function createListener(event) {\n let shape = elementFactory.createShape(assign({ type: type }, options));\n\n assign(shape.businessObject, {\n id: shape.id,\n });\n\n if (options) {\n shape.businessObject.di.isExpanded = options.isExpanded;\n }\n\n create.start(event, shape);\n }\n\n let shortType = type.replace(/^domainStory:/, \"\");\n\n return {\n group: group,\n className: className,\n title: \"Create \" + title || \"Create \" + shortType,\n action: {\n dragstart: createListener,\n click: createListener,\n },\n };\n }\n\n return initPalette(actions, spaceTool, lassoTool, createAction);\n};\n\nfunction appendCSSStyleCheat(customIcons) {\n const sheetEl = document.createElement(\"style\");\n document.head.appendChild(sheetEl);\n\n let customIconDict = new Dictionary();\n\n customIconDict.appendDict(customIcons);\n let customIconDictKeys = customIconDict.keysArray();\n\n customIconDictKeys.forEach((name) => {\n if (iconDictionary.getAppendedIconDictionary().has(name)) {\n let src = customIconDict.get(name);\n\n const iconStyle =\n \".icon-domain-story-\" +\n name.toLowerCase() +\n \"::before{\" +\n \" display: block;\" +\n ' content: url(\"data:image/svg+xml;utf8,' +\n wrapSRCInSVG(src) +\n '\");' +\n \" margin: 3px;}\";\n sheetEl.sheet.insertRule(iconStyle, sheetEl.sheet.cssRules.length);\n }\n });\n}\n\nfunction initPalette(actions, spaceTool, lassoTool, createAction) {\n let config = iconDictionary?.getCurrentIconConfigurationForBPMN();\n\n let customIcons = localStorage.getItem(APPENDED_ICONS_TAG);\n\n if (customIcons) {\n customIcons = JSON.parse(customIcons);\n if (customIconsLegacy(customIcons)) {\n customIcons = convertLegacyAppendedIconsToDict(customIcons);\n }\n if (customIcons.entries && customIcons.entries.forEach) {\n const customIconsDict = new Dictionary();\n customIcons.entries.forEach((entry) => {\n customIconsDict.putEntry(entry);\n });\n overrideAppendedIcons(customIconsDict);\n appendCSSStyleCheat(customIcons);\n }\n }\n\n iconDictionary?.initTypeDictionaries(config.actors, config.workObjects);\n\n let actorTypes = iconDictionary?.getTypeDictionary(elementTypes.ACTOR);\n\n actorTypes?.keysArray().forEach((actorType) => {\n addCanvasObjectTypes(actorType, createAction, actions, \"actor\");\n });\n\n assign(actions, {\n \"actor-separator\": {\n group: \"actor\",\n separator: true,\n },\n });\n\n let workObjectTypes = iconDictionary?.getTypeDictionary(\n elementTypes.WORKOBJECT\n );\n\n workObjectTypes?.keysArray().forEach((workObjectType) => {\n addCanvasObjectTypes(workObjectType, createAction, actions, \"actor\"); // TODO is ClassName 'actor' correct?\n });\n\n assign(actions, {\n \"workObject-separator\": {\n group: \"workObject\",\n separator: true,\n },\n \"domainStory-group\": createAction(\n elementTypes.GROUP,\n \"group\",\n \"icon-domain-story-tool-group\",\n \"group\"\n ),\n \"group-separator\": {\n group: \"group\",\n separator: true,\n },\n \"lasso-tool\": {\n group: \"tools\",\n className: \"bpmn-icon-lasso-tool\",\n title: \"Activate the lasso tool\",\n action: {\n click: function (event) {\n lassoTool.activateSelection(event);\n },\n },\n },\n \"space-tool\": {\n group: \"tools\",\n className: \"bpmn-icon-space-tool\",\n title: \"Activate the create/remove space tool\",\n action: {\n click: function (event) {\n spaceTool.activateSelection(event);\n },\n },\n },\n });\n\n return actions;\n}\n\nfunction addCanvasObjectTypes(actorType, createAction, actions, className) {\n let name = getNameFromType(actorType);\n let icon = iconDictionary.getIconForBPMN(actorType);\n\n let action = [];\n action[\"domainStory-\" + className + name] = createAction(\n actorType,\n className,\n icon,\n name\n );\n assign(actions, action);\n}\n\nfunction customIconsLegacy(customIcons) {\n return !(\n Object.keys(customIcons).length === 1 &&\n Object.keys(customIcons)[0] === \"entries\"\n );\n}\n\nfunction convertLegacyAppendedIconsToDict(customIcons) {\n let dict = new Dictionary();\n Object.keys(customIcons).forEach((key) => {\n dict.set(key, customIcons[key]);\n });\n return dict;\n}\n\n// For some reason its important to use ' in the content for the Palette and ContextPad\n// Do not change!\nfunction wrapSRCInSVG(src) {\n return (\n \"\" +\n \"\"\n );\n}\n","\"use strict\";\n\nimport { getNumbersAndIDs } from \"../numbering/numbering\";\n\n/**\n * commandStack Handler for changes at activities\n */\n\nlet canvasElementRegistry;\nexport function initializeActivityUpdateHandler(canvasElementRegistryService) {\n canvasElementRegistry = canvasElementRegistryService;\n}\n\nexport default function activityUpdateHandler(commandStack, eventBus) {\n commandStack.registerHandler(\n \"activity.directionChange\",\n activity_directionChange\n );\n commandStack.registerHandler(\"activity.changed\", activity_changed);\n\n // update the activity from the activity-dialog, either with or without number\n // and change other activities too, to keep the numbers consistent\n function activity_changed(modeling) {\n this.preExecute = function (context) {\n context.oldLabel = context.businessObject.name || \" \";\n\n let oldNumbersWithIDs = getNumbersAndIDs();\n modeling.updateLabel(context.businessObject, context.newLabel);\n modeling.updateNumber(context.businessObject, context.newNumber);\n\n context.oldNumber = context.businessObject.number;\n context.oldNumbersWithIDs = oldNumbersWithIDs;\n };\n\n this.execute = function (context) {\n let semantic = context.businessObject;\n let element = context.element;\n\n if (context.newLabel && context.newLabel.length < 1) {\n context.newLabel = \" \";\n }\n\n semantic.name = context.newLabel;\n semantic.number = context.newNumber;\n\n eventBus.fire(\"element.changed\", { element });\n };\n\n this.revert = function (context) {\n let semantic = context.businessObject;\n let element = context.element;\n semantic.name = context.oldLabel;\n semantic.number = context.oldNumber;\n\n revertAutomaticNumberGenerationChange(\n context.oldNumbersWithIDs,\n eventBus\n );\n\n eventBus.fire(\"element.changed\", { element });\n };\n }\n\n // change the direction of a single activity without affecting other activities\n function activity_directionChange(modeling) {\n this.preExecute = function (context) {\n context.oldNumber = context.businessObject.number;\n context.oldWaypoints = context.element.waypoints;\n context.name = context.businessObject.name;\n\n if (!context.oldNumber) {\n context.oldNumber = 0;\n }\n modeling.updateNumber(context.businessObject, context.newNumber);\n };\n\n this.execute = function (context) {\n let businessObject = context.businessObject;\n let element = context.element;\n let swapSource = element.source;\n let newWaypoints = [];\n let waypoints = element.waypoints;\n\n for (let i = waypoints.length - 1; i >= 0; i--) {\n newWaypoints.push(waypoints[i]);\n }\n\n element.source = element.target;\n businessObject.source = businessObject.target;\n element.target = swapSource;\n businessObject.target = swapSource.id;\n\n businessObject.name = context.name;\n businessObject.number = context.newNumber;\n element.waypoints = newWaypoints;\n\n eventBus.fire(\"element.changed\", { element });\n };\n\n this.revert = function (context) {\n let semantic = context.businessObject;\n let element = context.element;\n let swapSource = element.source;\n\n element.source = element.target;\n semantic.source = semantic.target;\n element.target = swapSource;\n semantic.target = swapSource.id;\n\n semantic.name = context.name;\n\n semantic.number = context.oldNumber;\n element.waypoints = context.oldWaypoints;\n\n eventBus.fire(\"element.changed\", { element });\n };\n }\n}\n\n// reverts the automatic changed done by the automatic number-generation at editing\nfunction revertAutomaticNumberGenerationChange(iDWithNumber, eventBus) {\n let activities = canvasElementRegistry.getActivitesFromActors();\n for (let i = activities.length - 1; i >= 0; i--) {\n for (let j = iDWithNumber.length - 1; j >= 0; j--) {\n if (iDWithNumber[j].id.includes(activities[i].businessObject.id)) {\n let element = activities[i];\n element.businessObject.number = iDWithNumber[j].number;\n j = -5;\n eventBus.fire(\"element.changed\", { element });\n iDWithNumber.splice(j, 1);\n }\n }\n }\n}\n","\"use strict\";\n\nimport { undoGroupRework } from \"../util\";\n\nexport default function elementUpdateHandler(commandStack, eventBus) {\n commandStack.registerHandler(\"element.colorChange\", element_colorChange);\n commandStack.registerHandler(\n \"shape.removeGroupWithoutChildren\",\n removeGroupWithoutChildren\n );\n\n function element_colorChange() {\n this.preExecute = function (context) {\n context.oldColor = context.businessObject.pickedColor;\n };\n\n this.execute = function (context) {\n let semantic = context.businessObject;\n let element = context.element;\n\n semantic.pickedColor = context.newColor;\n\n eventBus.fire(\"element.changed\", { element });\n };\n\n this.revert = function (context) {\n let semantic = context.businessObject;\n let element = context.element;\n\n semantic.pickedColor = context.oldColor;\n\n eventBus.fire(\"element.changed\", { element });\n };\n }\n\n function removeGroupWithoutChildren() {\n this.preExecute = function (ctx) {\n ctx.parent = ctx.element.parent;\n ctx.children = ctx.element.children.slice();\n };\n\n this.execute = function (ctx) {\n let element = ctx.element;\n ctx.children.forEach((child) => {\n undoGroupRework(element, child);\n eventBus.fire(\"element.changed\", { element: child });\n });\n eventBus.fire(\"shape.remove\", { element });\n };\n\n this.revert = function (ctx) {\n let element = ctx.element;\n eventBus.fire(\"shape.added\", { element });\n\n ctx.element.children.forEach((child) => {\n reworkGroupElements(element, child);\n });\n };\n }\n}\n","/**\n * a handler that updates the text of a BPMN element.\n */\nexport default function headlineAndDescriptionUpdateHandler(\n commandStack,\n titleService\n) {\n commandStack.registerHandler(\n \"story.updateHeadlineAndDescription\",\n handlerFunction\n );\n\n function handlerFunction() {\n this.execute = function (ctx) {\n ctx.oldTitle = titleService.getTitle();\n ctx.oldDescription = titleService.getDescription();\n\n titleService.updateTitleAndDescription(\n ctx.newTitle,\n ctx.newDescription,\n false\n );\n };\n\n this.revert = function (ctx) {\n titleService.updateTitleAndDescription(\n ctx.oldTitle,\n ctx.oldDescription,\n false\n );\n };\n }\n}\n","\"use strict\";\n\nexport default function DSMassRenameHandler(commandStack, eventBus) {\n commandStack.registerHandler(\"domainStoryObjects.massRename\", massRename);\n\n function massRename(modeling) {\n this.preExecute = function (context) {\n let relevantElements = context.elements;\n\n context.oldLabel = relevantElements[0].businessObject.name;\n\n relevantElements.forEach((element) => {\n modeling.updateLabel(element.businessObject, confirm.newValue);\n });\n };\n\n this.execute = function (context) {\n let relevantElements = context.elements;\n relevantElements.forEach((element) => {\n let semantic = element.businessObject;\n semantic.name = context.newValue;\n\n eventBus.fire(\"element.changed\", { element });\n });\n };\n\n this.revert = function (context) {\n let relevantElements = context.elements;\n relevantElements.forEach((element) => {\n let semantic = element.businessObject;\n semantic.name = context.oldLabel;\n\n eventBus.fire(\"element.changed\", { element });\n });\n };\n }\n}\n","\"use strict\";\n\nimport {\n setLabel,\n getLabel,\n setNumber,\n getNumber,\n} from \"../labeling/dsLabelUtil\";\n\nimport {\n getExternalLabelMid,\n isLabelExternal,\n hasExternalLabel,\n isLabel,\n} from \"bpmn-js/lib/util/LabelUtil\";\n\nimport { elementTypes } from \"src/app/Domain/Common/elementTypes\";\nimport { getBusinessObject, is } from \"../util\";\n\nconst NULL_DIMENSIONS = {\n width: 0,\n height: 0,\n};\n\n/**\n * a handler that updates the text of a BPMN element.\n */\nexport default function UpdateLabelHandler(\n modeling,\n textRenderer,\n commandStack\n) {\n commandStack.registerHandler(\"element.updateCustomLabel\", handlerFunction);\n\n function handlerFunction() {\n /**\n * Set the label and return the changed elements.\n *\n * Element parameter can be label itself or connection (i.e. sequence flow).\n *\n * @param {djs.model.Base} element\n * @param {String} text\n */\n\n this.preExecute = function (ctx) {\n let element = ctx.element,\n businessObject = element.businessObject,\n newLabel = ctx.newLabel,\n newNumber = ctx.newNumber;\n\n if (\n !isLabel(element) &&\n isLabelExternal(element) &&\n !hasExternalLabel(element) &&\n (newLabel !== \"\" || newNumber !== \"\")\n ) {\n // create label\n let paddingTop = 7;\n\n let labelCenter = getExternalLabelMid(element);\n\n labelCenter = {\n x: labelCenter.x,\n y: labelCenter.y + paddingTop,\n };\n\n modeling.createLabel(element, labelCenter, {\n id: businessObject.id + \"_label\",\n businessObject: businessObject,\n });\n }\n };\n\n this.execute = function (ctx) {\n ctx.oldLabel = getLabel(ctx.element);\n ctx.oldNumber = getNumber(ctx.element);\n return setText(ctx.element, ctx.newLabel, ctx.newNumber);\n };\n\n this.revert = function (ctx) {\n return setText(ctx.element, ctx.oldLabel, ctx.oldNumber);\n };\n\n this.postExecute = function (ctx) {\n let element = ctx.element,\n label = element.label || element,\n newLabel = ctx.newLabel,\n newBounds = ctx.newBounds;\n\n if (isLabel(label) && newLabel.trim() === \"\") {\n modeling.removeShape(label);\n\n return;\n }\n\n // ignore internal labels for elements except text annotations\n if (\n !isLabelExternal(element) &&\n !is(element, elementTypes.TEXTANNOTATION)\n ) {\n return;\n }\n\n let bo = getBusinessObject(label);\n\n let text = bo.name || bo.text;\n\n // don't resize without text\n if (!text) {\n return;\n }\n\n // resize element based on label _or_ pre-defined bounds\n if (typeof newBounds === \"undefined\") {\n newBounds = textRenderer.getLayoutedBounds(label, text);\n }\n\n // setting newBounds to false or _null_ will\n // disable the postExecute resize operation\n if (newBounds) {\n modeling.resizeShape(label, newBounds, NULL_DIMENSIONS);\n }\n };\n }\n}\n\nfunction setText(element, text, textNumber) {\n // external label if present\n let label = element.label || element;\n\n let number = element.number || element;\n\n let labelTarget = element.labelTarget || element;\n\n let numberTarget = element.numberTarget || element;\n setLabel(label, text);\n setNumber(number, textNumber);\n\n return [label, labelTarget, number, numberTarget];\n}\n\nUpdateLabelHandler.$inject = [\"modeling\", \"textRenderer\", \"commandStack\"];\n","import { some } from \"min-dash\";\n\nexport function is(element, type) {\n const bo = getBusinessObject(element);\n\n return bo && typeof bo.$instanceOf == \"function\" && bo.$instanceOf(type);\n}\n\nexport function getBusinessObject(element) {\n return (element && element.businessObject) || element;\n}\n\nexport function isAny(element, types) {\n return some(types, function (t) {\n return is(element, t);\n });\n}\n\nexport function reworkGroupElements(parent, shape) {\n parent.children.slice().forEach((innerShape) => {\n if (innerShape.id !== shape.id) {\n if (innerShape.x >= shape.x && innerShape.x <= shape.x + shape.width) {\n if (innerShape.y >= shape.y && innerShape.y <= shape.y + shape.height) {\n innerShape.parent = shape;\n if (!shape.children.includes(innerShape)) {\n shape.children.push(innerShape);\n }\n }\n }\n }\n });\n}\n\nexport function undoGroupRework(parent, shape) {\n const superParent = parent.parent;\n\n parent.children.remove(shape);\n superParent.children.add(shape);\n\n shape.parent = superParent;\n\n const svgShape = document.querySelector(\n \"[data-element-id=\" + shape.id + \"]\"\n ).parentElement;\n const svgGroup = svgShape.parentElement;\n const svgGroupParent = svgGroup.parentElement.parentElement;\n svgGroup.removeChild(svgShape);\n svgGroupParent.appendChild(svgShape);\n}\n","import {\n SVG_LINK,\n TEXTSPAN_DESCRIPTION_HEIGHT,\n TEXTSPAN_TITLE_HEIGHT,\n X_OFFSET_UTIL,\n} from \"../../Domain/Export/exportConstants\";\n\nlet extraHeight = 0;\n\n// Has to be js File so we can access te correct non-standard HTML-Properties without excessive usage of ts-ignore\nexport function createTitleAndDescriptionSVGElement(\n title,\n description,\n xLeft,\n yUp,\n width\n) {\n title = title.replace(\"<\", \"\").replace(\">\", \"\");\n\n let titleElement = createTitle(title, width);\n let descriptionElement = createDescription(description, width);\n\n // to display the title and description in the SVG-file, we need to add a container for our text-elements\n let insertText =\n '' +\n titleElement +\n descriptionElement +\n \"\";\n return { insertText, extraHeight };\n}\n\nfunction createTitle(text, width) {\n let tempCanvas = document.createElement(\"canvas\");\n let ctx = tempCanvas.getContext(\"2d\");\n ctx.font = \"30px Arial\";\n\n return createTextSpans(text, width, ctx, 10, TEXTSPAN_TITLE_HEIGHT, 30);\n}\n\nfunction createDescription(text, width) {\n let description = \"\";\n let descriptionParts = text.split(\"
\");\n\n let tempCanvas = document.createElement(\"canvas\");\n let ctx = tempCanvas.getContext(\"2d\");\n ctx.font = \"12px Arial\";\n\n for (let i = 0; i < descriptionParts.length; i++) {\n description += createTextSpans(\n descriptionParts[i],\n width,\n ctx,\n 0,\n TEXTSPAN_DESCRIPTION_HEIGHT,\n 12\n );\n }\n return description;\n}\n\nfunction createTextSpans(text, width, ctx, yOffset, heightOffset, fontSize) {\n let textSpans = \"\";\n let words = text.split(\" \");\n\n let textTag =\n '';\n\n let textSpan = document.createElementNS(SVG_LINK, \"tspan\");\n let textNode = document.createTextNode(words[0]);\n\n textSpan.setAttribute(\"x\", X_OFFSET_UTIL);\n textSpan.setAttribute(\"y\", yOffset + extraHeight);\n textSpan.setAttribute(\"font-size\", fontSize);\n textSpan.appendChild(textNode);\n\n for (let j = 1; j < words.length; j++) {\n if (textSpan.firstChild && textSpan.firstChild.data) {\n let len = textSpan.firstChild.data.length;\n textNode.data += \" \" + words[j];\n\n if (ctx.measureText(textNode.data).width > width - 16) {\n extraHeight += heightOffset;\n textSpan.firstChild.data = textSpan.firstChild.data.slice(0, len); // remove overflow word\n\n textSpans += textTag + textSpan.outerHTML + \"\"; // append line\n\n // create new textspan for line break\n textSpan = document.createElementNS(SVG_LINK, \"tspan\");\n textNode = document.createTextNode(words[j]);\n textSpan.setAttribute(\"x\", X_OFFSET_UTIL);\n textSpan.setAttribute(\"y\", yOffset + extraHeight);\n textSpan.appendChild(textNode);\n }\n }\n }\n extraHeight += heightOffset;\n\n textSpans += textTag + textSpan.outerHTML + \"\";\n return textSpans;\n}\n","import { elementTypes } from './elementTypes';\n\nexport interface BusinessObject {\n $descriptor: any;\n $type: any;\n di: any;\n get: any;\n set: any;\n\n id: string;\n name: string;\n\n type: string;\n\n x: number;\n y: number;\n height: number | undefined;\n width: number | undefined;\n pickedColor: string | undefined;\n}\n\nexport const testBusinessObject: BusinessObject = {\n $descriptor: undefined,\n $type: undefined,\n di: undefined,\n get: undefined,\n set: undefined,\n\n id: 'test',\n name: 'test',\n\n type: elementTypes.WORKOBJECT,\n\n x: 0,\n y: 0,\n height: 38,\n width: 38,\n pickedColor: undefined,\n};\n","export class Configuration {\n actors: string[];\n workObjects: string[];\n\n constructor(actors: string[], workObjects: string[]) {\n this.actors = actors;\n this.workObjects = workObjects;\n }\n}\n","/** GLOBAL **/\nexport const VERSION = '2.0.0-beta.1';\n\n/** DEFAULT VALUES **/\nexport const INITIAL_TITLE = '< title >';\nexport const INITIAL_DESCRIPTION = '< description >';\nexport const INITIAL_DOMAIN_NAME = '[icons: default]';\n\n/** LocalStorageTags **/\nexport const APPENDED_ICONS_TAG = 'appendedIcons';\nexport const DOMAIN_CONFIGURATION_TAG = 'domainConfigurationTag';\n\n/** AUTOSAVE DEFAULTS **/\nexport const DEFAULT_AUTOSAVES_AMOUNT = 5;\nexport const DEFAULT_AUTOSAVES_INTERVAL = 5;\n\n/** SNACKBAR **/\nexport const SNACKBAR_DURATION = 2000;\nexport const SNACKBAR_SUCCESS = 'snackbar_success';\nexport const SNACKBAR_ERROR = 'snackbar_error';\nexport const SNACKBAR_INFO = 'snackbar_info';\n\n/** BPMN_RELEVANT_CONSTANTS **/\nexport const IMPLICIT_ROOT_ID = '__implicitroot';\n","export class Dictionary {\n private entries: Entry[];\n\n constructor() {\n this.entries = [];\n }\n\n get length(): number {\n return this.entries.length;\n }\n\n all(): Entry[] {\n return this.entries;\n }\n\n size(): number {\n return this.entries.length;\n }\n\n isEmpty(): boolean {\n return this.entries.length <= 0;\n }\n\n has(key: string): boolean {\n return this.entries.some((entry) => entry.key === key);\n }\n\n set(key: string, value: any): void {\n if (!this.has(key)) {\n this.entries.push(new Entry(value, key));\n }\n }\n\n add(value: any, key: string): void {\n this.set(key, value);\n }\n\n putEntry(entry: Entry): void {\n if (!this.has(entry.key)) {\n this.entries.push(new Entry(entry.value, entry.key));\n }\n }\n\n keysArray(): string[] {\n return this.entries.map((entry) => entry.key);\n }\n\n addEach(object: any): void {\n Object.keys(object).forEach((key) => {\n this.set(key, object[key]);\n });\n }\n\n appendDict(dict: Dictionary): void {\n dict.entries.forEach((entry) => this.putEntry(entry));\n }\n\n clear(): void {\n this.entries = [];\n }\n\n delete(key: string): void {\n this.entries = this.entries.filter((entry) => entry.key !== key);\n }\n\n get(key: string): any {\n const found = this.entries.filter((entry) => entry.key === key);\n return found[0] ? found[0].value : null;\n }\n\n sort(fn: (a: Entry, b: Entry) => number) {\n this.entries.sort(fn);\n }\n\n sortByName() {\n this.entries.sort((a: Entry, b: Entry) => {\n if (a.key.includes('_custom') == b.key.includes('_custom')) {\n if (a.key < b.key) return -1;\n else {\n return 1;\n }\n } else {\n if (a.key.includes('_custom')) {\n return -1;\n } else {\n return 1;\n }\n }\n });\n }\n}\n\nexport class Entry {\n value: any;\n key: string;\n\n constructor(value: any, key: string) {\n this.value = value;\n this.key = key;\n }\n}\n","import { INITIAL_DOMAIN_NAME } from './constants';\nimport { testBusinessObject } from './businessObject';\nimport { elementTypes } from './elementTypes';\nimport { Dictionary } from './dictionary/dictionary';\n\nexport interface DomainConfiguration {\n name: string;\n actors: Dictionary;\n workObjects: Dictionary;\n}\n\nexport interface DomainConfigurationForExport {\n name: string;\n actors: any;\n workObjects: any;\n}\n\nexport interface CustomDomainConfiguration {\n name: string;\n actors: string[];\n workObjects: string[];\n}\nconst actor = structuredClone(testBusinessObject);\nactor.type = elementTypes.ACTOR;\n\nexport const testCustomDomainConfiguration: CustomDomainConfiguration = {\n name: INITIAL_DOMAIN_NAME,\n actors: ['Person'],\n workObjects: ['Document'],\n};\n\nexport function fromConfigurationFromFile(configFromFile: {\n name: string;\n actors: { [p: string]: any };\n workObjects: { [p: string]: any };\n}) {\n const actorsDict = new Dictionary();\n const workObjectsDict = new Dictionary();\n Object.keys(configFromFile.actors).forEach((key) => {\n actorsDict.add(configFromFile.actors[key], key);\n });\n Object.keys(configFromFile.workObjects).forEach((key) => {\n workObjectsDict.add(configFromFile.workObjects[key], key);\n });\n\n return {\n name: configFromFile.name,\n actors: actorsDict,\n workObjects: workObjectsDict,\n };\n}\n","export enum elementTypes {\n ACTIVITY = 'domainStory:activity',\n CONNECTION = 'domainStory:connection',\n ACTOR = 'domainStory:actor',\n WORKOBJECT = 'domainStory:workObject',\n GROUP = 'domainStory:group',\n TEXTANNOTATION = 'domainStory:textAnnotation',\n DOMAINSTORY = 'domainStory:',\n}\n","import { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\nimport { overrideAppendedIcons } from 'src/app/Domain/Domain-Configuration/allIcons';\nimport { Configuration } from 'src/app/Domain/Common/configuration';\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\nimport { INITIAL_DOMAIN_NAME } from './constants';\n\nexport class IconConfiguration {\n domainName = INITIAL_DOMAIN_NAME;\n\n private allIconDictionary: Dictionary;\n\n constructor(allIconDictionary: Dictionary) {\n this.allIconDictionary = allIconDictionary;\n }\n\n /**\n * Select the Iconset which you want to use\n */\n getDefaultConf(): Configuration {\n return defaultConf;\n }\n\n updateAllIconRegistry(allIconDictionary: Dictionary): void {\n this.allIconDictionary = allIconDictionary;\n }\n\n appendSRCFile(\n actors: string[],\n actorsDict: Dictionary,\n workObjects: string[],\n workObjectsDict: Dictionary\n ): void {\n const newAppendedIcons: { [key: string]: any } = {};\n\n actors.forEach((name: string) => {\n if (!this.allIconDictionary.has(name)) {\n newAppendedIcons[name] = actorsDict.get(name);\n }\n });\n\n workObjects.forEach((name: string) => {\n if (!this.allIconDictionary.has(name)) {\n newAppendedIcons[name] = workObjectsDict.get(name);\n }\n });\n const appen = new Dictionary();\n Object.keys(newAppendedIcons).forEach((key) => {\n appen.set(key, newAppendedIcons[key]);\n });\n\n overrideAppendedIcons(appen);\n }\n\n createCustomConf(domainConfiguration: DomainConfiguration): Configuration {\n this.domainName = domainConfiguration.name;\n\n let actors = domainConfiguration.actors;\n let workObjects = domainConfiguration.workObjects;\n\n this.appendSRCFile(\n actors.keysArray(),\n actors,\n workObjects.keysArray(),\n workObjects\n );\n\n return new Configuration(actors.keysArray(), workObjects.keysArray());\n }\n}\n\n/* eslint no-unused-vars: 0*/\n\n/**\n * All Icons as one Set\n * There are more Icons than fit in the palette.\n * This is just for reference\n */\nconst allIconsConf = {\n actors: ['Person', 'Group', 'System', 'Pet'],\n workObjects: [\n 'Place',\n 'Flag',\n 'World',\n 'Water',\n 'Store',\n 'Theater',\n 'Business',\n 'Meeting-room',\n 'Hotel',\n 'Dining',\n 'Courthouse',\n 'Gas-station',\n 'Car',\n 'Bus',\n 'Train',\n 'Truck',\n 'Taxi',\n 'Bike',\n 'Boat',\n 'Motorcycle',\n 'Plane',\n 'Flight-takeoff',\n 'Flight-landing',\n 'Shuttle',\n 'Walking',\n 'Traffic',\n 'Commute',\n 'Document',\n 'Folder',\n 'Call',\n 'Email',\n 'Copyright',\n 'Briefcase',\n 'Attach',\n 'Ruler',\n 'Sum',\n 'Conversation',\n 'Update',\n 'Cellphone',\n 'Speaker-phone',\n 'Signal',\n 'Key',\n 'Pencil',\n 'How-To-Reg',\n 'Settings',\n 'Grid',\n 'Label',\n 'Receipt',\n 'Calendar',\n 'Wrench',\n 'Headset',\n 'Keyboard',\n 'Mouse',\n 'Microphone',\n 'Router',\n 'Scanner',\n 'Printer',\n 'DNS',\n 'Security',\n 'Cloud',\n 'Desktop',\n 'Tablet',\n 'Assessment',\n 'Dashboard',\n 'Pie-chart',\n 'View-List',\n 'Euro',\n 'Dollar',\n 'Info',\n 'Alarm',\n 'Problem',\n 'Circle-Arrows',\n 'Picture-as-PDF',\n 'Credit-Card',\n 'Shopping',\n 'Favorite',\n 'Gavel',\n 'Blind',\n 'Hourglass',\n 'Time',\n 'Search',\n 'Thumb-up',\n 'Thumb-down',\n 'Thumb-up-down',\n 'Couch',\n 'Education',\n 'Watch',\n ],\n};\n\n/**\n * Default Iconset\n */\nexport const defaultConf = {\n actors: ['Person', 'Group', 'System'],\n workObjects: ['Document', 'Folder', 'Call', 'Email', 'Conversation', 'Info'],\n};\n","import { ActivityCanvasObject } from '../Common/activityCanvasObject';\n\nexport class ActivityDialogData {\n activity: ActivityCanvasObject;\n numberIsAllowedMultipleTimes: boolean;\n showNumberFields: boolean;\n\n saveFN: any;\n\n constructor(\n activity: ActivityCanvasObject,\n numberIsAllowedMultipleTimes: boolean,\n showNumberFields: boolean,\n saveFN: any\n ) {\n this.activity = activity;\n this.numberIsAllowedMultipleTimes = numberIsAllowedMultipleTimes;\n this.showNumberFields = showNumberFields;\n this.saveFN = saveFN;\n }\n}\n","export class ExportDialogData {\n title: string;\n options: ExportOption[];\n\n constructor(title: string, options: ExportOption[]) {\n this.title = title;\n this.options = options;\n }\n}\n\nexport class ExportOption {\n text: string;\n fn: any;\n tooltip: string;\n\n constructor(text: string, tooltip: string, fn: any) {\n this.text = text;\n this.tooltip = tooltip;\n this.fn = fn;\n }\n}\n","export class InfoDialogData {\n title: string;\n infoText: string;\n isInfo: boolean;\n isLink: boolean;\n linkText: string | undefined;\n\n constructor(\n title: string,\n infoText: string,\n isInfo: boolean,\n isLink: boolean = false,\n linkText?: string\n ) {\n this.title = title;\n this.infoText = infoText;\n this.isInfo = isInfo;\n this.isLink = isLink;\n this.linkText = linkText;\n }\n}\n","export const NUMBER_BACKGROUND_COLOR = 'white';\nexport const NUMBER_COLOR = 'black';\nexport const STROKE_WIDTH = '1.5';\n\nexport const HIGHLIGHT_NUMBER_BACKGROUNG_COLOR = '#43acbf';\nexport const HIGHLIGHT_NUMBER_COLOR = 'black';\nexport const HIGHLIGHT_COLOR = 'black';\nexport const HIGHLIGHT_STROKE_WIDTH = '4';\n","import { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\n\nexport let appendedIcons = new Dictionary();\nexport const allIcons = {\n Person:\n '',\n Group:\n '',\n Pet: '',\n Conversation:\n '',\n World:\n '',\n Store:\n '',\n Theater:\n '',\n Business:\n '',\n Water:\n '',\n Hotel:\n '',\n Dining:\n '',\n 'Gas-station':\n '',\n 'Meeting-room':\n '',\n Courthouse:\n '',\n Flag: '',\n Place:\n '',\n Car: '',\n Bus: '',\n Train:\n '',\n Truck:\n '',\n Taxi: '',\n Bike: '',\n Boat: '',\n Motorcycle:\n '',\n Plane:\n '',\n 'Flight-takeoff':\n '',\n 'Flight-landing':\n '',\n Shuttle:\n '',\n Walking:\n '',\n Traffic:\n '',\n Commute:\n '',\n System:\n '',\n Printer:\n '',\n Document:\n '',\n Folder:\n '',\n Call: '',\n Email:\n '',\n Copyright:\n '',\n DNS: '',\n Settings:\n '',\n Cellphone:\n '',\n Update:\n '',\n Briefcase:\n '',\n Microphone:\n '',\n Signal:\n '',\n Key: '',\n Pencil:\n '',\n Sum: '',\n Headset:\n '',\n Keyboard:\n '',\n Mouse:\n '',\n Router:\n '',\n Scanner:\n '',\n Security:\n '',\n Desktop:\n '',\n 'Speaker-phone':\n '',\n Tablet:\n '',\n Label:\n '',\n Receipt:\n '',\n Calendar:\n '',\n Cloud:\n '',\n Assessment:\n '',\n Dashboard:\n '',\n 'Pie-chart':\n '',\n Problem:\n '',\n 'Picture-as-PDF':\n '',\n Grid: '',\n Watch:\n '',\n Euro: '',\n Dollar:\n '',\n Info: '',\n Alarm:\n '',\n Wrench:\n '',\n 'Circle-Arrows':\n '',\n 'Credit-Card':\n '',\n Favorite:\n '',\n Gavel:\n '',\n Blind:\n '',\n Hourglass:\n '',\n Time: '',\n Search:\n '',\n Shopping:\n '',\n 'Thumb-up':\n '',\n 'Thumb-down':\n '',\n 'Thumb-up-down':\n '',\n Couch:\n '',\n Attach:\n '',\n Ruler:\n '',\n Education:\n '',\n 'How-To-Reg':\n '',\n 'View-List':\n '',\n};\n\nexport function getAllStandardIconKeys(): string[] {\n const allIconsDict = new Dictionary();\n\n allIconsDict.addEach(allIcons);\n\n return allIconsDict.keysArray();\n}\n\nexport function overrideAppendedIcons(newIcons: Dictionary): void {\n appendedIcons = newIcons;\n}\n","export enum IconFilterEnum {\n ICON_FILTER_ACTOR = 'ICON_FILTER_ACTOR',\n ICON_FILTER_WORKOBJECT = 'ICON_FILTER_WORKOBJECT',\n ICON_FILTER_UNASSIGNED = 'ICON_FILTER_UNASSIGNED',\n ICON_FILTER_NONE = 'ICON_FILTER_NONE',\n}\n","export class ConfigAndDST {\n domain: any;\n dst: any;\n\n constructor(domain: any, dst: any) {\n this.domain = domain;\n this.dst = dst;\n }\n}\n\nexport const testConfigAndDst: ConfigAndDST = {\n domain: JSON.parse(\n '{\"name\":\"\",' +\n '\"actors\":{\"Person\":\"' +\n '' +\n '\",' +\n '\"Group\":\"' +\n '' +\n '\",' +\n '\"System\":\"' +\n '\"},' +\n '\"workObjects\":{\"Document\":\"' +\n '\",' +\n '\"Folder\":\"' +\n '' +\n '\",' +\n '\"Call\":\"' +\n '\",' +\n '\"Email\":\"' +\n '\",' +\n '\"Conversation\":\"' +\n '\",' +\n '\"Info\":\"' +\n '' +\n '\"}}'\n ),\n dst:\n '[' +\n '{\"type\":\"domainStory:workObjectDocument\",\"name\":\"\",\"id\":\"shape_3792\",\"$type\":\"Element\",\"di\":{},\"$descriptor\":{},\"pickedColor\":\"black\",\"x\":302,\"y\":102},' +\n '{\"type\":\"domainStory:actorPerson\",\"name\":\"\",\"id\":\"shape_4666\",\"$type\":\"Element\",\"di\":{},\"$descriptor\":{},\"pickedColor\":\"black\",\"x\":103,\"y\":93},' +\n '{\"type\":\"domainStory:activity\",\"name\":\"\",\"id\":\"connection_4884\",\"$type\":\"Element\",\"di\":{},\"$descriptor\":{},\"pickedColor\":\"black\",\"number\":1,' +\n '\"waypoints\":[{\"original\":{\"x\":141,\"y\":131},\"x\":186,\"y\":133},{\"original\":{\"x\":340,\"y\":140},\"x\":302,\"y\":138}],' +\n '\"source\":\"shape_4666\",\"target\":\"shape_3792\"}]',\n};\n","export const SVG_LINK = 'http://www.w3.org/2000/svg';\nexport const X_OFFSET_UTIL = '8';\nexport const TEXTSPAN_TITLE_HEIGHT = 30;\nexport const TEXTSPAN_DESCRIPTION_HEIGHT = 15;\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AutosaveSettingsComponent } from '../Presentation/Autosave/AutosaveSettings/autosave-settings.component';\nimport { AutosaveOptionsComponent } from '../Presentation/Autosave/AutosaveOptions/autosave-options.component';\nimport { AutosavedDraftsComponent } from '../Presentation/Autosave/AutosavedDrafts/autosaved-drafts.component';\nimport { FormsModule } from '@angular/forms';\nimport { MaterialModule } from '../material.module';\n\n@NgModule({\n declarations: [\n AutosaveSettingsComponent,\n AutosaveOptionsComponent,\n AutosavedDraftsComponent,\n ],\n exports: [AutosaveSettingsComponent],\n imports: [CommonModule, FormsModule, MaterialModule],\n})\nexport class AutosaveSettingsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HeaderButtonsComponent } from '../Presentation/Header/header-buttons.component';\n\n@NgModule({\n declarations: [HeaderButtonsComponent],\n exports: [HeaderButtonsComponent],\n imports: [CommonModule],\n})\nexport class DomainStoryModelerModuleModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainConfigurationComponent } from 'src/app/Presentation/DomainConfiguration/domain-configuration.component';\nimport { IconListItemComponent } from '../Presentation/DomainConfiguration/icon-list-item/icon-list-item.component';\nimport { DetailsListItemComponent } from '../Presentation/DomainConfiguration/details-list-item/details-list-item.component';\nimport { DomainDetailsComponent } from '../Presentation/DomainConfiguration/domain-details/domain-details.component';\nimport { GeneralSettingsComponent } from '../Presentation/Settings/General/general-settings.component';\nimport { LabelDictionaryComponent } from '../Presentation/LabelDictionary/label-dictionary.component';\nimport { FormsModule } from '@angular/forms';\nimport { MaterialModule } from '../material.module';\nimport { AutosaveSettingsModule } from './autosave-settings.module';\n\n@NgModule({\n declarations: [\n DomainConfigurationComponent,\n GeneralSettingsComponent,\n LabelDictionaryComponent,\n IconListItemComponent,\n DetailsListItemComponent,\n DomainDetailsComponent,\n ],\n exports: [\n GeneralSettingsComponent,\n DomainConfigurationComponent,\n LabelDictionaryComponent,\n ],\n imports: [AutosaveSettingsModule, CommonModule, FormsModule, MaterialModule],\n})\nexport class SettingsModule {}\n","import { Component } from '@angular/core';\nimport { AutosaveConfigurationService } from '../../../Service/Autosave/autosave-configuration.service';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport {\n SNACKBAR_DURATION,\n SNACKBAR_ERROR,\n SNACKBAR_SUCCESS,\n} from 'src/app/Domain/Common/constants';\n\n@Component({\n selector: 'app-autosave-options',\n templateUrl: './autosave-options.component.html',\n styleUrls: ['./autosave-options.component.scss'],\n})\nexport class AutosaveOptionsComponent {\n constructor(\n protected autosaveConfiguration: AutosaveConfigurationService,\n private snackbar: MatSnackBar\n ) {}\n\n save(activated: boolean, amount: number, interval: number) {\n if (\n this.autosaveConfiguration.setConfiguration({\n activated,\n amount,\n interval,\n })\n ) {\n this.snackbar.open('Settings for Autosave saved', undefined, {\n duration: SNACKBAR_DURATION,\n panelClass: SNACKBAR_SUCCESS,\n });\n } else {\n this.snackbar.open(\n 'Unable to save settings for Autosave - please try again',\n undefined,\n {\n duration: 2 * SNACKBAR_DURATION,\n panelClass: SNACKBAR_ERROR,\n }\n );\n }\n }\n}\n","\n \n Autosave Options\n \n \n
\n \n Enabled\n
\n
\n Interval\n \n
\n
\n Amount\n \n
\n \n Apply\n \n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-autosave-settings',\n templateUrl: './autosave-settings.component.html',\n styleUrls: ['./autosave-settings.component.scss'],\n})\nexport class AutosaveSettingsComponent {}\n","\n\n","import { Component, OnInit } from '@angular/core';\nimport { AutosaveService } from '../../../Service/Autosave/autosave.service';\nimport { Draft } from '../../../Domain/Autosave/draft';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport {\n SNACKBAR_DURATION,\n SNACKBAR_SUCCESS,\n} from 'src/app/Domain/Common/constants';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'app-autosaved-drafts',\n templateUrl: './autosaved-drafts.component.html',\n styleUrls: ['./autosaved-drafts.component.scss'],\n})\nexport class AutosavedDraftsComponent implements OnInit {\n drafts: Draft[] = [];\n subscription: Subscription;\n\n constructor(\n private autosaveService: AutosaveService,\n private snackbar: MatSnackBar\n ) {\n this.subscription = this.autosaveService.autosavedDraftsChanged$.subscribe(\n () => this.initDrafts()\n );\n }\n\n ngOnInit(): void {\n this.initDrafts();\n }\n\n initDrafts() {\n this.drafts = this.autosaveService.loadCurrentDrafts();\n }\n\n loadDraft(draft: Draft): void {\n this.autosaveService.loadDraft(draft);\n this.snackbar.open('Draft loaded', undefined, {\n duration: SNACKBAR_DURATION,\n panelClass: SNACKBAR_SUCCESS,\n });\n }\n\n removeAllDrafts() {\n this.autosaveService.removeAllDrafts();\n }\n}\n","\n \n \n Autosaves \n \n {{ drafts.length ? drafts.length : \"no\" }}\n {{ drafts.length > 1 ? \"drafts\" : \"draft\" }} available\n \n \n
\n
\n
\n
{{ draft.title }}
\n
{{ draft.date }}
\n
\n \n Load Draft\n \n
\n
\n
\n \n Remove All Drafts\n \n
\n
\n
\n
\n\nNo drafts found.\n","import { Component, OnInit } from '@angular/core';\nimport { ModelerService } from '../../Service/Modeler/modeler.service';\n\n@Component({\n selector: 'app-modeler',\n templateUrl: './modeler.component.html',\n styleUrls: ['./modeler.component.scss'],\n})\nexport class ModelerComponent implements OnInit {\n constructor(private modelerService: ModelerService) {}\n\n ngOnInit(): void {\n this.modelerService.postInit();\n }\n}\n","
\n","import { AfterViewInit, Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { ActivityDialogData } from 'src/app/Domain/Dialog/activityDialogData';\nimport { ActivityCanvasObject } from '../../../Domain/Common/activityCanvasObject';\n\n@Component({\n selector: 'app-activity-dialog',\n templateUrl: './activity-dialog.component.html',\n styleUrls: ['./activity-dialog.component.scss'],\n})\nexport class ActivityDialogComponent {\n form: UntypedFormGroup;\n activityLabel: string;\n activityNumber: number | undefined;\n numberIsAllowedMultipleTimes: boolean;\n showNumberFields: boolean;\n activity: ActivityCanvasObject;\n\n saveFN: any;\n\n constructor(\n private fb: UntypedFormBuilder,\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) data: ActivityDialogData\n ) {\n this.activity = data.activity;\n this.activityLabel = data.activity.businessObject.name;\n this.numberIsAllowedMultipleTimes = data.numberIsAllowedMultipleTimes;\n this.activityNumber = data.activity.businessObject.number;\n this.showNumberFields = data.showNumberFields;\n\n this.saveFN = data.saveFN;\n\n this.form = this.fb.group({\n activityLabel: [this.activityLabel, []],\n activityNumber: [this.activityNumber, []],\n multipleNumbers: [this.numberIsAllowedMultipleTimes, []],\n });\n }\n\n onSubmit(): void {\n this.numberIsAllowedMultipleTimes = !this.numberIsAllowedMultipleTimes;\n this.form.patchValue({\n multipleNumbers: this.numberIsAllowedMultipleTimes,\n });\n }\n\n save(): void {\n this.saveFN({\n activity: this.activity,\n ...this.form.value,\n });\n this.dialogRef.close();\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","\n

Edit Activity

\n
\n
\n \n Number\n \n \n \n multiple\n
\n \n Label\n \n \n
\n
\n\n\n \n \n\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ExportDialogData } from 'src/app/Domain/Dialog/exportDialogData';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\n\n@Component({\n selector: 'app-export-dialog',\n templateUrl: './export-dialog.component.html',\n styleUrls: ['./export-dialog.component.scss'],\n})\nexport class ExportDialogComponent implements OnInit {\n title: string;\n options: {\n text: string;\n tooltip: string;\n fn: any;\n }[];\n withTitle: BehaviorSubject;\n useWhiteBackground: BehaviorSubject;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) data: ExportDialogData\n ) {\n this.withTitle = new BehaviorSubject(true);\n this.useWhiteBackground = new BehaviorSubject(true);\n this.title = data.title;\n this.options = data.options;\n }\n\n ngOnInit(): void {}\n\n doOption(i: number): void {\n this.options[i].fn(this.withTitle.value, this.useWhiteBackground.value);\n this.close();\n }\n\n close(): void {\n this.dialogRef.close();\n }\n\n updateWithTitle($event: Event) {\n // @ts-ignore\n this.withTitle.next($event.target.checked);\n }\n\n updateUseWhiteBackground($event: Event) {\n // @ts-ignore\n this.useWhiteBackground.next($event.target.checked);\n }\n}\n","\n

{{ title }}

\n \n
\n \n
\n\n
\n\n
\n \n \n {{ option.text }}\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { TitleService } from 'src/app/Service/Title/title.service';\n\n@Component({\n selector: 'app-header-dialog',\n templateUrl: './header-dialog.component.html',\n styleUrls: ['./header-dialog.component.scss'],\n})\nexport class HeaderDialogComponent implements OnInit {\n form: UntypedFormGroup;\n title: string;\n description: string;\n\n constructor(\n private fb: UntypedFormBuilder,\n private dialogRef: MatDialogRef,\n private titleService: TitleService\n ) {\n this.title =\n this.titleService.getTitle() === '< name of this Domain Story >'\n ? ''\n : this.titleService.getTitle();\n this.description = this.titleService.getDescription();\n\n this.form = this.fb.group({\n title: [this.title, []],\n description: [this.description, []],\n });\n }\n\n ngOnInit(): void {}\n\n save(): void {\n this.titleService.updateTitleAndDescription(\n this.form.get('title')?.value,\n this.form.get('description')?.value,\n true\n );\n this.dialogRef.close();\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","\n
\n \n Title\n \n \n
\n \n Description\n \n \n
\n
\n\n\n \n \n\n","import { AfterViewInit, Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { InfoDialogData } from 'src/app/Domain/Dialog/infoDialogData';\n\n@Component({\n selector: 'app-info-dialog',\n templateUrl: './info-dialog.component.html',\n styleUrls: ['./info-dialog.component.scss'],\n})\nexport class InfoDialogComponent implements AfterViewInit {\n title: string;\n infoText: string;\n showConfirmButton: boolean;\n hasLink: boolean;\n linkText: string;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) data: InfoDialogData\n ) {\n this.title = data.title;\n this.infoText = data.infoText;\n this.showConfirmButton = !data.isInfo;\n this.hasLink = data.isLink;\n this.linkText = data.linkText || '';\n }\n\n ngAfterViewInit() {\n const span = document.getElementsByClassName(\n 'readOnlyText'\n )[0] as HTMLTextAreaElement;\n span.style.height = span.scrollHeight + 'px';\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","\n

{{ title }}

\n {{ infoText }} \n {{ linkText }}\n
\n\n\n \n\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-label-dictionary-dialog',\n templateUrl: './label-dictionary-dialog.component.html',\n styleUrls: ['./label-dictionary-dialog.component.scss'],\n})\nexport class LabelDictionaryDialogComponent {\n constructor(\n private dialogRef: MatDialogRef\n ) {}\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","\n

Label Dictionary

\n \n
\n","import { AfterViewChecked, Component, Input } from '@angular/core';\nimport { IconListItem } from '../../../Domain/Domain-Configuration/iconListItem';\n\n@Component({\n selector: 'app-details-list-item',\n templateUrl: './details-list-item.component.html',\n styleUrls: ['./details-list-item.component.scss'],\n})\nexport class DetailsListItemComponent implements AfterViewChecked {\n @Input()\n icon!: IconListItem;\n\n private iconInitiated = false;\n\n get id(): string {\n return (\n 'domain-configuration-details-icon-' +\n this.icon.name.toLowerCase() +\n '-' +\n (this.icon.isWorkObject ? 'workobject' : 'actor')\n );\n }\n\n get name(): string {\n return this.icon.name;\n }\n\n ngAfterViewChecked(): void {\n this.createIcon();\n }\n\n private createIcon(): void {\n const img = document.getElementById(this.id) as HTMLImageElement;\n if (img && !this.iconInitiated) {\n img.src = '' + this.icon.svg;\n this.iconInitiated = true;\n }\n }\n}\n","
\n \"{{\n {{ icon.name }}\n
\n","import { Component, OnInit } from '@angular/core';\nimport {\n CustomDomainConfiguration,\n fromConfigurationFromFile,\n} from 'src/app/Domain/Common/domainConfiguration';\nimport { DomainConfigurationService } from 'src/app/Service/DomainConfiguration/domain-configuration.service';\nimport { IconDictionaryService } from 'src/app/Service/DomainConfiguration/icon-dictionary.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\nimport { sanitizeIconName } from 'src/app/Utils/sanitizer';\nimport { IconFilterEnum } from '../../Domain/Domain-Configuration/iconFilterEnum';\nimport { DomainCustomizationService } from '../../Service/DomainConfiguration/domain-customization.service';\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\n\n@Component({\n selector: 'app-domain-configuration',\n templateUrl: './domain-configuration.component.html',\n styleUrls: ['./domain-configuration.component.scss'],\n})\nexport class DomainConfigurationComponent implements OnInit {\n private domainConfigurationTypes: CustomDomainConfiguration;\n\n filter = new BehaviorSubject(IconFilterEnum.ICON_FILTER_NONE);\n\n selectedActors = new BehaviorSubject([]);\n selectedWorkobjects = new BehaviorSubject([]);\n\n allIcons: BehaviorSubject;\n allIconNames = new BehaviorSubject([]);\n allFilteredIconNames = new BehaviorSubject([]);\n\n constructor(\n private configurationService: DomainConfigurationService,\n private iconDictionaryService: IconDictionaryService,\n private domainCustomizationService: DomainCustomizationService,\n private elementRegistryService: ElementRegistryService\n ) {\n this.domainConfigurationTypes =\n this.domainCustomizationService.getDomainConfiguration().value;\n\n this.allIcons = new BehaviorSubject(\n this.iconDictionaryService.getFullDictionary()\n );\n this.allIcons.subscribe((allIcons) => {\n this.allIconNames.next(allIcons.keysArray().sort(this.sortByName));\n });\n\n this.selectedActors = this.domainCustomizationService.selectedActors$;\n this.selectedWorkobjects =\n this.domainCustomizationService.selectedWorkobjects$;\n }\n\n ngOnInit(): void {\n this.filter.subscribe((type) => {\n let allFiltered = this.getFilteredNamesForType(type);\n this.allFilteredIconNames.next(allFiltered.sort(this.sortByName));\n });\n }\n\n private sortByName(a: string, b: string): number {\n if (a.includes('_custom') == b.includes('_custom')) {\n if (a < b) return -1;\n else {\n return 1;\n }\n } else {\n if (a.includes('_custom')) {\n return -1;\n } else {\n return 1;\n }\n }\n }\n\n /** Default Domain **/\n loadMinimalIconConfigurationWithDefaultIcons(): void {\n this.domainCustomizationService.resetDomain();\n }\n\n loadInitialConfiguration(): void {\n this.domainCustomizationService.cancel();\n }\n\n /** Persist Domain **/\n saveDomain(): void {\n this.domainCustomizationService.saveDomain(\n this.elementRegistryService.getUsedIcons()\n );\n }\n\n exportDomain(): void {\n this.domainCustomizationService.exportDomain();\n }\n\n /** Add Custom Icon **/\n startIconUpload(): void {\n document.getElementById('importIcon')?.click();\n }\n\n importIcon(): void {\n // @ts-ignore\n const files = document.getElementById('importIcon').files;\n for (let iconInputFile of files) {\n const reader = new FileReader();\n const name = sanitizeIconName(iconInputFile.name);\n const iconName = name + '_custom';\n\n reader.onloadend = (e: ProgressEvent) => {\n if (e.target) {\n const src: string = e.target.result as unknown as string;\n this.iconDictionaryService.addIMGToIconDictionary(src, iconName);\n this.iconDictionaryService.registerIconForBPMN(iconName, src);\n\n this.allIcons.next(this.iconDictionaryService.getFullDictionary());\n this.filter.next(this.filter.value);\n\n this.domainCustomizationService.addNewIcon(iconName);\n }\n };\n reader.readAsDataURL(iconInputFile);\n }\n }\n\n /** Import Domain **/\n startDomainImport(): void {\n document.getElementById('importDomain')?.click();\n }\n\n importDomain(): void {\n // @ts-ignore\n const domainInputFile = document.getElementById('importDomain').files[0];\n const reader = new FileReader();\n\n reader.onloadend = (e: ProgressEvent) => {\n const configFromFile = JSON.parse(\n e.target?.result as unknown as string\n ) as {\n name: string;\n actors: { [key: string]: any };\n workObjects: { [key: string]: any };\n };\n const config = fromConfigurationFromFile(configFromFile);\n this.configurationService.loadConfiguration(config, false);\n\n this.domainCustomizationService.importConfiguration(config);\n };\n\n reader.readAsText(domainInputFile);\n }\n\n /** Filter **/\n filterForActors(): void {\n if (this.filter.value !== IconFilterEnum.ICON_FILTER_ACTOR) {\n this.filter.next(IconFilterEnum.ICON_FILTER_ACTOR);\n } else {\n this.filter.next(IconFilterEnum.ICON_FILTER_NONE);\n }\n }\n\n filterForWorkobjects(): void {\n if (this.filter.value !== IconFilterEnum.ICON_FILTER_WORKOBJECT) {\n this.filter.next(IconFilterEnum.ICON_FILTER_WORKOBJECT);\n } else {\n this.filter.next(IconFilterEnum.ICON_FILTER_NONE);\n }\n }\n\n filterForUnassigned(): void {\n if (this.filter.value !== IconFilterEnum.ICON_FILTER_UNASSIGNED) {\n this.filter.next(IconFilterEnum.ICON_FILTER_UNASSIGNED);\n } else {\n this.filter.next(IconFilterEnum.ICON_FILTER_NONE);\n }\n }\n\n filterByNameAndType($event: any) {\n const filteredByNameAndType = this.getFilteredNamesForType(\n this.filter.value\n ).filter((name) =>\n name.toLowerCase().includes($event.target.value.toLowerCase())\n );\n this.allFilteredIconNames.next(filteredByNameAndType.sort(this.sortByName));\n }\n\n private getFilteredNamesForType(type: IconFilterEnum): string[] {\n let allFiltered: string[] = [];\n switch (type) {\n case IconFilterEnum.ICON_FILTER_NONE:\n allFiltered = this.allIconNames.value;\n break;\n case IconFilterEnum.ICON_FILTER_ACTOR:\n allFiltered = this.allIconNames.value.filter((name) =>\n this.domainCustomizationService.isIconActor(name)\n );\n break;\n case IconFilterEnum.ICON_FILTER_WORKOBJECT:\n allFiltered = this.allIconNames.value.filter((name) =>\n this.domainCustomizationService.isIconWorkObject(name)\n );\n break;\n case IconFilterEnum.ICON_FILTER_UNASSIGNED:\n allFiltered = this.allIconNames.value.filter(\n (name) =>\n !this.domainCustomizationService.isIconActor(name) &&\n !this.domainCustomizationService.isIconWorkObject(name)\n );\n break;\n }\n return allFiltered;\n }\n}\n","
\n
\n
\n
\n \n \n home \n \n
\n
\n
\n
Filter:
\n \n None\n \n
\n \n Actors\n \n
\n \n Workobjects\n \n
\n \n
\n
\n \n \n unarchive\n \n \n
\n \n close\n \n \n
\n
\n\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n\n \n
\n","
\n
\n

Icon Set name

\n
\n \n \n \n
\n
\n
\n

Order of actors

\n \n \n \n \n \n
\n
\n

Order of work objects

\n \n \n \n \n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DomainCustomizationService } from 'src/app/Service/DomainConfiguration/domain-customization.service';\nimport { IconListItem } from 'src/app/Domain/Domain-Configuration/iconListItem';\nimport { TitleService } from 'src/app/Service/Title/title.service';\n\n@Component({\n selector: 'app-domain-details',\n templateUrl: './domain-details.component.html',\n styleUrls: ['./domain-details.component.scss'],\n})\nexport class DomainDetailsComponent implements OnInit {\n domainName: Observable;\n\n private draggedList: string = '';\n private draggedIndex = 0;\n\n selectedActors$ = this.customizationService.selectedActors$;\n selectedWorkobjects$ = this.customizationService.selectedWorkobjects$;\n\n constructor(\n private customizationService: DomainCustomizationService,\n titleService: TitleService\n ) {\n this.domainName = titleService.domainName$;\n }\n\n ngOnInit(): void {}\n\n changeName(event: Event): void {\n // @ts-ignore\n this.customizationService.changeName(event.target.value);\n }\n\n getIconForName(iconName: string): IconListItem {\n return this.customizationService.getIconForName(iconName).value;\n }\n\n allowDrop($event: DragEvent, listName: string) {\n if (this.draggedList === listName) {\n $event.preventDefault();\n }\n }\n\n onDrop($event: DragEvent, iconName: string, actors: boolean, index: number) {\n let list;\n if (actors) {\n list = this.selectedActors$;\n } else {\n list = this.selectedWorkobjects$;\n }\n const sortedList = list.value;\n const item = sortedList[this.draggedIndex];\n sortedList.splice(this.draggedIndex, 1);\n sortedList.splice(index, 0, item);\n list.next(sortedList);\n\n if (actors) {\n this.customizationService.setSelectedActors(sortedList);\n } else {\n this.customizationService.setSelectedWorkObject(sortedList);\n }\n }\n\n onDragStart(index: number, draggedList: string) {\n this.draggedList = draggedList;\n this.draggedIndex = index;\n }\n}\n","import { AfterViewChecked, Component, Input, OnInit } from '@angular/core';\nimport { IconListItem } from '../../../Domain/Domain-Configuration/iconListItem';\nimport { BehaviorSubject } from 'rxjs';\nimport { DomainCustomizationService } from '../../../Service/DomainConfiguration/domain-customization.service';\n\n@Component({\n selector: 'app-icon-list-item',\n templateUrl: './icon-list-item.component.html',\n styleUrls: ['./icon-list-item.component.scss'],\n})\nexport class IconListItemComponent implements OnInit, AfterViewChecked {\n @Input()\n iconName: string = '';\n\n private iconInitiated = false;\n\n // @ts-ignore\n icon = new BehaviorSubject({});\n\n isActor: BehaviorSubject;\n isWorkobject: BehaviorSubject;\n isNone: BehaviorSubject;\n\n get name(): string {\n return this.iconName;\n }\n\n get id() {\n return 'domain-configuration-icon-' + this.iconName;\n }\n\n constructor(private domainCustomizationService: DomainCustomizationService) {\n this.isActor = new BehaviorSubject(false);\n this.isWorkobject = new BehaviorSubject(false);\n this.isNone = new BehaviorSubject(true);\n }\n\n ngOnInit(): void {\n this.icon = this.domainCustomizationService.getIconForName(this.iconName);\n this.icon.subscribe((value) => {\n this.isActor.next(value.isActor);\n this.isWorkobject.next(value.isWorkObject);\n this.isNone.next(!(value.isActor || value.isWorkObject));\n });\n this.isActor.next(this.icon.value.isActor);\n this.isWorkobject.next(this.icon.value.isWorkObject);\n this.isNone.next(\n !(this.icon.value.isActor || this.icon.value.isWorkObject)\n );\n }\n\n ngAfterViewChecked(): void {\n this.createIcon();\n }\n\n private createIcon(): void {\n const img = document.getElementById(this.id) as HTMLImageElement;\n if (img && !this.iconInitiated) {\n img.src = '' + this.icon.value?.svg;\n this.iconInitiated = true;\n }\n }\n\n toggleNone() {\n this.domainCustomizationService.setAsUnassigned(\n this.iconName,\n this.icon.value.isActor\n );\n }\n\n toggleActor(): void {\n this.domainCustomizationService.setAsActor(true, this.iconName);\n }\n\n toggleWorkobject(): void {\n this.domainCustomizationService.setAsWorkobject(true, this.iconName);\n }\n}\n","
\n
\n \"{{\n
{{ name }}
\n
\n
\n \n \n None\n \n \n Actor\n \n \n Workobject\n \n \n
\n
\n","import { Component } from '@angular/core';\nimport { SettingsService } from '../../Service/Settings/settings.service';\nimport { TitleService } from '../../Service/Title/title.service';\nimport { ModelerService } from '../../Service/Modeler/modeler.service';\nimport { Observable } from 'rxjs';\nimport { ReplayStateService } from '../../Service/Replay/replay-state.service';\nimport { DirtyFlagService } from '../../Service/DirtyFlag/dirty-flag.service';\nimport {\n ExportDialogData,\n ExportOption,\n} from '../../Domain/Dialog/exportDialogData';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { ExportDialogComponent } from '../Dialog/export-dialog/export-dialog.component';\nimport { InfoDialogData } from '../../Domain/Dialog/infoDialogData';\nimport { InfoDialogComponent } from '../Dialog/info-dialog/info-dialog.component';\nimport { DialogService } from '../../Service/Dialog/dialog.service';\nimport { ReplayService } from '../../Service/Replay/replay.service';\nimport { ExportService } from '../../Service/Export/export.service';\nimport { ImportDomainStoryService } from '../../Service/Import/import-domain-story.service';\nimport { LabelDictionaryDialogComponent } from '../Dialog/label-dictionary-dialog/label-dictionary-dialog.component';\nimport { HeaderDialogComponent } from '../Dialog/header-dialog/header-dialog.component';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport {\n SNACKBAR_DURATION,\n SNACKBAR_INFO,\n} from '../../Domain/Common/constants';\n\n@Component({\n selector: 'app-header-buttons',\n templateUrl: './header-buttons.component.html',\n styleUrls: ['./header-buttons.component.scss'],\n})\nexport class HeaderButtonsComponent {\n isReplay$: Observable;\n isDirty$: Observable;\n\n showDescription: Observable;\n\n constructor(\n private settingsService: SettingsService,\n private titleService: TitleService,\n private modelerService: ModelerService,\n private replayStateService: ReplayStateService,\n private dirtyFlagService: DirtyFlagService,\n private dialogService: DialogService,\n private replayService: ReplayService,\n private exportService: ExportService,\n private importService: ImportDomainStoryService,\n private snackbar: MatSnackBar\n ) {\n this.isReplay$ = this.replayStateService.replayOn$;\n this.isDirty$ = this.dirtyFlagService.dirty$;\n this.showDescription = this.titleService.showDescription$;\n }\n import(): void {\n // @ts-ignore\n const filename = document.getElementById('import').files[0].name;\n if (filename.endsWith('.dst')) {\n this.importService.importDST(\n // @ts-ignore\n document.getElementById('import').files[0],\n filename,\n false\n );\n } else if (filename.endsWith('.dst.svg')) {\n this.importService.importDST(\n // @ts-ignore\n document.getElementById('import').files[0],\n filename,\n true\n );\n } else if (filename.endsWith('.egn')) {\n this.importService.importEGN(\n // @ts-ignore\n document.getElementById('import').files[0],\n filename,\n false\n );\n } else if (filename.endsWith('.egn.svg')) {\n this.importService.importEGN(\n // @ts-ignore\n document.getElementById('import').files[0],\n filename,\n true\n );\n }\n this.modelerService.commandStackChanged();\n }\n\n setShowDescription(show: boolean): void {\n this.titleService.setShowDescription(show);\n }\n\n openSettings(): void {\n this.settingsService.open();\n }\n\n /** Open Dialogs **/\n openDownloadDialog(): void {\n if (this.exportService.isDomainStoryExportable()) {\n const SVGDownloadOption = new ExportOption(\n 'SVG',\n 'Download an SVG-Image with the Domain-Story embedded. Can be used to save and share your Domain-Story.',\n (withTitle: boolean, useWhiteBackground: boolean) =>\n this.exportService.downloadSVG(withTitle, useWhiteBackground)\n );\n const EGNDownloadOption = new ExportOption(\n 'EGN',\n 'Download an EGN-File with the Domain-Story. Can be used to save and share your Domain-Story.',\n (withTitle: boolean, useWhiteBackground: boolean) =>\n this.exportService.downloadDST()\n );\n const PNGDownloadOption = new ExportOption(\n 'PNG',\n 'Donwload a PNG-Image of the DOmain-Story. This does not include the Domain-Story!',\n (withTitle: boolean, useWhiteBackground: boolean) =>\n this.exportService.downloadPNG(withTitle)\n );\n const HTMLDownloadOption = new ExportOption(\n 'HTML-Presentation',\n 'Download an HTML-Presentation. This does not include the Domain-Story!',\n (withTitle: boolean, useWhiteBackground: boolean) =>\n this.exportService.downloadHTMLPresentation()\n );\n\n const config = new MatDialogConfig();\n config.disableClose = false;\n config.autoFocus = true;\n config.data = new ExportDialogData('Export', [\n SVGDownloadOption,\n EGNDownloadOption,\n PNGDownloadOption,\n HTMLDownloadOption,\n ]);\n\n this.dialogService.openDialog(ExportDialogComponent, config);\n } else {\n this.snackbar.open('No Domain Story to be exported', undefined, {\n duration: SNACKBAR_DURATION,\n panelClass: SNACKBAR_INFO,\n });\n }\n }\n\n openHeaderDialog(): void {\n const config = new MatDialogConfig();\n config.disableClose = false;\n config.autoFocus = true;\n this.dialogService.openDialog(HeaderDialogComponent, config);\n }\n\n openKeyboardShortcutsDialog(): void {\n const title = 'Keyboard shortcuts';\n const shortCutText =\n 'Undo:\\t\\t\\t\\t\\tctrl + Z \\n' +\n 'Redo:\\t\\t\\t\\t\\tctrl + Y OR ctrl + shift + Z\\n' +\n 'Select All:\\t\\t\\t\\tctrl + A\\n' +\n 'Export as DST:\\t\\t\\tctrl + S\\n' +\n 'Import Domain Story: \\tctrl + L\\n' +\n 'Search for text:\\t\\t\\tctrl + F\\n' +\n 'Direct editing:\\t\\t\\tE\\n' +\n 'Hand tool:\\t\\t\\t\\tH\\n' +\n 'Lasso tool:\\t\\t\\t\\tL\\n' +\n 'Space tool:\\t\\t\\t\\tS';\n\n const config = new MatDialogConfig();\n config.disableClose = false;\n config.autoFocus = true;\n\n config.data = new InfoDialogData(title, shortCutText, true);\n\n this.dialogService.openDialog(InfoDialogComponent, config);\n }\n\n openLabelDictionary(): void {\n if (this.exportService.isDomainStoryExportable()) {\n const config = new MatDialogConfig();\n config.disableClose = false;\n config.autoFocus = true;\n\n this.dialogService.openDialog(LabelDictionaryDialogComponent, config);\n } else {\n this.snackbar.open(\n 'There are currently no Elements on the canvas',\n undefined,\n {\n duration: SNACKBAR_DURATION,\n panelClass: SNACKBAR_INFO,\n }\n );\n }\n }\n\n /** Replay functions **/\n startReplay(): void {\n this.replayService.startReplay();\n }\n\n stopReplay(): void {\n this.replayService.stopReplay();\n }\n\n previousStep(): void {\n this.replayService.previousStep();\n }\n\n nextStep(): void {\n this.replayService.nextStep();\n }\n}\n","
\n \n edit \n \n \n \n spellcheck\n \n \n \n unarchive \n \n \n \n \n archive\n \n \n archive\n \n \n \n play_arrow \n \n \n info \n \n\n \n\n \n expand_less \n \n \n expand_more\n \n
\n
\n \n \n \n\n \n expand_less \n \n \n expand_more\n \n
\n","import { Component } from '@angular/core';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { TitleService } from '../../Service/Title/title.service';\nimport { ReplayService } from '../../Service/Replay/replay.service';\nimport { ReplayStateService } from '../../Service/Replay/replay-state.service';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent {\n title$ = this.titleService.title$;\n description$ = this.titleService.description$;\n showDescription$ = this.titleService.showDescription$;\n currentDomainName$ = this.titleService.domainName$;\n\n isReplay$: Observable;\n stepDescription$: Observable;\n\n mouseOver = false;\n\n constructor(\n private titleService: TitleService,\n private replayService: ReplayService,\n private replayStateService: ReplayStateService\n ) {\n this.isReplay$ = this.replayStateService.replayOn$;\n\n this.stepDescription$ = combineLatest([\n this.replayService.currentStep$,\n this.replayService.maxStepNumber$,\n ]).pipe(map(([step, count]) => `${step}/${count}`));\n }\n}\n","\n \n \n {{ title$ | async }} \n \n {{ currentDomainName$ | async }} \n \n \n Step: {{ stepDescription$ | async }}\n\n \n\n \n \n\n\n {{ description$ | async }}\n\n","import { AfterViewInit, Component, EventEmitter, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { WorkObjectLabelEntry } from '../../Domain/LabelDictionary/workObjectLabelEntry';\nimport { LabelEntry } from '../../Domain/LabelDictionary/labelEntry';\nimport { LabelDictionaryService } from '../../Service/LabelDictionary/label-dictionary.service';\n\n@Component({\n selector: 'app-label-dictionary',\n templateUrl: './label-dictionary.component.html',\n styleUrls: ['./label-dictionary.component.scss'],\n})\nexport class LabelDictionaryComponent implements AfterViewInit {\n workobjectEntriesSubject: BehaviorSubject;\n activityEntriesSubject: BehaviorSubject;\n\n workObjectEntries: WorkObjectLabelEntry[];\n activityEntries: LabelEntry[];\n\n @Output()\n closeEmitter: EventEmitter = new EventEmitter();\n\n constructor(private labelDictionaryService: LabelDictionaryService) {\n this.labelDictionaryService.createLabelDictionaries();\n this.workObjectEntries = this.labelDictionaryService.getWorkObjectLabels();\n this.activityEntries = this.labelDictionaryService.getActivityLabels();\n\n this.workobjectEntriesSubject = new BehaviorSubject(this.workObjectEntries);\n this.activityEntriesSubject = new BehaviorSubject(this.activityEntries);\n }\n\n ngAfterViewInit(): void {\n this.labelDictionaryService.createLabelDictionaries();\n this.workobjectEntriesSubject.next(\n this.labelDictionaryService.getWorkObjectLabels()\n );\n this.activityEntriesSubject.next(\n this.labelDictionaryService.getActivityLabels()\n );\n }\n\n save(): void {\n this.workObjectEntries = this.workobjectEntriesSubject.value;\n this.activityEntries = this.activityEntriesSubject.value;\n\n const activityNames: string[] = [];\n const originalActivityNames: string[] = [];\n\n const workObjectNames: string[] = [];\n const originalWorkObjectNames: string[] = [];\n\n this.activityEntries\n .filter((a) => a.name !== a.originalName)\n .forEach((activity) => {\n activityNames.push(activity.name);\n originalActivityNames.push(activity.originalName);\n });\n\n this.workObjectEntries\n .filter((w) => w.name !== w.originalName)\n .forEach((workobject) => {\n workObjectNames.push(workobject.name);\n originalWorkObjectNames.push(workobject.originalName);\n });\n\n this.labelDictionaryService.massRenameLabels(\n activityNames,\n originalActivityNames,\n workObjectNames,\n originalWorkObjectNames\n );\n this.closeEmitter.emit();\n }\n\n cancel(): void {\n this.workObjectEntries.forEach((w) => {\n w.name = w.originalName;\n });\n this.activityEntries.forEach((a) => {\n a.name = a.originalName;\n });\n\n this.workobjectEntriesSubject.next(this.workObjectEntries);\n this.activityEntriesSubject.next(this.activityEntries);\n }\n\n updateActivityEntry($event: Event, activityEntry: LabelEntry) {\n let entries = this.activityEntriesSubject.value;\n entries.filter(\n (e) => e.originalName === activityEntry.originalName\n // @ts-ignore\n )[0].name = $event.target.value;\n this.activityEntriesSubject.next(entries);\n }\n\n updateWorkobjectEntry($event: Event, workobjectEntry: LabelEntry) {\n let entries = this.workobjectEntriesSubject.value;\n entries.filter(\n (e) => e.originalName === workobjectEntry.originalName\n // @ts-ignore\n )[0].name = $event.target.value;\n this.workobjectEntriesSubject.next(entries);\n }\n}\n","
\n
\n

Workobjects

\n \n \n \n \n \n
\n
\n

Activities

\n \n \n \n \n \n
\n
\n
\n \n library_books\n update Dictionaries\n \n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-general-settings',\n templateUrl: './general-settings.component.html',\n styleUrls: ['./general-settings.component.scss'],\n})\nexport class GeneralSettingsComponent {}\n","
\n \n
\n","import { Component } from '@angular/core';\nimport { SettingsService } from 'src/app/Service/Settings/settings.service';\nimport { ModelerService } from 'src/app/Service/Modeler/modeler.service';\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { AutosaveConfigurationService } from '../../Service/Autosave/autosave-configuration.service';\nimport { DomainCustomizationService } from '../../Service/DomainConfiguration/domain-customization.service';\n\n@Component({\n selector: 'app-settings',\n templateUrl: './settings.component.html',\n styleUrls: ['./settings.component.scss'],\n})\nexport class SettingsComponent {\n domainConfiguration: DomainConfiguration | undefined;\n showGeneralSettings = new BehaviorSubject(false);\n showDomainCustomization = new BehaviorSubject(true);\n\n constructor(\n private settingsService: SettingsService,\n private modelerService: ModelerService,\n private domainCustomizationService: DomainCustomizationService\n ) {}\n\n close(): void {\n const savedConfiguration =\n this.domainCustomizationService.getAndClearSavedConfiguration();\n if (savedConfiguration) {\n this.modelerService.restart(savedConfiguration);\n }\n this.settingsService.close();\n }\n\n openGeneralSettings() {\n this.showGeneralSettings.next(true);\n this.showDomainCustomization.next(false);\n }\n\n openDomainCustomization() {\n this.showGeneralSettings.next(false);\n this.showDomainCustomization.next(true);\n }\n}\n","
\n \n \n \n
\n \n Customize Icons for Your Domain\n \n \n General Settings\n \n
\n
\n
\n\n \n \n
\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { StorageService } from '../BrowserStorage/storage.service';\nimport { AutosaveConfiguration } from '../../Domain/Autosave/autosave-configuration';\nimport {\n DEFAULT_AUTOSAVES_AMOUNT,\n DEFAULT_AUTOSAVES_INTERVAL,\n} from 'src/app/Domain/Common/constants';\n\nconst AUTOSAVE_CONFIGURATION_TAG = 'autosaveConfiguration';\n\nconst defaultConfiguration: AutosaveConfiguration = {\n activated: false,\n interval: DEFAULT_AUTOSAVES_INTERVAL,\n amount: DEFAULT_AUTOSAVES_AMOUNT,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AutosaveConfigurationService {\n private configuration = defaultConfiguration;\n\n private readonly configurationSubject =\n new ReplaySubject(1);\n readonly configuration$ = this.configurationSubject.asObservable();\n\n constructor(private storageService: StorageService) {\n this.initializeConfiguration();\n }\n\n private initializeConfiguration() {\n this.loadConfiguration();\n this.configurationSubject.next(this.configuration);\n }\n\n setConfiguration(configuration: AutosaveConfiguration): boolean {\n try {\n this.configuration = configuration;\n this.saveConfiguration();\n this.configurationSubject.next(configuration);\n return true;\n } catch {\n return false;\n }\n }\n\n private loadConfiguration() {\n this.configuration =\n this.storageService.get(AUTOSAVE_CONFIGURATION_TAG) ??\n defaultConfiguration;\n }\n\n private saveConfiguration() {\n this.storageService.set(AUTOSAVE_CONFIGURATION_TAG, this.configuration);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { RendererService } from '../Renderer/renderer.service';\nimport { ExportService } from '../Export/export.service';\nimport { Draft } from '../../Domain/Autosave/draft';\nimport { AutosaveConfigurationService } from './autosave-configuration.service';\nimport { IconDictionaryService } from '../DomainConfiguration/icon-dictionary.service';\nimport { elementTypes } from '../../Domain/Common/elementTypes';\nimport { fromConfigurationFromFile } from '../../Domain/Common/domainConfiguration';\nimport { StorageService } from '../BrowserStorage/storage.service';\nimport { TitleService } from '../Title/title.service';\nimport { AutosaveConfiguration } from '../../Domain/Autosave/autosave-configuration';\nimport {\n SNACKBAR_DURATION,\n SNACKBAR_INFO,\n} from 'src/app/Domain/Common/constants';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subject } from 'rxjs';\n\nexport const DRAFTS_TAG = 'autosaveDrafts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AutosaveService {\n private autosaveTimer: any;\n autosavedDraftsChanged$ = new Subject();\n\n constructor(\n private autosaveConfiguration: AutosaveConfigurationService,\n private exportService: ExportService,\n private iconDistionaryService: IconDictionaryService,\n private rendererService: RendererService,\n private snackbar: MatSnackBar,\n private storageService: StorageService,\n private titleService: TitleService\n ) {\n this.autosaveConfiguration.configuration$.subscribe((configuration) =>\n this.updateConfiguration(configuration)\n );\n }\n\n loadCurrentDrafts(): Draft[] {\n const drafts = this.readDrafts();\n this.sortDrafts(drafts);\n return drafts;\n }\n\n loadDraft(draft: Draft): void {\n const configFromFile = draft.configAndDST.domain;\n const config = fromConfigurationFromFile(configFromFile);\n const story = JSON.parse(draft.configAndDST.dst);\n\n this.titleService.updateTitleAndDescription(\n draft.title,\n draft.description,\n false\n );\n\n const actorIcons = this.iconDistionaryService.getElementsOfType(\n story,\n elementTypes.ACTOR\n );\n const workObjectIcons = this.iconDistionaryService.getElementsOfType(\n story,\n elementTypes.WORKOBJECT\n );\n this.iconDistionaryService.updateIconRegistries(\n actorIcons,\n workObjectIcons,\n config\n );\n this.rendererService.importStory(story, true, config, false);\n }\n\n removeAllDrafts() {\n this.storageService.set(DRAFTS_TAG, []);\n this.autosavedDraftsChanged$.next();\n }\n\n private updateConfiguration(configuration: AutosaveConfiguration) {\n this.stopTimer();\n\n if (configuration.activated) {\n this.startTimer(configuration.interval, configuration.amount);\n }\n }\n\n private stopTimer(): void {\n if (this.autosaveTimer) {\n clearInterval(this.autosaveTimer);\n this.autosaveTimer = undefined;\n }\n }\n\n private startTimer(interval: number, amount: number): void {\n this.autosaveTimer = setInterval(() => {\n const drafts = this.loadCurrentDrafts();\n const newDraft = this.createDraft();\n let isChanged = amount > 0;\n if (drafts.length > 0) {\n isChanged = isChanged && !this.isSame(newDraft, drafts[0]);\n }\n if (isChanged) {\n drafts.unshift(this.createDraft());\n while (drafts.length > amount) {\n drafts.pop();\n }\n this.writeDrafts(drafts);\n this.snackbar.open('Draft Saved', undefined, {\n panelClass: SNACKBAR_INFO,\n duration: SNACKBAR_DURATION,\n });\n this.autosavedDraftsChanged$.next();\n }\n }, interval * 60000);\n }\n\n private isSame(a: Draft, b: Draft) {\n return (\n a.title === b.title &&\n a.description === b.description &&\n JSON.stringify(a.configAndDST) === JSON.stringify(b.configAndDST)\n );\n }\n\n private writeDrafts(drafts: Draft[]) {\n this.storageService.set(DRAFTS_TAG, drafts);\n }\n\n private readDrafts(): Draft[] {\n return this.storageService.get(DRAFTS_TAG) ?? [];\n }\n\n private createDraft(): Draft {\n const dst = JSON.stringify(this.rendererService.getStory(), null, 2);\n const configAndDST = this.exportService.createConfigAndDST(dst);\n\n const date = new Date().toString().slice(0, 25);\n\n return {\n title: this.titleService.getTitle(),\n description: this.titleService.getDescription(),\n configAndDST,\n date,\n };\n }\n\n private sortDrafts(drafts: Draft[]): void {\n drafts.sort((a: Draft, b: Draft) => {\n const aDate = Date.parse(a.date);\n const bDate = Date.parse(b.date);\n return aDate > bDate ? 0 : 1;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DOMAIN_CONFIGURATION_TAG } from '../../Domain/Common/constants';\nimport {\n DomainConfiguration,\n fromConfigurationFromFile,\n} from '../../Domain/Common/domainConfiguration';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StorageService {\n set(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n get(key: string): any {\n const json = localStorage.getItem(key);\n if (json) {\n return JSON.parse(json);\n }\n return null;\n }\n\n removeItem(key: string) {\n localStorage.removeItem(key);\n }\n\n checkValidityOfConfiguration(configuratioFromFile: DomainConfiguration) {\n return (\n configuratioFromFile.actors.keysArray().length > 1 &&\n configuratioFromFile.workObjects.keysArray().length > 1 &&\n !configuratioFromFile.actors\n .all()\n .some((e) => typeof e.value !== 'string') &&\n !configuratioFromFile.workObjects\n .all()\n .some((e) => typeof e.value !== 'string')\n );\n }\n\n getStoredDomainConfiguration(): DomainConfiguration | undefined {\n const domainString = localStorage.getItem(DOMAIN_CONFIGURATION_TAG);\n\n if (!domainString) {\n return;\n } else {\n const configuratioFromFile = fromConfigurationFromFile(\n JSON.parse(domainString)\n );\n if (this.checkValidityOfConfiguration(configuratioFromFile)) {\n return configuratioFromFile;\n }\n }\n return;\n }\n\n setStoredDomainConfiguration(config: DomainConfiguration): void {\n const actors: {\n [p: string]: any;\n } = {};\n config.actors.keysArray().forEach((key) => {\n actors[key] = config.actors.get(key);\n });\n const workObjects: {\n [p: string]: any;\n } = {};\n config.workObjects.keysArray().forEach((key) => {\n workObjects[key] = config.workObjects.get(key);\n });\n\n const configForStorage = {\n name: config.name,\n actors: actors,\n workObjects: workObjects,\n };\n\n localStorage.setItem(\n DOMAIN_CONFIGURATION_TAG,\n JSON.stringify(configForStorage, null, 2)\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommandStackService {\n private commandStack: any;\n\n constructor() {}\n\n setCommandStack(commandStack: any): void {\n this.commandStack = commandStack;\n }\n\n execute(action: string, payload: any) {\n this.commandStack.execute(action, payload);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { ComponentType } from '@angular/cdk/overlay';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n constructor(private matDialog: MatDialog) {}\n\n openDialog(dialog: ComponentType, config: MatDialogConfig): void {\n this.matDialog.open(dialog, config);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DirtyFlagService {\n private isDirtySubject = new BehaviorSubject(false);\n dirty$ = this.isDirtySubject.asObservable();\n\n makeDirty(): void {\n this.isDirtySubject.next(true);\n }\n\n makeClean(): void {\n this.isDirtySubject.next(false);\n }\n\n get dirty(): boolean {\n return this.isDirtySubject.value;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\nimport { StoryStep } from 'src/app/Domain/Replay/storyStep';\nimport {\n HIGHLIGHT_COLOR,\n HIGHLIGHT_NUMBER_BACKGROUNG_COLOR,\n HIGHLIGHT_NUMBER_COLOR,\n HIGHLIGHT_STROKE_WIDTH,\n NUMBER_BACKGROUND_COLOR,\n NUMBER_COLOR,\n STROKE_WIDTH,\n} from '../../Domain/DomManipulation/replayConstants';\n\n@Injectable({\n providedIn: 'root',\n})\n/**\n * Manipulates the DOM during replay to only show the elements of the current Step\n */\nexport class DomManipulationService {\n constructor(private elementRegistryService: ElementRegistryService) {}\n\n showAll(): void {\n this.removeHighlights();\n this.elementRegistryService\n .getAllCanvasObjects()\n .slice()\n .concat(this.elementRegistryService.getAllGroups().slice())\n .map((e) => e.businessObject)\n .forEach((element) => {\n const domObject = document.querySelector(\n '[data-element-id=' + element.id + ']'\n );\n // @ts-ignore\n domObject.style.display = 'block';\n });\n }\n\n showStep(replayStep: StoryStep, previousStep?: StoryStep): void {\n this.removeHighlights();\n const notShown = this.getAllNotShown(replayStep.objects);\n\n notShown.forEach((element) => {\n const domObject = document.querySelector(\n '[data-element-id=' + element.id + ']'\n );\n if (domObject) {\n // @ts-ignore\n domObject.style.display = 'none';\n }\n });\n\n this.hightlightStep(\n previousStep\n ? replayStep.objects.filter((o) => !previousStep.objects.includes(o))\n : replayStep.objects\n );\n\n replayStep.objects.forEach((element) => {\n const domObject = document.querySelector(\n '[data-element-id=' + element.id + ']'\n );\n if (domObject) {\n // @ts-ignore\n domObject.style.display = 'block';\n }\n });\n }\n\n getNumberDomForActivity(activity: SVGPolylineElement): any {\n const numberDOMS = activity.parentElement?.getElementsByClassName(\n 'djs-labelNumber'\n ) || ['', ''];\n return {\n numberBackgroundDom: numberDOMS[0],\n numberTextDom: numberDOMS[1],\n };\n }\n\n private removeHighlights(): void {\n const allActivities = this.elementRegistryService.getAllActivities();\n const allConnections = this.elementRegistryService.getAllConnections();\n\n allActivities.forEach((activity) => {\n const querySelector = document.querySelector(\n '[data-element-id=' + activity.id + ']'\n );\n if (querySelector) {\n const activityDomObject =\n querySelector.getElementsByTagName('polyline')[0];\n\n activityDomObject.style.stroke =\n activity.businessObject.pickedColor || 'black';\n activityDomObject.style.strokeWidth = STROKE_WIDTH;\n\n const { numberBackgroundDom, numberTextDom } =\n this.getNumberDomForActivity(activityDomObject);\n if (numberBackgroundDom && numberTextDom) {\n numberBackgroundDom.style.fill = NUMBER_BACKGROUND_COLOR;\n numberTextDom.style.fill = NUMBER_COLOR;\n }\n }\n });\n\n allConnections.forEach((connection) => {\n // @ts-ignore\n const connectionDomObject = document\n .querySelector('[data-element-id=' + connection.id + ']')\n .getElementsByTagName('polyline')[0];\n\n connectionDomObject.style.stroke =\n connection.businessObject.pickedColor || 'black';\n connectionDomObject.style.strokeWidth = '1.5';\n });\n }\n\n private hightlightStep(stepObjects: BusinessObject[]): void {\n stepObjects\n .filter((e) => e.type === elementTypes.ACTIVITY)\n .forEach((activity) => {\n const querySelector = document.querySelector(\n '[data-element-id=' + activity.id + ']'\n );\n if (querySelector) {\n const activityDomObject =\n querySelector.getElementsByTagName('polyline')[0];\n\n activityDomObject.style.stroke = HIGHLIGHT_COLOR;\n activityDomObject.style.strokeWidth = HIGHLIGHT_STROKE_WIDTH;\n\n const { numberBackgroundDom, numberTextDom } =\n this.getNumberDomForActivity(activityDomObject);\n if (numberTextDom && numberBackgroundDom) {\n numberBackgroundDom.style.fill = HIGHLIGHT_NUMBER_BACKGROUNG_COLOR;\n numberTextDom.style.fill = HIGHLIGHT_NUMBER_COLOR;\n }\n }\n });\n }\n\n private getAllNotShown(shownElements: BusinessObject[]): BusinessObject[] {\n const notShownElements: BusinessObject[] = [];\n const allObjects = this.elementRegistryService\n .getAllCanvasObjects()\n .concat(this.elementRegistryService.getAllGroups());\n\n allObjects.forEach((element) => {\n if (!shownElements.includes(element.businessObject)) {\n if (element.type.includes(elementTypes.CONNECTION)) {\n // @ts-ignore\n if (!element.source.type.includes(elementTypes.GROUP)) {\n notShownElements.push(element.businessObject);\n } else {\n // @ts-ignore\n shownElements.push(element.target);\n }\n } else {\n notShownElements.push(element.businessObject);\n }\n }\n });\n return notShownElements;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\nimport { IconDictionaryService } from 'src/app/Service/DomainConfiguration/icon-dictionary.service';\nimport { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\nimport {\n CustomDomainConfiguration,\n DomainConfiguration,\n DomainConfigurationForExport,\n} from 'src/app/Domain/Common/domainConfiguration';\nimport { defaultConf } from '../../Domain/Common/iconConfiguration';\nimport { TitleService } from '../Title/title.service';\nimport { INITIAL_DOMAIN_NAME } from '../../Domain/Common/constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DomainConfigurationService {\n constructor(\n private iconDictionaryService: IconDictionaryService,\n private elementRegistryService: ElementRegistryService,\n private titleService: TitleService\n ) {}\n\n setDomainName(domainName: string): void {\n this.titleService.setDomainName(\n domainName ? domainName : INITIAL_DOMAIN_NAME\n );\n }\n\n exportConfiguration(): void {\n const domainConfiguration = this.getCurrentConfigurationForExport();\n if (!domainConfiguration) {\n return;\n }\n\n const configJSONString = JSON.stringify(domainConfiguration, null, 2);\n const filename = this.titleService.getDomainName();\n const element = document.createElement('a');\n\n element.setAttribute(\n 'href',\n 'data:text/plain;charset=utf-8,' + encodeURIComponent(configJSONString)\n );\n element.setAttribute('download', filename + '.domain');\n element.style.display = 'none';\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n }\n\n loadConfiguration(\n customConfig: DomainConfiguration,\n updateDomainName = true\n ): void {\n let actorDict = new Dictionary();\n let workObjectDict = new Dictionary();\n\n if (customConfig.actors.keysArray()) {\n actorDict = customConfig.actors;\n workObjectDict = customConfig.workObjects;\n } else {\n actorDict.addEach(customConfig.actors);\n workObjectDict.addEach(customConfig.workObjects);\n }\n\n const actorKeys = actorDict.keysArray();\n const workObjectKeys = workObjectDict.keysArray();\n\n this.iconDictionaryService.updateIconRegistries([], [], customConfig);\n\n this.iconDictionaryService\n .getIconConfiguration()\n .appendSRCFile(actorKeys, actorDict, workObjectKeys, workObjectDict);\n\n this.iconDictionaryService.addIconsFromDomainConfiguration(\n elementTypes.ACTOR,\n actorKeys.map((a) => elementTypes.ACTOR + a)\n );\n this.iconDictionaryService.addIconsFromDomainConfiguration(\n elementTypes.WORKOBJECT,\n workObjectKeys.map((w) => elementTypes.WORKOBJECT + w)\n );\n\n if (updateDomainName) {\n const configurationName = customConfig.name;\n this.setDomainName(configurationName);\n }\n }\n\n getCurrentConfiguration(): DomainConfiguration | undefined {\n const actors = this.iconDictionaryService.getActorsDictionary();\n const workObjects = this.iconDictionaryService.getWorkObjectsDictionary();\n\n let domainConfiguration;\n\n if (actors.size() > 0 && workObjects.size() > 0) {\n domainConfiguration = this.createConfigFromDictionaries(\n actors,\n workObjects\n );\n }\n return domainConfiguration;\n }\n\n getCurrentConfigurationForExport(): DomainConfigurationForExport | undefined {\n const currentConfiguration = this.getCurrentConfiguration();\n\n if (currentConfiguration) {\n const actors: any = {};\n const workObjects: any = {};\n\n currentConfiguration.actors.all().forEach((entry) => {\n actors[entry.key] = entry.value;\n });\n currentConfiguration.workObjects.all().forEach((entry) => {\n workObjects[entry.key] = entry.value;\n });\n\n return {\n name: currentConfiguration.name,\n actors: actors,\n workObjects: workObjects,\n };\n }\n return;\n }\n\n getCurrentConfigurationNamesWithoutPrefix(): CustomDomainConfiguration {\n return {\n name: this.titleService.getDomainName() || INITIAL_DOMAIN_NAME,\n actors: this.iconDictionaryService\n .getActorsDictionary()\n .keysArray()\n .map((a) => a.replace(elementTypes.ACTOR, '')),\n workObjects: this.iconDictionaryService\n .getWorkObjectsDictionary()\n .keysArray()\n .map((w) => w.replace(elementTypes.WORKOBJECT, '')),\n };\n }\n\n createMinimalConfigurationWithDefaultIcons(): DomainConfiguration {\n const minimalConfig = this.createConfigFromCanvas();\n\n defaultConf.actors.forEach((iconName) => {\n minimalConfig.actors.add(\n this.iconDictionaryService.getIconSource(iconName),\n iconName\n );\n });\n defaultConf.workObjects.forEach((iconName) => {\n minimalConfig.workObjects.add(\n this.iconDictionaryService.getIconSource(iconName),\n iconName\n );\n });\n\n return minimalConfig;\n }\n\n private createConfigFromDictionaries(\n actorsDict: Dictionary,\n workObjectsDict: Dictionary\n ): DomainConfiguration {\n const actorNames = actorsDict.keysArray();\n const workobjectNames = workObjectsDict.keysArray();\n const newActors = new Dictionary();\n const newWorkobjects = new Dictionary();\n\n // Fill Configuration from Canvas-Objects\n actorNames.forEach((actor) => {\n newActors.add(\n actorsDict.get(actor),\n actor.replace(elementTypes.ACTOR, '')\n );\n });\n workobjectNames.forEach((workObject) => {\n newWorkobjects.add(\n workObjectsDict.get(workObject),\n workObject.replace(elementTypes.WORKOBJECT, '')\n );\n });\n\n return {\n name: this.titleService.getDomainName(),\n actors: newActors,\n workObjects: newWorkobjects,\n };\n }\n\n private createConfigFromCanvas(): DomainConfiguration {\n const config = {\n name: INITIAL_DOMAIN_NAME,\n actors: new Dictionary(),\n workObjects: new Dictionary(),\n };\n\n let allCanvasObjects = this.elementRegistryService.getAllCanvasObjects();\n\n allCanvasObjects\n .map((e) => e.businessObject)\n .forEach((element) => {\n const type = element.type\n .replace(elementTypes.ACTOR, '')\n .replace(elementTypes.WORKOBJECT, '');\n if (element.type.includes(elementTypes.ACTOR)) {\n let src = this.iconDictionaryService.getIconSource(type) || '';\n config.actors.add(src, type);\n } else if (element.type.includes(elementTypes.WORKOBJECT)) {\n let src = this.iconDictionaryService.getIconSource(type) || '';\n config.workObjects.add(src, type);\n }\n });\n\n return config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n CustomDomainConfiguration,\n DomainConfiguration,\n} from '../../Domain/Common/domainConfiguration';\nimport { BehaviorSubject } from 'rxjs';\nimport { DomainConfigurationService } from './domain-configuration.service';\nimport { IconDictionaryService } from './icon-dictionary.service';\nimport { getNameFromType } from '../../Utils/naming';\nimport { elementTypes } from '../../Domain/Common/elementTypes';\nimport { IconListItem } from '../../Domain/Domain-Configuration/iconListItem';\nimport { Dictionary } from '../../Domain/Common/dictionary/dictionary';\nimport { ImportDomainStoryService } from '../Import/import-domain-story.service';\nimport { TitleService } from '../Title/title.service';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport {\n SNACKBAR_DURATION,\n SNACKBAR_INFO,\n SNACKBAR_SUCCESS,\n} from '../../Domain/Common/constants';\nimport { StorageService } from '../BrowserStorage/storage.service';\nimport { UsedIconList } from 'src/app/Domain/Domain-Configuration/UsedIconList';\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DomainCustomizationService {\n private readonly domainConfigurationTypes: BehaviorSubject;\n\n private allIconListItems = new Dictionary();\n\n private configurationHasChanged = false;\n\n selectedActors$ = new BehaviorSubject([]);\n selectedWorkobjects$ = new BehaviorSubject([]);\n private changedDomainCofiguration: DomainConfiguration | undefined;\n\n constructor(\n private configurationService: DomainConfigurationService,\n private iconDictionaryService: IconDictionaryService,\n private importService: ImportDomainStoryService,\n private titleService: TitleService,\n private storageService: StorageService,\n private elementRegistryService: ElementRegistryService,\n private snackbar: MatSnackBar\n ) {\n this.domainConfigurationTypes = new BehaviorSubject(\n this.configurationService.getCurrentConfigurationNamesWithoutPrefix()\n );\n\n this.selectedWorkobjects$.next(\n this.domainConfigurationTypes.value.workObjects\n );\n this.selectedActors$.next(this.domainConfigurationTypes.value.actors);\n\n iconDictionaryService\n .getAllIconDictionary()\n .keysArray()\n .forEach((iconName) => {\n this.addIconToAllIconList(iconName);\n });\n\n importService.importedConfigurationEvent.subscribe((config) => {\n this.importConfiguration(config);\n });\n const storedDomainConfiguration =\n this.storageService.getStoredDomainConfiguration();\n if (storedDomainConfiguration) {\n this.importConfiguration(storedDomainConfiguration, false);\n }\n const importedConfiguration = this.importService.getImportedConfiguration();\n if (importedConfiguration) {\n this.importConfiguration(importedConfiguration, false);\n }\n }\n\n importConfiguration(\n customConfig: DomainConfiguration,\n saveDomain = true\n ): void {\n const actorKeys = customConfig.actors.keysArray();\n const workObjectKeys = customConfig.workObjects.keysArray();\n\n actorKeys.forEach((iconName) => {\n if (!this.allIconListItems.has(iconName)) {\n this.addIconToAllIconList(iconName);\n }\n const selectedActorNames = this.selectedActors$.value;\n if (!selectedActorNames.includes(iconName)) {\n this.selectActor(iconName);\n }\n });\n workObjectKeys.forEach((iconName) => {\n if (!this.allIconListItems.has(iconName)) {\n this.addIconToAllIconList(iconName);\n }\n const selectedWorkobjectNames = this.selectedWorkobjects$.value;\n if (!selectedWorkobjectNames.includes(iconName)) {\n this.selectWorkObject(iconName);\n }\n });\n if (saveDomain) {\n this.saveDomain(this.elementRegistryService.getUsedIcons(), true);\n }\n }\n\n /** Getter & Setter **/\n getDomainConfiguration(): BehaviorSubject {\n return this.domainConfigurationTypes;\n }\n\n getIconForName(iconName: string): BehaviorSubject {\n return this.allIconListItems.get(iconName);\n }\n\n isIconActor(iconName: string): boolean {\n return (\n this.domainConfigurationTypes.value.actors.filter(\n (actor: string) => actor === iconName\n ).length > 0\n );\n }\n\n isIconWorkObject(iconName: string): boolean {\n return (\n this.domainConfigurationTypes.value.workObjects.filter(\n (workObject: string) => workObject === iconName\n ).length > 0\n );\n }\n\n changeName(domainName: string): void {\n this.titleService.setDomainName(domainName);\n const changedDomain = this.domainConfigurationTypes.value;\n changedDomain.name = domainName;\n this.domainConfigurationTypes.next(changedDomain);\n }\n\n /** Seleted Icons **/\n setAsUnassigned(iconName: string, isActor: boolean): void {\n if (isActor) {\n this.deselectActor(iconName);\n } else {\n this.deselectWorkobject(iconName);\n }\n this.updateIcon(false, false, iconName);\n }\n\n setAsActor(isActor: boolean, actor: string): void {\n if (isActor) {\n this.updateIcon(true, false, actor);\n this.selectActor(actor);\n this.deselectWorkobject(actor);\n } else {\n this.deselectActor(actor);\n this.updateIcon(false, false, actor);\n }\n }\n\n setAsWorkobject(isWorkobject: boolean, workobject: string): void {\n if (isWorkobject) {\n this.updateIcon(false, true, workobject);\n this.selectWorkObject(workobject);\n this.deselectActor(workobject);\n } else {\n this.deselectWorkobject(workobject);\n this.updateIcon(false, false, workobject);\n }\n }\n\n selectActor(actor: string): void {\n const value = this.domainConfigurationTypes.value;\n if (!value.actors.includes(actor)) {\n value.actors.push(actor);\n this.domainConfigurationTypes.next(value);\n this.updateActorSubject();\n }\n }\n\n selectWorkObject(workObject: string): void {\n const value = this.domainConfigurationTypes.value;\n if (!value.workObjects.includes(workObject)) {\n value.workObjects.push(workObject);\n this.domainConfigurationTypes.next(value);\n this.updateWorkObjectSubject();\n }\n }\n\n deselectActor(actor: string): void {\n if (this.domainConfigurationTypes) {\n this.domainConfigurationTypes.next({\n name: this.domainConfigurationTypes.value.name,\n actors: this.domainConfigurationTypes.value.actors.filter(\n (a: string) => !a.includes(actor)\n ),\n workObjects: this.domainConfigurationTypes.value.workObjects,\n });\n }\n this.updateActorSubject();\n }\n\n deselectWorkobject(workobject: string): void {\n if (this.domainConfigurationTypes) {\n this.domainConfigurationTypes.next({\n name: this.domainConfigurationTypes.value.name,\n actors: this.domainConfigurationTypes.value.actors,\n workObjects: this.domainConfigurationTypes.value.workObjects.filter(\n (w: string) => !w.includes(workobject)\n ),\n });\n }\n this.updateWorkObjectSubject();\n }\n\n setSelectedWorkObject(sortedList: string[]): void {\n const value = this.domainConfigurationTypes.value;\n value.workObjects = sortedList;\n this.domainConfigurationTypes.next(value);\n this.updateWorkObjectSubject();\n }\n\n setSelectedActors(sortedList: string[]): void {\n const value = this.domainConfigurationTypes.value;\n value.actors = sortedList;\n this.domainConfigurationTypes.next(value);\n this.updateActorSubject();\n }\n\n private updateActorSubject(): void {\n this.selectedActors$.next(this.domainConfigurationTypes.value.actors);\n this.configurationHasChanged = true;\n }\n\n private updateWorkObjectSubject(): void {\n this.selectedWorkobjects$.next(\n this.domainConfigurationTypes.value.workObjects\n );\n this.configurationHasChanged = true;\n }\n\n /** Revert Domain **/\n resetDomain(): void {\n const defaultConfig =\n this.configurationService.createMinimalConfigurationWithDefaultIcons();\n\n this.selectedWorkobjects$.value.forEach((workObjectName) => {\n if (!defaultConfig.workObjects.has(workObjectName)) {\n this.deselectWorkobject(workObjectName);\n }\n });\n this.selectedActors$.value.forEach((actorName) => {\n if (!defaultConfig.actors.has(actorName)) {\n this.deselectActor(actorName);\n }\n });\n\n this.domainConfigurationTypes.next({\n name: defaultConfig.name,\n actors: defaultConfig.actors.keysArray(),\n workObjects: defaultConfig.workObjects.keysArray(),\n } as CustomDomainConfiguration);\n\n this.updateAllIconBehaviourSubjects();\n }\n\n cancel(): void {\n this.domainConfigurationTypes.next(\n this.configurationService.getCurrentConfigurationNamesWithoutPrefix()\n );\n this.updateAllIconBehaviourSubjects();\n this.resetToInitialConfiguration();\n }\n\n private resetToInitialConfiguration(): void {\n this.updateActorSubject();\n this.updateWorkObjectSubject();\n }\n\n /** Persist Domain **/\n saveDomain(usedIcons: UsedIconList, imported = false): void {\n const changedActors: string[] = [];\n const changedWorkobjects: string[] = [];\n if (this.configurationHasChanged) {\n const changedDomain = this.createDomainConfiguration();\n\n const configurationActors = changedDomain.actors.keysArray();\n usedIcons?.actors.forEach((actor) => {\n if (\n !configurationActors?.includes(actor) &&\n !changedActors.includes(actor)\n ) {\n changedActors.push(actor);\n }\n });\n const configurationWorkobjects = changedDomain.workObjects.keysArray();\n usedIcons?.workobjects.forEach((workobject) => {\n if (\n !configurationWorkobjects?.includes(workobject) &&\n !changedWorkobjects.includes(workobject)\n ) {\n changedWorkobjects.push(workobject);\n }\n });\n\n if (!changedActors.length && !changedWorkobjects.length) {\n this.changedDomainCofiguration = changedDomain;\n\n this.updateIcons(changedDomain);\n\n this.storageService.setStoredDomainConfiguration(\n this.changedDomainCofiguration\n );\n this.snackbar.open(\n imported\n ? 'Configuration imported successfully'\n : 'Configuration saved sucessfully',\n undefined,\n {\n duration: SNACKBAR_DURATION,\n panelClass: SNACKBAR_SUCCESS,\n }\n );\n }\n } else {\n this.snackbar.open(\n imported\n ? 'No configuration to be imported'\n : 'No configuration to be saved',\n undefined,\n {\n duration: SNACKBAR_DURATION,\n panelClass: SNACKBAR_INFO,\n }\n );\n }\n if (changedActors.length || changedWorkobjects.length) {\n if (changedActors.length) {\n const actors = changedActors.join(', ');\n this.snackbar.open(\n `The following icons are already in use as actors and cannot be changed: ${actors}`,\n undefined,\n {\n duration: SNACKBAR_DURATION * 3,\n panelClass: SNACKBAR_INFO,\n }\n );\n }\n if (changedWorkobjects.length) {\n const workobjects = changedWorkobjects.join(', ');\n this.snackbar.open(\n `The following icons are already in use as workobjects and cannot be changed: ${workobjects}`,\n undefined,\n {\n duration: SNACKBAR_DURATION * 3,\n panelClass: SNACKBAR_INFO,\n }\n );\n }\n }\n }\n\n exportDomain(): void {\n this.configurationService.exportConfiguration();\n }\n\n getAndClearSavedConfiguration(): DomainConfiguration | undefined {\n const temp = this.changedDomainCofiguration;\n this.changedDomainCofiguration = undefined;\n\n return temp;\n }\n\n private createDomainConfiguration(): DomainConfiguration {\n const actors = new Dictionary();\n const workObjects = new Dictionary();\n\n this.domainConfigurationTypes.value.actors.forEach((type: string) => {\n actors.add(this.iconDictionaryService.getIconSource(type), type);\n });\n this.domainConfigurationTypes.value.workObjects.forEach((type: string) => {\n workObjects.add(this.iconDictionaryService.getIconSource(type), type);\n });\n\n return {\n name: this.domainConfigurationTypes.value.name || '',\n actors,\n workObjects,\n };\n }\n\n /** Update Icons **/\n addNewIcon(iconName: string): void {\n const iconDict = new Dictionary();\n iconDict.add(this.getSrcForIcon(iconName), iconName);\n this.iconDictionaryService.addIconsToCss(iconDict);\n this.addIconToAllIconList(iconName);\n }\n\n private addIconToAllIconList(iconName: string): void {\n this.allIconListItems.add(\n new BehaviorSubject({\n name: iconName,\n svg: this.getSrcForIcon(iconName),\n isActor: this.isIconActor(iconName),\n isWorkObject: this.isIconWorkObject(iconName),\n }),\n iconName\n );\n }\n\n private updateIcon(\n isActor: boolean,\n isWorkobject: boolean,\n iconName: string\n ) {\n const iconBehaviourSubject = this.getIconForName(iconName);\n const icon = iconBehaviourSubject.value;\n icon.isActor = isActor;\n icon.isWorkObject = isWorkobject;\n\n iconBehaviourSubject.next(icon);\n }\n\n private updateAllIconBehaviourSubjects(): void {\n const customDomainCofiguration = this.domainConfigurationTypes.value;\n this.allIconListItems.keysArray().forEach((iconName) => {\n if (customDomainCofiguration.actors.includes(iconName)) {\n this.updateIcon(true, false, iconName);\n } else if (customDomainCofiguration.workObjects.includes(iconName)) {\n this.updateIcon(false, true, iconName);\n } else {\n this.updateIcon(false, false, iconName);\n }\n });\n }\n\n private getSrcForIcon(name: string): string {\n let iconName: string;\n if (name.includes(elementTypes.DOMAINSTORY)) {\n iconName = getNameFromType(name);\n } else {\n iconName = name;\n }\n const rawSrc = this.iconDictionaryService.getIconSource(iconName);\n\n if (!rawSrc) {\n return '';\n }\n\n if (rawSrc.startsWith('data')) {\n return rawSrc;\n } else {\n return 'data:image/svg+xml,' + rawSrc;\n }\n }\n\n private updateIcons(changedDomain: DomainConfiguration) {\n this.allIconListItems\n .keysArray()\n .forEach((item) => this.setAsUnassigned(item, this.isIconActor(item)));\n changedDomain.actors\n .keysArray()\n .forEach((actor) => this.setAsActor(true, actor));\n changedDomain.workObjects\n .keysArray()\n .forEach((workObject) => this.setAsWorkobject(true, workObject));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\nimport { getNameFromType } from 'src/app/Utils/naming';\nimport {\n allIcons,\n appendedIcons,\n} from 'src/app/Domain/Domain-Configuration/allIcons';\nimport {\n defaultConf,\n IconConfiguration,\n} from 'src/app/Domain/Common/iconConfiguration';\nimport { Configuration } from 'src/app/Domain/Common/configuration';\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\nimport { sanitizeIconName } from '../../Utils/sanitizer';\n\nexport const ICON_PREFIX = 'icon-domain-story-';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconDictionaryService {\n private actorIconDictionary = new Dictionary();\n private workObjectDictionary = new Dictionary();\n\n private allIconDictionary = new Dictionary();\n private iconDictionaryForBPMN = new Dictionary();\n\n private customConfiguration?: DomainConfiguration;\n\n private readonly iconConfig: IconConfiguration;\n\n constructor() {\n this.allIconDictionary.addEach(allIcons);\n this.iconConfig = new IconConfiguration(this.allIconDictionary);\n }\n\n initTypeDictionaries(actors: string[], workObjects: string[]): void {\n if (!actors || actors.length == 0) {\n actors = defaultConf.actors;\n }\n if (!workObjects || workObjects.length == 0) {\n workObjects = defaultConf.workObjects;\n }\n\n const allTypes = new Dictionary();\n allTypes.addEach(allIcons);\n allTypes.appendDict(this.getAppendedIconDictionary());\n\n this.initDictionary(\n actors,\n allTypes,\n this.actorIconDictionary,\n elementTypes.ACTOR\n );\n this.initDictionary(\n workObjects,\n allTypes,\n this.workObjectDictionary,\n elementTypes.WORKOBJECT\n );\n }\n\n private initDictionary(\n keys: string[],\n allTypes: Dictionary,\n dictionary: Dictionary,\n namePrefix: elementTypes\n ) {\n dictionary.clear();\n for (const key of keys) {\n const name = namePrefix + key;\n dictionary.add(allTypes.get(key), name);\n }\n\n dictionary.keysArray().forEach((entry) => {\n const name = getNameFromType(entry);\n this.registerIconForBPMN(\n entry,\n ICON_PREFIX + sanitizeIconName(name.toLowerCase())\n );\n });\n }\n\n getCurrentIconConfigurationForBPMN(): Configuration {\n if (this.customConfiguration) {\n return this.iconConfig.createCustomConf(this.customConfiguration);\n }\n return this.iconConfig.getDefaultConf();\n }\n\n allInTypeDictionary(type: elementTypes, elements: BusinessObject[]): boolean {\n let collection: Dictionary;\n if (type === elementTypes.ACTOR) {\n collection = this.actorIconDictionary;\n } else if (type === elementTypes.WORKOBJECT) {\n collection = this.workObjectDictionary;\n }\n\n let allIn = true;\n if (elements) {\n elements.forEach((element) => {\n if (!collection.has(element.type)) {\n allIn = false;\n }\n });\n } else {\n return false;\n }\n return allIn;\n }\n\n /** Load Icons from Configuration **/\n\n addIconsFromDomainConfiguration(\n dictionaryType: elementTypes,\n iconTypes: string[]\n ): void {\n let collection: Dictionary;\n if (dictionaryType === elementTypes.ACTOR) {\n collection = this.actorIconDictionary;\n } else if (dictionaryType === elementTypes.WORKOBJECT) {\n collection = this.workObjectDictionary;\n }\n\n const allTypes = new Dictionary();\n allTypes.addEach(allIcons);\n allTypes.appendDict(appendedIcons);\n\n iconTypes.forEach((type) => {\n if (!collection.has(type)) {\n const name = getNameFromType(type);\n const src = allTypes.get(name);\n if (src) {\n this.registerIconForType(dictionaryType, type, src);\n this.registerIconForBPMN(\n type,\n sanitizeIconName(ICON_PREFIX + name.toLowerCase())\n );\n }\n }\n });\n }\n\n /** Add Icon(s) to Dictionary **/\n registerIconForBPMN(name: string, src: string): void {\n this.iconDictionaryForBPMN.set(name, src);\n }\n\n addIconsToTypeDictionary(\n actorIcons: BusinessObject[],\n workObjectIcons: BusinessObject[]\n ) {\n if (!this.allInTypeDictionary(elementTypes.ACTOR, actorIcons)) {\n this.addIconsFromDomainConfiguration(\n elementTypes.ACTOR,\n actorIcons.map((element) => element.type)\n );\n }\n if (!this.allInTypeDictionary(elementTypes.WORKOBJECT, workObjectIcons)) {\n this.addIconsFromDomainConfiguration(\n elementTypes.WORKOBJECT,\n workObjectIcons.map((element) => element.type)\n );\n }\n }\n\n registerIconForType(type: elementTypes, name: string, src: string): void {\n if (!name.includes(type)) {\n name = type + name;\n }\n\n let collection = new Dictionary();\n if (type === elementTypes.ACTOR) {\n collection = this.actorIconDictionary;\n } else if (type === elementTypes.WORKOBJECT) {\n collection = this.workObjectDictionary;\n }\n collection.set(name, src);\n }\n\n updateIconRegistries(\n actors: BusinessObject[],\n workObjects: BusinessObject[],\n config: DomainConfiguration\n ): void {\n const elements: BusinessObject[] = [];\n\n actors.forEach((a) => elements.push(a));\n workObjects.forEach((w) => elements.push(w));\n\n const customIcons = new Dictionary();\n\n const actorsDict = new Dictionary();\n const workObjectsDict = new Dictionary();\n config.actors.keysArray().forEach((key) => {\n actorsDict.add(config.actors.get(key), key);\n });\n config.workObjects.keysArray().forEach((key) => {\n workObjectsDict.add(config.workObjects.get(key), key);\n });\n\n this.extractCustomIconsFromDictionary(actorsDict, customIcons);\n this.extractCustomIconsFromDictionary(workObjectsDict, customIcons);\n\n elements.forEach((element) => {\n const name = sanitizeIconName(\n element.type\n .replace(elementTypes.ACTOR, '')\n .replace(elementTypes.WORKOBJECT, '')\n );\n if (\n (element.type.includes(elementTypes.ACTOR) ||\n element.type.includes(elementTypes.WORKOBJECT)) &&\n !this.getFullDictionary().has(name)\n ) {\n this.registerIconForBPMN(\n ICON_PREFIX + name.toLowerCase(),\n element.type\n );\n }\n });\n\n this.addNewIconsToDictionary(customIcons);\n this.addIconsToTypeDictionary(actors, workObjects);\n }\n\n private extractCustomIconsFromDictionary(\n elementDictionary: Dictionary,\n customIcons: Dictionary\n ) {\n elementDictionary.keysArray().forEach((name) => {\n const sanitizedName = sanitizeIconName(name);\n if (!this.getFullDictionary().has(sanitizedName)) {\n customIcons.add(elementDictionary.get(name), sanitizedName);\n }\n });\n }\n\n /** Add new Icon(s) **/\n\n addNewIconsToDictionary(customIcons: Dictionary) {\n customIcons.keysArray().forEach((key) => {\n const custom = customIcons.get(key);\n this.addIMGToIconDictionary(custom.src, key);\n });\n this.addIconsToCss(customIcons);\n }\n\n addIMGToIconDictionary(input: string, name: string): void {\n appendedIcons.set(name, input);\n }\n\n addIconsToCss(customIcons: Dictionary) {\n const sheetEl = document.getElementById('iconsCss');\n customIcons.keysArray().forEach((key) => {\n const src = customIcons.get(key);\n const iconStyle =\n '.' +\n ICON_PREFIX +\n sanitizeIconName(key.toLowerCase()) +\n '::before{ content: url(\"data:image/svg+xml;utf8,' +\n this.wrapSRCInSVG(src) +\n '\"); margin: 3px;}';\n // @ts-ignore\n sheetEl?.sheet?.insertRule(iconStyle, sheetEl.sheet.cssRules.length);\n });\n }\n\n private wrapSRCInSVG(src: string): string {\n return (\n \"\"\n );\n }\n\n /** Getter & Setter **/\n\n getFullDictionary(): Dictionary {\n const fullDictionary = new Dictionary();\n fullDictionary.appendDict(this.allIconDictionary);\n fullDictionary.appendDict(this.getAppendedIconDictionary());\n return fullDictionary;\n }\n\n getAppendedIconDictionary(): Dictionary {\n const appendedDict = new Dictionary();\n appendedIcons.keysArray().forEach((key) => {\n if (!this.allIconDictionary.has(key)) {\n appendedDict.set(key, appendedIcons.get(key));\n }\n });\n return appendedDict;\n }\n\n getTypeDictionary(type: elementTypes): Dictionary {\n if (type === elementTypes.ACTOR) {\n return this.actorIconDictionary;\n } else if (type === elementTypes.WORKOBJECT) {\n return this.workObjectDictionary;\n }\n return new Dictionary();\n }\n\n getTypeDictionaryKeys(type: elementTypes): string[] {\n return this.getTypeDictionary(type).keysArray();\n }\n\n getTypeIconSRC(type: elementTypes, name: string): string | null {\n if (type === elementTypes.ACTOR) {\n if (!name.startsWith(elementTypes.ACTOR)) {\n name = elementTypes.ACTOR + name;\n }\n return this.actorIconDictionary.get(name);\n } else if (type === elementTypes.WORKOBJECT) {\n if (!name.startsWith(elementTypes.WORKOBJECT)) {\n name = elementTypes.WORKOBJECT + name;\n }\n return this.workObjectDictionary.get(name);\n }\n return null;\n }\n\n getIconForBPMN(type: elementTypes): string | null {\n return this.iconDictionaryForBPMN.get(type);\n }\n\n getIconSource(name: string): string | null {\n if (this.allIconDictionary.has(name)) {\n return this.allIconDictionary.get(name);\n } else if (appendedIcons.has(name)) {\n return appendedIcons.get(name);\n }\n return null;\n }\n\n getElementsOfType(\n elements: BusinessObject[],\n type: elementTypes\n ): BusinessObject[] {\n const elementOfType: any = [];\n elements.forEach((element) => {\n if (element.type.includes(type)) {\n elementOfType.push(element);\n }\n });\n return elementOfType;\n }\n\n getAllIconDictionary(): Dictionary {\n return this.allIconDictionary;\n }\n\n getActorsDictionary(): Dictionary {\n return this.actorIconDictionary;\n }\n\n getWorkObjectsDictionary(): Dictionary {\n return this.workObjectDictionary;\n }\n\n getIconConfiguration(): IconConfiguration {\n return this.iconConfig;\n }\n\n setCusomtConfiguration(customConfiguration: DomainConfiguration): void {\n this.customConfiguration = customConfiguration;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\nimport { CanvasObject } from 'src/app/Domain/Common/canvasObject';\nimport { GroupCanvasObject } from '../../Domain/Common/groupCanvasObject';\nimport { ActivityCanvasObject } from '../../Domain/Common/activityCanvasObject';\nimport { UsedIconList } from 'src/app/Domain/Domain-Configuration/UsedIconList';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ElementRegistryService {\n private registry: any;\n private fullyInitialized = false;\n\n /**\n * Initially the registry has only the root-Element.\n * Once the canvas has bees initialized, we adjust the reference to point to the elements on the canvas for convenience\n */\n correctInitialize(): void {\n if (!this.fullyInitialized) {\n if (this.registry.__implicitroot) {\n this.registry = this.registry.__implicitroot.element.children;\n this.fullyInitialized = true;\n }\n }\n }\n\n setElementRegistry(registry: any): void {\n this.registry = registry._elements;\n }\n\n clear(): void {\n this.registry = null;\n this.fullyInitialized = false;\n }\n\n createObjectListForDSTDownload(): CanvasObject[] {\n if (this.registry) {\n const allObjectsFromCanvas = this.getAllCanvasObjects();\n const groups = this.getAllGroups();\n\n const objectList: CanvasObject[] = [];\n\n this.fillListOfCanvasObjects(allObjectsFromCanvas, objectList, groups);\n\n return objectList;\n }\n return [];\n }\n\n private fillListOfCanvasObjects(\n allObjectsFromCanvas: CanvasObject[],\n objectList: CanvasObject[],\n groups: GroupCanvasObject[]\n ): void {\n allObjectsFromCanvas.forEach((canvasElement) => {\n if (canvasElement.type === elementTypes.ACTIVITY) {\n objectList.push(canvasElement);\n }\n\n // ensure that Activities are always after Actors, Workobjects and Groups in .dst files\n else {\n if (canvasElement.type === elementTypes.TEXTANNOTATION) {\n canvasElement.businessObject.width = canvasElement.width;\n canvasElement.businessObject.height = canvasElement.height;\n }\n if (!objectList.includes(canvasElement)) {\n objectList.unshift(canvasElement);\n }\n }\n });\n\n groups.forEach((group) => {\n objectList.push(group);\n });\n }\n\n getAllActivities(): ActivityCanvasObject[] {\n const activities: ActivityCanvasObject[] = [];\n\n this.getAllCanvasObjects().forEach((element) => {\n if (element.type.includes(elementTypes.ACTIVITY)) {\n activities.push(element as ActivityCanvasObject);\n }\n });\n return activities;\n }\n\n getAllConnections(): ActivityCanvasObject[] {\n const connections: ActivityCanvasObject[] = [];\n this.getAllCanvasObjects().forEach((element) => {\n const type = element.type;\n if (type === elementTypes.CONNECTION) {\n connections.push(element as ActivityCanvasObject);\n }\n });\n return connections;\n }\n\n getAllCanvasObjects(): CanvasObject[] {\n const allObjects: CanvasObject[] = [];\n const groupObjects: GroupCanvasObject[] = [];\n\n this.checkChildForGroup(groupObjects, allObjects);\n\n // for each memorized group, remove it from the group-array and check its children, whether they are groups or not\n // if a child is a group, memorize it in the group-array\n // other children should already be in the allObjects list\n let i = groupObjects.length - 1;\n while (groupObjects.length >= 1) {\n const currentGroup = groupObjects.pop();\n // @ts-ignore\n currentGroup.children.forEach((child: CanvasObject) => {\n const type = child.type;\n if (type.includes(elementTypes.GROUP)) {\n groupObjects.push(child as GroupCanvasObject);\n }\n });\n i = groupObjects.length - 1;\n }\n return allObjects;\n }\n\n // returns all groups on the canvas and inside other groups\n getAllGroups(): GroupCanvasObject[] {\n const groupObjects: GroupCanvasObject[] = [];\n const allObjects: CanvasObject[] = [];\n\n this.checkChildForGroup(groupObjects, allObjects);\n\n for (const group of groupObjects) {\n group.children?.forEach((child: CanvasObject) => {\n if (child.type.includes(elementTypes.GROUP)) {\n groupObjects.push(child as GroupCanvasObject);\n }\n });\n }\n return groupObjects;\n }\n\n private checkChildForGroup(\n groupObjects: GroupCanvasObject[],\n allObjects: CanvasObject[]\n ): void {\n const registryElementNames = Object.keys(this.registry);\n for (let name of registryElementNames) {\n const entry = this.registry[name].element;\n if (entry.businessObject) {\n const type = entry.type;\n if (type && type.includes(elementTypes.GROUP)) {\n // if it is a group, memorize this for later\n groupObjects.push(entry);\n } else if (type) {\n allObjects.push(entry);\n }\n }\n }\n }\n\n // get a list of activities, that originate from an actor-type\n getActivitiesFromActors(): ActivityCanvasObject[] {\n const activitiesFromActors: ActivityCanvasObject[] = [];\n const activities = this.getAllActivities();\n\n activities.forEach((activity: ActivityCanvasObject) => {\n if (activity.source?.type.includes(elementTypes.ACTOR)) {\n activitiesFromActors.push(activity);\n }\n });\n return activitiesFromActors;\n }\n\n getUsedIcons(): UsedIconList {\n const actors = this.getAllActors();\n const workobjects = this.getAllWorkobjects();\n\n return {\n actors: actors.map((a) => a.type.replace(elementTypes.ACTOR, '')),\n workobjects: workobjects.map((w) =>\n w.type.replace(elementTypes.WORKOBJECT, '')\n ),\n };\n }\n\n private getAllActors() {\n return this.getAllCanvasObjects().filter((co) =>\n co.type.includes(elementTypes.ACTOR)\n );\n }\n\n private getAllWorkobjects() {\n return this.getAllCanvasObjects().filter((co) =>\n co.type.includes(elementTypes.WORKOBJECT)\n );\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { DomainConfigurationService } from 'src/app/Service/DomainConfiguration/domain-configuration.service';\nimport { sanitizeForDesktop } from 'src/app/Utils/sanitizer';\nimport { TitleService } from 'src/app/Service/Title/title.service';\nimport { ConfigAndDST } from 'src/app/Domain/Export/configAndDst';\nimport { DirtyFlagService } from 'src/app/Service/DirtyFlag/dirty-flag.service';\nimport { PngService } from 'src/app/Service/Export/png.service';\nimport { SvgService } from 'src/app/Service/Export/svg.service';\nimport { Subscription } from 'rxjs';\nimport { RendererService } from '../Renderer/renderer.service';\nimport { HtmlPresentationService } from './html-presentation.service';\nimport { VERSION } from '../../Domain/Common/constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ExportService implements OnDestroy {\n titleSubscription: Subscription;\n descriptionSubscription: Subscription;\n\n title = '';\n description = '';\n\n constructor(\n private configurationService: DomainConfigurationService,\n private titleService: TitleService,\n private dirtyFlagService: DirtyFlagService,\n private pngService: PngService,\n private svgService: SvgService,\n private htmlPresentationService: HtmlPresentationService,\n private rendererService: RendererService\n ) {\n this.titleSubscription = this.titleService.title$.subscribe(\n (title: string) => {\n this.title = title;\n }\n );\n this.descriptionSubscription = this.titleService.description$.subscribe(\n (description: string) => {\n this.description = description;\n }\n );\n }\n\n ngOnDestroy(): void {\n this.titleSubscription.unsubscribe();\n this.descriptionSubscription.unsubscribe();\n }\n\n isDomainStoryExportable(): boolean {\n return this.rendererService.getStory().length >= 1;\n }\n\n createConfigAndDST(DomainStory: any): ConfigAndDST {\n return new ConfigAndDST(\n this.configurationService.getCurrentConfigurationForExport(),\n DomainStory\n );\n }\n\n downloadDST(): void {\n const dst = this.getStoryForDownload();\n const configAndDST = this.createConfigAndDST(dst);\n const json = JSON.stringify(configAndDST, null, 2);\n\n const filename = sanitizeForDesktop(\n this.title + '_' + new Date().toString().slice(0, 10)\n );\n\n this.downloadFile(\n json,\n 'data:text/plain;charset=utf-8,',\n filename,\n '.egn',\n true\n );\n }\n\n private downloadFile(\n data: string,\n datatype: string,\n filename: string,\n fileEnding: string,\n makeClean: boolean\n ) {\n const element = document.createElement('a');\n element.setAttribute('href', datatype + encodeURIComponent(data));\n element.setAttribute('download', filename + fileEnding);\n\n element.style.display = 'none';\n document.body.appendChild(element);\n\n element.click();\n\n if (makeClean) {\n this.dirtyFlagService.makeClean();\n }\n\n document.body.removeChild(element);\n }\n\n downloadSVG(withTitle: boolean, useWhiteBackground: boolean): void {\n const story = this.getStoryForDownload();\n const dst = this.createConfigAndDST(story);\n\n const svgData = this.svgService.createSVGData(\n this.title,\n this.description,\n dst,\n withTitle,\n useWhiteBackground\n );\n\n this.downloadFile(\n svgData,\n 'data:application/bpmn20-xml;charset=UTF-8,',\n sanitizeForDesktop(this.title),\n '.egn.svg',\n true\n );\n }\n\n downloadPNG(withTitle: boolean): void {\n const canvas = document.getElementById('canvas');\n if (canvas) {\n const container = canvas.getElementsByClassName('djs-container');\n const svgElements = container[0].getElementsByTagName('svg');\n const outerSVGElement = svgElements[0];\n const viewport = outerSVGElement.getElementsByClassName('viewport')[0];\n const layerBase = viewport.getElementsByClassName('layer-base')[0];\n\n const image = document.createElement('img');\n\n // removes unwanted black dots in image\n let svg = this.pngService.extractSVG(viewport, outerSVGElement);\n\n svg = this.pngService.prepareSVG(\n svg,\n layerBase,\n this.description,\n this.title,\n withTitle\n );\n\n image.onload = () => {\n const tempCanvas = document.createElement('canvas');\n\n // add a 10px buffer to the right and lower boundary\n tempCanvas.width = this.pngService.getWidth() + 10;\n tempCanvas.height = this.pngService.getHeight() + 10;\n\n const ctx = tempCanvas.getContext('2d');\n if (ctx) {\n // fill with white background\n ctx.rect(0, 0, tempCanvas.width, tempCanvas.height);\n ctx.fillStyle = 'white';\n ctx.fill();\n\n ctx.drawImage(image, 0, 0);\n }\n\n const png64 = tempCanvas.toDataURL('image/png');\n const ele = document.createElement('a');\n ele.setAttribute(\n 'download',\n sanitizeForDesktop(this.title) +\n '_' +\n new Date().toISOString().slice(0, 10) +\n '.png'\n );\n ele.setAttribute('href', png64);\n document.body.appendChild(ele);\n ele.click();\n document.body.removeChild(ele);\n\n // image source has to be removed to circumvent browser caching\n image.src = '';\n };\n image.onchange = image.onload;\n\n image.width = this.pngService.getWidth();\n image.height = this.pngService.getHeight();\n\n image.src = 'data:image/svg+xml,' + svg;\n }\n }\n\n downloadHTMLPresentation(): void {\n const filename = sanitizeForDesktop(\n this.title + '_' + new Date().toString().slice(0, 10)\n );\n this.htmlPresentationService.downloadHTMLPresentation(filename).then();\n }\n\n private getStoryForDownload(): unknown[] {\n const story = this.rendererService.getStory() as unknown[];\n story.push({ info: this.titleService.getDescription() });\n story.push({ version: VERSION });\n return story;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { sanitizeForDesktop } from '../../Utils/sanitizer';\nimport { ReplayService } from '../Replay/replay.service';\n// @ts-ignore\nimport doT from 'dot';\nimport { TitleService } from '../Title/title.service';\n\n@Injectable({\n providedIn: 'root',\n})\n/**\n * Initial idea and PR from https://github.com/indika-dev\n */\nexport class HtmlPresentationService {\n constructor(\n private replayService: ReplayService,\n private titleService: TitleService\n ) {}\n\n private multiplexSecret: any;\n private multiplexId: any;\n\n private modeler: any;\n\n setModelerClasses(canvas: any, selection: any, modeler: any): void {\n this.modeler = modeler;\n }\n\n private static viewBoxCoordinates(svg: any): any {\n const ViewBoxCoordinate =\n /width=\"([^\"]+)\"\\s+height=\"([^\"]+)\"\\s+viewBox=\"([^\"]+)\"/;\n const match = svg.match(ViewBoxCoordinate);\n return match[3];\n }\n\n /*\n ---------------------------\n SVG handling starts here\n ----------------------------\n */\n\n async downloadHTMLPresentation(filename: string): Promise {\n const svgData = [];\n // export all sentences of domain story\n this.replayService.startReplay();\n try {\n const result = await this.modeler.saveSVG({});\n this.fixActivityMarkersForEachStep(\n result,\n this.replayService.getCurrentStepNumber()\n );\n svgData.push({\n content: HtmlPresentationService.createSVGData(result.svg),\n transition: 'slide',\n });\n } catch (err) {\n alert('There was an error exporting the SVG.\\n' + err);\n }\n while (\n this.replayService.getCurrentStepNumber() <\n this.replayService.getMaxStepNumber()\n ) {\n this.replayService.nextStep();\n try {\n const result = await this.modeler.saveSVG({});\n this.fixActivityMarkersForEachStep(\n result,\n this.replayService.getCurrentStepNumber()\n );\n svgData.push({\n content: HtmlPresentationService.createSVGData(result.svg),\n transition: 'slide',\n });\n } catch (err) {\n alert('There was an error exporting the SVG.\\n' + err);\n }\n }\n this.replayService.stopReplay();\n\n // create download for presentation\n const revealjsTemplate = document.getElementById('revealjs-template');\n const dots = doT.template(revealjsTemplate?.innerHTML);\n const revealjsData = {\n script: 'script',\n title: this.titleService.getTitle(),\n description: this.titleService.getDescription(),\n sentences: svgData,\n multiplexSecret: this.multiplexSecret,\n multiplexId: this.multiplexId,\n };\n const element = document.createElement('a');\n element.setAttribute(\n 'href',\n 'data:text/html;charset=UTF-8,' +\n this.fixMalformedHtmlScript(dots, revealjsData)\n );\n element.setAttribute('download', sanitizeForDesktop(filename) + '.html');\n element.style.display = 'none';\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n }\n\n private fixMalformedHtmlScript(\n dots: any,\n revealjsData: {\n multiplexId: any;\n sentences: any[];\n multiplexSecret: any;\n description: string;\n title: string;\n script: string;\n }\n ) {\n return dots(revealjsData).replace(''),\n result.svg.indexOf('') + 7\n );\n const split = defs.split(' {\n const idToReplace = id.substring(4, id.length - 1);\n const newId =\n idToReplace.slice(0, id.length - 5) +\n 'customId' +\n sectionIndex +\n idToReplace.slice(idToReplace.length - 2);\n // @ts-ignore\n result.svg = result.svg.replaceAll(idToReplace, newId);\n });\n newDefs += '= 72) {\n fix = true;\n // https://www.chromestatus.com/features/5656049583390720\n }\n } else if (name.includes('Firefox')) {\n fix = true;\n\n // versionNumber of implementation unknown\n }\n if (fix) {\n while (svg.includes('#')) {\n svg = svg.replace('#', '%23');\n }\n }\n return svg;\n }\n\n findMostOuterElements(svg: HTMLElement): Box {\n let xLeft = 0;\n let xRight = 0;\n let yUp = 0;\n let yDown = 0;\n\n const elements = svg.getElementsByClassName('djs-group');\n\n // tslint:disable-next-line:prefer-for-of\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const sub = element.children;\n\n let elXLeft: number;\n let elXRight: number;\n let elYUp: number;\n let elYDown: number;\n\n const transform = sub[0].getAttribute('transform');\n if (transform) {\n let nums;\n\n if (transform.includes('matrix')) {\n transform.replace('matrix(', '');\n transform.replace(')', '');\n nums = transform.split(' ');\n elXLeft = parseInt(nums[4]);\n elYUp = parseInt(nums[5]);\n } else {\n transform.replace('translate(', '');\n transform.replace(')', '');\n nums = transform.split(' ');\n elXLeft = parseInt(nums[0]);\n elYUp = parseInt(nums[1]);\n }\n\n const rects = sub[0].getElementsByTagName('rect');\n const outerRect = rects[rects.length - 1];\n\n const width = outerRect.getAttribute('width');\n\n elXRight = elXLeft + parseInt(width != null ? width : '0');\n elYDown = elYUp + sub[0].getBoundingClientRect().height;\n } else {\n const rects = element.getElementsByTagName('rect');\n const outerRect = rects[rects.length - 1];\n\n const x = outerRect.getAttribute('x');\n const y = outerRect.getAttribute('y');\n\n elXLeft = parseInt(x != null ? x : '0');\n elYUp = parseInt(y != null ? y : '0');\n\n const width = outerRect.getAttribute('width');\n const height = outerRect.getAttribute('height');\n\n elXRight = elXLeft + parseInt(width != null ? width : '0');\n elYDown = elYUp + parseInt(height != null ? height : '0') + 20; // Add 20 px as Padding for text at the bottom\n }\n if (elXLeft < xLeft) {\n xLeft = elXLeft;\n }\n if (elXRight > xRight) {\n xRight = elXRight;\n }\n if (elYUp < yUp) {\n yUp = elYUp;\n }\n if (elYDown > yDown) {\n yDown = elYDown;\n }\n }\n\n yUp -= 75; // we need to adjust yUp to have space for the title and description\n\n return {\n xLeft,\n xRight,\n yUp,\n yDown,\n };\n }\n\n prepareSVG(\n svg: string,\n layerBase: any,\n description: string,\n title: string,\n withTitle: boolean\n ): string {\n const box = this.findMostOuterElements(layerBase);\n let viewBoxIndex = svg.indexOf('width=\"');\n\n this.calculateWidthAndHeight(box);\n\n const { insertText, extraHeight } = createTitleAndDescriptionSVGElement(\n title,\n description,\n box.xLeft,\n box.yUp + 20,\n this.width\n );\n if (withTitle) {\n this.height += extraHeight;\n }\n\n const bounds = this.createBounds(box, extraHeight);\n\n const dataStart = svg.substring(0, viewBoxIndex);\n viewBoxIndex = svg.indexOf('style=\"');\n\n const dataEnd = svg.substring(viewBoxIndex);\n dataEnd.substring(viewBoxIndex);\n\n svg = dataStart + bounds + dataEnd;\n\n const insertIndex = svg.indexOf('') + 20;\n\n if (withTitle) {\n svg = [\n svg.slice(0, insertIndex),\n insertText,\n svg.slice(insertIndex),\n ].join('');\n }\n svg = this.URIHashtagFix(svg);\n\n return svg;\n }\n\n private createBounds(box: Box, extraHeight: number) {\n return (\n 'width=\"' +\n this.width +\n '\" height=\"' +\n this.height +\n '\" viewBox=\" ' +\n box.xLeft +\n ' ' +\n (box.yUp - extraHeight) +\n ' ' +\n this.width +\n ' ' +\n this.height +\n '\" '\n );\n }\n\n /**\n * Calculate the Width and Height of the Bounding Box for the PNG so no Parts are cut off\n * TODO Longer Iconnames can still be cut of, when the Element is the lowest Object on the canvas, same for Activities\n */\n private calculateWidthAndHeight(box: Box): [number, number] {\n if (box.xLeft < 0) {\n if (box.xRight < 0) {\n this.width = Math.abs(box.xLeft - box.xRight);\n } else {\n this.width = Math.abs(box.xLeft) + box.xRight;\n }\n } else {\n this.width = box.xRight - box.xLeft;\n }\n\n if (box.yUp < 0) {\n if (box.yDown < 0) {\n this.height = Math.abs(box.yUp - box.yDown);\n } else {\n this.height = Math.abs(box.yUp) + box.yDown;\n }\n } else {\n this.height = box.yDown - box.yUp;\n }\n\n // if the domain-Story is smaller than 300px in width or height, increase its dimensions\n if (this.height < 300) {\n this.height += 300;\n box.yUp -= 150;\n box.yDown += 150;\n }\n if (this.width < 300) {\n this.width += 300;\n box.xLeft -= 150;\n box.xRight += 150;\n }\n return [this.height, this.width];\n }\n\n extractSVG(viewport: any, outerSVGElement: any): string {\n const layerResizers = viewport.getElementsByClassName('layer-resizers');\n const layerOverlays = viewport.getElementsByClassName('layer-overlays');\n const transform = viewport.getAttribute('transform');\n const translate = viewport.getAttribute('translate');\n\n if (layerResizers[0]) {\n layerResizers[0].parentNode.removeChild(layerResizers[0]);\n }\n if (layerOverlays[0]) {\n layerOverlays[0].parentNode.removeChild(layerOverlays[0]);\n }\n\n // remove canvas scrolling and scaling before serializeToString of SVG\n if (transform) {\n viewport.removeAttribute('transform');\n }\n if (translate) {\n viewport.removeAttribute('translate');\n }\n\n const svg = new XMLSerializer().serializeToString(outerSVGElement);\n\n // re-add canvas scrolling and scaling\n if (transform) {\n viewport.setAttribute('transform', transform);\n }\n if (translate) {\n viewport.setAttribute('translate', translate);\n }\n return svg;\n }\n\n getWidth(): number {\n return this.width;\n }\n\n getHeight(): number {\n return this.height;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigAndDST } from 'src/app/Domain/Export/configAndDst';\nimport { createTitleAndDescriptionSVGElement } from 'src/app/Service/Export/exportUtil';\nimport { ModelerService } from '../Modeler/modeler.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SvgService {\n private cacheData = '';\n\n constructor(private modelerService: ModelerService) {}\n\n createSVGData(\n title: string,\n description: string,\n dst: ConfigAndDST,\n withTitle: boolean,\n useWhiteBackground: boolean\n ): string {\n this.cacheData = this.modelerService.getEncoded();\n\n let data = structuredClone(this.cacheData);\n\n let viewBoxIndex = data.indexOf('width=\"');\n\n let { width, height, viewBox } = this.viewBoxCoordinates(data);\n\n let xLeft: number;\n let xRight: number;\n let yUp: number;\n let yDown: number;\n const splitViewBox = viewBox.split(/\\s/);\n\n xLeft = +splitViewBox[0];\n yUp = +splitViewBox[1];\n xRight = +splitViewBox[2];\n yDown = +splitViewBox[3];\n\n if (xRight < 300) {\n xRight += 300;\n width += 300;\n }\n\n const { insertText, extraHeight } = createTitleAndDescriptionSVGElement(\n title,\n description,\n xLeft,\n yUp,\n width\n );\n if (withTitle) {\n // to display the title and description in the SVG-file, we need to add a container for the text-elements\n height += extraHeight + 80;\n }\n\n const bounds = this.createBounds(\n width,\n height,\n xLeft,\n yUp,\n xRight,\n yDown,\n withTitle\n );\n\n const dataStart = data.substring(0, viewBoxIndex);\n viewBoxIndex = data.indexOf('\" version');\n\n const dataEnd = data.substring(viewBoxIndex);\n dataEnd.substring(viewBoxIndex);\n\n data = dataStart + bounds + dataEnd;\n\n const insertIndex = this.findIndexToInsertData(data);\n\n if (withTitle) {\n data = data.slice(0, insertIndex) + insertText + data.slice(insertIndex);\n }\n\n if (useWhiteBackground) {\n const svgIndex = data.indexOf('width=\"');\n const backgroundColorWhite = 'style=\"background-color:white\" ';\n data =\n data.slice(0, svgIndex) + backgroundColorWhite + data.slice(svgIndex);\n }\n\n return this.appendDST(data, dst);\n }\n\n private findIndexToInsertData(data: string) {\n let insertIndex = data.indexOf('');\n if (insertIndex < 0) {\n insertIndex = data.indexOf('version=\"1.2\">') + 14;\n } else {\n insertIndex += 7;\n }\n return insertIndex;\n }\n\n private createBounds(\n width: number,\n height: number,\n xLeft: number,\n yUp: number,\n xRight: number,\n yDown: number,\n withTitle: boolean\n ): string {\n return (\n 'width=\"' +\n width +\n '\" height=\" ' +\n height +\n '\" viewBox=\"' +\n xLeft +\n ' ' +\n (withTitle ? yUp - 80 : yUp) +\n ' ' +\n xRight +\n ' ' +\n (yDown + 30)\n );\n }\n\n private viewBoxCoordinates(svg: string): {\n width: number;\n height: number;\n viewBox: string;\n } {\n const ViewBoxCoordinate =\n /width=\"([^\"]+)\"\\s+height=\"([^\"]+)\"\\s+viewBox=\"([^\"]+)\"/;\n const match = svg.match(ViewBoxCoordinate);\n if (match) {\n return { width: +match[1], height: +match[2], viewBox: match[3] };\n }\n return { width: 0, height: 0, viewBox: '' };\n }\n\n private appendDST(data: string, dst: ConfigAndDST): string {\n data += '\\n';\n return data;\n }\n}\n","import { EventEmitter, Injectable, OnDestroy } from '@angular/core';\nimport { IconDictionaryService } from 'src/app/Service/DomainConfiguration/icon-dictionary.service';\nimport { Dictionary } from 'src/app/Domain/Common/dictionary/dictionary';\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\nimport { TitleService } from 'src/app/Service/Title/title.service';\nimport { ImportRepairService } from 'src/app/Service/Import/import-repair.service';\nimport { Observable, Subscription } from 'rxjs';\nimport { RendererService } from 'src/app/Service/Renderer/renderer.service';\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\nimport {\n DomainConfiguration,\n fromConfigurationFromFile,\n} from 'src/app/Domain/Common/domainConfiguration';\nimport { DialogService } from '../Dialog/dialog.service';\nimport { InfoDialogComponent } from '../../Presentation/Dialog/info-dialog/info-dialog.component';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { InfoDialogData } from '../../Domain/Dialog/infoDialogData';\nimport { restoreTitleFromFileName } from '../../Utils/sanitizer';\nimport {\n INITIAL_DESCRIPTION,\n INITIAL_TITLE,\n} from '../../Domain/Common/constants';\nimport { DomainConfigurationService } from '../DomainConfiguration/domain-configuration.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImportDomainStoryService implements OnDestroy {\n titleSubscription: Subscription;\n descriptionSubscription: Subscription;\n\n title = INITIAL_TITLE;\n description = INITIAL_DESCRIPTION;\n private importedConfiguration: DomainConfiguration | null = null;\n\n private importedConfigurationEmitter =\n new EventEmitter();\n\n constructor(\n private iconDictionaryService: IconDictionaryService,\n private importRepairService: ImportRepairService,\n private titleService: TitleService,\n private rendererService: RendererService,\n private dialogService: DialogService,\n private domainConfigurationService: DomainConfigurationService\n ) {\n this.titleSubscription = this.titleService.title$.subscribe(\n (title: string) => {\n this.title = title;\n }\n );\n this.descriptionSubscription = this.titleService.description$.subscribe(\n (description: string) => {\n this.description = description;\n }\n );\n }\n\n ngOnDestroy(): void {\n this.titleSubscription.unsubscribe();\n this.descriptionSubscription.unsubscribe();\n }\n\n get importedConfigurationEvent(): Observable {\n return this.importedConfigurationEmitter.asObservable();\n }\n\n getImportedConfiguration(): DomainConfiguration {\n const config: DomainConfiguration = {\n name: this.importedConfiguration?.name || '',\n actors: this.importedConfiguration?.actors || new Dictionary(),\n workObjects: this.importedConfiguration?.workObjects || new Dictionary(),\n };\n this.importedConfiguration = null;\n return config;\n }\n\n importDST(input: Blob, filename: string, isSVG: boolean): void {\n const fileReader = new FileReader();\n const titleText = restoreTitleFromFileName(filename, isSVG);\n\n // no need to put this on the commandStack\n this.titleService.updateTitleAndDescription(titleText, null, false);\n\n fileReader.onloadend = (e) => {\n if (e && e.target) {\n this.fileReaderFunction(e.target.result, isSVG, false);\n }\n };\n\n fileReader.readAsText(input);\n }\n\n importEGN(input: Blob, filename: string, isSVG: boolean): void {\n const fileReader = new FileReader();\n const titleText = restoreTitleFromFileName(filename, isSVG);\n\n // no need to put this on the commandStack\n this.titleService.updateTitleAndDescription(titleText, null, false);\n\n fileReader.onloadend = (e) => {\n if (e && e.target) {\n this.fileReaderFunction(e.target.result, isSVG, true);\n }\n };\n\n fileReader.readAsText(input);\n }\n\n private fileReaderFunction(\n text: string | ArrayBuffer | null,\n isSVG: boolean,\n isEGN: boolean\n ): void {\n let dstText;\n if (typeof text === 'string') {\n if (isSVG) {\n dstText = this.removeXMLComments(text);\n } else {\n dstText = text;\n }\n\n let elements: any[];\n let config: DomainConfiguration;\n let configFromFile: {\n name: string;\n actors: { [key: string]: any };\n workObjects: { [key: string]: any };\n };\n\n let dstAndConfig = this.extractDstAndConfig(dstText, isSVG);\n if (dstAndConfig == null) {\n return;\n }\n\n // current implementation\n if (dstAndConfig.domain) {\n configFromFile = isEGN\n ? dstAndConfig.domain\n : JSON.parse(dstAndConfig.domain);\n config = fromConfigurationFromFile(configFromFile);\n elements = isEGN ? dstAndConfig.dst : JSON.parse(dstAndConfig.dst);\n } else {\n // legacy implementation\n if (dstAndConfig.config) {\n configFromFile = JSON.parse(dstAndConfig.config);\n config = fromConfigurationFromFile(configFromFile);\n elements = JSON.parse(dstAndConfig.dst);\n } else {\n // implementation prior to configuration\n elements = JSON.parse(dstText);\n config =\n this.domainConfigurationService.createMinimalConfigurationWithDefaultIcons();\n }\n }\n\n const configChanged = this.checkConfigForChanges(config);\n\n let lastElement = elements[elements.length - 1];\n if (!lastElement.id) {\n lastElement = elements.pop();\n let importVersionNumber = lastElement;\n\n // if the last element has the importedVersionNumber has the tag version,\n // then there exists another meta tag 'info' for the description\n if (importVersionNumber.version) {\n lastElement = elements.pop();\n }\n\n if (importVersionNumber.version) {\n importVersionNumber = importVersionNumber.version as string;\n } else {\n importVersionNumber = '?';\n // TODO show error for unreadable version number\n }\n elements = this.handleVersionNumber(importVersionNumber, elements);\n }\n\n if (\n !this.importRepairService.checkForUnreferencedElementsInActivitiesAndRepair(\n elements\n )\n ) {\n this.showBrokenImportDialog(isSVG ? 'SVG' : 'DST');\n }\n\n this.titleService.updateTitleAndDescription(\n null,\n lastElement.info,\n false\n );\n\n this.importRepairService.adjustPositions(elements);\n\n this.updateIconRegistries(elements, config);\n this.rendererService.importStory(elements, configChanged, config);\n }\n }\n\n private handleVersionNumber(\n importVersionNumber: string,\n elements: BusinessObject[]\n ): BusinessObject[] {\n const versionPrefix = +importVersionNumber.substring(\n 0,\n importVersionNumber.lastIndexOf('.')\n );\n if (versionPrefix <= 0.5) {\n elements =\n this.importRepairService.updateCustomElementsPreviousV050(elements);\n this.showPreviousV050Dialog(versionPrefix);\n }\n return elements;\n }\n\n private extractDstAndConfig(dstText: string, isSVG: boolean) {\n let dstAndConfig = null;\n try {\n dstAndConfig = JSON.parse(dstText);\n } catch (e) {\n this.showBrokenImportDialog(isSVG ? 'SVG' : 'DST');\n }\n return dstAndConfig;\n }\n\n private removeXMLComments(xmlText: string): string {\n xmlText = xmlText.substring(xmlText.indexOf(''));\n while (xmlText.includes('')) {\n xmlText = xmlText.replace('', '');\n }\n xmlText = xmlText.replace('', '');\n xmlText = xmlText.replace('', '');\n return xmlText;\n }\n\n checkConfigForChanges(domainConfiguration: DomainConfiguration): boolean {\n const newActorKeys = domainConfiguration.actors.keysArray();\n const newWorkObjectKeys = domainConfiguration.workObjects.keysArray();\n\n const currentActorKeys = this.iconDictionaryService.getTypeDictionaryKeys(\n elementTypes.ACTOR\n );\n const currentWorkobjectKeys =\n this.iconDictionaryService.getTypeDictionaryKeys(elementTypes.WORKOBJECT);\n\n let changed = false;\n\n if (\n newActorKeys.length !== currentActorKeys.length ||\n newWorkObjectKeys.length !== currentWorkobjectKeys.length\n ) {\n return true;\n }\n\n for (let i = 0; i < newActorKeys.length; i++) {\n changed =\n this.clearName(currentActorKeys[i]) !== this.clearName(newActorKeys[i]);\n if (changed) {\n i = newActorKeys.length;\n }\n }\n if (changed) {\n return changed;\n }\n for (let i = 0; i < newWorkObjectKeys.length; i++) {\n changed =\n this.clearName(currentWorkobjectKeys[i]) !==\n this.clearName(newWorkObjectKeys[i]);\n if (changed) {\n i = newWorkObjectKeys.length;\n }\n }\n return changed;\n }\n private clearName(name: string): string {\n return name\n .replace(elementTypes.ACTOR, '')\n .replace(elementTypes.WORKOBJECT, '');\n }\n\n private updateIconRegistries(\n elements: BusinessObject[],\n config: DomainConfiguration\n ): void {\n const actorIcons = this.iconDictionaryService.getElementsOfType(\n elements,\n elementTypes.ACTOR\n );\n const workObjectIcons = this.iconDictionaryService.getElementsOfType(\n elements,\n elementTypes.WORKOBJECT\n );\n this.iconDictionaryService.updateIconRegistries(\n actorIcons,\n workObjectIcons,\n config\n );\n\n this.setImportedConfigurationAndEmit(config);\n }\n\n private showPreviousV050Dialog(version: number): void {\n const title = 'Compatability-Warning';\n const text =\n 'The uploaded Domain-Story is from version ' +\n version +\n '. There may be problems with the default actors or workobjects contained in the story.';\n\n const config = new MatDialogConfig();\n config.disableClose = false;\n config.autoFocus = true;\n\n config.data = new InfoDialogData(title, text, true);\n\n this.dialogService.openDialog(InfoDialogComponent, config);\n }\n\n private setImportedConfigurationAndEmit(config: DomainConfiguration) {\n this.importedConfiguration = config;\n this.importedConfigurationEmitter.emit(config);\n }\n\n private showBrokenImportDialog(type: string) {\n const config = new MatDialogConfig();\n config.disableClose = false;\n config.autoFocus = true;\n config.data = new InfoDialogData(\n 'Error during import',\n 'The uploaded ' +\n type +\n ' is not complete, there could be elements missing from the canvas.',\n true,\n false\n );\n\n this.dialogService.openDialog(InfoDialogComponent, config);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\nimport { Waypoint } from 'src/app/Domain/Common/waypoint';\nimport { ActivityBusinessObject } from '../../Domain/Common/activityBusinessObject';\n\n/**\n * Repairs broken Domain Stories so that it can be rendered onto the canvas\n * by removing activities and connections that reference elements that don't exists\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ImportRepairService {\n checkForUnreferencedElementsInActivitiesAndRepair(\n elements: BusinessObject[]\n ): boolean {\n const activities: ActivityBusinessObject[] = [];\n const objectIDs: string[] = [];\n\n let complete = true;\n\n elements.forEach((element) => {\n const type = element.type;\n if (type === elementTypes.ACTIVITY || type === elementTypes.CONNECTION) {\n activities.push(element as ActivityBusinessObject);\n } else {\n objectIDs.push(element.id);\n }\n });\n\n activities.forEach((activity) => {\n const source = activity.source;\n const target = activity.target;\n if (!objectIDs.includes(source) || !objectIDs.includes(target)) {\n complete = false;\n const activityIndex = elements.indexOf(activity);\n elements = elements.splice(activityIndex, 1);\n }\n });\n return complete;\n }\n\n /**\n * Ensure backwards compatibility.\n * Previously Document had no special name and was just addressed as workObject\n * Bubble was renamed to Conversation\n */\n updateCustomElementsPreviousV050(\n elements: BusinessObject[]\n ): BusinessObject[] {\n for (const element of elements) {\n if (element.type === elementTypes.WORKOBJECT) {\n element.type = elementTypes.WORKOBJECT + 'Document';\n } else if (element.type === elementTypes.WORKOBJECT + 'Bubble') {\n element.type = elementTypes.WORKOBJECT + 'Conversation';\n }\n }\n return elements;\n }\n\n /**\n * Adjusts Positions of Elements to ensure the Domain Story starts in the visible parts of the canvas\n */\n adjustPositions(elements: BusinessObject[]): void {\n let xLeft = 0;\n let yUp = 0;\n let isFirst = true;\n\n this.findFirstElement(elements, isFirst, xLeft, yUp);\n\n if (xLeft < 75 || xLeft > 150 || yUp < 0 || yUp > 50) {\n // add Padding for the Palette and the top\n xLeft -= 75;\n yUp -= 50;\n\n elements.forEach((element) =>\n this.adjustElementPosition(element, xLeft, yUp)\n );\n }\n }\n\n private adjustElementPosition(\n element: BusinessObject,\n xLeft: number,\n yUp: number\n ): void {\n if (\n element.type === elementTypes.ACTIVITY ||\n element.type === elementTypes.CONNECTION\n ) {\n const waypoints = (element as ActivityBusinessObject).waypoints;\n waypoints.forEach((point: Waypoint) => {\n point.x -= xLeft;\n point.y -= yUp;\n\n if (point.original) {\n point.original.x = point.x;\n point.original.y = point.y;\n }\n });\n } else {\n element.x -= xLeft;\n element.y -= yUp;\n }\n }\n\n private findFirstElement(\n elements: BusinessObject[],\n isFirst: boolean,\n xLeft: number,\n yUp: number\n ) {\n elements.forEach((element) => {\n let elXLeft;\n let elYUp;\n if (\n element.type !== elementTypes.ACTIVITY &&\n element.type !== elementTypes.CONNECTION\n ) {\n if (isFirst) {\n xLeft = element.x;\n yUp = element.y;\n isFirst = false;\n }\n elXLeft = element.x;\n elYUp = element.y;\n if (elXLeft < xLeft) {\n xLeft = elXLeft;\n }\n if (elYUp < yUp) {\n yUp = elYUp;\n }\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\nimport { elementTypes } from 'src/app/Domain/Common/elementTypes';\nimport { MassNamingService } from 'src/app/Service/LabelDictionary/mass-naming.service';\nimport { IconDictionaryService } from '../DomainConfiguration/icon-dictionary.service';\nimport { WorkObjectLabelEntry } from '../../Domain/LabelDictionary/workObjectLabelEntry';\nimport { LabelEntry } from '../../Domain/LabelDictionary/labelEntry';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LabelDictionaryService {\n activityLabels: LabelEntry[] = [];\n workObjektLabels: WorkObjectLabelEntry[] = [];\n\n constructor(\n private massNamingService: MassNamingService,\n private elementRegistryService: ElementRegistryService,\n private iconDictionaryService: IconDictionaryService\n ) {}\n\n createLabelDictionaries(): void {\n this.activityLabels = [];\n this.workObjektLabels = [];\n\n const allObjects = this.elementRegistryService.getAllCanvasObjects();\n\n allObjects.forEach((element) => {\n const name = element.businessObject.name;\n if (\n name &&\n name.length > 0 &&\n element.type.includes(elementTypes.ACTIVITY) &&\n !this.activityLabels.map((a) => a.name).includes(name)\n ) {\n this.activityLabels.push({\n name,\n originalName: name,\n });\n } else if (\n name &&\n name.length > 0 &&\n element.type.includes(elementTypes.WORKOBJECT) &&\n !this.workObjektLabels.map((e) => e.name).includes(name)\n ) {\n const iconName = element.type.replace(elementTypes.WORKOBJECT, '');\n let icon = this.iconDictionaryService.getIconSource(iconName);\n if (!icon) {\n return;\n }\n if (!icon.startsWith('data')) {\n icon = 'data:image/svg+xml,' + icon;\n }\n this.workObjektLabels.push({\n name,\n originalName: name,\n icon,\n });\n }\n });\n this.activityLabels.sort((a, b) => {\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\n });\n this.workObjektLabels.sort((a, b) => {\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\n });\n }\n\n getActivityLabels(): LabelEntry[] {\n return this.activityLabels.slice();\n }\n\n getWorkObjectLabels(): WorkObjectLabelEntry[] {\n return this.workObjektLabels.slice();\n }\n\n massRenameLabels(\n activityNames: string[],\n originalActivityNames: string[],\n workObjectNames: string[],\n originalWorkObjectNames: string[]\n ): void {\n for (let i = 0; i < originalActivityNames.length; i++) {\n if (!activityNames[i]) {\n activityNames[i] = '';\n }\n if (!(activityNames[i] == originalActivityNames[i])) {\n this.massNamingService.massChangeNames(\n originalActivityNames[i],\n activityNames[i],\n elementTypes.ACTIVITY\n );\n }\n }\n for (let i = 0; i < originalWorkObjectNames.length; i++) {\n if (!workObjectNames[i]) {\n workObjectNames[i] = '';\n }\n if (!(workObjectNames[i] == originalWorkObjectNames[i])) {\n this.massNamingService.massChangeNames(\n originalWorkObjectNames[i],\n workObjectNames[i],\n elementTypes.WORKOBJECT\n );\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\nimport { CanvasObject } from 'src/app/Domain/Common/canvasObject';\nimport { elementTypes } from '../../Domain/Common/elementTypes';\nimport { CommandStackService } from '../CommandStack/command-stack.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MassNamingService {\n constructor(\n private elementRegistryService: ElementRegistryService,\n private commandStackService: CommandStackService\n ) {}\n\n massChangeNames(\n oldValue: string,\n newValue: string,\n type: elementTypes\n ): void {\n const allRelevantObjects: CanvasObject[] = [];\n\n this.elementRegistryService.getAllCanvasObjects().forEach((element) => {\n if (\n element.type.includes(type) &&\n element.businessObject.name === oldValue\n ) {\n allRelevantObjects.push(element);\n }\n });\n\n const context = {\n elements: allRelevantObjects,\n newValue,\n };\n\n this.commandStackService.execute('domainStoryObjects.massRename', context);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { initializeContextPadProvider } from '../../Modeler/modeler/context-pad/domainStoryContextPadProvider';\nimport {\n getMultipleNumberRegistry,\n getNumberRegistry,\n initializeNumbering,\n setNumberIsMultiple,\n updateExistingNumbersAtEditing,\n} from '../../Modeler/modeler/numbering/numbering';\nimport { initializePalette } from '../../Modeler/modeler/palette/domainStoryPalette';\nimport { initializeRenderer } from '../../Modeler/modeler/domainStoryRenderer';\nimport {\n initializeLabelEditingProvider,\n toggleStashUse,\n} from '../../Modeler/modeler/labeling/dsLabelEditingProvider';\nimport { initializeReplaceOptions } from '../../Modeler/modeler/change-icon/replaceOptions';\n\nimport { DirtyFlagService } from '../DirtyFlag/dirty-flag.service';\nimport { IconDictionaryService } from '../DomainConfiguration/icon-dictionary.service';\nimport { ElementRegistryService } from '../ElementRegistry/element-registry.service';\nimport { DomainConfigurationService } from '../DomainConfiguration/domain-configuration.service';\nimport { LabelDictionaryService } from '../LabelDictionary/label-dictionary.service';\nimport { elementTypes } from '../../Domain/Common/elementTypes';\nimport { ReplayStateService } from '../Replay/replay-state.service';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { ActivityDialogData } from '../../Domain/Dialog/activityDialogData';\nimport { ActivityDialogComponent } from '../../Presentation/Dialog/activity-dialog/activity-dialog.component';\nimport { DialogService } from '../Dialog/dialog.service';\nimport massRenameHandler from '../../Modeler/modeler/updateHandler/massRenameHandler';\nimport headlineAndDescriptionUpdateHandler from '../../Modeler/modeler/updateHandler/headlineAndDescriptionUpdateHandler';\nimport { TitleService } from '../Title/title.service';\nimport { ActivityCanvasObject } from '../../Domain/Common/activityCanvasObject';\nimport { HtmlPresentationService } from '../Export/html-presentation.service';\nimport { positionsMatch } from '../../Utils/mathExtensions';\nimport activityUpdateHandler, {\n initializeActivityUpdateHandler,\n} from '../../Modeler/modeler/updateHandler/activityUpdateHandlers';\nimport elementUpdateHandler from '../../Modeler/modeler/updateHandler/elementUpdateHandler';\nimport { CommandStackService } from '../CommandStack/command-stack.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InitializerService {\n constructor(\n private dirtyFlagService: DirtyFlagService,\n private iconDictionaryService: IconDictionaryService,\n private elementRegistryService: ElementRegistryService,\n private configurationService: DomainConfigurationService,\n private labelDictionaryService: LabelDictionaryService,\n private replayStateService: ReplayStateService,\n private dialogService: DialogService,\n private commandStackService: CommandStackService,\n private titleService: TitleService,\n private htmlPresentationService: HtmlPresentationService\n ) {}\n\n initializeDomainStoryModelerClasses(): void {\n initializeContextPadProvider(\n this.dirtyFlagService,\n this.iconDictionaryService\n );\n /** The Palette and the Context Menu need the Icons present in the Domain,\n * so the IconDictionaryService and the DomainConfigurationService needs to be given to the Palette **/\n initializePalette(this.iconDictionaryService, this.configurationService);\n initializeRenderer(\n this.iconDictionaryService,\n this.elementRegistryService,\n this.dirtyFlagService\n );\n initializeLabelEditingProvider(this.labelDictionaryService);\n initializeReplaceOptions(this.iconDictionaryService);\n initializeNumbering(this.elementRegistryService);\n initializeActivityUpdateHandler(this.elementRegistryService);\n }\n\n propagateDomainStoryModelerClassesToServices(\n commandStack: any,\n elementRegistry: any,\n canvas: any,\n selection: any,\n modeler: any\n ): void {\n this.commandStackService.setCommandStack(commandStack);\n this.elementRegistryService.setElementRegistry(elementRegistry);\n this.htmlPresentationService.setModelerClasses(canvas, selection, modeler);\n }\n\n initializeDomainStoryModelerEventHandlers(\n commandStack: any,\n eventBus: any\n ): void {\n activityUpdateHandler(commandStack, eventBus);\n massRenameHandler(commandStack, eventBus);\n elementUpdateHandler(commandStack, eventBus);\n headlineAndDescriptionUpdateHandler(commandStack, this.titleService);\n }\n\n initiateEventBusListeners(eventBus: any, commandStack: any): void {\n eventBus.on('element.dblclick', (e: any) => {\n if (!this.replayStateService.getReplayOn()) {\n const element = e.element;\n if (element.type === elementTypes.ACTIVITY) {\n // override the doubleClickListener on activities\n this.activityDoubleClick(element, eventBus, commandStack);\n } else {\n const renderedNumberRegistry = getNumberRegistry();\n\n // add a DoubleClickListener to the number on activities\n if (renderedNumberRegistry.length > 1) {\n const allActivities =\n this.elementRegistryService.getActivitiesFromActors();\n\n if (allActivities.length > 0) {\n const htmlCanvas = document.getElementById('canvas');\n if (htmlCanvas) {\n const container =\n htmlCanvas.getElementsByClassName('djs-container');\n const svgElements = container[0].getElementsByTagName('svg');\n const outerSVGElement = svgElements[0];\n const viewport =\n outerSVGElement.getElementsByClassName('viewport')[0];\n let transform = viewport.getAttribute('transform');\n\n let transformX = 0;\n let transformY = 0;\n let zoomX = 1;\n let zoomY = 1;\n let nums;\n\n const clickX = e.originalEvent.offsetX;\n const clickY = e.originalEvent.offsetY;\n\n // adjust for zoom and panning\n if (transform) {\n transform = transform.replace('matrix(', '');\n transform.replace(')', '');\n nums = transform.split(',');\n zoomX = parseFloat(nums[0]);\n zoomY = parseFloat(nums[3]);\n transformX = parseInt(nums[4], undefined);\n transformY = parseInt(nums[5], undefined);\n }\n\n const width = 25 * zoomX;\n const height = 22 * zoomY;\n\n for (let i = 1; i < renderedNumberRegistry.length; i++) {\n const currentNum = renderedNumberRegistry[i];\n if (currentNum) {\n const tspan = currentNum.getElementsByTagName('tspan')[0];\n const tx = tspan.getAttribute('x');\n const ty = tspan.getAttribute('y');\n const tNumber = parseInt(tspan.innerHTML, undefined);\n\n const elementX = Math.floor(\n tx * zoomX + (transformX - 11 * zoomX)\n );\n const elementY = Math.floor(\n ty * zoomY + (transformY - 15 * zoomY)\n );\n\n allActivities.forEach((activity: ActivityCanvasObject) => {\n const activityNumber = activity.businessObject.number;\n if (activityNumber === tNumber) {\n if (\n positionsMatch(\n width,\n height,\n elementX,\n elementY,\n clickX,\n clickY\n )\n ) {\n this.activityDoubleClick(\n activity,\n eventBus,\n commandStack\n );\n }\n }\n });\n }\n }\n }\n }\n }\n }\n }\n });\n\n // when in replay, do not allow any interaction on the canvas\n eventBus.on(\n [\n 'element.click',\n 'element.dblclick',\n 'element.mousedown',\n 'drag.init',\n 'canvas.viewbox.changing',\n 'autoPlace',\n 'popupMenu.open',\n ],\n 10000000000,\n (event: any) => {\n if (this.replayStateService.getReplayOn()) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n );\n }\n\n /** Overrrides for Canvas Functions **/\n private activityDoubleClick(\n activity: ActivityCanvasObject,\n eventBus: any,\n commandStack: any\n ): void {\n const source = activity.source;\n\n // ensure the right number when changing the direction of an activity\n toggleStashUse(false);\n\n const config = new MatDialogConfig();\n config.disableClose = false;\n config.autoFocus = true;\n\n if (\n activity.businessObject.number &&\n source &&\n source.type.includes(elementTypes.ACTOR)\n ) {\n config.data = new ActivityDialogData(\n activity,\n getMultipleNumberRegistry()[activity.businessObject.number],\n true,\n (data: any) => this.saveActivityInputLabel(data, eventBus, commandStack)\n );\n } else if (source && source.type.includes(elementTypes.WORKOBJECT)) {\n config.data = new ActivityDialogData(\n activity,\n false,\n false,\n (activityData: any) =>\n this.saveActivityInputLabel(activityData, eventBus, commandStack)\n );\n }\n this.dialogService.openDialog(ActivityDialogComponent, config);\n }\n\n private saveActivityInputLabel(\n activityData: any,\n eventBus: any,\n commandStack: any\n ): void {\n const label = activityData.activityLabel;\n const hasNumber = activityData.multipleNumbers !== undefined;\n const activityNumber = activityData.activityNumber;\n const multipleNumberAllowed = activityData.multipleNumbers;\n const element = activityData.activity;\n\n const activitiesFromActors =\n this.elementRegistryService.getActivitiesFromActors();\n const index = activitiesFromActors.indexOf(element);\n\n activitiesFromActors.splice(index, 1);\n if (hasNumber) {\n setNumberIsMultiple(activityNumber, multipleNumberAllowed);\n }\n element.businessObject.multipleNumberAllowed = multipleNumberAllowed;\n\n let options: any;\n if (hasNumber) {\n options = {\n businessObject: element.businessObject,\n newLabel: label,\n newNumber: activityNumber,\n element,\n };\n } else {\n options = {\n businessObject: element.businessObject,\n newLabel: label,\n element,\n };\n }\n\n commandStack.execute('activity.changed', options);\n if (element.businessObject.multipleNumberAllowed !== false) {\n if (getMultipleNumberRegistry()[activityNumber] === false) {\n updateExistingNumbersAtEditing(\n activitiesFromActors,\n activityNumber,\n eventBus\n );\n }\n } else if (element.businessObject.multipleNumberAllowed === false) {\n updateExistingNumbersAtEditing(\n activitiesFromActors,\n activityNumber,\n eventBus\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { assign } from 'min-dash';\nimport DomainStoryModeler from 'src/app/Modeler';\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\nimport { InitializerService } from './initializer.service';\nimport { ElementRegistryService } from '../ElementRegistry/element-registry.service';\nimport { IconDictionaryService } from '../DomainConfiguration/icon-dictionary.service';\nimport { DomainConfigurationService } from '../DomainConfiguration/domain-configuration.service';\nimport { BusinessObject } from '../../Domain/Common/businessObject';\nimport { StorageService } from '../BrowserStorage/storage.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModelerService {\n constructor(\n private initializerService: InitializerService,\n private elementRegistryService: ElementRegistryService,\n private iconDictionaryService: IconDictionaryService,\n private domainConfigurationService: DomainConfigurationService,\n private storageService: StorageService\n ) {}\n\n private modeler: any;\n private canvas: any;\n private elementRegistry: any;\n private commandStack: any;\n private selection: any;\n private eventBus: any;\n\n private encoded: string | undefined;\n\n postInit(): void {\n const storedDomainConfiguration =\n this.storageService.getStoredDomainConfiguration();\n if (storedDomainConfiguration) {\n this.iconDictionaryService.setCusomtConfiguration(\n storedDomainConfiguration\n );\n this.domainConfigurationService.loadConfiguration(\n storedDomainConfiguration\n );\n }\n this.initializerService.initializeDomainStoryModelerClasses();\n this.modeler = new DomainStoryModeler({\n container: '#canvas',\n keyboard: {\n bindTo: document,\n },\n\n // Disable BPMN-SearchModule and re-enable browser Search\n additionalModules: [\n {\n bpmnSearch: ['value', 'foo'],\n },\n ],\n });\n\n if (this.modeler.get) {\n this.canvas = this.modeler.get('canvas');\n this.elementRegistry = this.modeler.get('elementRegistry');\n this.eventBus = this.modeler.get('eventBus');\n this.commandStack = this.modeler.get('commandStack');\n this.selection = this.modeler.get('selection');\n }\n\n this.initializerService.initializeDomainStoryModelerEventHandlers(\n this.commandStack,\n this.eventBus\n );\n this.initializerService.propagateDomainStoryModelerClassesToServices(\n this.commandStack,\n this.elementRegistry,\n this.canvas,\n this.selection,\n this.modeler\n );\n\n const exportArtifacts = this.debounce(this.saveSVG, 500);\n if (this.modeler.get) {\n this.modeler.on('commandStack.changed', exportArtifacts);\n }\n\n this.initializerService.initiateEventBusListeners(\n this.eventBus,\n this.commandStack\n );\n\n this.modeler.createDiagram();\n // expose bpmnjs to window for debugging purposes\n assign(window, { bpmnjs: this.modeler });\n\n this.startDebounce();\n }\n\n restart(\n domainConfiguration?: DomainConfiguration,\n domainStory?: BusinessObject[]\n ): void {\n const currentStory =\n domainStory != undefined\n ? domainStory\n : this.elementRegistryService\n .createObjectListForDSTDownload()\n .map((e) => e.businessObject);\n if (!domainConfiguration) {\n domainConfiguration = this.storageService.getStoredDomainConfiguration();\n }\n if (domainConfiguration) {\n this.storageService.setStoredDomainConfiguration(domainConfiguration);\n this.iconDictionaryService.setCusomtConfiguration(domainConfiguration);\n this.domainConfigurationService.loadConfiguration(domainConfiguration);\n }\n\n this.elementRegistryService.clear();\n this.modeler?.destroy();\n this.postInit();\n if (currentStory && this.modeler.get) {\n this.modeler.importCustomElements(currentStory);\n }\n }\n\n /** Interactions with the Modeler **/\n getModeler(): any {\n return this.modeler;\n }\n\n commandStackChanged(): void {\n // to update the title of the svg, we need to tell the command stack, that a value has changed\n this.eventBus.fire(\n 'commandStack.changed',\n this.debounce(this.saveSVG, 500)\n );\n }\n\n startDebounce(): void {\n this.debounce(this.saveSVG, 500);\n }\n\n debounce(fn: any, timeout: number): any {\n return () => {\n let timer;\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n // tslint:disable-next-line:no-unused-expression\n fn(this.modeler).then((svg: string) => {\n this.encoded = svg;\n }) as Promise;\n }, timeout);\n };\n }\n\n getEncoded(): string {\n return this.encoded ? this.encoded : '';\n }\n\n async saveSVG(modeler: any): Promise {\n try {\n const result = await modeler.saveSVG();\n return result.svg;\n } catch (err) {\n alert('There was an error saving the SVG.\\n' + err);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ModelerService } from 'src/app/Service/Modeler/modeler.service';\nimport { BusinessObject } from 'src/app/Domain/Common/businessObject';\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\nimport { DirtyFlagService } from 'src/app/Service/DirtyFlag/dirty-flag.service';\nimport { DomainConfiguration } from 'src/app/Domain/Common/domainConfiguration';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RendererService {\n constructor(\n private modelerService: ModelerService,\n private elementRegistryService: ElementRegistryService,\n private dirtyFlagService: DirtyFlagService\n ) {}\n\n renderStory(domainStory: BusinessObject[]): void {\n this.modelerService.getModeler().importCustomElements(domainStory);\n }\n\n importStory(\n domainStory: BusinessObject[],\n configurationChange: boolean,\n config?: DomainConfiguration,\n makeClean = true\n ): void {\n this.modelerService.restart(config, domainStory);\n this.renderStory(domainStory);\n\n this.elementRegistryService.correctInitialize();\n\n this.modelerService.commandStackChanged();\n this.modelerService.startDebounce();\n\n if (makeClean) {\n this.dirtyFlagService.makeClean();\n }\n }\n\n getStory(): BusinessObject[] {\n return this.elementRegistryService\n .createObjectListForDSTDownload()\n .map((c) => c.businessObject);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReplayStateService {\n private replayOnSubject = new BehaviorSubject(false);\n\n replayOn$ = this.replayOnSubject.asObservable();\n\n setReplayState(state: boolean): void {\n this.replayOnSubject.next(state);\n }\n\n getReplayOn(): boolean {\n return this.replayOnSubject.value;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ReplayStateService } from 'src/app/Service/Replay/replay-state.service';\nimport { DomManipulationService } from 'src/app/Service/DomManipulation/dom-manipulation.service';\nimport { StoryStep } from 'src/app/Domain/Replay/storyStep';\nimport { StoryCreatorService } from './storyCreator/story-creator.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport {\n SNACKBAR_DURATION,\n SNACKBAR_INFO,\n} from '../../Domain/Common/constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReplayService {\n private story: StoryStep[] = [];\n private currentStep = new BehaviorSubject(-1);\n private maxStepNumber = new BehaviorSubject(0);\n\n currentStep$ = this.currentStep.asObservable();\n maxStepNumber$ = this.maxStepNumber.asObservable();\n\n constructor(\n private replayStateService: ReplayStateService,\n private domManipulationService: DomManipulationService,\n private storyCreatorService: StoryCreatorService,\n private snackbar: MatSnackBar\n ) {}\n\n initializeReplay(): void {\n this.currentStep.next(1);\n this.story = this.storyCreatorService.traceActivitiesAndCreateStory();\n this.maxStepNumber.next(this.story.length);\n }\n\n getCurrentStepNumber(): number {\n return this.currentStep.value;\n }\n\n getMaxStepNumber(): number {\n return this.maxStepNumber.value;\n }\n\n nextStep(): void {\n if (this.currentStep.value < this.story.length) {\n this.currentStep.next(this.currentStep.value + 1);\n this.showCurrentStep();\n }\n }\n\n previousStep(): void {\n if (this.currentStep.value > 1) {\n this.currentStep.next(this.currentStep.value - 1);\n this.showCurrentStep();\n }\n }\n\n private showCurrentStep() {\n this.domManipulationService.showStep(\n this.story[this.currentStep.value - 1],\n this.currentStep.value > 1\n ? this.story[this.currentStep.value - 2]\n : undefined\n );\n }\n\n startReplay(): void {\n this.initializeReplay();\n if (this.story?.length) {\n const missingSteps = this.storyCreatorService.getMissingSteps(this.story);\n if (missingSteps.length === 0) {\n this.replayStateService.setReplayState(true);\n this.domManipulationService.showStep(\n this.story[this.currentStep.getValue() - 1]\n );\n } else {\n const steps = missingSteps.join(', ');\n this.snackbar.open(\n steps.length === 1\n ? `The Domain Story is not complete. Step ${steps} is missing.`\n : `The Domain Story is not complete. Steps ${steps} are missing.`,\n undefined,\n {\n duration: SNACKBAR_DURATION * 2,\n panelClass: SNACKBAR_INFO,\n }\n );\n }\n } else {\n this.snackbar.open('You need a Domain Story for replay.', undefined, {\n duration: SNACKBAR_DURATION * 2,\n panelClass: SNACKBAR_INFO,\n });\n }\n }\n\n stopReplay(): void {\n this.currentStep.next(-1);\n this.maxStepNumber.next(0);\n this.replayStateService.setReplayState(false);\n this.domManipulationService.showAll();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { elementTypes } from '../../../Domain/Common/elementTypes';\nimport { ActivityCanvasObject } from '../../../Domain/Common/activityCanvasObject';\nimport { BusinessObject } from '../../../Domain/Common/businessObject';\nimport { CanvasObject } from '../../../Domain/Common/canvasObject';\nimport { ElementRegistryService } from '../../ElementRegistry/element-registry.service';\nimport { StoryStep } from '../../../Domain/Replay/storyStep';\nimport { Dictionary } from '../../../Domain/Common/dictionary/dictionary';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StoryCreatorService {\n constructor(private elementRegistryService: ElementRegistryService) {}\n\n traceActivitiesAndCreateStory(): StoryStep[] {\n const tracedActivityMap = new Dictionary();\n const story: StoryStep[] = [];\n const activities = this.elementRegistryService.getActivitiesFromActors();\n\n activities.forEach((activity) => {\n const activityNumber = Number(activity.businessObject.number); // Sometimes the activityNumber is a string for some reason\n const tracedItem = tracedActivityMap.get(`${activityNumber - 1}`)\n ? tracedActivityMap.get(`${activityNumber - 1}`)\n : [];\n tracedItem.push(activity);\n tracedActivityMap.set(`${activityNumber - 1}`, tracedItem);\n });\n\n for (let i = 0; i < tracedActivityMap.keysArray().length; i++) {\n this.createStep(tracedActivityMap, i, story);\n }\n this.addGroupStep(story);\n return story;\n }\n\n private createStep(\n tracedActivityMap: Dictionary,\n i: number,\n story: StoryStep[]\n ): void {\n const stepObjects = this.getStepObjects(\n tracedActivityMap.get(`${i}`) || []\n );\n const highlightedElements = stepObjects.map((t) => t.id);\n if (i > 0) {\n story[i - 1].objects.forEach((object) => {\n if (!stepObjects.includes(object)) {\n stepObjects.push(object);\n }\n });\n }\n story[i] = {\n highlightedObjects: highlightedElements,\n objects: stepObjects,\n };\n }\n\n getMissingSteps(story: StoryStep[]): number[] {\n if (!story || story.length === 0) {\n return [];\n }\n\n const missingSteps: number[] = [];\n let complete = true;\n for (let i = 0; i < story.length; i++) {\n if (\n !story[i] ||\n !(story[i].objects.length > 0) ||\n story[i].objects.filter(\n (element) => element.type === elementTypes.ACTIVITY\n ).length <= 0\n ) {\n missingSteps.push(i + 1);\n complete = false;\n }\n }\n return missingSteps;\n }\n\n private getStepObjects(\n tracedActivity: ActivityCanvasObject[]\n ): BusinessObject[] {\n const initialSource: CanvasObject[] = [];\n const activities = tracedActivity;\n const targetObjects: CanvasObject[] = [];\n\n tracedActivity.forEach((parallelStep: ActivityCanvasObject) => {\n initialSource.push(parallelStep.source);\n\n const firstTarget = parallelStep.target;\n targetObjects.push(firstTarget);\n\n // check the outgoing activities for each target\n for (const checkTarget of targetObjects) {\n if (\n checkTarget.businessObject &&\n !checkTarget.businessObject.type.includes('actor') &&\n checkTarget.outgoing\n ) {\n // check the target for each outgoing activity\n checkTarget.outgoing.forEach((activity: ActivityCanvasObject) => {\n activities.push(activity);\n const activityTarget = activity.target;\n if (activityTarget && !targetObjects.includes(activityTarget)) {\n targetObjects.push(activityTarget);\n }\n });\n }\n }\n });\n return initialSource\n .map((e) => e.businessObject)\n .concat(activities.map((a) => a.businessObject))\n .concat(targetObjects.map((t) => t.businessObject));\n }\n\n /** Groups should be shown at the End of the Story **/\n private addGroupStep(story: StoryStep[]): void {\n const groups = this.elementRegistryService.getAllGroups() as CanvasObject[];\n if (groups.length > 0) {\n story.push({\n highlightedObjects: [],\n objects: groups\n .map((g) => g.businessObject)\n .concat(story[story.length - 1].objects),\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SettingsService {\n private showSettings = new BehaviorSubject(false);\n showSettings$ = this.showSettings.asObservable();\n\n close(): void {\n this.showSettings.next(false);\n }\n\n open(): void {\n this.showSettings.next(true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n INITIAL_DESCRIPTION,\n INITIAL_DOMAIN_NAME,\n INITIAL_TITLE,\n VERSION,\n} from '../../Domain/Common/constants';\nimport { CommandStackService } from '../CommandStack/command-stack.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TitleService {\n private titleSubject = new BehaviorSubject(INITIAL_TITLE);\n private descriptionSubject = new BehaviorSubject(INITIAL_DESCRIPTION);\n private domainNameSubject = new BehaviorSubject(INITIAL_DOMAIN_NAME);\n private showDescriptionSubject = new BehaviorSubject(true);\n\n title$ = this.titleSubject.asObservable();\n description$ = this.descriptionSubject.asObservable();\n showDescription$ = this.showDescriptionSubject.asObservable();\n domainName$ = this.domainNameSubject.asObservable();\n\n constructor(private commandStackService: CommandStackService) {}\n\n updateTitleAndDescription(\n title: string | null,\n description: string | null,\n allowUndo: boolean\n ): void {\n if (allowUndo) {\n this.fireTitleAndDescriptionUpdate(title, description);\n } else {\n this.updateTitle(title);\n this.updateDescription(description);\n }\n }\n\n private updateTitle(title: string | null): void {\n this.titleSubject.next(title ?? this.titleSubject.value);\n document.title = title ?? this.titleSubject.value + ' - egon.io';\n }\n\n private updateDescription(description: string | null): void {\n this.descriptionSubject.next(description ?? this.descriptionSubject.value);\n }\n\n setShowDescription(show: boolean): void {\n this.showDescriptionSubject.next(show);\n }\n\n setDomainName(name: string): void {\n this.domainNameSubject.next(name);\n }\n\n getTitle(): string {\n return this.titleSubject.value;\n }\n\n getDescription(): string {\n return this.descriptionSubject.value;\n }\n\n getDomainName(): string {\n return this.domainNameSubject.value;\n }\n\n getVersion(): string {\n return VERSION;\n }\n\n private fireTitleAndDescriptionUpdate(\n newTitle: string | null,\n newDescription: string | null\n ): void {\n const context = {\n newTitle,\n newDescription,\n };\n this.commandStackService.execute(\n 'story.updateHeadlineAndDescription',\n context\n );\n }\n}\n","'use strict';\n\n// convert rad to deg\nexport function degrees(radians: number): number {\n return (radians * 180) / Math.PI;\n}\n\n// calculate the angle between two points in 2D\nexport function angleBetween(\n startPoint: Point,\n endPoint: Point\n): number | undefined {\n let quadrant;\n\n // determine in which quadrant we are\n if (startPoint.x <= endPoint.x) {\n if (startPoint.y >= endPoint.y) {\n quadrant = 0;\n } // upper right quadrant\n else {\n quadrant = 3;\n } // lower right quadrant\n } else {\n if (startPoint.y >= endPoint.y) {\n quadrant = 1;\n } // upper left Quadrant\n else {\n quadrant = 2;\n } // lower left quadrant\n }\n\n const adjacent = Math.abs(startPoint.y - endPoint.y);\n const opposite = Math.abs(startPoint.x - endPoint.x);\n\n // since the arcus-tangens only gives values between 0 and 90, we have to adjust for the quadrant we are in\n\n if (quadrant === 0) {\n return 90 - degrees(Math.atan2(opposite, adjacent));\n }\n if (quadrant === 1) {\n return 90 + degrees(Math.atan2(opposite, adjacent));\n }\n if (quadrant === 2) {\n return 270 - degrees(Math.atan2(opposite, adjacent));\n }\n if (quadrant === 3) {\n return 270 + degrees(Math.atan2(opposite, adjacent));\n }\n return undefined;\n}\n\nexport function positionsMatch(\n width: number,\n height: number,\n elementX: number,\n elementY: number,\n clickX: number,\n clickY: number\n): boolean {\n if (clickX > elementX && clickX < elementX + width) {\n if (clickY > elementY && clickY < elementY + height) {\n return true;\n }\n }\n return false;\n}\n\nexport class Point {\n y = 0;\n x = 0;\n}\n","import { elementTypes } from 'src/app/Domain/Common/elementTypes';\n\nexport function getNameFromType(type: string): string {\n if (type.includes(elementTypes.ACTOR)) {\n return type.replace(elementTypes.ACTOR, '');\n } else if (type.includes(elementTypes.WORKOBJECT)) {\n return type.replace(elementTypes.WORKOBJECT, '');\n }\n return '';\n}\n","'use strict';\n\n// sanitize user-Input to be Desktop-Filename safe\nexport function sanitizeForDesktop(str: string): string {\n const map: { [key: string]: string } = {\n '/': '',\n '\\\\': '',\n ':': '',\n '*': '',\n '?': '',\n '\"': '',\n '<': '',\n '>': '',\n '|': '',\n };\n const reg = /[/\\\\:*?\"<>|]/gi;\n return str ? str.replace(reg, (match) => map[match]) : '';\n}\n\nexport function sanitizeIconName(name: string): string {\n const map: { [key: string]: string } = {\n '/': '',\n '\\\\': '',\n ':': '',\n '*': '',\n '?': '',\n '\"': '',\n '<': '',\n '>': '',\n '|': '',\n '(': '',\n ')': '',\n ' ': '-',\n '.': '_',\n };\n const reg = /[/\\\\:*?\"<>|() .]/gi;\n return name\n ? name.replace(reg, (match) => {\n return map[match];\n })\n : '';\n}\n\nexport function restoreTitleFromFileName(\n filename: string,\n isSVG: boolean\n): string {\n let title;\n\n const dstRegex = /_\\d+-\\d+-\\d+( ?_?-?\\(\\d+\\))?(-?\\d)?(.dst|.egn)/;\n const svgRegex = /_\\d+-\\d+-\\d+( ?_?-?\\(\\d+\\))?(-?\\d)?(.dst|.egn).svg/;\n\n const egnSuffix = '.dst';\n const dstSuffix = '.dst';\n const svgSuffix = '.svg';\n\n let filenameWithoutDateSuffix = filename.replace(\n isSVG ? svgRegex : dstRegex,\n ''\n );\n if (filenameWithoutDateSuffix.includes(isSVG ? svgSuffix : dstSuffix)) {\n filenameWithoutDateSuffix = filenameWithoutDateSuffix\n .replace(svgSuffix, '')\n .replace(dstSuffix, '')\n .replace(egnSuffix, '');\n }\n title = filenameWithoutDateSuffix;\n return title;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { SettingsService } from 'src/app/Service/Settings/settings.service';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { DialogService } from './Service/Dialog/dialog.service';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { InfoDialogData } from './Domain/Dialog/infoDialogData';\nimport { InfoDialogComponent } from './Presentation/Dialog/info-dialog/info-dialog.component';\nimport { TitleService } from './Service/Title/title.service';\nimport { VERSION } from './Domain/Common/constants';\nimport { ExportService } from './Service/Export/export.service';\nimport { ReplayStateService } from './Service/Replay/replay-state.service';\nimport { ReplayService } from './Service/Replay/replay.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n showSettings$: Observable | BehaviorSubject;\n showDescription$: Observable;\n version: string = '';\n\n constructor(\n private settingsService: SettingsService,\n private dialogService: DialogService,\n private titleService: TitleService,\n private exportService: ExportService,\n private replayStateSerice: ReplayStateService,\n private replayService: ReplayService\n ) {\n this.showSettings$ = new BehaviorSubject(false);\n this.showDescription$ = new BehaviorSubject(true);\n this.version = VERSION;\n\n document.onkeydown = (e: KeyboardEvent) => {\n if (e.ctrlKey && e.key === 's') {\n if (this.exportService.isDomainStoryExportable()) {\n this.exportService.downloadDST();\n }\n e.preventDefault();\n e.stopPropagation();\n }\n if (e.ctrlKey && e.key === 'l') {\n document.getElementById('import')?.click();\n e.preventDefault();\n e.stopPropagation();\n }\n if (e.key === 'ArrowRight' && this.replayStateSerice.getReplayOn()) {\n e.preventDefault();\n e.stopPropagation();\n replayService.nextStep();\n }\n if (e.key === 'ArrowLeft' && this.replayStateSerice.getReplayOn()) {\n e.preventDefault();\n e.stopPropagation();\n replayService.previousStep();\n }\n };\n }\n\n ngOnInit(): void {\n this.showDescription$ = this.titleService.showDescription$;\n this.showSettings$ = this.settingsService.showSettings$;\n }\n\n openLinkDialog(link: string, title: string, text: string): void {\n const config = new MatDialogConfig();\n config.disableClose = false;\n config.autoFocus = true;\n\n config.data = new InfoDialogData(title, text, true, true, link);\n\n this.dialogService.openDialog(InfoDialogComponent, config);\n }\n}\n","
\n \n \n \n\n \n \n
\n\n \n
\n \n
\n
\n \n
\n \n\n","import { ApplicationRef, DoBootstrap, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport {\n MAT_CHECKBOX_DEFAULT_OPTIONS,\n MatCheckboxDefaultOptions,\n} from '@angular/material/checkbox';\n\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { HeaderComponent } from 'src/app/Presentation/Header/header.component';\nimport { SettingsComponent } from 'src/app/Presentation/Settings/settings.component';\nimport { AppComponent } from 'src/app/app.component';\nimport { ExportService } from 'src/app/Service/Export/export.service';\nimport { ImportDomainStoryService } from 'src/app/Service/Import/import-domain-story.service';\nimport { ImportRepairService } from 'src/app/Service/Import/import-repair.service';\nimport { ModelerService } from 'src/app/Service/Modeler/modeler.service';\nimport { TitleService } from 'src/app/Service/Title/title.service';\nimport { LabelDictionaryService } from 'src/app/Service/LabelDictionary/label-dictionary.service';\nimport { ReplayService } from 'src/app/Service/Replay/replay.service';\nimport { ElementRegistryService } from 'src/app/Service/ElementRegistry/element-registry.service';\nimport { DomainConfigurationService } from 'src/app/Service/DomainConfiguration/domain-configuration.service';\nimport { MassNamingService } from 'src/app/Service/LabelDictionary/mass-naming.service';\nimport { InfoDialogComponent } from 'src/app/Presentation/Dialog/info-dialog/info-dialog.component';\nimport { ExportDialogComponent } from 'src/app/Presentation/Dialog/export-dialog/export-dialog.component';\nimport { ActivityDialogComponent } from 'src/app/Presentation/Dialog/activity-dialog/activity-dialog.component';\nimport { UntypedFormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { HeaderDialogComponent } from 'src/app/Presentation/Dialog/header-dialog/header-dialog.component';\nimport { IconDictionaryService } from 'src/app/Service/DomainConfiguration/icon-dictionary.service';\nimport { ModelerComponent } from 'src/app/Presentation/Canvas/modeler.component';\nimport { SettingsModule } from 'src/app/Modules/settings.module';\nimport { AutosaveService } from './Service/Autosave/autosave.service';\nimport { DomainStoryModelerModuleModule } from './Modules/domain-story-modeler-module.module';\nimport { LabelDictionaryDialogComponent } from './Presentation/Dialog/label-dictionary-dialog/label-dictionary-dialog.component';\nimport { MaterialModule } from './material.module';\n\n@NgModule({\n declarations: [\n HeaderComponent,\n SettingsComponent,\n AppComponent,\n InfoDialogComponent,\n ExportDialogComponent,\n ActivityDialogComponent,\n HeaderDialogComponent,\n ModelerComponent,\n LabelDictionaryDialogComponent,\n ],\n imports: [\n BrowserModule,\n NoopAnimationsModule,\n ReactiveFormsModule,\n SettingsModule,\n DomainStoryModelerModuleModule,\n MaterialModule,\n ],\n providers: [\n AutosaveService,\n ExportService,\n ImportDomainStoryService,\n ImportRepairService,\n IconDictionaryService,\n TitleService,\n LabelDictionaryService,\n ReplayService,\n ElementRegistryService,\n DomainConfigurationService,\n ModelerService,\n MassNamingService,\n UntypedFormBuilder,\n {\n provide: MAT_CHECKBOX_DEFAULT_OPTIONS,\n useValue: { clickAction: 'noop' } as MatCheckboxDefaultOptions,\n },\n ],\n})\nexport class AppModule implements DoBootstrap {\n constructor(private autosaveService: AutosaveService) {\n // autosaveService wird so automatisch initialisiert, auf keinen Fall entfernen!\n }\n\n ngDoBootstrap(app: ApplicationRef): void {\n const componentElement = document.createElement('app-root');\n document.body.append(componentElement);\n app.bootstrap(AppComponent);\n }\n}\n","import { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { NgModule } from '@angular/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatListModule } from '@angular/material/list';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@NgModule({\n imports: [\n MatButtonModule,\n MatButtonToggleModule,\n MatListModule,\n MatCheckboxModule,\n MatDialogModule,\n MatFormFieldModule,\n MatGridListModule,\n MatInputModule,\n MatToolbarModule,\n MatExpansionModule,\n MatSnackBarModule,\n MatCardModule,\n ],\n exports: [\n MatButtonModule,\n MatButtonToggleModule,\n MatListModule,\n MatCheckboxModule,\n MatDialogModule,\n MatFormFieldModule,\n MatGridListModule,\n MatInputModule,\n MatToolbarModule,\n MatExpansionModule,\n MatSnackBarModule,\n MatCardModule,\n ],\n})\nexport class MaterialModule {}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n"],"names":["Modeler","ResizeModule","assign","isArray","inherits","DomainStoryModule","LabelEditingModule","ModelingModule","elementTypes","DomainStoryModeler","options","call","_customElements","_groupElements","prototype","_modules","concat","_addCustomShape","customElement","parentId","parent","children","push","canvas","get","elementFactory","customAttrs","businessObject","customShape","create","isGroup","id","parentShape","addShape","_addCustomConnection","elementRegistry","connection","source","target","addConnection","importCustomElements","elements","fire","addCustomElements","customElements","Error","shapes","connections","groups","forEach","isConnection","getCustomElements","createDiagram","done","element","type","ACTIVITY","CONNECTION","GROUP","Replace","modeling","_modeling","replaceElement","oldElement","newElementData","newElement","setCenterOfElement","outgoingActivities","outgoing","incomingActivities","incoming","x","Math","ceil","width","y","height","name","replaceShape","replaceOptions","ReplaceMenuProvider","_dsReplace","$inject","getEntries","entries","includes","actorReplaceOptions","workObjectReplaceOptions","_createEntries","menuEntries","self","definition","entry","_createMenuEntry","action","replaceAction","label","className","actionName","getNameFromType","iconDictionaryService","initializeReplaceOptions","iconDictionary","actorTypes","getTypeDictionary","ACTOR","replaceOption","i","keysArray","actorType","typeName","toLowerCase","getIconForBPMN","workObjectTypes","WORKOBJECT","workObjectType","ContextPadProvider","bind","generateAutomaticNumber","getAllStandardIconKeys","dirtyFlagService","initializeContextPadProvider","dirtyFlag","DomainStoryContextPadProvider","injector","connect","translate","contextPad","popupMenu","replaceMenuProvider","commandStack","eventBus","startConnect","selectedElement","invoke","autoPlace","cached","getContextPadEntries","colorPicker","document","getElementById","onchange","ev","context","newColor","value","execute","makeDirty","registerProvider","allStandardIconKeys","actions","event","autoActivate","start","replace","addColorChange","addConnectWithActivity","addTextAnnotation","addActors","appendAction","addWorkObjects","addChangeWorkObjectTypeMenu","addChangeActorTypeMenu","delete","deleteGroup","group","title","click","removeGroup","moveDeleteActionToEndOfArray","removeElements","changeDirection","position","getReplaceMenuPosition","cursor","open","colorChange","TEXTANNOTATION","dragstart","icon","newNumber","Y_OFFSET","diagramContainer","getContainer","pad","getPad","html","diagramRect","getBoundingClientRect","padRect","top","left","appendStart","shape","createShape","hints","BpmnElementFactory","DEFAULT_LABEL_SIZE","DomainStoryIdFactory","DomainStoryElementFactory","bpmnFactory","moddle","domainStoryIdFactory","elementType","attrs","baseCreate","test","registerId","getId","key","set","$type","di","$descriptor","_getCustomElementSize","Object","defineProperty","createBpmnElement","__default","Dimensions","idList","generateId","idNumber","fourDigitsId","idSuffix","containsId","floor","random","same","BaseRenderer","Ids","getAnnotationBoxHeight","componentsToPath","createLine","append","svgAppend","attr","svgAttr","classes","svgClasses","svgCreate","query","domQuery","isObject","getNumberStash","addNumberToRegistry","numberBoxDefinitions","calculateTextWidth","countLines","labelPosition","angleBetween","RENDERER_IDS","numbers","DEFAULT_COLOR","initializeRenderer","elementRegistryService","DomainStoryRenderer","styles","textRenderer","pathMap","rendererId","next","markers","computeStyle","generateActivityNumber","parentGfx","box","numberStash","semantic","use","number","renderNumber","backgroundDotStyle","backgroundBoxStyle","newRenderedNumber","numberStyle","fitBox","style","getExternalStyle","fill","fontSize","fontFamily","renderEmbeddedLabel","align","padding","renderLabel","renderExternalLabel","waypoints","lines","startPoint","selected","endPoint","angle","alignment","boxWidth","xStart","abs","textAlign","length","wordWrap","overflowWrap","hyphens","renderExternalNumber","String","text","createText","add","setCoordinates","innerHTML","manipulateInnerHTMLXLabel","manipulateInnerHTMLYLabel","firstChild","attributes","nodeValue","offset","result","outerHTML","Number","drawGroup","pickedColor","rect","drawRect","stroke","useColorForElement","iconSRC","match","index","indexOf","substring","getIconSrc","startsWith","drawActor","p","svgDynamicSizeAttributes","actor","getTypeIconSRC","drawWorkObject","workObject","useColorForActivity","strokeWidth","strokeLinejoin","markerEnd","marker","drawActivity","adjustForTextOverlap","fixConnectionInHTML","parentElement","checkIfPointOverlapsText","point","lineOffset","getLineOffset","objects","getElementsByClassName","data_id","item","getAttribute","object","getElementsByTagName","tspans","tspan","wantedConnection","polylines","setAttribute","drawDSConnection","strokeDasharray","drawAnnotation","textElement","textPathData","getScaledPath","xScaleFactor","yScaleFactor","containerWidth","containerHeight","mx","my","drawPath","d","path","r","rx","ry","createMarker","sequenceflowEnd","addMarker","ref","scale","strokeLinecap","viewBox","refX","refY","markerWidth","markerHeight","orient","defs","_svg","getWorkObjectPath","rectangle","getRectPath","getGroupPath","getActivityPath","map","original","activityPath","waypoint","getActorPath","canRender","drawShape","search","pos","correctInitialize","getShapePath","drawConnection","getConnectionPath","every","reduce","RuleProvider","is","HIGH_PRIORITY","MIN_SIZE","isDomainStory","isDomainStoryGroup","isActor","isWorkObject","isActivity","isAnnotation","canConnect","canResize","newBounds","lowerLeft","lowerRight","upperRight","canAttach","Array","canConnectToAnnotation","DomainStoryRules","init","canCreate","addRule","host","s","undefined","hover","pick","CommandInterceptor","collectionAdd","remove","collectionRemove","reworkGroupElements","DomainStoryUpdater","bpmnjs","updateCustomElement","e","DOMAINSTORY","updateCustomConnection","newTarget","newSource","copyWaypoints","executed","ifDomainStoryElement","reverted","fn","DomainStoryPalette","ElementFactory","CreateModule","PathMap","PopupMenuModule","ContextPadModule","CommandStack","UpdateLabelHandler","headlineAndDescriptionUpdateHandler","DSModeling","__depends__","__init__","domainStoryRenderer","paletteProvider","domainStoryRules","domainStoryUpdater","contextPadProvider","elementFactoryBpmn","updateLabelHandler","svgRemove","MARKER_HIDDEN","MARKER_LABEL_HIDDEN","annotationBoxHeight","DSLabelEditingPreview","defaultLayer","getDefaultLayer","absoluteElementBBox","gfx","on","activeProvider","active","getAbsoluteBBox","getStrokeColor","labelTarget","dy","newElementHeight","max","removeMarker","getLabel","autocomplete","isAny","getExternalLabelMid","isLabelExternal","hasExternalLabel","isLabel","dictionaryService","stashUse","initializeLabelEditingProvider","labelingDictionary","toggleStashUse","DSLabelEditingProvider","directEditing","resizeHandles","_canvas","_textRenderer","_updateLabelHandler","activateDirectEdit","complete","isActive","cancel","removeResizers","createAutocomplete","canExecute","isTouch","force","activate","editingBox","focus","getWorkObjectLabels","bounds","getEditingBBox","autoResize","resizable","bbox","mid","zoom","defaultStyle","getDefaultStyle","externalStyle","externalFontSize","externalLineHeight","lineHeight","defaultFontSize","defaultLineHeight","fontWeight","minWidth","maxWidth","minHeight","paddingTop","paddingBottom","paddingLeft","paddingRight","externalLabelMid","absoluteBBox","update","newLabel","activeContextText","updateLabel","getLabelAttr","getNumberAttr","getNumber","setLabel","setNumber","textNumber","selectPartOfActivity","angleActivity","selectedActivity","linelength","fontsize","inp","arr","closeAllLists","currentFocus","addEventListener","autocompleteList","autocompleteItem","val","createElement","parentNode","appendChild","substr","toUpperCase","onclick","visibility","onkeydown","keyCode","addActive","preventDefault","removeActive","classList","survivor","removeChild","ChangeSupportModule","DirectEditingModule","dSlabelEditingProvider","dSlabelEditingPreview","str","split","amountWaypoints","determinedPosition","xPos","yPos","labelPositionX","labelPositionY","offsetX","scaledAngle","offsetY","Modeling","_commandStack","updateNumber","oldShape","newShape","newData","numberRegistry","multipleNumberRegistry","canvasElementRegistry","initializeNumbering","canvasElementRegistryService","boxHeight","elementActivity","usedNumbers","wantedNumber","activitiesFromActors","getActivitiesFromActors","updateExistingNumbersAtGeneration","setTimeout","updateExistingNumbersAtEditing","sortedActivities","activity","currentNumber","setNumberOfActivity","getNumbersAndIDs","iDWithNumber","activities","renderedNumber","setNumberIsMultiple","multi","getNumberRegistry","slice","getMultipleNumberRegistry","elementArray","overrideAppendedIcons","Dictionary","APPENDED_ICONS_TAG","configuration","initializePalette","configurationService","PaletteProvider","palette","spaceTool","lassoTool","_create","_elementFactory","_spaceTool","_lassoTool","getPaletteEntries","createAction","createListener","isExpanded","shortType","initPalette","appendCSSStyleCheat","customIcons","sheetEl","head","customIconDict","appendDict","customIconDictKeys","getAppendedIconDictionary","has","src","iconStyle","wrapSRCInSVG","sheet","insertRule","cssRules","config","getCurrentIconConfigurationForBPMN","localStorage","getItem","JSON","parse","customIconsLegacy","convertLegacyAppendedIconsToDict","customIconsDict","putEntry","initTypeDictionaries","actors","workObjects","addCanvasObjectTypes","separator","activateSelection","keys","dict","initializeActivityUpdateHandler","activityUpdateHandler","registerHandler","activity_directionChange","activity_changed","preExecute","oldLabel","oldNumbersWithIDs","oldNumber","revert","revertAutomaticNumberGenerationChange","oldWaypoints","swapSource","newWaypoints","getActivitesFromActors","j","splice","undoGroupRework","elementUpdateHandler","element_colorChange","removeGroupWithoutChildren","oldColor","ctx","child","titleService","handlerFunction","oldTitle","getTitle","oldDescription","getDescription","updateTitleAndDescription","newTitle","newDescription","DSMassRenameHandler","massRename","relevantElements","confirm","newValue","getBusinessObject","NULL_DIMENSIONS","labelCenter","createLabel","setText","postExecute","trim","removeShape","bo","getLayoutedBounds","resizeShape","numberTarget","some","$instanceOf","types","t","innerShape","superParent","svgShape","querySelector","svgGroup","svgGroupParent","SVG_LINK","TEXTSPAN_DESCRIPTION_HEIGHT","TEXTSPAN_TITLE_HEIGHT","X_OFFSET_UTIL","extraHeight","createTitleAndDescriptionSVGElement","description","xLeft","yUp","titleElement","createTitle","descriptionElement","createDescription","insertText","tempCanvas","getContext","font","createTextSpans","descriptionParts","yOffset","heightOffset","textSpans","words","textTag","textSpan","createElementNS","textNode","createTextNode","data","len","measureText","testBusinessObject","Configuration","constructor","VERSION","INITIAL_TITLE","INITIAL_DESCRIPTION","INITIAL_DOMAIN_NAME","DOMAIN_CONFIGURATION_TAG","DEFAULT_AUTOSAVES_AMOUNT","DEFAULT_AUTOSAVES_INTERVAL","SNACKBAR_DURATION","SNACKBAR_SUCCESS","SNACKBAR_ERROR","SNACKBAR_INFO","IMPLICIT_ROOT_ID","all","size","isEmpty","Entry","addEach","clear","filter","found","sort","sortByName","a","b","structuredClone","testCustomDomainConfiguration","fromConfigurationFromFile","configFromFile","actorsDict","workObjectsDict","IconConfiguration","allIconDictionary","getDefaultConf","defaultConf","updateAllIconRegistry","appendSRCFile","newAppendedIcons","appen","createCustomConf","domainConfiguration","domainName","allIconsConf","ActivityDialogData","numberIsAllowedMultipleTimes","showNumberFields","saveFN","ExportDialogData","ExportOption","tooltip","InfoDialogData","infoText","isInfo","isLink","linkText","NUMBER_BACKGROUND_COLOR","NUMBER_COLOR","STROKE_WIDTH","HIGHLIGHT_NUMBER_BACKGROUNG_COLOR","HIGHLIGHT_NUMBER_COLOR","HIGHLIGHT_COLOR","HIGHLIGHT_STROKE_WIDTH","appendedIcons","allIcons","Person","Group","Pet","Conversation","World","Store","Theater","Business","Water","Hotel","Dining","Courthouse","Flag","Place","Car","Bus","Train","Truck","Taxi","Bike","Boat","Motorcycle","Plane","Shuttle","Walking","Traffic","Commute","System","Printer","Document","Folder","Call","Email","Copyright","DNS","Settings","Cellphone","Update","Briefcase","Microphone","Signal","Key","Pencil","Sum","Headset","Keyboard","Mouse","Router","Scanner","Security","Desktop","Tablet","Label","Receipt","Calendar","Cloud","Assessment","Dashboard","Problem","Grid","Watch","Euro","Dollar","Info","Alarm","Wrench","Favorite","Gavel","Blind","Hourglass","Time","Search","Shopping","Couch","Attach","Ruler","Education","allIconsDict","newIcons","IconFilterEnum","ConfigAndDST","domain","dst","testConfigAndDst","CommonModule","AutosaveSettingsComponent","AutosaveOptionsComponent","AutosavedDraftsComponent","FormsModule","MaterialModule","AutosaveSettingsModule","declarations","imports","exports","HeaderButtonsComponent","DomainStoryModelerModuleModule","DomainConfigurationComponent","IconListItemComponent","DetailsListItemComponent","DomainDetailsComponent","GeneralSettingsComponent","LabelDictionaryComponent","SettingsModule","i0","autosaveConfiguration","snackbar","save","activated","amount","interval","setConfiguration","duration","panelClass","selectors","decls","vars","consts","template","autosaveService","subscription","autosavedDraftsChanged$","subscribe","initDrafts","ngOnInit","drafts","loadCurrentDrafts","loadDraft","draft","removeAllDrafts","ModelerComponent","modelerService","postInit","MAT_DIALOG_DATA","ActivityDialogComponent","fb","dialogRef","activityLabel","activityNumber","form","multipleNumbers","onSubmit","patchValue","close","BehaviorSubject","ExportDialogComponent","withTitle","useWhiteBackground","doOption","updateWithTitle","$event","checked","updateUseWhiteBackground","HeaderDialogComponent","InfoDialogComponent","showConfirmButton","hasLink","ngAfterViewInit","span","scrollHeight","LabelDictionaryDialogComponent","ngAfterViewChecked","createIcon","img","iconInitiated","svg","inputs","sanitizeIconName","domainCustomizationService","ICON_FILTER_NONE","domainConfigurationTypes","getDomainConfiguration","getFullDictionary","allIconNames","selectedActors","selectedActors$","selectedWorkobjects","selectedWorkobjects$","allFiltered","getFilteredNamesForType","allFilteredIconNames","loadMinimalIconConfigurationWithDefaultIcons","resetDomain","loadInitialConfiguration","saveDomain","getUsedIcons","exportDomain","startIconUpload","importIcon","files","iconInputFile","reader","FileReader","iconName","onloadend","addIMGToIconDictionary","registerIconForBPMN","addNewIcon","readAsDataURL","startDomainImport","importDomain","domainInputFile","loadConfiguration","importConfiguration","readAsText","filterForActors","ICON_FILTER_ACTOR","filterForWorkobjects","ICON_FILTER_WORKOBJECT","filterForUnassigned","ICON_FILTER_UNASSIGNED","filterByNameAndType","filteredByNameAndType","isIconActor","isIconWorkObject","customizationService","domainName$","changeName","getIconForName","allowDrop","listName","draggedList","onDrop","list","sortedList","draggedIndex","setSelectedActors","setSelectedWorkObject","onDragStart","isWorkobject","isNone","toggleNone","setAsUnassigned","toggleActor","setAsActor","toggleWorkobject","setAsWorkobject","MatDialogConfig","settingsService","replayStateService","dialogService","replayService","exportService","importService","isReplay$","replayOn$","isDirty$","dirty$","showDescription","showDescription$","import","filename","endsWith","importDST","importEGN","commandStackChanged","setShowDescription","show","openSettings","openDownloadDialog","isDomainStoryExportable","SVGDownloadOption","downloadSVG","EGNDownloadOption","downloadDST","PNGDownloadOption","downloadPNG","HTMLDownloadOption","downloadHTMLPresentation","disableClose","autoFocus","openDialog","openHeaderDialog","openKeyboardShortcutsDialog","shortCutText","openLabelDictionary","startReplay","stopReplay","previousStep","nextStep","combineLatest","HeaderComponent","title$","description$","stepDescription$","currentStep$","maxStepNumber$","pipe","step","count","EventEmitter","labelDictionaryService","createLabelDictionaries","workObjectEntries","activityEntries","getActivityLabels","workobjectEntriesSubject","activityEntriesSubject","activityNames","originalActivityNames","workObjectNames","originalWorkObjectNames","originalName","w","workobject","massRenameLabels","closeEmitter","emit","updateActivityEntry","activityEntry","updateWorkobjectEntry","workobjectEntry","outputs","SettingsComponent","savedConfiguration","getAndClearSavedConfiguration","restart","openGeneralSettings","showGeneralSettings","showDomainCustomization","openDomainCustomization","ReplaySubject","AUTOSAVE_CONFIGURATION_TAG","defaultConfiguration","AutosaveConfigurationService","storageService","configurationSubject","asObservable","initializeConfiguration","saveConfiguration","factory","providedIn","Subject","DRAFTS_TAG","AutosaveService","iconDistionaryService","rendererService","configuration$","updateConfiguration","readDrafts","sortDrafts","configAndDST","story","actorIcons","getElementsOfType","workObjectIcons","updateIconRegistries","importStory","stopTimer","startTimer","autosaveTimer","clearInterval","setInterval","newDraft","createDraft","isChanged","isSame","unshift","pop","writeDrafts","stringify","getStory","createConfigAndDST","date","Date","toString","aDate","bDate","StorageService","setItem","json","removeItem","checkValidityOfConfiguration","configuratioFromFile","getStoredDomainConfiguration","domainString","setStoredDomainConfiguration","configForStorage","CommandStackService","setCommandStack","payload","DialogService","matDialog","dialog","DirtyFlagService","isDirtySubject","makeClean","dirty","DomManipulationService","showAll","removeHighlights","getAllCanvasObjects","getAllGroups","domObject","display","showStep","replayStep","notShown","getAllNotShown","hightlightStep","o","getNumberDomForActivity","numberDOMS","numberBackgroundDom","numberTextDom","allActivities","getAllActivities","allConnections","getAllConnections","activityDomObject","connectionDomObject","stepObjects","shownElements","notShownElements","allObjects","DomainConfigurationService","setDomainName","exportConfiguration","getCurrentConfigurationForExport","configJSONString","getDomainName","encodeURIComponent","body","customConfig","updateDomainName","actorDict","workObjectDict","actorKeys","workObjectKeys","getIconConfiguration","addIconsFromDomainConfiguration","configurationName","getCurrentConfiguration","getActorsDictionary","getWorkObjectsDictionary","createConfigFromDictionaries","currentConfiguration","getCurrentConfigurationNamesWithoutPrefix","createMinimalConfigurationWithDefaultIcons","minimalConfig","createConfigFromCanvas","getIconSource","actorNames","workobjectNames","newActors","newWorkobjects","allCanvasObjects","DomainCustomizationService","getAllIconDictionary","addIconToAllIconList","importedConfigurationEvent","storedDomainConfiguration","importedConfiguration","getImportedConfiguration","allIconListItems","selectedActorNames","selectActor","selectedWorkobjectNames","selectWorkObject","changedDomain","deselectActor","deselectWorkobject","updateIcon","updateActorSubject","updateWorkObjectSubject","configurationHasChanged","defaultConfig","workObjectName","actorName","updateAllIconBehaviourSubjects","resetToInitialConfiguration","usedIcons","imported","changedActors","changedWorkobjects","createDomainConfiguration","configurationActors","configurationWorkobjects","workobjects","changedDomainCofiguration","updateIcons","join","temp","iconDict","getSrcForIcon","addIconsToCss","iconBehaviourSubject","customDomainCofiguration","rawSrc","ICON_PREFIX","IconDictionaryService","iconConfig","allTypes","initDictionary","actorIconDictionary","workObjectDictionary","dictionary","namePrefix","customConfiguration","allInTypeDictionary","collection","allIn","dictionaryType","iconTypes","registerIconForType","iconDictionaryForBPMN","addIconsToTypeDictionary","extractCustomIconsFromDictionary","addNewIconsToDictionary","elementDictionary","sanitizedName","custom","input","fullDictionary","appendedDict","getTypeDictionaryKeys","elementOfType","setCusomtConfiguration","ElementRegistryService","fullyInitialized","registry","__implicitroot","setElementRegistry","_elements","createObjectListForDSTDownload","allObjectsFromCanvas","objectList","fillListOfCanvasObjects","canvasElement","groupObjects","checkChildForGroup","currentGroup","registryElementNames","getAllActors","getAllWorkobjects","co","sanitizeForDesktop","ExportService","pngService","svgService","htmlPresentationService","titleSubscription","descriptionSubscription","ngOnDestroy","unsubscribe","DomainStory","getStoryForDownload","downloadFile","datatype","fileEnding","svgData","createSVGData","container","svgElements","outerSVGElement","viewport","layerBase","image","extractSVG","prepareSVG","onload","getWidth","getHeight","fillStyle","drawImage","png64","toDataURL","ele","toISOString","then","info","version","doT","HtmlPresentationService","setModelerClasses","selection","modeler","viewBoxCoordinates","ViewBoxCoordinate","saveSVG","fixActivityMarkersForEachStep","getCurrentStepNumber","content","transition","err","alert","getMaxStepNumber","revealjsTemplate","dots","revealjsData","script","sentences","multiplexSecret","multiplexId","fixMalformedHtmlScript","viewBoxIndex","splitViewBox","dataStart","dataEnd","createBounds","sectionIndex","newDefs","ids","idToReplace","newId","replaceAll","PngService","browserSpecs","ua","navigator","userAgent","tem","M","exec","appName","appVersion","URIHashtagFix","fix","browser","parseInt","findMostOuterElements","xRight","yDown","sub","elXLeft","elXRight","elYUp","elYDown","transform","nums","rects","outerRect","calculateWidthAndHeight","insertIndex","layerResizers","layerOverlays","removeAttribute","XMLSerializer","serializeToString","SvgService","cacheData","getEncoded","findIndexToInsertData","svgIndex","backgroundColorWhite","appendDST","restoreTitleFromFileName","ImportDomainStoryService","importRepairService","domainConfigurationService","importedConfigurationEmitter","isSVG","fileReader","titleText","fileReaderFunction","isEGN","dstText","removeXMLComments","dstAndConfig","extractDstAndConfig","configChanged","checkConfigForChanges","lastElement","importVersionNumber","handleVersionNumber","checkForUnreferencedElementsInActivitiesAndRepair","showBrokenImportDialog","adjustPositions","versionPrefix","lastIndexOf","updateCustomElementsPreviousV050","showPreviousV050Dialog","xmlText","newActorKeys","newWorkObjectKeys","currentActorKeys","currentWorkobjectKeys","changed","clearName","setImportedConfigurationAndEmit","ImportRepairService","objectIDs","activityIndex","isFirst","findFirstElement","adjustElementPosition","LabelDictionaryService","massNamingService","activityLabels","workObjektLabels","localeCompare","massChangeNames","MassNamingService","commandStackService","oldValue","allRelevantObjects","massRenameHandler","positionsMatch","InitializerService","initializeDomainStoryModelerClasses","propagateDomainStoryModelerClassesToServices","initializeDomainStoryModelerEventHandlers","initiateEventBusListeners","getReplayOn","activityDoubleClick","renderedNumberRegistry","htmlCanvas","transformX","transformY","zoomX","zoomY","clickX","originalEvent","clickY","parseFloat","currentNum","tx","ty","tNumber","elementX","elementY","stopPropagation","saveActivityInputLabel","activityData","hasNumber","multipleNumberAllowed","ModelerService","initializerService","keyboard","bindTo","additionalModules","bpmnSearch","exportArtifacts","debounce","window","startDebounce","domainStory","currentStory","destroy","getModeler","timeout","timer","clearTimeout","encoded","RendererService","renderStory","configurationChange","c","ReplayStateService","replayOnSubject","setReplayState","state","ReplayService","domManipulationService","storyCreatorService","currentStep","maxStepNumber","initializeReplay","traceActivitiesAndCreateStory","showCurrentStep","missingSteps","getMissingSteps","getValue","steps","StoryCreatorService","tracedActivityMap","tracedItem","createStep","addGroupStep","getStepObjects","highlightedElements","highlightedObjects","tracedActivity","initialSource","targetObjects","parallelStep","firstTarget","checkTarget","activityTarget","g","SettingsService","showSettings","TitleService","titleSubject","descriptionSubject","showDescriptionSubject","domainNameSubject","allowUndo","fireTitleAndDescriptionUpdate","updateTitle","updateDescription","getVersion","degrees","radians","PI","quadrant","adjacent","opposite","atan2","Point","reg","dstRegex","svgRegex","egnSuffix","dstSuffix","svgSuffix","filenameWithoutDateSuffix","AppComponent","replayStateSerice","showSettings$","ctrlKey","openLinkDialog","link","BrowserModule","MAT_CHECKBOX_DEFAULT_OPTIONS","NoopAnimationsModule","UntypedFormBuilder","ReactiveFormsModule","AppModule","ngDoBootstrap","app","componentElement","bootstrap","provide","useValue","clickAction","MatDialogModule","MatFormFieldModule","MatInputModule","MatToolbarModule","MatExpansionModule","MatCardModule","MatSnackBarModule","MatButtonModule","MatGridListModule","MatButtonToggleModule","MatListModule","MatCheckboxModule","environment","production","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","console","error"],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file diff --git a/app-v2.0.0-beta/polyfills.js.map b/app-v2.0.0-beta/polyfills.js.map index 0d762b2..f71bcd6 100644 --- a/app-v2.0.0-beta/polyfills.js.map +++ b/app-v2.0.0-beta/polyfills.js.map @@ -1 +1 @@ -{"version":3,"file":"polyfills.js","mappings":"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","sources":["./node_modules/zone.js/fesm2015/zone.js","./src/polyfills.ts"],"sourcesContent":["'use strict';\n/**\n * @license Angular v\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n((function (global) {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) {\n return symbolPrefix + name;\n }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n // tslint:disable-next-line:require-internal-with-underscore\n static { this.__symbol__ = __symbol__; }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n if (task.state !== scheduled && task.state !== running) {\n return;\n }\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class _ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n}))(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n/// \n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = Zone.__symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n}\n\nZone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected :\n forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then(v => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, err => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n ;\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and invokes\n // it with the `value` context. Otherwise, this will throw an error: `TypeError: Cannot read\n // properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', delegate => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n});\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return { ...options, passive: true };\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = buildEventListenerOptions(arguments[2], passive);\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n}\n\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter(name => name.startsWith('on') && name.length > 2)\n .map(name => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat([\n 'Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement',\n 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker'\n ]);\n const ignoreErrorProperties = isIE() ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest',\n 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket'\n ]);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target && target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n}\n\nZone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR\n });\n});\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchQueueMicrotask(global, api) {\n api.patchMethod(global, 'queueMicrotask', (delegate) => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative.call(window, task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n if (!(options.isPeriodic)) {\n if (typeof options.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[options.handleId];\n }\n else if (options.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n options.handleId[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n}\n\nfunction patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nZone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n});\nZone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n});\nZone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n});\nZone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n});\nZone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n});\nZone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\nZone.__load_patch('queueMicrotask', (global, Zone, api) => {\n patchQueueMicrotask(global, api);\n});\n","/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n * because those flags need to be set before `zone.js` being loaded, and webpack\r\n * will put import in the top of bundle, so user need to create a separate file\r\n * in this directory (for example: zone-flags.ts), and put the following flags\r\n * into that file, and then add the following code before importing zone.js.\r\n * import './zone-flags';\r\n *\r\n * The flags allowed in zone-flags.ts are listed here.\r\n *\r\n * The following flags will work for all browsers.\r\n *\r\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n *\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n *\r\n * (window as any).__Zone_enable_cross_context_check = true;\r\n *\r\n */\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js'; // Included with Angular CLI.\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n"],"names":["global","performance","mark","name","performanceMeasure","label","symbolPrefix","__symbol__","checkDuplicate","Error","Zone","assertZonePatched","patches","root","zone","current","parent","_currentZoneFrame","currentTask","_currentTask","__load_patch","fn","ignoreDuplicate","hasOwnProperty","perfName","_api","_parent","_name","constructor","zoneSpec","_properties","properties","_zoneDelegate","_ZoneDelegate","get","key","getZoneWith","fork","wrap","callback","source","_callback","intercept","runGuarded","arguments","run","applyThis","applyArgs","invoke","error","handleError","runTask","task","NO_ZONE","state","notScheduled","type","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","runCount","previousTask","data","isPeriodic","cancelFn","undefined","invokeTask","unknown","_updateTaskCount","scheduleTask","newZone","scheduling","zoneDelegates","_zoneDelegates","_zone","err","scheduleMicroTask","customSchedule","ZoneTask","microTask","scheduleMacroTask","customCancel","scheduleEventTask","cancelTask","canceling","count","i","length","DELEGATE_ZS","onHasTask","delegate","_","target","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","parentHasTask","targetZone","apply","returnTask","push","scheduleFn","value","isEmpty","counts","prev","next","change","options","_state","self","useG","call","args","_numberOfNestedTaskFrames","drainMicroTaskQueue","cancelScheduleRequest","toState","fromState1","fromState2","toString","handleId","Object","prototype","toJSON","symbolSetTimeout","symbolPromise","symbolThen","_microTaskQueue","_isDrainingMicrotaskQueue","nativeMicroTaskQueuePromise","nativeScheduleMicroTask","func","resolve","nativeThen","queue","onUnhandledError","microtaskDrainDone","symbol","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","window","getOwnPropertyDescriptor","defineProperty","ObjectGetPrototypeOf","getPrototypeOf","create","Array","slice","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","scheduleMacroTaskWithCurrentZone","zoneSymbol","isWindowExists","internalWindow","_global","REMOVE_ATTRIBUTE","patchPrototype","fnNames","prototypeDesc","isPropertyWritable","patched","propertyDesc","writable","set","isWebWorker","WorkerGlobalScope","isNode","process","isBrowser","isMix","zoneSymbolEventNames$1","wrapFn","event","eventNameSymbol","listener","result","errorEvent","message","filename","lineno","colno","preventDefault","patchProperty","obj","prop","desc","enumerable","configurable","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","previousValue","removeEventListener","addEventListener","removeAttribute","onProperties","j","originalInstanceKey","className","OriginalClass","a","instance","patchFn","proto","delegateName","patchDelegate","funcName","metaCreator","setNative","cbIdx","meta","original","isDetectedIEOrEdge","ieOrEdge","isIE","ua","navigator","userAgent","indexOf","api","readableObjectToString","JSON","stringify","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","creationTrace","e","rejection","console","stack","uncaughtPromiseError","shift","throwOriginal","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","handler","isThenable","then","forwardResolution","forwardRejection","ZoneAwarePromise","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED","REJECTED_NO_CATCH","makeResolver","promise","v","resolvePromise","once","wasCalled","wrapper","wrappedFunction","TYPE_ERROR","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","TypeError","clearRejectedNoCatch","trace","scheduleResolveOrReject","REJECTION_HANDLED_HANDLER","splice","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","ZONE_AWARE_PROMISE_TO_STRING","AggregateError","any","values","Symbol","iterator","Promise","promises","finished","errors","race","res","rej","onResolve","onReject","all","allWithCallback","allSettled","P","thenCallback","status","errorCallback","reason","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","executor","toStringTag","species","C","catch","finally","onFinally","NativePromise","symbolThenPatched","Ctor","originalThen","wrapped","zoneify","resultPromise","ctor","originalFunctionToString","Function","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","originalDelegate","nativePromise","nativeError","originalObjectToString","PROMISE_OBJECT_TO_STRING","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbolCapture","apis","patchOptions","ADD_EVENT_LISTENER","add","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","PREPEND_EVENT_LISTENER","PREPEND_EVENT_LISTENER_SOURCE","isRemoved","handleEvent","globalCallback","context","isCapture","tasks","copyTasks","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","rt","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","prepend","buildEventListenerOptions","passive","capture","customScheduleGlobal","isExisting","customCancelGlobal","symbolEventNames","symbolEventName","existingTasks","existingTask","allRemoved","customScheduleNonGlobal","customSchedulePrepend","customCancelNonGlobal","compareTaskCallbackVsDelegate","typeOfDelegate","compare","diff","unpatchedEvents","passiveEvents","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","constructorName","targetSource","unshift","onPropertySymbol","findEventTasks","keys","match","exec","evtName","symbolCaptureEventName","captureTasks","removeTasks","results","foundTasks","captureFalseTasks","captureTrueTasks","concat","Event","targetName","method","callbacks","nativeDelegate","opts","forEach","descriptor","ignoreProperties","tip","filter","ip","targetIgnoreProperties","op","patchFilteredProperties","filteredProperties","getOnEventNames","getOwnPropertyNames","startsWith","map","substring","propertyDescriptorPatch","patchTargets","ignoreErrorProperties","eventNames","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","patchQueueMicrotask","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","clearTask","delay","timer","handle","ref","unref","bind","id","patchCustomElements","customElements","eventTargetPatch","EVENT_TARGET","patchEvent","legacyPatch","clear","blockingMethods","s","XMLHttpRequestEventTarget","patchXHR","XHR_TASK","XHR_SYNC","XHR_LISTENER","XHR_SCHEDULED","XHR_URL","XHR_ERROR_BEFORE_SCHEDULED","XMLHttpRequest","XMLHttpRequestPrototype","findPendingTask","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","newListener","readyState","DONE","aborted","loadTasks","oriInvoke","storedTask","sendNative","placeholderCallback","abortNative","openNative","XMLHTTPREQUEST_SOURCE","fetchTaskAborting","fetchTaskScheduling","url","geolocation","findPromiseRejectionHandler","eventTasks","PromiseRejectionEvent","evt"],"sourceRoot":"webpack:///","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"polyfills.js","mappings":";;;;;;;;;AAAa;;AACb;AACA;AACA;AACA;AACA;AACA,CAAE,UAAUA,MAAM,EAAE;EAChB,MAAMC,WAAW,GAAGD,MAAM,CAAC,aAAa,CAAC;EACzC,SAASE,IAAI,CAACC,IAAI,EAAE;IAChBF,WAAW,IAAIA,WAAW,CAAC,MAAM,CAAC,IAAIA,WAAW,CAAC,MAAM,CAAC,CAACE,IAAI,CAAC;EACnE;EACA,SAASC,kBAAkB,CAACD,IAAI,EAAEE,KAAK,EAAE;IACrCJ,WAAW,IAAIA,WAAW,CAAC,SAAS,CAAC,IAAIA,WAAW,CAAC,SAAS,CAAC,CAACE,IAAI,EAAEE,KAAK,CAAC;EAChF;EACAH,IAAI,CAAC,MAAM,CAAC;EACZ;EACA;EACA;EACA,MAAMI,YAAY,GAAGN,MAAM,CAAC,sBAAsB,CAAC,IAAI,iBAAiB;EACxE,SAASO,UAAU,CAACJ,IAAI,EAAE;IACtB,OAAOG,YAAY,GAAGH,IAAI;EAC9B;EACA,MAAMK,cAAc,GAAGR,MAAM,CAACO,UAAU,CAAC,yBAAyB,CAAC,CAAC,KAAK,IAAI;EAC7E,IAAIP,MAAM,CAAC,MAAM,CAAC,EAAE;IAChB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAIQ,cAAc,IAAI,OAAOR,MAAM,CAAC,MAAM,CAAC,CAACO,UAAU,KAAK,UAAU,EAAE;MACnE,MAAM,IAAIE,KAAK,CAAC,sBAAsB,CAAC;IAC3C,CAAC,MACI;MACD,OAAOT,MAAM,CAAC,MAAM,CAAC;IACzB;EACJ;EACA,MAAMU,IAAI,CAAC;IAGP,OAAOC,iBAAiB,GAAG;MACvB,IAAIX,MAAM,CAAC,SAAS,CAAC,KAAKY,OAAO,CAAC,kBAAkB,CAAC,EAAE;QACnD,MAAM,IAAIH,KAAK,CAAC,uEAAuE,GACnF,yBAAyB,GACzB,+DAA+D,GAC/D,kFAAkF,GAClF,sDAAsD,CAAC;MAC/D;IACJ;IACA,WAAWI,IAAI,GAAG;MACd,IAAIC,IAAI,GAAGJ,IAAI,CAACK,OAAO;MACvB,OAAOD,IAAI,CAACE,MAAM,EAAE;QAChBF,IAAI,GAAGA,IAAI,CAACE,MAAM;MACtB;MACA,OAAOF,IAAI;IACf;IACA,WAAWC,OAAO,GAAG;MACjB,OAAOE,iBAAiB,CAACH,IAAI;IACjC;IACA,WAAWI,WAAW,GAAG;MACrB,OAAOC,YAAY;IACvB;IACA;IACA,OAAOC,YAAY,CAACjB,IAAI,EAAEkB,EAAE,EAAEC,eAAe,GAAG,KAAK,EAAE;MACnD,IAAIV,OAAO,CAACW,cAAc,CAACpB,IAAI,CAAC,EAAE;QAC9B;QACA;QACA;QACA,IAAI,CAACmB,eAAe,IAAId,cAAc,EAAE;UACpC,MAAMC,KAAK,CAAC,wBAAwB,GAAGN,IAAI,CAAC;QAChD;MACJ,CAAC,MACI,IAAI,CAACH,MAAM,CAAC,iBAAiB,GAAGG,IAAI,CAAC,EAAE;QACxC,MAAMqB,QAAQ,GAAG,OAAO,GAAGrB,IAAI;QAC/BD,IAAI,CAACsB,QAAQ,CAAC;QACdZ,OAAO,CAACT,IAAI,CAAC,GAAGkB,EAAE,CAACrB,MAAM,EAAEU,IAAI,EAAEe,IAAI,CAAC;QACtCrB,kBAAkB,CAACoB,QAAQ,EAAEA,QAAQ,CAAC;MAC1C;IACJ;IACA,IAAIR,MAAM,GAAG;MACT,OAAO,IAAI,CAACU,OAAO;IACvB;IACA,IAAIvB,IAAI,GAAG;MACP,OAAO,IAAI,CAACwB,KAAK;IACrB;IACAC,WAAW,CAACZ,MAAM,EAAEa,QAAQ,EAAE;MAC1B,IAAI,CAACH,OAAO,GAAGV,MAAM;MACrB,IAAI,CAACW,KAAK,GAAGE,QAAQ,GAAGA,QAAQ,CAAC1B,IAAI,IAAI,SAAS,GAAG,QAAQ;MAC7D,IAAI,CAAC2B,WAAW,GAAGD,QAAQ,IAAIA,QAAQ,CAACE,UAAU,IAAI,CAAC,CAAC;MACxD,IAAI,CAACC,aAAa,GACd,IAAIC,aAAa,CAAC,IAAI,EAAE,IAAI,CAACP,OAAO,IAAI,IAAI,CAACA,OAAO,CAACM,aAAa,EAAEH,QAAQ,CAAC;IACrF;IACAK,GAAG,CAACC,GAAG,EAAE;MACL,MAAMrB,IAAI,GAAG,IAAI,CAACsB,WAAW,CAACD,GAAG,CAAC;MAClC,IAAIrB,IAAI,EACJ,OAAOA,IAAI,CAACgB,WAAW,CAACK,GAAG,CAAC;IACpC;IACAC,WAAW,CAACD,GAAG,EAAE;MACb,IAAIpB,OAAO,GAAG,IAAI;MAClB,OAAOA,OAAO,EAAE;QACZ,IAAIA,OAAO,CAACe,WAAW,CAACP,cAAc,CAACY,GAAG,CAAC,EAAE;UACzC,OAAOpB,OAAO;QAClB;QACAA,OAAO,GAAGA,OAAO,CAACW,OAAO;MAC7B;MACA,OAAO,IAAI;IACf;IACAW,IAAI,CAACR,QAAQ,EAAE;MACX,IAAI,CAACA,QAAQ,EACT,MAAM,IAAIpB,KAAK,CAAC,oBAAoB,CAAC;MACzC,OAAO,IAAI,CAACuB,aAAa,CAACK,IAAI,CAAC,IAAI,EAAER,QAAQ,CAAC;IAClD;IACAS,IAAI,CAACC,QAAQ,EAAEC,MAAM,EAAE;MACnB,IAAI,OAAOD,QAAQ,KAAK,UAAU,EAAE;QAChC,MAAM,IAAI9B,KAAK,CAAC,0BAA0B,GAAG8B,QAAQ,CAAC;MAC1D;MACA,MAAME,SAAS,GAAG,IAAI,CAACT,aAAa,CAACU,SAAS,CAAC,IAAI,EAAEH,QAAQ,EAAEC,MAAM,CAAC;MACtE,MAAM1B,IAAI,GAAG,IAAI;MACjB,OAAO,YAAY;QACf,OAAOA,IAAI,CAAC6B,UAAU,CAACF,SAAS,EAAE,IAAI,EAAEG,SAAS,EAAEJ,MAAM,CAAC;MAC9D,CAAC;IACL;IACAK,GAAG,CAACN,QAAQ,EAAEO,SAAS,EAAEC,SAAS,EAAEP,MAAM,EAAE;MACxCvB,iBAAiB,GAAG;QAAED,MAAM,EAAEC,iBAAiB;QAAEH,IAAI,EAAE;MAAK,CAAC;MAC7D,IAAI;QACA,OAAO,IAAI,CAACkB,aAAa,CAACgB,MAAM,CAAC,IAAI,EAAET,QAAQ,EAAEO,SAAS,EAAEC,SAAS,EAAEP,MAAM,CAAC;MAClF,CAAC,SACO;QACJvB,iBAAiB,GAAGA,iBAAiB,CAACD,MAAM;MAChD;IACJ;IACA2B,UAAU,CAACJ,QAAQ,EAAEO,SAAS,GAAG,IAAI,EAAEC,SAAS,EAAEP,MAAM,EAAE;MACtDvB,iBAAiB,GAAG;QAAED,MAAM,EAAEC,iBAAiB;QAAEH,IAAI,EAAE;MAAK,CAAC;MAC7D,IAAI;QACA,IAAI;UACA,OAAO,IAAI,CAACkB,aAAa,CAACgB,MAAM,CAAC,IAAI,EAAET,QAAQ,EAAEO,SAAS,EAAEC,SAAS,EAAEP,MAAM,CAAC;QAClF,CAAC,CACD,OAAOS,KAAK,EAAE;UACV,IAAI,IAAI,CAACjB,aAAa,CAACkB,WAAW,CAAC,IAAI,EAAED,KAAK,CAAC,EAAE;YAC7C,MAAMA,KAAK;UACf;QACJ;MACJ,CAAC,SACO;QACJhC,iBAAiB,GAAGA,iBAAiB,CAACD,MAAM;MAChD;IACJ;IACAmC,OAAO,CAACC,IAAI,EAAEN,SAAS,EAAEC,SAAS,EAAE;MAChC,IAAIK,IAAI,CAACtC,IAAI,IAAI,IAAI,EAAE;QACnB,MAAM,IAAIL,KAAK,CAAC,6DAA6D,GACzE,CAAC2C,IAAI,CAACtC,IAAI,IAAIuC,OAAO,EAAElD,IAAI,GAAG,eAAe,GAAG,IAAI,CAACA,IAAI,GAAG,GAAG,CAAC;MACxE;MACA;MACA;MACA;MACA,IAAIiD,IAAI,CAACE,KAAK,KAAKC,YAAY,KAAKH,IAAI,CAACI,IAAI,KAAKC,SAAS,IAAIL,IAAI,CAACI,IAAI,KAAKE,SAAS,CAAC,EAAE;QACrF;MACJ;MACA,MAAMC,YAAY,GAAGP,IAAI,CAACE,KAAK,IAAIM,OAAO;MAC1CD,YAAY,IAAIP,IAAI,CAACS,aAAa,CAACD,OAAO,EAAEE,SAAS,CAAC;MACtDV,IAAI,CAACW,QAAQ,EAAE;MACf,MAAMC,YAAY,GAAG7C,YAAY;MACjCA,YAAY,GAAGiC,IAAI;MACnBnC,iBAAiB,GAAG;QAAED,MAAM,EAAEC,iBAAiB;QAAEH,IAAI,EAAE;MAAK,CAAC;MAC7D,IAAI;QACA,IAAIsC,IAAI,CAACI,IAAI,IAAIE,SAAS,IAAIN,IAAI,CAACa,IAAI,IAAI,CAACb,IAAI,CAACa,IAAI,CAACC,UAAU,EAAE;UAC9Dd,IAAI,CAACe,QAAQ,GAAGC,SAAS;QAC7B;QACA,IAAI;UACA,OAAO,IAAI,CAACpC,aAAa,CAACqC,UAAU,CAAC,IAAI,EAAEjB,IAAI,EAAEN,SAAS,EAAEC,SAAS,CAAC;QAC1E,CAAC,CACD,OAAOE,KAAK,EAAE;UACV,IAAI,IAAI,CAACjB,aAAa,CAACkB,WAAW,CAAC,IAAI,EAAED,KAAK,CAAC,EAAE;YAC7C,MAAMA,KAAK;UACf;QACJ;MACJ,CAAC,SACO;QACJ;QACA;QACA,IAAIG,IAAI,CAACE,KAAK,KAAKC,YAAY,IAAIH,IAAI,CAACE,KAAK,KAAKgB,OAAO,EAAE;UACvD,IAAIlB,IAAI,CAACI,IAAI,IAAIC,SAAS,IAAKL,IAAI,CAACa,IAAI,IAAIb,IAAI,CAACa,IAAI,CAACC,UAAW,EAAE;YAC/DP,YAAY,IAAIP,IAAI,CAACS,aAAa,CAACC,SAAS,EAAEF,OAAO,CAAC;UAC1D,CAAC,MACI;YACDR,IAAI,CAACW,QAAQ,GAAG,CAAC;YACjB,IAAI,CAACQ,gBAAgB,CAACnB,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/BO,YAAY,IACRP,IAAI,CAACS,aAAa,CAACN,YAAY,EAAEK,OAAO,EAAEL,YAAY,CAAC;UAC/D;QACJ;QACAtC,iBAAiB,GAAGA,iBAAiB,CAACD,MAAM;QAC5CG,YAAY,GAAG6C,YAAY;MAC/B;IACJ;IACAQ,YAAY,CAACpB,IAAI,EAAE;MACf,IAAIA,IAAI,CAACtC,IAAI,IAAIsC,IAAI,CAACtC,IAAI,KAAK,IAAI,EAAE;QACjC;QACA;QACA,IAAI2D,OAAO,GAAG,IAAI;QAClB,OAAOA,OAAO,EAAE;UACZ,IAAIA,OAAO,KAAKrB,IAAI,CAACtC,IAAI,EAAE;YACvB,MAAML,KAAK,CAAE,8BAA6B,IAAI,CAACN,IAAK,8CAA6CiD,IAAI,CAACtC,IAAI,CAACX,IAAK,EAAC,CAAC;UACtH;UACAsE,OAAO,GAAGA,OAAO,CAACzD,MAAM;QAC5B;MACJ;MACAoC,IAAI,CAACS,aAAa,CAACa,UAAU,EAAEnB,YAAY,CAAC;MAC5C,MAAMoB,aAAa,GAAG,EAAE;MACxBvB,IAAI,CAACwB,cAAc,GAAGD,aAAa;MACnCvB,IAAI,CAACyB,KAAK,GAAG,IAAI;MACjB,IAAI;QACAzB,IAAI,GAAG,IAAI,CAACpB,aAAa,CAACwC,YAAY,CAAC,IAAI,EAAEpB,IAAI,CAAC;MACtD,CAAC,CACD,OAAO0B,GAAG,EAAE;QACR;QACA;QACA1B,IAAI,CAACS,aAAa,CAACS,OAAO,EAAEI,UAAU,EAAEnB,YAAY,CAAC;QACrD;QACA,IAAI,CAACvB,aAAa,CAACkB,WAAW,CAAC,IAAI,EAAE4B,GAAG,CAAC;QACzC,MAAMA,GAAG;MACb;MACA,IAAI1B,IAAI,CAACwB,cAAc,KAAKD,aAAa,EAAE;QACvC;QACA,IAAI,CAACJ,gBAAgB,CAACnB,IAAI,EAAE,CAAC,CAAC;MAClC;MACA,IAAIA,IAAI,CAACE,KAAK,IAAIoB,UAAU,EAAE;QAC1BtB,IAAI,CAACS,aAAa,CAACC,SAAS,EAAEY,UAAU,CAAC;MAC7C;MACA,OAAOtB,IAAI;IACf;IACA2B,iBAAiB,CAACvC,MAAM,EAAED,QAAQ,EAAE0B,IAAI,EAAEe,cAAc,EAAE;MACtD,OAAO,IAAI,CAACR,YAAY,CAAC,IAAIS,QAAQ,CAACC,SAAS,EAAE1C,MAAM,EAAED,QAAQ,EAAE0B,IAAI,EAAEe,cAAc,EAAEZ,SAAS,CAAC,CAAC;IACxG;IACAe,iBAAiB,CAAC3C,MAAM,EAAED,QAAQ,EAAE0B,IAAI,EAAEe,cAAc,EAAEI,YAAY,EAAE;MACpE,OAAO,IAAI,CAACZ,YAAY,CAAC,IAAIS,QAAQ,CAACvB,SAAS,EAAElB,MAAM,EAAED,QAAQ,EAAE0B,IAAI,EAAEe,cAAc,EAAEI,YAAY,CAAC,CAAC;IAC3G;IACAC,iBAAiB,CAAC7C,MAAM,EAAED,QAAQ,EAAE0B,IAAI,EAAEe,cAAc,EAAEI,YAAY,EAAE;MACpE,OAAO,IAAI,CAACZ,YAAY,CAAC,IAAIS,QAAQ,CAACxB,SAAS,EAAEjB,MAAM,EAAED,QAAQ,EAAE0B,IAAI,EAAEe,cAAc,EAAEI,YAAY,CAAC,CAAC;IAC3G;IACAE,UAAU,CAAClC,IAAI,EAAE;MACb,IAAIA,IAAI,CAACtC,IAAI,IAAI,IAAI,EACjB,MAAM,IAAIL,KAAK,CAAC,mEAAmE,GAC/E,CAAC2C,IAAI,CAACtC,IAAI,IAAIuC,OAAO,EAAElD,IAAI,GAAG,eAAe,GAAG,IAAI,CAACA,IAAI,GAAG,GAAG,CAAC;MACxE,IAAIiD,IAAI,CAACE,KAAK,KAAKQ,SAAS,IAAIV,IAAI,CAACE,KAAK,KAAKM,OAAO,EAAE;QACpD;MACJ;MACAR,IAAI,CAACS,aAAa,CAAC0B,SAAS,EAAEzB,SAAS,EAAEF,OAAO,CAAC;MACjD,IAAI;QACA,IAAI,CAAC5B,aAAa,CAACsD,UAAU,CAAC,IAAI,EAAElC,IAAI,CAAC;MAC7C,CAAC,CACD,OAAO0B,GAAG,EAAE;QACR;QACA1B,IAAI,CAACS,aAAa,CAACS,OAAO,EAAEiB,SAAS,CAAC;QACtC,IAAI,CAACvD,aAAa,CAACkB,WAAW,CAAC,IAAI,EAAE4B,GAAG,CAAC;QACzC,MAAMA,GAAG;MACb;MACA,IAAI,CAACP,gBAAgB,CAACnB,IAAI,EAAE,CAAC,CAAC,CAAC;MAC/BA,IAAI,CAACS,aAAa,CAACN,YAAY,EAAEgC,SAAS,CAAC;MAC3CnC,IAAI,CAACW,QAAQ,GAAG,CAAC;MACjB,OAAOX,IAAI;IACf;IACAmB,gBAAgB,CAACnB,IAAI,EAAEoC,KAAK,EAAE;MAC1B,MAAMb,aAAa,GAAGvB,IAAI,CAACwB,cAAc;MACzC,IAAIY,KAAK,IAAI,CAAC,CAAC,EAAE;QACbpC,IAAI,CAACwB,cAAc,GAAG,IAAI;MAC9B;MACA,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGd,aAAa,CAACe,MAAM,EAAED,CAAC,EAAE,EAAE;QAC3Cd,aAAa,CAACc,CAAC,CAAC,CAAClB,gBAAgB,CAACnB,IAAI,CAACI,IAAI,EAAEgC,KAAK,CAAC;MACvD;IACJ;EACJ;EAzOI;EADE9E,IAAI,CAEQH,UAAU,GAAGA,UAAU;EAyOzC,MAAMoF,WAAW,GAAG;IAChBxF,IAAI,EAAE,EAAE;IACRyF,SAAS,EAAE,CAACC,QAAQ,EAAEC,CAAC,EAAEC,MAAM,EAAEC,YAAY,KAAKH,QAAQ,CAACI,OAAO,CAACF,MAAM,EAAEC,YAAY,CAAC;IACxFE,cAAc,EAAE,CAACL,QAAQ,EAAEC,CAAC,EAAEC,MAAM,EAAE3C,IAAI,KAAKyC,QAAQ,CAACrB,YAAY,CAACuB,MAAM,EAAE3C,IAAI,CAAC;IAClF+C,YAAY,EAAE,CAACN,QAAQ,EAAEC,CAAC,EAAEC,MAAM,EAAE3C,IAAI,EAAEN,SAAS,EAAEC,SAAS,KAAK8C,QAAQ,CAACxB,UAAU,CAAC0B,MAAM,EAAE3C,IAAI,EAAEN,SAAS,EAAEC,SAAS,CAAC;IAC1HqD,YAAY,EAAE,CAACP,QAAQ,EAAEC,CAAC,EAAEC,MAAM,EAAE3C,IAAI,KAAKyC,QAAQ,CAACP,UAAU,CAACS,MAAM,EAAE3C,IAAI;EACjF,CAAC;EACD,MAAMnB,aAAa,CAAC;IAChBL,WAAW,CAACd,IAAI,EAAEuF,cAAc,EAAExE,QAAQ,EAAE;MACxC,IAAI,CAACyE,WAAW,GAAG;QAAE,WAAW,EAAE,CAAC;QAAE,WAAW,EAAE,CAAC;QAAE,WAAW,EAAE;MAAE,CAAC;MACrE,IAAI,CAACxF,IAAI,GAAGA,IAAI;MAChB,IAAI,CAACyF,eAAe,GAAGF,cAAc;MACrC,IAAI,CAACG,OAAO,GAAG3E,QAAQ,KAAKA,QAAQ,IAAIA,QAAQ,CAAC4E,MAAM,GAAG5E,QAAQ,GAAGwE,cAAc,CAACG,OAAO,CAAC;MAC5F,IAAI,CAACE,SAAS,GAAG7E,QAAQ,KAAKA,QAAQ,CAAC4E,MAAM,GAAGJ,cAAc,GAAGA,cAAc,CAACK,SAAS,CAAC;MAC1F,IAAI,CAACC,aAAa,GACd9E,QAAQ,KAAKA,QAAQ,CAAC4E,MAAM,GAAG,IAAI,CAAC3F,IAAI,GAAGuF,cAAc,CAACM,aAAa,CAAC;MAC5E,IAAI,CAACC,YAAY,GACb/E,QAAQ,KAAKA,QAAQ,CAACgF,WAAW,GAAGhF,QAAQ,GAAGwE,cAAc,CAACO,YAAY,CAAC;MAC/E,IAAI,CAACE,cAAc,GACfjF,QAAQ,KAAKA,QAAQ,CAACgF,WAAW,GAAGR,cAAc,GAAGA,cAAc,CAACS,cAAc,CAAC;MACvF,IAAI,CAACC,kBAAkB,GACnBlF,QAAQ,KAAKA,QAAQ,CAACgF,WAAW,GAAG,IAAI,CAAC/F,IAAI,GAAGuF,cAAc,CAACU,kBAAkB,CAAC;MACtF,IAAI,CAACC,SAAS,GAAGnF,QAAQ,KAAKA,QAAQ,CAACoF,QAAQ,GAAGpF,QAAQ,GAAGwE,cAAc,CAACW,SAAS,CAAC;MACtF,IAAI,CAACE,WAAW,GACZrF,QAAQ,KAAKA,QAAQ,CAACoF,QAAQ,GAAGZ,cAAc,GAAGA,cAAc,CAACa,WAAW,CAAC;MACjF,IAAI,CAACC,eAAe,GAChBtF,QAAQ,KAAKA,QAAQ,CAACoF,QAAQ,GAAG,IAAI,CAACnG,IAAI,GAAGuF,cAAc,CAACc,eAAe,CAAC;MAChF,IAAI,CAACC,cAAc,GACfvF,QAAQ,KAAKA,QAAQ,CAACwF,aAAa,GAAGxF,QAAQ,GAAGwE,cAAc,CAACe,cAAc,CAAC;MACnF,IAAI,CAACE,gBAAgB,GACjBzF,QAAQ,KAAKA,QAAQ,CAACwF,aAAa,GAAGhB,cAAc,GAAGA,cAAc,CAACiB,gBAAgB,CAAC;MAC3F,IAAI,CAACC,oBAAoB,GACrB1F,QAAQ,KAAKA,QAAQ,CAACwF,aAAa,GAAG,IAAI,CAACvG,IAAI,GAAGuF,cAAc,CAACkB,oBAAoB,CAAC;MAC1F,IAAI,CAACC,eAAe,GAChB3F,QAAQ,KAAKA,QAAQ,CAACqE,cAAc,GAAGrE,QAAQ,GAAGwE,cAAc,CAACmB,eAAe,CAAC;MACrF,IAAI,CAACC,iBAAiB,GAAG5F,QAAQ,KAC5BA,QAAQ,CAACqE,cAAc,GAAGG,cAAc,GAAGA,cAAc,CAACoB,iBAAiB,CAAC;MACjF,IAAI,CAACC,qBAAqB,GACtB7F,QAAQ,KAAKA,QAAQ,CAACqE,cAAc,GAAG,IAAI,CAACpF,IAAI,GAAGuF,cAAc,CAACqB,qBAAqB,CAAC;MAC5F,IAAI,CAACC,aAAa,GACd9F,QAAQ,KAAKA,QAAQ,CAACsE,YAAY,GAAGtE,QAAQ,GAAGwE,cAAc,CAACsB,aAAa,CAAC;MACjF,IAAI,CAACC,eAAe,GAChB/F,QAAQ,KAAKA,QAAQ,CAACsE,YAAY,GAAGE,cAAc,GAAGA,cAAc,CAACuB,eAAe,CAAC;MACzF,IAAI,CAACC,mBAAmB,GACpBhG,QAAQ,KAAKA,QAAQ,CAACsE,YAAY,GAAG,IAAI,CAACrF,IAAI,GAAGuF,cAAc,CAACwB,mBAAmB,CAAC;MACxF,IAAI,CAACC,aAAa,GACdjG,QAAQ,KAAKA,QAAQ,CAACuE,YAAY,GAAGvE,QAAQ,GAAGwE,cAAc,CAACyB,aAAa,CAAC;MACjF,IAAI,CAACC,eAAe,GAChBlG,QAAQ,KAAKA,QAAQ,CAACuE,YAAY,GAAGC,cAAc,GAAGA,cAAc,CAAC0B,eAAe,CAAC;MACzF,IAAI,CAACC,mBAAmB,GACpBnG,QAAQ,KAAKA,QAAQ,CAACuE,YAAY,GAAG,IAAI,CAACtF,IAAI,GAAGuF,cAAc,CAAC2B,mBAAmB,CAAC;MACxF,IAAI,CAACC,UAAU,GAAG,IAAI;MACtB,IAAI,CAACC,YAAY,GAAG,IAAI;MACxB,IAAI,CAACC,iBAAiB,GAAG,IAAI;MAC7B,IAAI,CAACC,gBAAgB,GAAG,IAAI;MAC5B,MAAMC,eAAe,GAAGxG,QAAQ,IAAIA,QAAQ,CAAC+D,SAAS;MACtD,MAAM0C,aAAa,GAAGjC,cAAc,IAAIA,cAAc,CAAC4B,UAAU;MACjE,IAAII,eAAe,IAAIC,aAAa,EAAE;QAClC;QACA;QACA,IAAI,CAACL,UAAU,GAAGI,eAAe,GAAGxG,QAAQ,GAAG8D,WAAW;QAC1D,IAAI,CAACuC,YAAY,GAAG7B,cAAc;QAClC,IAAI,CAAC8B,iBAAiB,GAAG,IAAI;QAC7B,IAAI,CAACC,gBAAgB,GAAGtH,IAAI;QAC5B,IAAI,CAACe,QAAQ,CAACqE,cAAc,EAAE;UAC1B,IAAI,CAACsB,eAAe,GAAG7B,WAAW;UAClC,IAAI,CAAC8B,iBAAiB,GAAGpB,cAAc;UACvC,IAAI,CAACqB,qBAAqB,GAAG,IAAI,CAAC5G,IAAI;QAC1C;QACA,IAAI,CAACe,QAAQ,CAACsE,YAAY,EAAE;UACxB,IAAI,CAACwB,aAAa,GAAGhC,WAAW;UAChC,IAAI,CAACiC,eAAe,GAAGvB,cAAc;UACrC,IAAI,CAACwB,mBAAmB,GAAG,IAAI,CAAC/G,IAAI;QACxC;QACA,IAAI,CAACe,QAAQ,CAACuE,YAAY,EAAE;UACxB,IAAI,CAAC0B,aAAa,GAAGnC,WAAW;UAChC,IAAI,CAACoC,eAAe,GAAG1B,cAAc;UACrC,IAAI,CAAC2B,mBAAmB,GAAG,IAAI,CAAClH,IAAI;QACxC;MACJ;IACJ;IACAuB,IAAI,CAACkG,UAAU,EAAE1G,QAAQ,EAAE;MACvB,OAAO,IAAI,CAAC2E,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,MAAM,CAAC,IAAI,CAACC,SAAS,EAAE,IAAI,CAAC5F,IAAI,EAAEyH,UAAU,EAAE1G,QAAQ,CAAC,GACtF,IAAInB,IAAI,CAAC6H,UAAU,EAAE1G,QAAQ,CAAC;IACtC;IACAa,SAAS,CAAC6F,UAAU,EAAEhG,QAAQ,EAAEC,MAAM,EAAE;MACpC,OAAO,IAAI,CAACoE,YAAY,GACpB,IAAI,CAACA,YAAY,CAACC,WAAW,CAAC,IAAI,CAACC,cAAc,EAAE,IAAI,CAACC,kBAAkB,EAAEwB,UAAU,EAAEhG,QAAQ,EAAEC,MAAM,CAAC,GACzGD,QAAQ;IAChB;IACAS,MAAM,CAACuF,UAAU,EAAEhG,QAAQ,EAAEO,SAAS,EAAEC,SAAS,EAAEP,MAAM,EAAE;MACvD,OAAO,IAAI,CAACwE,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,QAAQ,CAAC,IAAI,CAACC,WAAW,EAAE,IAAI,CAACC,eAAe,EAAEoB,UAAU,EAAEhG,QAAQ,EAAEO,SAAS,EAAEC,SAAS,EAAEP,MAAM,CAAC,GACvID,QAAQ,CAACiG,KAAK,CAAC1F,SAAS,EAAEC,SAAS,CAAC;IAC5C;IACAG,WAAW,CAACqF,UAAU,EAAEtF,KAAK,EAAE;MAC3B,OAAO,IAAI,CAACmE,cAAc,GACtB,IAAI,CAACA,cAAc,CAACC,aAAa,CAAC,IAAI,CAACC,gBAAgB,EAAE,IAAI,CAACC,oBAAoB,EAAEgB,UAAU,EAAEtF,KAAK,CAAC,GACtG,IAAI;IACZ;IACAuB,YAAY,CAAC+D,UAAU,EAAEnF,IAAI,EAAE;MAC3B,IAAIqF,UAAU,GAAGrF,IAAI;MACrB,IAAI,IAAI,CAACoE,eAAe,EAAE;QACtB,IAAI,IAAI,CAACS,UAAU,EAAE;UACjBQ,UAAU,CAAC7D,cAAc,CAAC8D,IAAI,CAAC,IAAI,CAACP,iBAAiB,CAAC;QAC1D;QACA;QACAM,UAAU,GAAG,IAAI,CAACjB,eAAe,CAACtB,cAAc,CAAC,IAAI,CAACuB,iBAAiB,EAAE,IAAI,CAACC,qBAAqB,EAAEa,UAAU,EAAEnF,IAAI,CAAC;QACtH;QACA,IAAI,CAACqF,UAAU,EACXA,UAAU,GAAGrF,IAAI;MACzB,CAAC,MACI;QACD,IAAIA,IAAI,CAACuF,UAAU,EAAE;UACjBvF,IAAI,CAACuF,UAAU,CAACvF,IAAI,CAAC;QACzB,CAAC,MACI,IAAIA,IAAI,CAACI,IAAI,IAAI0B,SAAS,EAAE;UAC7BH,iBAAiB,CAAC3B,IAAI,CAAC;QAC3B,CAAC,MACI;UACD,MAAM,IAAI3C,KAAK,CAAC,6BAA6B,CAAC;QAClD;MACJ;MACA,OAAOgI,UAAU;IACrB;IACApE,UAAU,CAACkE,UAAU,EAAEnF,IAAI,EAAEN,SAAS,EAAEC,SAAS,EAAE;MAC/C,OAAO,IAAI,CAAC4E,aAAa,GAAG,IAAI,CAACA,aAAa,CAACxB,YAAY,CAAC,IAAI,CAACyB,eAAe,EAAE,IAAI,CAACC,mBAAmB,EAAEU,UAAU,EAAEnF,IAAI,EAAEN,SAAS,EAAEC,SAAS,CAAC,GAC/IK,IAAI,CAACb,QAAQ,CAACiG,KAAK,CAAC1F,SAAS,EAAEC,SAAS,CAAC;IACjD;IACAuC,UAAU,CAACiD,UAAU,EAAEnF,IAAI,EAAE;MACzB,IAAIwF,KAAK;MACT,IAAI,IAAI,CAACd,aAAa,EAAE;QACpBc,KAAK,GAAG,IAAI,CAACd,aAAa,CAAC1B,YAAY,CAAC,IAAI,CAAC2B,eAAe,EAAE,IAAI,CAACC,mBAAmB,EAAEO,UAAU,EAAEnF,IAAI,CAAC;MAC7G,CAAC,MACI;QACD,IAAI,CAACA,IAAI,CAACe,QAAQ,EAAE;UAChB,MAAM1D,KAAK,CAAC,wBAAwB,CAAC;QACzC;QACAmI,KAAK,GAAGxF,IAAI,CAACe,QAAQ,CAACf,IAAI,CAAC;MAC/B;MACA,OAAOwF,KAAK;IAChB;IACA3C,OAAO,CAACsC,UAAU,EAAEM,OAAO,EAAE;MACzB;MACA;MACA,IAAI;QACA,IAAI,CAACZ,UAAU,IACX,IAAI,CAACA,UAAU,CAACrC,SAAS,CAAC,IAAI,CAACsC,YAAY,EAAE,IAAI,CAACE,gBAAgB,EAAEG,UAAU,EAAEM,OAAO,CAAC;MAChG,CAAC,CACD,OAAO/D,GAAG,EAAE;QACR,IAAI,CAAC5B,WAAW,CAACqF,UAAU,EAAEzD,GAAG,CAAC;MACrC;IACJ;IACA;IACAP,gBAAgB,CAACf,IAAI,EAAEgC,KAAK,EAAE;MAC1B,MAAMsD,MAAM,GAAG,IAAI,CAACxC,WAAW;MAC/B,MAAMyC,IAAI,GAAGD,MAAM,CAACtF,IAAI,CAAC;MACzB,MAAMwF,IAAI,GAAGF,MAAM,CAACtF,IAAI,CAAC,GAAGuF,IAAI,GAAGvD,KAAK;MACxC,IAAIwD,IAAI,GAAG,CAAC,EAAE;QACV,MAAM,IAAIvI,KAAK,CAAC,0CAA0C,CAAC;MAC/D;MACA,IAAIsI,IAAI,IAAI,CAAC,IAAIC,IAAI,IAAI,CAAC,EAAE;QACxB,MAAMH,OAAO,GAAG;UACZ3D,SAAS,EAAE4D,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;UAClCpF,SAAS,EAAEoF,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;UAClCrF,SAAS,EAAEqF,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;UAClCG,MAAM,EAAEzF;QACZ,CAAC;QACD,IAAI,CAACyC,OAAO,CAAC,IAAI,CAACnF,IAAI,EAAE+H,OAAO,CAAC;MACpC;IACJ;EACJ;EACA,MAAM5D,QAAQ,CAAC;IACXrD,WAAW,CAAC4B,IAAI,EAAEhB,MAAM,EAAED,QAAQ,EAAE2G,OAAO,EAAEP,UAAU,EAAExE,QAAQ,EAAE;MAC/D;MACA,IAAI,CAACU,KAAK,GAAG,IAAI;MACjB,IAAI,CAACd,QAAQ,GAAG,CAAC;MACjB;MACA,IAAI,CAACa,cAAc,GAAG,IAAI;MAC1B;MACA,IAAI,CAACuE,MAAM,GAAG,cAAc;MAC5B,IAAI,CAAC3F,IAAI,GAAGA,IAAI;MAChB,IAAI,CAAChB,MAAM,GAAGA,MAAM;MACpB,IAAI,CAACyB,IAAI,GAAGiF,OAAO;MACnB,IAAI,CAACP,UAAU,GAAGA,UAAU;MAC5B,IAAI,CAACxE,QAAQ,GAAGA,QAAQ;MACxB,IAAI,CAAC5B,QAAQ,EAAE;QACX,MAAM,IAAI9B,KAAK,CAAC,yBAAyB,CAAC;MAC9C;MACA,IAAI,CAAC8B,QAAQ,GAAGA,QAAQ;MACxB,MAAM6G,IAAI,GAAG,IAAI;MACjB;MACA,IAAI5F,IAAI,KAAKC,SAAS,IAAIyF,OAAO,IAAIA,OAAO,CAACG,IAAI,EAAE;QAC/C,IAAI,CAACrG,MAAM,GAAGiC,QAAQ,CAACZ,UAAU;MACrC,CAAC,MACI;QACD,IAAI,CAACrB,MAAM,GAAG,YAAY;UACtB,OAAOiC,QAAQ,CAACZ,UAAU,CAACiF,IAAI,CAACtJ,MAAM,EAAEoJ,IAAI,EAAE,IAAI,EAAExG,SAAS,CAAC;QAClE,CAAC;MACL;IACJ;IACA,OAAOyB,UAAU,CAACjB,IAAI,EAAE2C,MAAM,EAAEwD,IAAI,EAAE;MAClC,IAAI,CAACnG,IAAI,EAAE;QACPA,IAAI,GAAG,IAAI;MACf;MACAoG,yBAAyB,EAAE;MAC3B,IAAI;QACApG,IAAI,CAACW,QAAQ,EAAE;QACf,OAAOX,IAAI,CAACtC,IAAI,CAACqC,OAAO,CAACC,IAAI,EAAE2C,MAAM,EAAEwD,IAAI,CAAC;MAChD,CAAC,SACO;QACJ,IAAIC,yBAAyB,IAAI,CAAC,EAAE;UAChCC,mBAAmB,EAAE;QACzB;QACAD,yBAAyB,EAAE;MAC/B;IACJ;IACA,IAAI1I,IAAI,GAAG;MACP,OAAO,IAAI,CAAC+D,KAAK;IACrB;IACA,IAAIvB,KAAK,GAAG;MACR,OAAO,IAAI,CAAC6F,MAAM;IACtB;IACAO,qBAAqB,GAAG;MACpB,IAAI,CAAC7F,aAAa,CAACN,YAAY,EAAEmB,UAAU,CAAC;IAChD;IACA;IACAb,aAAa,CAAC8F,OAAO,EAAEC,UAAU,EAAEC,UAAU,EAAE;MAC3C,IAAI,IAAI,CAACV,MAAM,KAAKS,UAAU,IAAI,IAAI,CAACT,MAAM,KAAKU,UAAU,EAAE;QAC1D,IAAI,CAACV,MAAM,GAAGQ,OAAO;QACrB,IAAIA,OAAO,IAAIpG,YAAY,EAAE;UACzB,IAAI,CAACqB,cAAc,GAAG,IAAI;QAC9B;MACJ,CAAC,MACI;QACD,MAAM,IAAInE,KAAK,CAAE,GAAE,IAAI,CAAC+C,IAAK,KAAI,IAAI,CAAChB,MAAO,6BAA4BmH,OAAQ,uBAAsBC,UAAW,IAAGC,UAAU,GAAG,QAAQ,GAAGA,UAAU,GAAG,IAAI,GAAG,EAAG,UAAS,IAAI,CAACV,MAAO,IAAG,CAAC;MACjM;IACJ;IACAW,QAAQ,GAAG;MACP,IAAI,IAAI,CAAC7F,IAAI,IAAI,OAAO,IAAI,CAACA,IAAI,CAAC8F,QAAQ,KAAK,WAAW,EAAE;QACxD,OAAO,IAAI,CAAC9F,IAAI,CAAC8F,QAAQ,CAACD,QAAQ,EAAE;MACxC,CAAC,MACI;QACD,OAAOE,MAAM,CAACC,SAAS,CAACH,QAAQ,CAACR,IAAI,CAAC,IAAI,CAAC;MAC/C;IACJ;IACA;IACA;IACAY,MAAM,GAAG;MACL,OAAO;QACH1G,IAAI,EAAE,IAAI,CAACA,IAAI;QACfF,KAAK,EAAE,IAAI,CAACA,KAAK;QACjBd,MAAM,EAAE,IAAI,CAACA,MAAM;QACnB1B,IAAI,EAAE,IAAI,CAACA,IAAI,CAACX,IAAI;QACpB4D,QAAQ,EAAE,IAAI,CAACA;MACnB,CAAC;IACL;EACJ;EACA;EACA;EACA;EACA;EACA;EACA,MAAMoG,gBAAgB,GAAG5J,UAAU,CAAC,YAAY,CAAC;EACjD,MAAM6J,aAAa,GAAG7J,UAAU,CAAC,SAAS,CAAC;EAC3C,MAAM8J,UAAU,GAAG9J,UAAU,CAAC,MAAM,CAAC;EACrC,IAAI+J,eAAe,GAAG,EAAE;EACxB,IAAIC,yBAAyB,GAAG,KAAK;EACrC,IAAIC,2BAA2B;EAC/B,SAASC,uBAAuB,CAACC,IAAI,EAAE;IACnC,IAAI,CAACF,2BAA2B,EAAE;MAC9B,IAAIxK,MAAM,CAACoK,aAAa,CAAC,EAAE;QACvBI,2BAA2B,GAAGxK,MAAM,CAACoK,aAAa,CAAC,CAACO,OAAO,CAAC,CAAC,CAAC;MAClE;IACJ;IACA,IAAIH,2BAA2B,EAAE;MAC7B,IAAII,UAAU,GAAGJ,2BAA2B,CAACH,UAAU,CAAC;MACxD,IAAI,CAACO,UAAU,EAAE;QACb;QACA;QACAA,UAAU,GAAGJ,2BAA2B,CAAC,MAAM,CAAC;MACpD;MACAI,UAAU,CAACtB,IAAI,CAACkB,2BAA2B,EAAEE,IAAI,CAAC;IACtD,CAAC,MACI;MACD1K,MAAM,CAACmK,gBAAgB,CAAC,CAACO,IAAI,EAAE,CAAC,CAAC;IACrC;EACJ;EACA,SAAS3F,iBAAiB,CAAC3B,IAAI,EAAE;IAC7B;IACA;IACA,IAAIoG,yBAAyB,KAAK,CAAC,IAAIc,eAAe,CAAC5E,MAAM,KAAK,CAAC,EAAE;MACjE;MACA+E,uBAAuB,CAAChB,mBAAmB,CAAC;IAChD;IACArG,IAAI,IAAIkH,eAAe,CAAC5B,IAAI,CAACtF,IAAI,CAAC;EACtC;EACA,SAASqG,mBAAmB,GAAG;IAC3B,IAAI,CAACc,yBAAyB,EAAE;MAC5BA,yBAAyB,GAAG,IAAI;MAChC,OAAOD,eAAe,CAAC5E,MAAM,EAAE;QAC3B,MAAMmF,KAAK,GAAGP,eAAe;QAC7BA,eAAe,GAAG,EAAE;QACpB,KAAK,IAAI7E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoF,KAAK,CAACnF,MAAM,EAAED,CAAC,EAAE,EAAE;UACnC,MAAMrC,IAAI,GAAGyH,KAAK,CAACpF,CAAC,CAAC;UACrB,IAAI;YACArC,IAAI,CAACtC,IAAI,CAACqC,OAAO,CAACC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;UACvC,CAAC,CACD,OAAOH,KAAK,EAAE;YACVxB,IAAI,CAACqJ,gBAAgB,CAAC7H,KAAK,CAAC;UAChC;QACJ;MACJ;MACAxB,IAAI,CAACsJ,kBAAkB,EAAE;MACzBR,yBAAyB,GAAG,KAAK;IACrC;EACJ;EACA;EACA;EACA;EACA;EACA;EACA,MAAMlH,OAAO,GAAG;IAAElD,IAAI,EAAE;EAAU,CAAC;EACnC,MAAMoD,YAAY,GAAG,cAAc;IAAEmB,UAAU,GAAG,YAAY;IAAEZ,SAAS,GAAG,WAAW;IAAEF,OAAO,GAAG,SAAS;IAAE2B,SAAS,GAAG,WAAW;IAAEjB,OAAO,GAAG,SAAS;EAC1J,MAAMY,SAAS,GAAG,WAAW;IAAExB,SAAS,GAAG,WAAW;IAAED,SAAS,GAAG,WAAW;EAC/E,MAAM7C,OAAO,GAAG,CAAC,CAAC;EAClB,MAAMa,IAAI,GAAG;IACTuJ,MAAM,EAAEzK,UAAU;IAClB0K,gBAAgB,EAAE,MAAMhK,iBAAiB;IACzC6J,gBAAgB,EAAEI,IAAI;IACtBH,kBAAkB,EAAEG,IAAI;IACxBnG,iBAAiB,EAAEA,iBAAiB;IACpCoG,iBAAiB,EAAE,MAAM,CAACzK,IAAI,CAACH,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC7E6K,gBAAgB,EAAE,MAAM,EAAE;IAC1BC,iBAAiB,EAAEH,IAAI;IACvBI,WAAW,EAAE,MAAMJ,IAAI;IACvBK,aAAa,EAAE,MAAM,EAAE;IACvBC,SAAS,EAAE,MAAMN,IAAI;IACrBO,cAAc,EAAE,MAAMP,IAAI;IAC1BQ,mBAAmB,EAAE,MAAMR,IAAI;IAC/BS,UAAU,EAAE,MAAM,KAAK;IACvBC,gBAAgB,EAAE,MAAMxH,SAAS;IACjCyH,oBAAoB,EAAE,MAAMX,IAAI;IAChCY,8BAA8B,EAAE,MAAM1H,SAAS;IAC/C2H,YAAY,EAAE,MAAM3H,SAAS;IAC7B4H,UAAU,EAAE,MAAM,EAAE;IACpBC,UAAU,EAAE,MAAMf,IAAI;IACtBgB,mBAAmB,EAAE,MAAMhB,IAAI;IAC/BiB,gBAAgB,EAAE,MAAM,EAAE;IAC1BC,qBAAqB,EAAE,MAAMlB,IAAI;IACjCmB,iBAAiB,EAAE,MAAMnB,IAAI;IAC7BoB,cAAc,EAAE,MAAMpB,IAAI;IAC1BT,uBAAuB,EAAEA;EAC7B,CAAC;EACD,IAAIxJ,iBAAiB,GAAG;IAAED,MAAM,EAAE,IAAI;IAAEF,IAAI,EAAE,IAAIJ,IAAI,CAAC,IAAI,EAAE,IAAI;EAAE,CAAC;EACpE,IAAIS,YAAY,GAAG,IAAI;EACvB,IAAIqI,yBAAyB,GAAG,CAAC;EACjC,SAAS0B,IAAI,GAAG,CAAE;EAClB9K,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC;EAClC,OAAOJ,MAAM,CAAC,MAAM,CAAC,GAAGU,IAAI;AAChC,CAAC,EAAG,OAAO6L,MAAM,KAAK,WAAW,IAAIA,MAAM,IAAI,OAAOnD,IAAI,KAAK,WAAW,IAAIA,IAAI,IAAIpJ,MAAM,CAAC;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM8L,8BAA8B,GAAG9B,MAAM,CAACwC,wBAAwB;AACtE;AACA,MAAMX,oBAAoB,GAAG7B,MAAM,CAACyC,cAAc;AAClD;AACA,MAAMC,oBAAoB,GAAG1C,MAAM,CAAC2C,cAAc;AAClD;AACA,MAAMZ,YAAY,GAAG/B,MAAM,CAAC4C,MAAM;AAClC;AACA,MAAMZ,UAAU,GAAGa,KAAK,CAAC5C,SAAS,CAAC6C,KAAK;AACxC;AACA,MAAMC,sBAAsB,GAAG,kBAAkB;AACjD;AACA,MAAMC,yBAAyB,GAAG,qBAAqB;AACvD;AACA,MAAMC,8BAA8B,GAAGvM,IAAI,CAACH,UAAU,CAACwM,sBAAsB,CAAC;AAC9E;AACA,MAAMG,iCAAiC,GAAGxM,IAAI,CAACH,UAAU,CAACyM,yBAAyB,CAAC;AACpF;AACA,MAAMG,QAAQ,GAAG,MAAM;AACvB;AACA,MAAMC,SAAS,GAAG,OAAO;AACzB;AACA,MAAMC,kBAAkB,GAAG3M,IAAI,CAACH,UAAU,CAAC,EAAE,CAAC;AAC9C,SAAS2L,mBAAmB,CAAC3J,QAAQ,EAAEC,MAAM,EAAE;EAC3C,OAAO9B,IAAI,CAACK,OAAO,CAACuB,IAAI,CAACC,QAAQ,EAAEC,MAAM,CAAC;AAC9C;AACA,SAAS8K,gCAAgC,CAAC9K,MAAM,EAAED,QAAQ,EAAE0B,IAAI,EAAEe,cAAc,EAAEI,YAAY,EAAE;EAC5F,OAAO1E,IAAI,CAACK,OAAO,CAACoE,iBAAiB,CAAC3C,MAAM,EAAED,QAAQ,EAAE0B,IAAI,EAAEe,cAAc,EAAEI,YAAY,CAAC;AAC/F;AACA,MAAMmI,UAAU,GAAG7M,IAAI,CAACH,UAAU;AAClC,MAAMiN,cAAc,GAAG,OAAOjB,MAAM,KAAK,WAAW;AACpD,MAAMkB,cAAc,GAAGD,cAAc,GAAGjB,MAAM,GAAGnI,SAAS;AAC1D,MAAMsJ,OAAO,GAAGF,cAAc,IAAIC,cAAc,IAAI,OAAOrE,IAAI,KAAK,QAAQ,IAAIA,IAAI,IAAIpJ,MAAM;AAC9F,MAAM2N,gBAAgB,GAAG,iBAAiB;AAC1C,SAASpC,aAAa,CAAChC,IAAI,EAAE/G,MAAM,EAAE;EACjC,KAAK,IAAIiD,CAAC,GAAG8D,IAAI,CAAC7D,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACvC,IAAI,OAAO8D,IAAI,CAAC9D,CAAC,CAAC,KAAK,UAAU,EAAE;MAC/B8D,IAAI,CAAC9D,CAAC,CAAC,GAAGyG,mBAAmB,CAAC3C,IAAI,CAAC9D,CAAC,CAAC,EAAEjD,MAAM,GAAG,GAAG,GAAGiD,CAAC,CAAC;IAC5D;EACJ;EACA,OAAO8D,IAAI;AACf;AACA,SAASqE,cAAc,CAAC3D,SAAS,EAAE4D,OAAO,EAAE;EACxC,MAAMrL,MAAM,GAAGyH,SAAS,CAACrI,WAAW,CAAC,MAAM,CAAC;EAC5C,KAAK,IAAI6D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoI,OAAO,CAACnI,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAMtF,IAAI,GAAG0N,OAAO,CAACpI,CAAC,CAAC;IACvB,MAAMI,QAAQ,GAAGoE,SAAS,CAAC9J,IAAI,CAAC;IAChC,IAAI0F,QAAQ,EAAE;MACV,MAAMiI,aAAa,GAAGhC,8BAA8B,CAAC7B,SAAS,EAAE9J,IAAI,CAAC;MACrE,IAAI,CAAC4N,kBAAkB,CAACD,aAAa,CAAC,EAAE;QACpC;MACJ;MACA7D,SAAS,CAAC9J,IAAI,CAAC,GAAG,CAAE0F,QAAQ,IAAK;QAC7B,MAAMmI,OAAO,GAAG,YAAY;UACxB,OAAOnI,QAAQ,CAAC2C,KAAK,CAAC,IAAI,EAAE+C,aAAa,CAAC3I,SAAS,EAAEJ,MAAM,GAAG,GAAG,GAAGrC,IAAI,CAAC,CAAC;QAC9E,CAAC;QACDiM,qBAAqB,CAAC4B,OAAO,EAAEnI,QAAQ,CAAC;QACxC,OAAOmI,OAAO;MAClB,CAAC,EAAEnI,QAAQ,CAAC;IAChB;EACJ;AACJ;AACA,SAASkI,kBAAkB,CAACE,YAAY,EAAE;EACtC,IAAI,CAACA,YAAY,EAAE;IACf,OAAO,IAAI;EACf;EACA,IAAIA,YAAY,CAACC,QAAQ,KAAK,KAAK,EAAE;IACjC,OAAO,KAAK;EAChB;EACA,OAAO,EAAE,OAAOD,YAAY,CAAC/L,GAAG,KAAK,UAAU,IAAI,OAAO+L,YAAY,CAACE,GAAG,KAAK,WAAW,CAAC;AAC/F;AACA,MAAMC,WAAW,GAAI,OAAOC,iBAAiB,KAAK,WAAW,IAAIjF,IAAI,YAAYiF,iBAAkB;AACnG;AACA;AACA,MAAMC,MAAM,GAAI,EAAE,IAAI,IAAIZ,OAAO,CAAC,IAAI,OAAOA,OAAO,CAACa,OAAO,KAAK,WAAW,IACxE,CAAC,CAAC,CAACzE,QAAQ,CAACR,IAAI,CAACoE,OAAO,CAACa,OAAO,CAAC,KAAK,kBAAmB;AAC7D,MAAMC,SAAS,GAAG,CAACF,MAAM,IAAI,CAACF,WAAW,IAAI,CAAC,EAAEZ,cAAc,IAAIC,cAAc,CAAC,aAAa,CAAC,CAAC;AAChG;AACA;AACA;AACA,MAAMgB,KAAK,GAAG,OAAOf,OAAO,CAACa,OAAO,KAAK,WAAW,IAChD,CAAC,CAAC,CAACzE,QAAQ,CAACR,IAAI,CAACoE,OAAO,CAACa,OAAO,CAAC,KAAK,kBAAkB,IAAI,CAACH,WAAW,IACxE,CAAC,EAAEZ,cAAc,IAAIC,cAAc,CAAC,aAAa,CAAC,CAAC;AACvD,MAAMiB,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAMC,MAAM,GAAG,UAAUC,KAAK,EAAE;EAC5B;EACA;EACAA,KAAK,GAAGA,KAAK,IAAIlB,OAAO,CAACkB,KAAK;EAC9B,IAAI,CAACA,KAAK,EAAE;IACR;EACJ;EACA,IAAIC,eAAe,GAAGH,sBAAsB,CAACE,KAAK,CAACpL,IAAI,CAAC;EACxD,IAAI,CAACqL,eAAe,EAAE;IAClBA,eAAe,GAAGH,sBAAsB,CAACE,KAAK,CAACpL,IAAI,CAAC,GAAG+J,UAAU,CAAC,aAAa,GAAGqB,KAAK,CAACpL,IAAI,CAAC;EACjG;EACA,MAAMuC,MAAM,GAAG,IAAI,IAAI6I,KAAK,CAAC7I,MAAM,IAAI2H,OAAO;EAC9C,MAAMoB,QAAQ,GAAG/I,MAAM,CAAC8I,eAAe,CAAC;EACxC,IAAIE,MAAM;EACV,IAAIP,SAAS,IAAIzI,MAAM,KAAK0H,cAAc,IAAImB,KAAK,CAACpL,IAAI,KAAK,OAAO,EAAE;IAClE;IACA;IACA;IACA,MAAMwL,UAAU,GAAGJ,KAAK;IACxBG,MAAM,GAAGD,QAAQ,IACbA,QAAQ,CAACxF,IAAI,CAAC,IAAI,EAAE0F,UAAU,CAACC,OAAO,EAAED,UAAU,CAACE,QAAQ,EAAEF,UAAU,CAACG,MAAM,EAAEH,UAAU,CAACI,KAAK,EAAEJ,UAAU,CAAC/L,KAAK,CAAC;IACvH,IAAI8L,MAAM,KAAK,IAAI,EAAE;MACjBH,KAAK,CAACS,cAAc,EAAE;IAC1B;EACJ,CAAC,MACI;IACDN,MAAM,GAAGD,QAAQ,IAAIA,QAAQ,CAACtG,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;IACpD,IAAImM,MAAM,IAAI3K,SAAS,IAAI,CAAC2K,MAAM,EAAE;MAChCH,KAAK,CAACS,cAAc,EAAE;IAC1B;EACJ;EACA,OAAON,MAAM;AACjB,CAAC;AACD,SAASO,aAAa,CAACC,GAAG,EAAEC,IAAI,EAAEvF,SAAS,EAAE;EACzC,IAAIwF,IAAI,GAAG3D,8BAA8B,CAACyD,GAAG,EAAEC,IAAI,CAAC;EACpD,IAAI,CAACC,IAAI,IAAIxF,SAAS,EAAE;IACpB;IACA,MAAM6D,aAAa,GAAGhC,8BAA8B,CAAC7B,SAAS,EAAEuF,IAAI,CAAC;IACrE,IAAI1B,aAAa,EAAE;MACf2B,IAAI,GAAG;QAAEC,UAAU,EAAE,IAAI;QAAEC,YAAY,EAAE;MAAK,CAAC;IACnD;EACJ;EACA;EACA;EACA,IAAI,CAACF,IAAI,IAAI,CAACA,IAAI,CAACE,YAAY,EAAE;IAC7B;EACJ;EACA,MAAMC,mBAAmB,GAAGrC,UAAU,CAAC,IAAI,GAAGiC,IAAI,GAAG,SAAS,CAAC;EAC/D,IAAID,GAAG,CAAChO,cAAc,CAACqO,mBAAmB,CAAC,IAAIL,GAAG,CAACK,mBAAmB,CAAC,EAAE;IACrE;EACJ;EACA;EACA;EACA;EACA;EACA;EACA,OAAOH,IAAI,CAACvB,QAAQ;EACpB,OAAOuB,IAAI,CAAC7G,KAAK;EACjB,MAAMiH,eAAe,GAAGJ,IAAI,CAACvN,GAAG;EAChC,MAAM4N,eAAe,GAAGL,IAAI,CAACtB,GAAG;EAChC;EACA,MAAM4B,SAAS,GAAGP,IAAI,CAAC1C,KAAK,CAAC,CAAC,CAAC;EAC/B,IAAI+B,eAAe,GAAGH,sBAAsB,CAACqB,SAAS,CAAC;EACvD,IAAI,CAAClB,eAAe,EAAE;IAClBA,eAAe,GAAGH,sBAAsB,CAACqB,SAAS,CAAC,GAAGxC,UAAU,CAAC,aAAa,GAAGwC,SAAS,CAAC;EAC/F;EACAN,IAAI,CAACtB,GAAG,GAAG,UAAU6B,QAAQ,EAAE;IAC3B;IACA;IACA,IAAIjK,MAAM,GAAG,IAAI;IACjB,IAAI,CAACA,MAAM,IAAIwJ,GAAG,KAAK7B,OAAO,EAAE;MAC5B3H,MAAM,GAAG2H,OAAO;IACpB;IACA,IAAI,CAAC3H,MAAM,EAAE;MACT;IACJ;IACA,MAAMkK,aAAa,GAAGlK,MAAM,CAAC8I,eAAe,CAAC;IAC7C,IAAI,OAAOoB,aAAa,KAAK,UAAU,EAAE;MACrClK,MAAM,CAACmK,mBAAmB,CAACH,SAAS,EAAEpB,MAAM,CAAC;IACjD;IACA;IACA;IACAmB,eAAe,IAAIA,eAAe,CAACxG,IAAI,CAACvD,MAAM,EAAE,IAAI,CAAC;IACrDA,MAAM,CAAC8I,eAAe,CAAC,GAAGmB,QAAQ;IAClC,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAChCjK,MAAM,CAACoK,gBAAgB,CAACJ,SAAS,EAAEpB,MAAM,EAAE,KAAK,CAAC;IACrD;EACJ,CAAC;EACD;EACA;EACAc,IAAI,CAACvN,GAAG,GAAG,YAAY;IACnB;IACA;IACA,IAAI6D,MAAM,GAAG,IAAI;IACjB,IAAI,CAACA,MAAM,IAAIwJ,GAAG,KAAK7B,OAAO,EAAE;MAC5B3H,MAAM,GAAG2H,OAAO;IACpB;IACA,IAAI,CAAC3H,MAAM,EAAE;MACT,OAAO,IAAI;IACf;IACA,MAAM+I,QAAQ,GAAG/I,MAAM,CAAC8I,eAAe,CAAC;IACxC,IAAIC,QAAQ,EAAE;MACV,OAAOA,QAAQ;IACnB,CAAC,MACI,IAAIe,eAAe,EAAE;MACtB;MACA;MACA;MACA;MACA;MACA;MACA,IAAIjH,KAAK,GAAGiH,eAAe,CAACvG,IAAI,CAAC,IAAI,CAAC;MACtC,IAAIV,KAAK,EAAE;QACP6G,IAAI,CAACtB,GAAG,CAAC7E,IAAI,CAAC,IAAI,EAAEV,KAAK,CAAC;QAC1B,IAAI,OAAO7C,MAAM,CAAC4H,gBAAgB,CAAC,KAAK,UAAU,EAAE;UAChD5H,MAAM,CAACqK,eAAe,CAACZ,IAAI,CAAC;QAChC;QACA,OAAO5G,KAAK;MAChB;IACJ;IACA,OAAO,IAAI;EACf,CAAC;EACDiD,oBAAoB,CAAC0D,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC;EACrCF,GAAG,CAACK,mBAAmB,CAAC,GAAG,IAAI;AACnC;AACA,SAASvE,iBAAiB,CAACkE,GAAG,EAAExN,UAAU,EAAEkI,SAAS,EAAE;EACnD,IAAIlI,UAAU,EAAE;IACZ,KAAK,IAAI0D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG1D,UAAU,CAAC2D,MAAM,EAAED,CAAC,EAAE,EAAE;MACxC6J,aAAa,CAACC,GAAG,EAAE,IAAI,GAAGxN,UAAU,CAAC0D,CAAC,CAAC,EAAEwE,SAAS,CAAC;IACvD;EACJ,CAAC,MACI;IACD,MAAMoG,YAAY,GAAG,EAAE;IACvB,KAAK,MAAMb,IAAI,IAAID,GAAG,EAAE;MACpB,IAAIC,IAAI,CAAC1C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;QAC1BuD,YAAY,CAAC3H,IAAI,CAAC8G,IAAI,CAAC;MAC3B;IACJ;IACA,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,YAAY,CAAC3K,MAAM,EAAE4K,CAAC,EAAE,EAAE;MAC1ChB,aAAa,CAACC,GAAG,EAAEc,YAAY,CAACC,CAAC,CAAC,EAAErG,SAAS,CAAC;IAClD;EACJ;AACJ;AACA,MAAMsG,mBAAmB,GAAGhD,UAAU,CAAC,kBAAkB,CAAC;AAC1D;AACA,SAAStB,UAAU,CAACuE,SAAS,EAAE;EAC3B,MAAMC,aAAa,GAAG/C,OAAO,CAAC8C,SAAS,CAAC;EACxC,IAAI,CAACC,aAAa,EACd;EACJ;EACA/C,OAAO,CAACH,UAAU,CAACiD,SAAS,CAAC,CAAC,GAAGC,aAAa;EAC9C/C,OAAO,CAAC8C,SAAS,CAAC,GAAG,YAAY;IAC7B,MAAME,CAAC,GAAGnF,aAAa,CAAC3I,SAAS,EAAE4N,SAAS,CAAC;IAC7C,QAAQE,CAAC,CAAChL,MAAM;MACZ,KAAK,CAAC;QACF,IAAI,CAAC6K,mBAAmB,CAAC,GAAG,IAAIE,aAAa,EAAE;QAC/C;MACJ,KAAK,CAAC;QACF,IAAI,CAACF,mBAAmB,CAAC,GAAG,IAAIE,aAAa,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD;MACJ,KAAK,CAAC;QACF,IAAI,CAACH,mBAAmB,CAAC,GAAG,IAAIE,aAAa,CAACC,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD;MACJ,KAAK,CAAC;QACF,IAAI,CAACH,mBAAmB,CAAC,GAAG,IAAIE,aAAa,CAACC,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D;MACJ,KAAK,CAAC;QACF,IAAI,CAACH,mBAAmB,CAAC,GAAG,IAAIE,aAAa,CAACC,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE;MACJ;QACI,MAAM,IAAIjQ,KAAK,CAAC,oBAAoB,CAAC;IAAC;EAElD,CAAC;EACD;EACA2L,qBAAqB,CAACsB,OAAO,CAAC8C,SAAS,CAAC,EAAEC,aAAa,CAAC;EACxD,MAAME,QAAQ,GAAG,IAAIF,aAAa,CAAC,YAAY,CAAE,CAAC,CAAC;EACnD,IAAIjB,IAAI;EACR,KAAKA,IAAI,IAAImB,QAAQ,EAAE;IACnB;IACA,IAAIH,SAAS,KAAK,gBAAgB,IAAIhB,IAAI,KAAK,cAAc,EACzD;IACH,WAAUA,IAAI,EAAE;MACb,IAAI,OAAOmB,QAAQ,CAACnB,IAAI,CAAC,KAAK,UAAU,EAAE;QACtC9B,OAAO,CAAC8C,SAAS,CAAC,CAACvG,SAAS,CAACuF,IAAI,CAAC,GAAG,YAAY;UAC7C,OAAO,IAAI,CAACe,mBAAmB,CAAC,CAACf,IAAI,CAAC,CAAChH,KAAK,CAAC,IAAI,CAAC+H,mBAAmB,CAAC,EAAE3N,SAAS,CAAC;QACtF,CAAC;MACL,CAAC,MACI;QACDiJ,oBAAoB,CAAC6B,OAAO,CAAC8C,SAAS,CAAC,CAACvG,SAAS,EAAEuF,IAAI,EAAE;UACrDrB,GAAG,EAAE,UAAU9M,EAAE,EAAE;YACf,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;cAC1B,IAAI,CAACkP,mBAAmB,CAAC,CAACf,IAAI,CAAC,GAAGtD,mBAAmB,CAAC7K,EAAE,EAAEmP,SAAS,GAAG,GAAG,GAAGhB,IAAI,CAAC;cACjF;cACA;cACA;cACApD,qBAAqB,CAAC,IAAI,CAACmE,mBAAmB,CAAC,CAACf,IAAI,CAAC,EAAEnO,EAAE,CAAC;YAC9D,CAAC,MACI;cACD,IAAI,CAACkP,mBAAmB,CAAC,CAACf,IAAI,CAAC,GAAGnO,EAAE;YACxC;UACJ,CAAC;UACDa,GAAG,EAAE,YAAY;YACb,OAAO,IAAI,CAACqO,mBAAmB,CAAC,CAACf,IAAI,CAAC;UAC1C;QACJ,CAAC,CAAC;MACN;IACJ,CAAC,EAACA,IAAI,CAAC;EACX;EACA,KAAKA,IAAI,IAAIiB,aAAa,EAAE;IACxB,IAAIjB,IAAI,KAAK,WAAW,IAAIiB,aAAa,CAAClP,cAAc,CAACiO,IAAI,CAAC,EAAE;MAC5D9B,OAAO,CAAC8C,SAAS,CAAC,CAAChB,IAAI,CAAC,GAAGiB,aAAa,CAACjB,IAAI,CAAC;IAClD;EACJ;AACJ;AACA,SAASlE,WAAW,CAACvF,MAAM,EAAE5F,IAAI,EAAEyQ,OAAO,EAAE;EACxC,IAAIC,KAAK,GAAG9K,MAAM;EAClB,OAAO8K,KAAK,IAAI,CAACA,KAAK,CAACtP,cAAc,CAACpB,IAAI,CAAC,EAAE;IACzC0Q,KAAK,GAAGnE,oBAAoB,CAACmE,KAAK,CAAC;EACvC;EACA,IAAI,CAACA,KAAK,IAAI9K,MAAM,CAAC5F,IAAI,CAAC,EAAE;IACxB;IACA0Q,KAAK,GAAG9K,MAAM;EAClB;EACA,MAAM+K,YAAY,GAAGvD,UAAU,CAACpN,IAAI,CAAC;EACrC,IAAI0F,QAAQ,GAAG,IAAI;EACnB,IAAIgL,KAAK,KAAK,EAAEhL,QAAQ,GAAGgL,KAAK,CAACC,YAAY,CAAC,CAAC,IAAI,CAACD,KAAK,CAACtP,cAAc,CAACuP,YAAY,CAAC,CAAC,EAAE;IACrFjL,QAAQ,GAAGgL,KAAK,CAACC,YAAY,CAAC,GAAGD,KAAK,CAAC1Q,IAAI,CAAC;IAC5C;IACA;IACA,MAAMsP,IAAI,GAAGoB,KAAK,IAAI/E,8BAA8B,CAAC+E,KAAK,EAAE1Q,IAAI,CAAC;IACjE,IAAI4N,kBAAkB,CAAC0B,IAAI,CAAC,EAAE;MAC1B,MAAMsB,aAAa,GAAGH,OAAO,CAAC/K,QAAQ,EAAEiL,YAAY,EAAE3Q,IAAI,CAAC;MAC3D0Q,KAAK,CAAC1Q,IAAI,CAAC,GAAG,YAAY;QACtB,OAAO4Q,aAAa,CAAC,IAAI,EAAEnO,SAAS,CAAC;MACzC,CAAC;MACDwJ,qBAAqB,CAACyE,KAAK,CAAC1Q,IAAI,CAAC,EAAE0F,QAAQ,CAAC;IAChD;EACJ;EACA,OAAOA,QAAQ;AACnB;AACA;AACA,SAAS4F,cAAc,CAAC8D,GAAG,EAAEyB,QAAQ,EAAEC,WAAW,EAAE;EAChD,IAAIC,SAAS,GAAG,IAAI;EACpB,SAAS1M,YAAY,CAACpB,IAAI,EAAE;IACxB,MAAMa,IAAI,GAAGb,IAAI,CAACa,IAAI;IACtBA,IAAI,CAACsF,IAAI,CAACtF,IAAI,CAACkN,KAAK,CAAC,GAAG,YAAY;MAChC/N,IAAI,CAACJ,MAAM,CAACwF,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;IACtC,CAAC;IACDsO,SAAS,CAAC1I,KAAK,CAACvE,IAAI,CAAC8B,MAAM,EAAE9B,IAAI,CAACsF,IAAI,CAAC;IACvC,OAAOnG,IAAI;EACf;EACA8N,SAAS,GAAG5F,WAAW,CAACiE,GAAG,EAAEyB,QAAQ,EAAGnL,QAAQ,IAAK,UAAUuD,IAAI,EAAEG,IAAI,EAAE;IACvE,MAAM6H,IAAI,GAAGH,WAAW,CAAC7H,IAAI,EAAEG,IAAI,CAAC;IACpC,IAAI6H,IAAI,CAACD,KAAK,IAAI,CAAC,IAAI,OAAO5H,IAAI,CAAC6H,IAAI,CAACD,KAAK,CAAC,KAAK,UAAU,EAAE;MAC3D,OAAO7D,gCAAgC,CAAC8D,IAAI,CAACjR,IAAI,EAAEoJ,IAAI,CAAC6H,IAAI,CAACD,KAAK,CAAC,EAAEC,IAAI,EAAE5M,YAAY,CAAC;IAC5F,CAAC,MACI;MACD;MACA,OAAOqB,QAAQ,CAAC2C,KAAK,CAACY,IAAI,EAAEG,IAAI,CAAC;IACrC;EACJ,CAAC,CAAC;AACN;AACA,SAAS6C,qBAAqB,CAAC4B,OAAO,EAAEqD,QAAQ,EAAE;EAC9CrD,OAAO,CAACT,UAAU,CAAC,kBAAkB,CAAC,CAAC,GAAG8D,QAAQ;AACtD;AACA,IAAIC,kBAAkB,GAAG,KAAK;AAC9B,IAAIC,QAAQ,GAAG,KAAK;AACpB,SAASC,IAAI,GAAG;EACZ,IAAI;IACA,MAAMC,EAAE,GAAGhE,cAAc,CAACiE,SAAS,CAACC,SAAS;IAC7C,IAAIF,EAAE,CAACG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAIH,EAAE,CAACG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI;IACf;EACJ,CAAC,CACD,OAAO3O,KAAK,EAAE,CACd;EACA,OAAO,KAAK;AAChB;AACA,SAAS0I,UAAU,GAAG;EAClB,IAAI2F,kBAAkB,EAAE;IACpB,OAAOC,QAAQ;EACnB;EACAD,kBAAkB,GAAG,IAAI;EACzB,IAAI;IACA,MAAMG,EAAE,GAAGhE,cAAc,CAACiE,SAAS,CAACC,SAAS;IAC7C,IAAIF,EAAE,CAACG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAIH,EAAE,CAACG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAIH,EAAE,CAACG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;MAC3FL,QAAQ,GAAG,IAAI;IACnB;EACJ,CAAC,CACD,OAAOtO,KAAK,EAAE,CACd;EACA,OAAOsO,QAAQ;AACnB;AAEA7Q,IAAI,CAACU,YAAY,CAAC,kBAAkB,EAAE,CAACpB,MAAM,EAAEU,IAAI,EAAEmR,GAAG,KAAK;EACzD,MAAM/F,8BAA8B,GAAG9B,MAAM,CAACwC,wBAAwB;EACtE,MAAMX,oBAAoB,GAAG7B,MAAM,CAACyC,cAAc;EAClD,SAASqF,sBAAsB,CAACvC,GAAG,EAAE;IACjC,IAAIA,GAAG,IAAIA,GAAG,CAACzF,QAAQ,KAAKE,MAAM,CAACC,SAAS,CAACH,QAAQ,EAAE;MACnD,MAAM0G,SAAS,GAAGjB,GAAG,CAAC3N,WAAW,IAAI2N,GAAG,CAAC3N,WAAW,CAACzB,IAAI;MACzD,OAAO,CAACqQ,SAAS,GAAGA,SAAS,GAAG,EAAE,IAAI,IAAI,GAAGuB,IAAI,CAACC,SAAS,CAACzC,GAAG,CAAC;IACpE;IACA,OAAOA,GAAG,GAAGA,GAAG,CAACzF,QAAQ,EAAE,GAAGE,MAAM,CAACC,SAAS,CAACH,QAAQ,CAACR,IAAI,CAACiG,GAAG,CAAC;EACrE;EACA,MAAMhP,UAAU,GAAGsR,GAAG,CAAC7G,MAAM;EAC7B,MAAMiH,sBAAsB,GAAG,EAAE;EACjC,MAAMC,yCAAyC,GAAGlS,MAAM,CAACO,UAAU,CAAC,6CAA6C,CAAC,CAAC,KAAK,IAAI;EAC5H,MAAM6J,aAAa,GAAG7J,UAAU,CAAC,SAAS,CAAC;EAC3C,MAAM8J,UAAU,GAAG9J,UAAU,CAAC,MAAM,CAAC;EACrC,MAAM4R,aAAa,GAAG,mBAAmB;EACzCN,GAAG,CAAC/G,gBAAgB,GAAIsH,CAAC,IAAK;IAC1B,IAAIP,GAAG,CAAC1G,iBAAiB,EAAE,EAAE;MACzB,MAAMkH,SAAS,GAAGD,CAAC,IAAIA,CAAC,CAACC,SAAS;MAClC,IAAIA,SAAS,EAAE;QACXC,OAAO,CAACrP,KAAK,CAAC,8BAA8B,EAAEoP,SAAS,YAAY5R,KAAK,GAAG4R,SAAS,CAACpD,OAAO,GAAGoD,SAAS,EAAE,SAAS,EAAED,CAAC,CAACtR,IAAI,CAACX,IAAI,EAAE,SAAS,EAAEiS,CAAC,CAAChP,IAAI,IAAIgP,CAAC,CAAChP,IAAI,CAACZ,MAAM,EAAE,UAAU,EAAE6P,SAAS,EAAEA,SAAS,YAAY5R,KAAK,GAAG4R,SAAS,CAACE,KAAK,GAAGnO,SAAS,CAAC;MAC1P,CAAC,MACI;QACDkO,OAAO,CAACrP,KAAK,CAACmP,CAAC,CAAC;MACpB;IACJ;EACJ,CAAC;EACDP,GAAG,CAAC9G,kBAAkB,GAAG,MAAM;IAC3B,OAAOkH,sBAAsB,CAACvM,MAAM,EAAE;MAClC,MAAM8M,oBAAoB,GAAGP,sBAAsB,CAACQ,KAAK,EAAE;MAC3D,IAAI;QACAD,oBAAoB,CAAC1R,IAAI,CAAC6B,UAAU,CAAC,MAAM;UACvC,IAAI6P,oBAAoB,CAACE,aAAa,EAAE;YACpC,MAAMF,oBAAoB,CAACH,SAAS;UACxC;UACA,MAAMG,oBAAoB;QAC9B,CAAC,CAAC;MACN,CAAC,CACD,OAAOvP,KAAK,EAAE;QACV0P,wBAAwB,CAAC1P,KAAK,CAAC;MACnC;IACJ;EACJ,CAAC;EACD,MAAM2P,0CAA0C,GAAGrS,UAAU,CAAC,kCAAkC,CAAC;EACjG,SAASoS,wBAAwB,CAACP,CAAC,EAAE;IACjCP,GAAG,CAAC/G,gBAAgB,CAACsH,CAAC,CAAC;IACvB,IAAI;MACA,MAAMS,OAAO,GAAGnS,IAAI,CAACkS,0CAA0C,CAAC;MAChE,IAAI,OAAOC,OAAO,KAAK,UAAU,EAAE;QAC/BA,OAAO,CAACvJ,IAAI,CAAC,IAAI,EAAE8I,CAAC,CAAC;MACzB;IACJ,CAAC,CACD,OAAOtN,GAAG,EAAE,CACZ;EACJ;EACA,SAASgO,UAAU,CAAClK,KAAK,EAAE;IACvB,OAAOA,KAAK,IAAIA,KAAK,CAACmK,IAAI;EAC9B;EACA,SAASC,iBAAiB,CAACpK,KAAK,EAAE;IAC9B,OAAOA,KAAK;EAChB;EACA,SAASqK,gBAAgB,CAACZ,SAAS,EAAE;IACjC,OAAOa,gBAAgB,CAACC,MAAM,CAACd,SAAS,CAAC;EAC7C;EACA,MAAMe,WAAW,GAAG7S,UAAU,CAAC,OAAO,CAAC;EACvC,MAAM8S,WAAW,GAAG9S,UAAU,CAAC,OAAO,CAAC;EACvC,MAAM+S,aAAa,GAAG/S,UAAU,CAAC,SAAS,CAAC;EAC3C,MAAMgT,wBAAwB,GAAGhT,UAAU,CAAC,oBAAoB,CAAC;EACjE,MAAMiT,wBAAwB,GAAGjT,UAAU,CAAC,oBAAoB,CAAC;EACjE,MAAMiC,MAAM,GAAG,cAAc;EAC7B,MAAMiR,UAAU,GAAG,IAAI;EACvB,MAAMC,QAAQ,GAAG,IAAI;EACrB,MAAMC,QAAQ,GAAG,KAAK;EACtB,MAAMC,iBAAiB,GAAG,CAAC;EAC3B,SAASC,YAAY,CAACC,OAAO,EAAExQ,KAAK,EAAE;IAClC,OAAQyQ,CAAC,IAAK;MACV,IAAI;QACAC,cAAc,CAACF,OAAO,EAAExQ,KAAK,EAAEyQ,CAAC,CAAC;MACrC,CAAC,CACD,OAAOjP,GAAG,EAAE;QACRkP,cAAc,CAACF,OAAO,EAAE,KAAK,EAAEhP,GAAG,CAAC;MACvC;MACA;IACJ,CAAC;EACL;;EACA,MAAMmP,IAAI,GAAG,YAAY;IACrB,IAAIC,SAAS,GAAG,KAAK;IACrB,OAAO,SAASC,OAAO,CAACC,eAAe,EAAE;MACrC,OAAO,YAAY;QACf,IAAIF,SAAS,EAAE;UACX;QACJ;QACAA,SAAS,GAAG,IAAI;QAChBE,eAAe,CAAC5L,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;MAC1C,CAAC;IACL,CAAC;EACL,CAAC;EACD,MAAMyR,UAAU,GAAG,8BAA8B;EACjD,MAAMC,yBAAyB,GAAG/T,UAAU,CAAC,kBAAkB,CAAC;EAChE;EACA,SAASyT,cAAc,CAACF,OAAO,EAAExQ,KAAK,EAAEsF,KAAK,EAAE;IAC3C,MAAM2L,WAAW,GAAGN,IAAI,EAAE;IAC1B,IAAIH,OAAO,KAAKlL,KAAK,EAAE;MACnB,MAAM,IAAI4L,SAAS,CAACH,UAAU,CAAC;IACnC;IACA,IAAIP,OAAO,CAACV,WAAW,CAAC,KAAKK,UAAU,EAAE;MACrC;MACA,IAAIV,IAAI,GAAG,IAAI;MACf,IAAI;QACA,IAAI,OAAOnK,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;UAC1DmK,IAAI,GAAGnK,KAAK,IAAIA,KAAK,CAACmK,IAAI;QAC9B;MACJ,CAAC,CACD,OAAOjO,GAAG,EAAE;QACRyP,WAAW,CAAC,MAAM;UACdP,cAAc,CAACF,OAAO,EAAE,KAAK,EAAEhP,GAAG,CAAC;QACvC,CAAC,CAAC,EAAE;QACJ,OAAOgP,OAAO;MAClB;MACA;MACA,IAAIxQ,KAAK,KAAKqQ,QAAQ,IAAI/K,KAAK,YAAYsK,gBAAgB,IACvDtK,KAAK,CAACrH,cAAc,CAAC6R,WAAW,CAAC,IAAIxK,KAAK,CAACrH,cAAc,CAAC8R,WAAW,CAAC,IACtEzK,KAAK,CAACwK,WAAW,CAAC,KAAKK,UAAU,EAAE;QACnCgB,oBAAoB,CAAC7L,KAAK,CAAC;QAC3BoL,cAAc,CAACF,OAAO,EAAElL,KAAK,CAACwK,WAAW,CAAC,EAAExK,KAAK,CAACyK,WAAW,CAAC,CAAC;MACnE,CAAC,MACI,IAAI/P,KAAK,KAAKqQ,QAAQ,IAAI,OAAOZ,IAAI,KAAK,UAAU,EAAE;QACvD,IAAI;UACAA,IAAI,CAACzJ,IAAI,CAACV,KAAK,EAAE2L,WAAW,CAACV,YAAY,CAACC,OAAO,EAAExQ,KAAK,CAAC,CAAC,EAAEiR,WAAW,CAACV,YAAY,CAACC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1G,CAAC,CACD,OAAOhP,GAAG,EAAE;UACRyP,WAAW,CAAC,MAAM;YACdP,cAAc,CAACF,OAAO,EAAE,KAAK,EAAEhP,GAAG,CAAC;UACvC,CAAC,CAAC,EAAE;QACR;MACJ,CAAC,MACI;QACDgP,OAAO,CAACV,WAAW,CAAC,GAAG9P,KAAK;QAC5B,MAAMuH,KAAK,GAAGiJ,OAAO,CAACT,WAAW,CAAC;QAClCS,OAAO,CAACT,WAAW,CAAC,GAAGzK,KAAK;QAC5B,IAAIkL,OAAO,CAACR,aAAa,CAAC,KAAKA,aAAa,EAAE;UAC1C;UACA,IAAIhQ,KAAK,KAAKoQ,QAAQ,EAAE;YACpB;YACA;YACAI,OAAO,CAACV,WAAW,CAAC,GAAGU,OAAO,CAACN,wBAAwB,CAAC;YACxDM,OAAO,CAACT,WAAW,CAAC,GAAGS,OAAO,CAACP,wBAAwB,CAAC;UAC5D;QACJ;QACA;QACA;QACA,IAAIjQ,KAAK,KAAKqQ,QAAQ,IAAI/K,KAAK,YAAYnI,KAAK,EAAE;UAC9C;UACA,MAAMiU,KAAK,GAAGhU,IAAI,CAACQ,WAAW,IAAIR,IAAI,CAACQ,WAAW,CAAC+C,IAAI,IACnDvD,IAAI,CAACQ,WAAW,CAAC+C,IAAI,CAACkO,aAAa,CAAC;UACxC,IAAIuC,KAAK,EAAE;YACP;YACA7I,oBAAoB,CAACjD,KAAK,EAAE0L,yBAAyB,EAAE;cAAE3E,YAAY,EAAE,IAAI;cAAED,UAAU,EAAE,KAAK;cAAExB,QAAQ,EAAE,IAAI;cAAEtF,KAAK,EAAE8L;YAAM,CAAC,CAAC;UACnI;QACJ;QACA,KAAK,IAAIjP,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoF,KAAK,CAACnF,MAAM,GAAG;UAC/BiP,uBAAuB,CAACb,OAAO,EAAEjJ,KAAK,CAACpF,CAAC,EAAE,CAAC,EAAEoF,KAAK,CAACpF,CAAC,EAAE,CAAC,EAAEoF,KAAK,CAACpF,CAAC,EAAE,CAAC,EAAEoF,KAAK,CAACpF,CAAC,EAAE,CAAC,CAAC;QACpF;QACA,IAAIoF,KAAK,CAACnF,MAAM,IAAI,CAAC,IAAIpC,KAAK,IAAIqQ,QAAQ,EAAE;UACxCG,OAAO,CAACV,WAAW,CAAC,GAAGQ,iBAAiB;UACxC,IAAIpB,oBAAoB,GAAG5J,KAAK;UAChC,IAAI;YACA;YACA;YACA;YACA,MAAM,IAAInI,KAAK,CAAC,yBAAyB,GAAGqR,sBAAsB,CAAClJ,KAAK,CAAC,IACpEA,KAAK,IAAIA,KAAK,CAAC2J,KAAK,GAAG,IAAI,GAAG3J,KAAK,CAAC2J,KAAK,GAAG,EAAE,CAAC,CAAC;UACzD,CAAC,CACD,OAAOzN,GAAG,EAAE;YACR0N,oBAAoB,GAAG1N,GAAG;UAC9B;UACA,IAAIoN,yCAAyC,EAAE;YAC3C;YACA;YACAM,oBAAoB,CAACE,aAAa,GAAG,IAAI;UAC7C;UACAF,oBAAoB,CAACH,SAAS,GAAGzJ,KAAK;UACtC4J,oBAAoB,CAACsB,OAAO,GAAGA,OAAO;UACtCtB,oBAAoB,CAAC1R,IAAI,GAAGJ,IAAI,CAACK,OAAO;UACxCyR,oBAAoB,CAACpP,IAAI,GAAG1C,IAAI,CAACQ,WAAW;UAC5C+Q,sBAAsB,CAACvJ,IAAI,CAAC8J,oBAAoB,CAAC;UACjDX,GAAG,CAAC9M,iBAAiB,EAAE,CAAC,CAAC;QAC7B;MACJ;IACJ;IACA;IACA,OAAO+O,OAAO;EAClB;EACA,MAAMc,yBAAyB,GAAGrU,UAAU,CAAC,yBAAyB,CAAC;EACvE,SAASkU,oBAAoB,CAACX,OAAO,EAAE;IACnC,IAAIA,OAAO,CAACV,WAAW,CAAC,KAAKQ,iBAAiB,EAAE;MAC5C;MACA;MACA;MACA;MACA;MACA,IAAI;QACA,MAAMf,OAAO,GAAGnS,IAAI,CAACkU,yBAAyB,CAAC;QAC/C,IAAI/B,OAAO,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE;UAC1CA,OAAO,CAACvJ,IAAI,CAAC,IAAI,EAAE;YAAE+I,SAAS,EAAEyB,OAAO,CAACT,WAAW,CAAC;YAAES,OAAO,EAAEA;UAAQ,CAAC,CAAC;QAC7E;MACJ,CAAC,CACD,OAAOhP,GAAG,EAAE,CACZ;MACAgP,OAAO,CAACV,WAAW,CAAC,GAAGO,QAAQ;MAC/B,KAAK,IAAIlO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwM,sBAAsB,CAACvM,MAAM,EAAED,CAAC,EAAE,EAAE;QACpD,IAAIqO,OAAO,KAAK7B,sBAAsB,CAACxM,CAAC,CAAC,CAACqO,OAAO,EAAE;UAC/C7B,sBAAsB,CAAC4C,MAAM,CAACpP,CAAC,EAAE,CAAC,CAAC;QACvC;MACJ;IACJ;EACJ;EACA,SAASkP,uBAAuB,CAACb,OAAO,EAAEhT,IAAI,EAAEgU,YAAY,EAAEC,WAAW,EAAEC,UAAU,EAAE;IACnFP,oBAAoB,CAACX,OAAO,CAAC;IAC7B,MAAMmB,YAAY,GAAGnB,OAAO,CAACV,WAAW,CAAC;IACzC,MAAMvN,QAAQ,GAAGoP,YAAY,GACxB,OAAOF,WAAW,KAAK,UAAU,GAAIA,WAAW,GAAG/B,iBAAiB,GACpE,OAAOgC,UAAU,KAAK,UAAU,GAAIA,UAAU,GAC3C/B,gBAAgB;IACxBnS,IAAI,CAACiE,iBAAiB,CAACvC,MAAM,EAAE,MAAM;MACjC,IAAI;QACA,MAAM0S,kBAAkB,GAAGpB,OAAO,CAACT,WAAW,CAAC;QAC/C,MAAM8B,gBAAgB,GAAG,CAAC,CAACL,YAAY,IAAIxB,aAAa,KAAKwB,YAAY,CAACxB,aAAa,CAAC;QACxF,IAAI6B,gBAAgB,EAAE;UAClB;UACAL,YAAY,CAACvB,wBAAwB,CAAC,GAAG2B,kBAAkB;UAC3DJ,YAAY,CAACtB,wBAAwB,CAAC,GAAGyB,YAAY;QACzD;QACA;QACA,MAAMrM,KAAK,GAAG9H,IAAI,CAAC+B,GAAG,CAACgD,QAAQ,EAAEzB,SAAS,EAAE+Q,gBAAgB,IAAItP,QAAQ,KAAKoN,gBAAgB,IAAIpN,QAAQ,KAAKmN,iBAAiB,GAC3H,EAAE,GACF,CAACkC,kBAAkB,CAAC,CAAC;QACzBlB,cAAc,CAACc,YAAY,EAAE,IAAI,EAAElM,KAAK,CAAC;MAC7C,CAAC,CACD,OAAO3F,KAAK,EAAE;QACV;QACA+Q,cAAc,CAACc,YAAY,EAAE,KAAK,EAAE7R,KAAK,CAAC;MAC9C;IACJ,CAAC,EAAE6R,YAAY,CAAC;EACpB;EACA,MAAMM,4BAA4B,GAAG,+CAA+C;EACpF,MAAMlK,IAAI,GAAG,YAAY,CAAE,CAAC;EAC5B,MAAMmK,cAAc,GAAGrV,MAAM,CAACqV,cAAc;EAC5C,MAAMnC,gBAAgB,CAAC;IACnB,OAAOpJ,QAAQ,GAAG;MACd,OAAOsL,4BAA4B;IACvC;IACA,OAAOzK,OAAO,CAAC/B,KAAK,EAAE;MAClB,OAAOoL,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAEN,QAAQ,EAAE9K,KAAK,CAAC;IAC1D;IACA,OAAOuK,MAAM,CAAClQ,KAAK,EAAE;MACjB,OAAO+Q,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAEL,QAAQ,EAAE1Q,KAAK,CAAC;IAC1D;IACA,OAAOqS,GAAG,CAACC,MAAM,EAAE;MACf,IAAI,CAACA,MAAM,IAAI,OAAOA,MAAM,CAACC,MAAM,CAACC,QAAQ,CAAC,KAAK,UAAU,EAAE;QAC1D,OAAOC,OAAO,CAACvC,MAAM,CAAC,IAAIkC,cAAc,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC;MAC/E;MACA,MAAMM,QAAQ,GAAG,EAAE;MACnB,IAAInQ,KAAK,GAAG,CAAC;MACb,IAAI;QACA,KAAK,IAAIuO,CAAC,IAAIwB,MAAM,EAAE;UAClB/P,KAAK,EAAE;UACPmQ,QAAQ,CAACjN,IAAI,CAACwK,gBAAgB,CAACvI,OAAO,CAACoJ,CAAC,CAAC,CAAC;QAC9C;MACJ,CAAC,CACD,OAAOjP,GAAG,EAAE;QACR,OAAO4Q,OAAO,CAACvC,MAAM,CAAC,IAAIkC,cAAc,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC;MAC/E;MACA,IAAI7P,KAAK,KAAK,CAAC,EAAE;QACb,OAAOkQ,OAAO,CAACvC,MAAM,CAAC,IAAIkC,cAAc,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC;MAC/E;MACA,IAAIO,QAAQ,GAAG,KAAK;MACpB,MAAMC,MAAM,GAAG,EAAE;MACjB,OAAO,IAAI3C,gBAAgB,CAAC,CAACvI,OAAO,EAAEwI,MAAM,KAAK;QAC7C,KAAK,IAAI1N,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkQ,QAAQ,CAACjQ,MAAM,EAAED,CAAC,EAAE,EAAE;UACtCkQ,QAAQ,CAAClQ,CAAC,CAAC,CAACsN,IAAI,CAACgB,CAAC,IAAI;YAClB,IAAI6B,QAAQ,EAAE;cACV;YACJ;YACAA,QAAQ,GAAG,IAAI;YACfjL,OAAO,CAACoJ,CAAC,CAAC;UACd,CAAC,EAAEjP,GAAG,IAAI;YACN+Q,MAAM,CAACnN,IAAI,CAAC5D,GAAG,CAAC;YAChBU,KAAK,EAAE;YACP,IAAIA,KAAK,KAAK,CAAC,EAAE;cACboQ,QAAQ,GAAG,IAAI;cACfzC,MAAM,CAAC,IAAIkC,cAAc,CAACQ,MAAM,EAAE,4BAA4B,CAAC,CAAC;YACpE;UACJ,CAAC,CAAC;QACN;MACJ,CAAC,CAAC;IACN;IAEA,OAAOC,IAAI,CAACP,MAAM,EAAE;MAChB,IAAI5K,OAAO;MACX,IAAIwI,MAAM;MACV,IAAIW,OAAO,GAAG,IAAI,IAAI,CAAC,CAACiC,GAAG,EAAEC,GAAG,KAAK;QACjCrL,OAAO,GAAGoL,GAAG;QACb5C,MAAM,GAAG6C,GAAG;MAChB,CAAC,CAAC;MACF,SAASC,SAAS,CAACrN,KAAK,EAAE;QACtB+B,OAAO,CAAC/B,KAAK,CAAC;MAClB;MACA,SAASsN,QAAQ,CAACjT,KAAK,EAAE;QACrBkQ,MAAM,CAAClQ,KAAK,CAAC;MACjB;MACA,KAAK,IAAI2F,KAAK,IAAI2M,MAAM,EAAE;QACtB,IAAI,CAACzC,UAAU,CAAClK,KAAK,CAAC,EAAE;UACpBA,KAAK,GAAG,IAAI,CAAC+B,OAAO,CAAC/B,KAAK,CAAC;QAC/B;QACAA,KAAK,CAACmK,IAAI,CAACkD,SAAS,EAAEC,QAAQ,CAAC;MACnC;MACA,OAAOpC,OAAO;IAClB;IACA,OAAOqC,GAAG,CAACZ,MAAM,EAAE;MACf,OAAOrC,gBAAgB,CAACkD,eAAe,CAACb,MAAM,CAAC;IACnD;IACA,OAAOc,UAAU,CAACd,MAAM,EAAE;MACtB,MAAMe,CAAC,GAAG,IAAI,IAAI,IAAI,CAACrM,SAAS,YAAYiJ,gBAAgB,GAAG,IAAI,GAAGA,gBAAgB;MACtF,OAAOoD,CAAC,CAACF,eAAe,CAACb,MAAM,EAAE;QAC7BgB,YAAY,EAAG3N,KAAK,KAAM;UAAE4N,MAAM,EAAE,WAAW;UAAE5N;QAAM,CAAC,CAAC;QACzD6N,aAAa,EAAG3R,GAAG,KAAM;UAAE0R,MAAM,EAAE,UAAU;UAAEE,MAAM,EAAE5R;QAAI,CAAC;MAChE,CAAC,CAAC;IACN;IACA,OAAOsR,eAAe,CAACb,MAAM,EAAEhT,QAAQ,EAAE;MACrC,IAAIoI,OAAO;MACX,IAAIwI,MAAM;MACV,IAAIW,OAAO,GAAG,IAAI,IAAI,CAAC,CAACiC,GAAG,EAAEC,GAAG,KAAK;QACjCrL,OAAO,GAAGoL,GAAG;QACb5C,MAAM,GAAG6C,GAAG;MAChB,CAAC,CAAC;MACF;MACA,IAAIW,eAAe,GAAG,CAAC;MACvB,IAAIC,UAAU,GAAG,CAAC;MAClB,MAAMC,cAAc,GAAG,EAAE;MACzB,KAAK,IAAIjO,KAAK,IAAI2M,MAAM,EAAE;QACtB,IAAI,CAACzC,UAAU,CAAClK,KAAK,CAAC,EAAE;UACpBA,KAAK,GAAG,IAAI,CAAC+B,OAAO,CAAC/B,KAAK,CAAC;QAC/B;QACA,MAAMkO,aAAa,GAAGF,UAAU;QAChC,IAAI;UACAhO,KAAK,CAACmK,IAAI,CAAEnK,KAAK,IAAK;YAClBiO,cAAc,CAACC,aAAa,CAAC,GAAGvU,QAAQ,GAAGA,QAAQ,CAACgU,YAAY,CAAC3N,KAAK,CAAC,GAAGA,KAAK;YAC/E+N,eAAe,EAAE;YACjB,IAAIA,eAAe,KAAK,CAAC,EAAE;cACvBhM,OAAO,CAACkM,cAAc,CAAC;YAC3B;UACJ,CAAC,EAAG/R,GAAG,IAAK;YACR,IAAI,CAACvC,QAAQ,EAAE;cACX4Q,MAAM,CAACrO,GAAG,CAAC;YACf,CAAC,MACI;cACD+R,cAAc,CAACC,aAAa,CAAC,GAAGvU,QAAQ,CAACkU,aAAa,CAAC3R,GAAG,CAAC;cAC3D6R,eAAe,EAAE;cACjB,IAAIA,eAAe,KAAK,CAAC,EAAE;gBACvBhM,OAAO,CAACkM,cAAc,CAAC;cAC3B;YACJ;UACJ,CAAC,CAAC;QACN,CAAC,CACD,OAAOE,OAAO,EAAE;UACZ5D,MAAM,CAAC4D,OAAO,CAAC;QACnB;QACAJ,eAAe,EAAE;QACjBC,UAAU,EAAE;MAChB;MACA;MACAD,eAAe,IAAI,CAAC;MACpB,IAAIA,eAAe,KAAK,CAAC,EAAE;QACvBhM,OAAO,CAACkM,cAAc,CAAC;MAC3B;MACA,OAAO/C,OAAO;IAClB;IACAlS,WAAW,CAACoV,QAAQ,EAAE;MAClB,MAAMlD,OAAO,GAAG,IAAI;MACpB,IAAI,EAAEA,OAAO,YAAYZ,gBAAgB,CAAC,EAAE;QACxC,MAAM,IAAIzS,KAAK,CAAC,gCAAgC,CAAC;MACrD;MACAqT,OAAO,CAACV,WAAW,CAAC,GAAGK,UAAU;MACjCK,OAAO,CAACT,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;MAC3B,IAAI;QACA,MAAMkB,WAAW,GAAGN,IAAI,EAAE;QAC1B+C,QAAQ,IACJA,QAAQ,CAACzC,WAAW,CAACV,YAAY,CAACC,OAAO,EAAEJ,QAAQ,CAAC,CAAC,EAAEa,WAAW,CAACV,YAAY,CAACC,OAAO,EAAEH,QAAQ,CAAC,CAAC,CAAC;MAC5G,CAAC,CACD,OAAO1Q,KAAK,EAAE;QACV+Q,cAAc,CAACF,OAAO,EAAE,KAAK,EAAE7Q,KAAK,CAAC;MACzC;IACJ;IACA,KAAKuS,MAAM,CAACyB,WAAW,IAAI;MACvB,OAAO,SAAS;IACpB;IACA,KAAKzB,MAAM,CAAC0B,OAAO,IAAI;MACnB,OAAOhE,gBAAgB;IAC3B;IACAH,IAAI,CAACgC,WAAW,EAAEC,UAAU,EAAE;MAC1B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAImC,CAAC,GAAG,IAAI,CAACvV,WAAW,GAAG4T,MAAM,CAAC0B,OAAO,CAAC;MAC1C,IAAI,CAACC,CAAC,IAAI,OAAOA,CAAC,KAAK,UAAU,EAAE;QAC/BA,CAAC,GAAG,IAAI,CAACvV,WAAW,IAAIsR,gBAAgB;MAC5C;MACA,MAAM4B,YAAY,GAAG,IAAIqC,CAAC,CAACjM,IAAI,CAAC;MAChC,MAAMpK,IAAI,GAAGJ,IAAI,CAACK,OAAO;MACzB,IAAI,IAAI,CAACqS,WAAW,CAAC,IAAIK,UAAU,EAAE;QACjC,IAAI,CAACJ,WAAW,CAAC,CAAC3K,IAAI,CAAC5H,IAAI,EAAEgU,YAAY,EAAEC,WAAW,EAAEC,UAAU,CAAC;MACvE,CAAC,MACI;QACDL,uBAAuB,CAAC,IAAI,EAAE7T,IAAI,EAAEgU,YAAY,EAAEC,WAAW,EAAEC,UAAU,CAAC;MAC9E;MACA,OAAOF,YAAY;IACvB;IACAsC,KAAK,CAACpC,UAAU,EAAE;MACd,OAAO,IAAI,CAACjC,IAAI,CAAC,IAAI,EAAEiC,UAAU,CAAC;IACtC;IACAqC,OAAO,CAACC,SAAS,EAAE;MACf;MACA,IAAIH,CAAC,GAAG,IAAI,CAACvV,WAAW,GAAG4T,MAAM,CAAC0B,OAAO,CAAC;MAC1C,IAAI,CAACC,CAAC,IAAI,OAAOA,CAAC,KAAK,UAAU,EAAE;QAC/BA,CAAC,GAAGjE,gBAAgB;MACxB;MACA,MAAM4B,YAAY,GAAG,IAAIqC,CAAC,CAACjM,IAAI,CAAC;MAChC4J,YAAY,CAACxB,aAAa,CAAC,GAAGA,aAAa;MAC3C,MAAMxS,IAAI,GAAGJ,IAAI,CAACK,OAAO;MACzB,IAAI,IAAI,CAACqS,WAAW,CAAC,IAAIK,UAAU,EAAE;QACjC,IAAI,CAACJ,WAAW,CAAC,CAAC3K,IAAI,CAAC5H,IAAI,EAAEgU,YAAY,EAAEwC,SAAS,EAAEA,SAAS,CAAC;MACpE,CAAC,MACI;QACD3C,uBAAuB,CAAC,IAAI,EAAE7T,IAAI,EAAEgU,YAAY,EAAEwC,SAAS,EAAEA,SAAS,CAAC;MAC3E;MACA,OAAOxC,YAAY;IACvB;EACJ;EACA;EACA;EACA5B,gBAAgB,CAAC,SAAS,CAAC,GAAGA,gBAAgB,CAACvI,OAAO;EACtDuI,gBAAgB,CAAC,QAAQ,CAAC,GAAGA,gBAAgB,CAACC,MAAM;EACpDD,gBAAgB,CAAC,MAAM,CAAC,GAAGA,gBAAgB,CAAC4C,IAAI;EAChD5C,gBAAgB,CAAC,KAAK,CAAC,GAAGA,gBAAgB,CAACiD,GAAG;EAC9C,MAAMoB,aAAa,GAAGvX,MAAM,CAACoK,aAAa,CAAC,GAAGpK,MAAM,CAAC,SAAS,CAAC;EAC/DA,MAAM,CAAC,SAAS,CAAC,GAAGkT,gBAAgB;EACpC,MAAMsE,iBAAiB,GAAGjX,UAAU,CAAC,aAAa,CAAC;EACnD,SAASiL,SAAS,CAACiM,IAAI,EAAE;IACrB,MAAM5G,KAAK,GAAG4G,IAAI,CAACxN,SAAS;IAC5B,MAAMuF,IAAI,GAAG1D,8BAA8B,CAAC+E,KAAK,EAAE,MAAM,CAAC;IAC1D,IAAIrB,IAAI,KAAKA,IAAI,CAACtB,QAAQ,KAAK,KAAK,IAAI,CAACsB,IAAI,CAACG,YAAY,CAAC,EAAE;MACzD;MACA;MACA;IACJ;IACA,MAAM+H,YAAY,GAAG7G,KAAK,CAACkC,IAAI;IAC/B;IACAlC,KAAK,CAACxG,UAAU,CAAC,GAAGqN,YAAY;IAChCD,IAAI,CAACxN,SAAS,CAAC8I,IAAI,GAAG,UAAUkD,SAAS,EAAEC,QAAQ,EAAE;MACjD,MAAMyB,OAAO,GAAG,IAAIzE,gBAAgB,CAAC,CAACvI,OAAO,EAAEwI,MAAM,KAAK;QACtDuE,YAAY,CAACpO,IAAI,CAAC,IAAI,EAAEqB,OAAO,EAAEwI,MAAM,CAAC;MAC5C,CAAC,CAAC;MACF,OAAOwE,OAAO,CAAC5E,IAAI,CAACkD,SAAS,EAAEC,QAAQ,CAAC;IAC5C,CAAC;IACDuB,IAAI,CAACD,iBAAiB,CAAC,GAAG,IAAI;EAClC;EACA3F,GAAG,CAACrG,SAAS,GAAGA,SAAS;EACzB,SAASoM,OAAO,CAACvW,EAAE,EAAE;IACjB,OAAO,UAAU+H,IAAI,EAAEG,IAAI,EAAE;MACzB,IAAIsO,aAAa,GAAGxW,EAAE,CAACmH,KAAK,CAACY,IAAI,EAAEG,IAAI,CAAC;MACxC,IAAIsO,aAAa,YAAY3E,gBAAgB,EAAE;QAC3C,OAAO2E,aAAa;MACxB;MACA,IAAIC,IAAI,GAAGD,aAAa,CAACjW,WAAW;MACpC,IAAI,CAACkW,IAAI,CAACN,iBAAiB,CAAC,EAAE;QAC1BhM,SAAS,CAACsM,IAAI,CAAC;MACnB;MACA,OAAOD,aAAa;IACxB,CAAC;EACL;EACA,IAAIN,aAAa,EAAE;IACf/L,SAAS,CAAC+L,aAAa,CAAC;IACxBjM,WAAW,CAACtL,MAAM,EAAE,OAAO,EAAE6F,QAAQ,IAAI+R,OAAO,CAAC/R,QAAQ,CAAC,CAAC;EAC/D;EACA;EACA6P,OAAO,CAAChV,IAAI,CAACH,UAAU,CAAC,uBAAuB,CAAC,CAAC,GAAG0R,sBAAsB;EAC1E,OAAOiB,gBAAgB;AAC3B,CAAC,CAAC;;AAEF;AACA;AACAxS,IAAI,CAACU,YAAY,CAAC,UAAU,EAAGpB,MAAM,IAAK;EACtC;EACA,MAAM+X,wBAAwB,GAAGC,QAAQ,CAAC/N,SAAS,CAACH,QAAQ;EAC5D,MAAMmO,wBAAwB,GAAG1K,UAAU,CAAC,kBAAkB,CAAC;EAC/D,MAAM2K,cAAc,GAAG3K,UAAU,CAAC,SAAS,CAAC;EAC5C,MAAM4K,YAAY,GAAG5K,UAAU,CAAC,OAAO,CAAC;EACxC,MAAM6K,mBAAmB,GAAG,SAAStO,QAAQ,GAAG;IAC5C,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;MAC5B,MAAMuO,gBAAgB,GAAG,IAAI,CAACJ,wBAAwB,CAAC;MACvD,IAAII,gBAAgB,EAAE;QAClB,IAAI,OAAOA,gBAAgB,KAAK,UAAU,EAAE;UACxC,OAAON,wBAAwB,CAACzO,IAAI,CAAC+O,gBAAgB,CAAC;QAC1D,CAAC,MACI;UACD,OAAOrO,MAAM,CAACC,SAAS,CAACH,QAAQ,CAACR,IAAI,CAAC+O,gBAAgB,CAAC;QAC3D;MACJ;MACA,IAAI,IAAI,KAAK3C,OAAO,EAAE;QAClB,MAAM4C,aAAa,GAAGtY,MAAM,CAACkY,cAAc,CAAC;QAC5C,IAAII,aAAa,EAAE;UACf,OAAOP,wBAAwB,CAACzO,IAAI,CAACgP,aAAa,CAAC;QACvD;MACJ;MACA,IAAI,IAAI,KAAK7X,KAAK,EAAE;QAChB,MAAM8X,WAAW,GAAGvY,MAAM,CAACmY,YAAY,CAAC;QACxC,IAAII,WAAW,EAAE;UACb,OAAOR,wBAAwB,CAACzO,IAAI,CAACiP,WAAW,CAAC;QACrD;MACJ;IACJ;IACA,OAAOR,wBAAwB,CAACzO,IAAI,CAAC,IAAI,CAAC;EAC9C,CAAC;EACD8O,mBAAmB,CAACH,wBAAwB,CAAC,GAAGF,wBAAwB;EACxEC,QAAQ,CAAC/N,SAAS,CAACH,QAAQ,GAAGsO,mBAAmB;EACjD;EACA,MAAMI,sBAAsB,GAAGxO,MAAM,CAACC,SAAS,CAACH,QAAQ;EACxD,MAAM2O,wBAAwB,GAAG,kBAAkB;EACnDzO,MAAM,CAACC,SAAS,CAACH,QAAQ,GAAG,YAAY;IACpC,IAAI,OAAO4L,OAAO,KAAK,UAAU,IAAI,IAAI,YAAYA,OAAO,EAAE;MAC1D,OAAO+C,wBAAwB;IACnC;IACA,OAAOD,sBAAsB,CAAClP,IAAI,CAAC,IAAI,CAAC;EAC5C,CAAC;AACL,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,IAAIoP,gBAAgB,GAAG,KAAK;AAC5B,IAAI,OAAOnM,MAAM,KAAK,WAAW,EAAE;EAC/B,IAAI;IACA,MAAMrD,OAAO,GAAGc,MAAM,CAACyC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE;MACjDvK,GAAG,EAAE,YAAY;QACbwW,gBAAgB,GAAG,IAAI;MAC3B;IACJ,CAAC,CAAC;IACF;IACA;IACA;IACAnM,MAAM,CAAC4D,gBAAgB,CAAC,MAAM,EAAEjH,OAAO,EAAEA,OAAO,CAAC;IACjDqD,MAAM,CAAC2D,mBAAmB,CAAC,MAAM,EAAEhH,OAAO,EAAEA,OAAO,CAAC;EACxD,CAAC,CACD,OAAOpE,GAAG,EAAE;IACR4T,gBAAgB,GAAG,KAAK;EAC5B;AACJ;AACA;AACA,MAAMC,8BAA8B,GAAG;EACnCtP,IAAI,EAAE;AACV,CAAC;AACD,MAAMuP,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAMC,aAAa,GAAG,CAAC,CAAC;AACxB,MAAMC,sBAAsB,GAAG,IAAIC,MAAM,CAAC,GAAG,GAAG1L,kBAAkB,GAAG,qBAAqB,CAAC;AAC3F,MAAM2L,4BAA4B,GAAGzL,UAAU,CAAC,oBAAoB,CAAC;AACrE,SAAS0L,iBAAiB,CAAClJ,SAAS,EAAEmJ,iBAAiB,EAAE;EACrD,MAAMC,cAAc,GAAG,CAACD,iBAAiB,GAAGA,iBAAiB,CAACnJ,SAAS,CAAC,GAAGA,SAAS,IAAI3C,SAAS;EACjG,MAAMgM,aAAa,GAAG,CAACF,iBAAiB,GAAGA,iBAAiB,CAACnJ,SAAS,CAAC,GAAGA,SAAS,IAAI5C,QAAQ;EAC/F,MAAMnC,MAAM,GAAGqC,kBAAkB,GAAG8L,cAAc;EAClD,MAAME,aAAa,GAAGhM,kBAAkB,GAAG+L,aAAa;EACxDR,oBAAoB,CAAC7I,SAAS,CAAC,GAAG,CAAC,CAAC;EACpC6I,oBAAoB,CAAC7I,SAAS,CAAC,CAAC3C,SAAS,CAAC,GAAGpC,MAAM;EACnD4N,oBAAoB,CAAC7I,SAAS,CAAC,CAAC5C,QAAQ,CAAC,GAAGkM,aAAa;AAC7D;AACA,SAASjO,gBAAgB,CAACsC,OAAO,EAAEmE,GAAG,EAAEyH,IAAI,EAAEC,YAAY,EAAE;EACxD,MAAMC,kBAAkB,GAAID,YAAY,IAAIA,YAAY,CAACE,GAAG,IAAK1M,sBAAsB;EACvF,MAAM2M,qBAAqB,GAAIH,YAAY,IAAIA,YAAY,CAACI,EAAE,IAAK3M,yBAAyB;EAC5F,MAAM4M,wBAAwB,GAAIL,YAAY,IAAIA,YAAY,CAACM,SAAS,IAAK,gBAAgB;EAC7F,MAAMC,mCAAmC,GAAIP,YAAY,IAAIA,YAAY,CAACQ,KAAK,IAAK,oBAAoB;EACxG,MAAMC,0BAA0B,GAAGzM,UAAU,CAACiM,kBAAkB,CAAC;EACjE,MAAMS,yBAAyB,GAAG,GAAG,GAAGT,kBAAkB,GAAG,GAAG;EAChE,MAAMU,sBAAsB,GAAG,iBAAiB;EAChD,MAAMC,6BAA6B,GAAG,GAAG,GAAGD,sBAAsB,GAAG,GAAG;EACxE,MAAM7V,UAAU,GAAG,UAAUjB,IAAI,EAAE2C,MAAM,EAAE6I,KAAK,EAAE;IAC9C;IACA;IACA,IAAIxL,IAAI,CAACgX,SAAS,EAAE;MAChB;IACJ;IACA,MAAMvU,QAAQ,GAAGzC,IAAI,CAACb,QAAQ;IAC9B,IAAI,OAAOsD,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,CAACwU,WAAW,EAAE;MACtD;MACAjX,IAAI,CAACb,QAAQ,GAAIqM,KAAK,IAAK/I,QAAQ,CAACwU,WAAW,CAACzL,KAAK,CAAC;MACtDxL,IAAI,CAACiV,gBAAgB,GAAGxS,QAAQ;IACpC;IACA;IACA;IACA;IACA;IACA,IAAI5C,KAAK;IACT,IAAI;MACAG,IAAI,CAACJ,MAAM,CAACI,IAAI,EAAE2C,MAAM,EAAE,CAAC6I,KAAK,CAAC,CAAC;IACtC,CAAC,CACD,OAAO9J,GAAG,EAAE;MACR7B,KAAK,GAAG6B,GAAG;IACf;IACA,MAAMoE,OAAO,GAAG9F,IAAI,CAAC8F,OAAO;IAC5B,IAAIA,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIA,OAAO,CAAC+K,IAAI,EAAE;MACxD;MACA;MACA;MACA,MAAMpO,QAAQ,GAAGzC,IAAI,CAACiV,gBAAgB,GAAGjV,IAAI,CAACiV,gBAAgB,GAAGjV,IAAI,CAACb,QAAQ;MAC9EwD,MAAM,CAAC2T,qBAAqB,CAAC,CAACpQ,IAAI,CAACvD,MAAM,EAAE6I,KAAK,CAACpL,IAAI,EAAEqC,QAAQ,EAAEqD,OAAO,CAAC;IAC7E;IACA,OAAOjG,KAAK;EAChB,CAAC;EACD,SAASqX,cAAc,CAACC,OAAO,EAAE3L,KAAK,EAAE4L,SAAS,EAAE;IAC/C;IACA;IACA5L,KAAK,GAAGA,KAAK,IAAIlB,OAAO,CAACkB,KAAK;IAC9B,IAAI,CAACA,KAAK,EAAE;MACR;IACJ;IACA;IACA;IACA,MAAM7I,MAAM,GAAGwU,OAAO,IAAI3L,KAAK,CAAC7I,MAAM,IAAI2H,OAAO;IACjD,MAAM+M,KAAK,GAAG1U,MAAM,CAAC6S,oBAAoB,CAAChK,KAAK,CAACpL,IAAI,CAAC,CAACgX,SAAS,GAAGrN,QAAQ,GAAGC,SAAS,CAAC,CAAC;IACxF,IAAIqN,KAAK,EAAE;MACP,MAAM5E,MAAM,GAAG,EAAE;MACjB;MACA;MACA,IAAI4E,KAAK,CAAC/U,MAAM,KAAK,CAAC,EAAE;QACpB,MAAMZ,GAAG,GAAGT,UAAU,CAACoW,KAAK,CAAC,CAAC,CAAC,EAAE1U,MAAM,EAAE6I,KAAK,CAAC;QAC/C9J,GAAG,IAAI+Q,MAAM,CAACnN,IAAI,CAAC5D,GAAG,CAAC;MAC3B,CAAC,MACI;QACD;QACA;QACA;QACA,MAAM4V,SAAS,GAAGD,KAAK,CAAC3N,KAAK,EAAE;QAC/B,KAAK,IAAIrH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiV,SAAS,CAAChV,MAAM,EAAED,CAAC,EAAE,EAAE;UACvC,IAAImJ,KAAK,IAAIA,KAAK,CAACoK,4BAA4B,CAAC,KAAK,IAAI,EAAE;YACvD;UACJ;UACA,MAAMlU,GAAG,GAAGT,UAAU,CAACqW,SAAS,CAACjV,CAAC,CAAC,EAAEM,MAAM,EAAE6I,KAAK,CAAC;UACnD9J,GAAG,IAAI+Q,MAAM,CAACnN,IAAI,CAAC5D,GAAG,CAAC;QAC3B;MACJ;MACA;MACA;MACA,IAAI+Q,MAAM,CAACnQ,MAAM,KAAK,CAAC,EAAE;QACrB,MAAMmQ,MAAM,CAAC,CAAC,CAAC;MACnB,CAAC,MACI;QACD,KAAK,IAAIpQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoQ,MAAM,CAACnQ,MAAM,EAAED,CAAC,EAAE,EAAE;UACpC,MAAMX,GAAG,GAAG+Q,MAAM,CAACpQ,CAAC,CAAC;UACrBoM,GAAG,CAACpH,uBAAuB,CAAC,MAAM;YAC9B,MAAM3F,GAAG;UACb,CAAC,CAAC;QACN;MACJ;IACJ;EACJ;EACA;EACA,MAAM6V,uBAAuB,GAAG,UAAU/L,KAAK,EAAE;IAC7C,OAAO0L,cAAc,CAAC,IAAI,EAAE1L,KAAK,EAAE,KAAK,CAAC;EAC7C,CAAC;EACD;EACA,MAAMgM,8BAA8B,GAAG,UAAUhM,KAAK,EAAE;IACpD,OAAO0L,cAAc,CAAC,IAAI,EAAE1L,KAAK,EAAE,IAAI,CAAC;EAC5C,CAAC;EACD,SAASiM,uBAAuB,CAACtL,GAAG,EAAEgK,YAAY,EAAE;IAChD,IAAI,CAAChK,GAAG,EAAE;MACN,OAAO,KAAK;IAChB;IACA,IAAIuL,iBAAiB,GAAG,IAAI;IAC5B,IAAIvB,YAAY,IAAIA,YAAY,CAAClQ,IAAI,KAAKjF,SAAS,EAAE;MACjD0W,iBAAiB,GAAGvB,YAAY,CAAClQ,IAAI;IACzC;IACA,MAAM0R,eAAe,GAAGxB,YAAY,IAAIA,YAAY,CAACyB,EAAE;IACvD,IAAIxa,cAAc,GAAG,IAAI;IACzB,IAAI+Y,YAAY,IAAIA,YAAY,CAAC0B,MAAM,KAAK7W,SAAS,EAAE;MACnD5D,cAAc,GAAG+Y,YAAY,CAAC0B,MAAM;IACxC;IACA,IAAIC,YAAY,GAAG,KAAK;IACxB,IAAI3B,YAAY,IAAIA,YAAY,CAAC4B,EAAE,KAAK/W,SAAS,EAAE;MAC/C8W,YAAY,GAAG3B,YAAY,CAAC4B,EAAE;IAClC;IACA,IAAItK,KAAK,GAAGtB,GAAG;IACf,OAAOsB,KAAK,IAAI,CAACA,KAAK,CAACtP,cAAc,CAACiY,kBAAkB,CAAC,EAAE;MACvD3I,KAAK,GAAGnE,oBAAoB,CAACmE,KAAK,CAAC;IACvC;IACA,IAAI,CAACA,KAAK,IAAItB,GAAG,CAACiK,kBAAkB,CAAC,EAAE;MACnC;MACA3I,KAAK,GAAGtB,GAAG;IACf;IACA,IAAI,CAACsB,KAAK,EAAE;MACR,OAAO,KAAK;IAChB;IACA,IAAIA,KAAK,CAACmJ,0BAA0B,CAAC,EAAE;MACnC,OAAO,KAAK;IAChB;IACA,MAAMd,iBAAiB,GAAGK,YAAY,IAAIA,YAAY,CAACL,iBAAiB;IACxE;IACA;IACA,MAAMkC,QAAQ,GAAG,CAAC,CAAC;IACnB,MAAMC,sBAAsB,GAAGxK,KAAK,CAACmJ,0BAA0B,CAAC,GAAGnJ,KAAK,CAAC2I,kBAAkB,CAAC;IAC5F,MAAM8B,yBAAyB,GAAGzK,KAAK,CAACtD,UAAU,CAACmM,qBAAqB,CAAC,CAAC,GACtE7I,KAAK,CAAC6I,qBAAqB,CAAC;IAChC,MAAM6B,eAAe,GAAG1K,KAAK,CAACtD,UAAU,CAACqM,wBAAwB,CAAC,CAAC,GAC/D/I,KAAK,CAAC+I,wBAAwB,CAAC;IACnC,MAAM4B,wBAAwB,GAAG3K,KAAK,CAACtD,UAAU,CAACuM,mCAAmC,CAAC,CAAC,GACnFjJ,KAAK,CAACiJ,mCAAmC,CAAC;IAC9C,IAAI2B,0BAA0B;IAC9B,IAAIlC,YAAY,IAAIA,YAAY,CAACmC,OAAO,EAAE;MACtCD,0BAA0B,GAAG5K,KAAK,CAACtD,UAAU,CAACgM,YAAY,CAACmC,OAAO,CAAC,CAAC,GAChE7K,KAAK,CAAC0I,YAAY,CAACmC,OAAO,CAAC;IACnC;IACA;AACR;AACA;AACA;IACQ,SAASC,yBAAyB,CAACzS,OAAO,EAAE0S,OAAO,EAAE;MACjD,IAAI,CAAClD,gBAAgB,IAAI,OAAOxP,OAAO,KAAK,QAAQ,IAAIA,OAAO,EAAE;QAC7D;QACA;QACA;QACA,OAAO,CAAC,CAACA,OAAO,CAAC2S,OAAO;MAC5B;MACA,IAAI,CAACnD,gBAAgB,IAAI,CAACkD,OAAO,EAAE;QAC/B,OAAO1S,OAAO;MAClB;MACA,IAAI,OAAOA,OAAO,KAAK,SAAS,EAAE;QAC9B,OAAO;UAAE2S,OAAO,EAAE3S,OAAO;UAAE0S,OAAO,EAAE;QAAK,CAAC;MAC9C;MACA,IAAI,CAAC1S,OAAO,EAAE;QACV,OAAO;UAAE0S,OAAO,EAAE;QAAK,CAAC;MAC5B;MACA,IAAI,OAAO1S,OAAO,KAAK,QAAQ,IAAIA,OAAO,CAAC0S,OAAO,KAAK,KAAK,EAAE;QAC1D,OAAO;UAAE,GAAG1S,OAAO;UAAE0S,OAAO,EAAE;QAAK,CAAC;MACxC;MACA,OAAO1S,OAAO;IAClB;IACA,MAAM4S,oBAAoB,GAAG,UAAU1Y,IAAI,EAAE;MACzC;MACA;MACA,IAAIgY,QAAQ,CAACW,UAAU,EAAE;QACrB;MACJ;MACA,OAAOV,sBAAsB,CAAC/R,IAAI,CAAC8R,QAAQ,CAACrV,MAAM,EAAEqV,QAAQ,CAACrL,SAAS,EAAEqL,QAAQ,CAACS,OAAO,GAAGjB,8BAA8B,GAAGD,uBAAuB,EAAES,QAAQ,CAAClS,OAAO,CAAC;IAC1K,CAAC;IACD,MAAM8S,kBAAkB,GAAG,UAAU5Y,IAAI,EAAE;MACvC;MACA;MACA;MACA,IAAI,CAACA,IAAI,CAACgX,SAAS,EAAE;QACjB,MAAM6B,gBAAgB,GAAGrD,oBAAoB,CAACxV,IAAI,CAAC2M,SAAS,CAAC;QAC7D,IAAImM,eAAe;QACnB,IAAID,gBAAgB,EAAE;UAClBC,eAAe,GAAGD,gBAAgB,CAAC7Y,IAAI,CAACyY,OAAO,GAAG1O,QAAQ,GAAGC,SAAS,CAAC;QAC3E;QACA,MAAM+O,aAAa,GAAGD,eAAe,IAAI9Y,IAAI,CAAC2C,MAAM,CAACmW,eAAe,CAAC;QACrE,IAAIC,aAAa,EAAE;UACf,KAAK,IAAI1W,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0W,aAAa,CAACzW,MAAM,EAAED,CAAC,EAAE,EAAE;YAC3C,MAAM2W,YAAY,GAAGD,aAAa,CAAC1W,CAAC,CAAC;YACrC,IAAI2W,YAAY,KAAKhZ,IAAI,EAAE;cACvB+Y,aAAa,CAACtH,MAAM,CAACpP,CAAC,EAAE,CAAC,CAAC;cAC1B;cACArC,IAAI,CAACgX,SAAS,GAAG,IAAI;cACrB,IAAI+B,aAAa,CAACzW,MAAM,KAAK,CAAC,EAAE;gBAC5B;gBACA;gBACAtC,IAAI,CAACiZ,UAAU,GAAG,IAAI;gBACtBjZ,IAAI,CAAC2C,MAAM,CAACmW,eAAe,CAAC,GAAG,IAAI;cACvC;cACA;YACJ;UACJ;QACJ;MACJ;MACA;MACA;MACA;MACA,IAAI,CAAC9Y,IAAI,CAACiZ,UAAU,EAAE;QAClB;MACJ;MACA,OAAOf,yBAAyB,CAAChS,IAAI,CAAClG,IAAI,CAAC2C,MAAM,EAAE3C,IAAI,CAAC2M,SAAS,EAAE3M,IAAI,CAACyY,OAAO,GAAGjB,8BAA8B,GAAGD,uBAAuB,EAAEvX,IAAI,CAAC8F,OAAO,CAAC;IAC7J,CAAC;IACD,MAAMoT,uBAAuB,GAAG,UAAUlZ,IAAI,EAAE;MAC5C,OAAOiY,sBAAsB,CAAC/R,IAAI,CAAC8R,QAAQ,CAACrV,MAAM,EAAEqV,QAAQ,CAACrL,SAAS,EAAE3M,IAAI,CAACJ,MAAM,EAAEoY,QAAQ,CAAClS,OAAO,CAAC;IAC1G,CAAC;IACD,MAAMqT,qBAAqB,GAAG,UAAUnZ,IAAI,EAAE;MAC1C,OAAOqY,0BAA0B,CAACnS,IAAI,CAAC8R,QAAQ,CAACrV,MAAM,EAAEqV,QAAQ,CAACrL,SAAS,EAAE3M,IAAI,CAACJ,MAAM,EAAEoY,QAAQ,CAAClS,OAAO,CAAC;IAC9G,CAAC;IACD,MAAMsT,qBAAqB,GAAG,UAAUpZ,IAAI,EAAE;MAC1C,OAAOkY,yBAAyB,CAAChS,IAAI,CAAClG,IAAI,CAAC2C,MAAM,EAAE3C,IAAI,CAAC2M,SAAS,EAAE3M,IAAI,CAACJ,MAAM,EAAEI,IAAI,CAAC8F,OAAO,CAAC;IACjG,CAAC;IACD,MAAMlE,cAAc,GAAG8V,iBAAiB,GAAGgB,oBAAoB,GAAGQ,uBAAuB;IACzF,MAAMlX,YAAY,GAAG0V,iBAAiB,GAAGkB,kBAAkB,GAAGQ,qBAAqB;IACnF,MAAMC,6BAA6B,GAAG,UAAUrZ,IAAI,EAAEyC,QAAQ,EAAE;MAC5D,MAAM6W,cAAc,GAAG,OAAO7W,QAAQ;MACtC,OAAQ6W,cAAc,KAAK,UAAU,IAAItZ,IAAI,CAACb,QAAQ,KAAKsD,QAAQ,IAC9D6W,cAAc,KAAK,QAAQ,IAAItZ,IAAI,CAACiV,gBAAgB,KAAKxS,QAAS;IAC3E,CAAC;IACD,MAAM8W,OAAO,GAAIpD,YAAY,IAAIA,YAAY,CAACqD,IAAI,GAAIrD,YAAY,CAACqD,IAAI,GAAGH,6BAA6B;IACvG,MAAMI,eAAe,GAAGnc,IAAI,CAAC6M,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC5D,MAAMuP,aAAa,GAAGpP,OAAO,CAACH,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC3D,MAAMwP,eAAe,GAAG,UAAUC,cAAc,EAAEC,SAAS,EAAEC,gBAAgB,EAAEC,cAAc,EAAEjC,YAAY,GAAG,KAAK,EAAEQ,OAAO,GAAG,KAAK,EAAE;MAClI,OAAO,YAAY;QACf,MAAM3V,MAAM,GAAG,IAAI,IAAI2H,OAAO;QAC9B,IAAIqC,SAAS,GAAGnN,SAAS,CAAC,CAAC,CAAC;QAC5B,IAAI2W,YAAY,IAAIA,YAAY,CAAC6D,iBAAiB,EAAE;UAChDrN,SAAS,GAAGwJ,YAAY,CAAC6D,iBAAiB,CAACrN,SAAS,CAAC;QACzD;QACA,IAAIlK,QAAQ,GAAGjD,SAAS,CAAC,CAAC,CAAC;QAC3B,IAAI,CAACiD,QAAQ,EAAE;UACX,OAAOmX,cAAc,CAACxU,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;QAChD;QACA,IAAI0L,MAAM,IAAIyB,SAAS,KAAK,mBAAmB,EAAE;UAC7C;UACA,OAAOiN,cAAc,CAACxU,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;QAChD;QACA;QACA;QACA;QACA,IAAIya,aAAa,GAAG,KAAK;QACzB,IAAI,OAAOxX,QAAQ,KAAK,UAAU,EAAE;UAChC,IAAI,CAACA,QAAQ,CAACwU,WAAW,EAAE;YACvB,OAAO2C,cAAc,CAACxU,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;UAChD;UACAya,aAAa,GAAG,IAAI;QACxB;QACA,IAAItC,eAAe,IAAI,CAACA,eAAe,CAACiC,cAAc,EAAEnX,QAAQ,EAAEE,MAAM,EAAEnD,SAAS,CAAC,EAAE;UAClF;QACJ;QACA,MAAMgZ,OAAO,GAAGlD,gBAAgB,IAAI,CAAC,CAACoE,aAAa,IAAIA,aAAa,CAAClL,OAAO,CAAC7B,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9F,MAAM7G,OAAO,GAAGyS,yBAAyB,CAAC/Y,SAAS,CAAC,CAAC,CAAC,EAAEgZ,OAAO,CAAC;QAChE,IAAIiB,eAAe,EAAE;UACjB;UACA,KAAK,IAAIpX,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoX,eAAe,CAACnX,MAAM,EAAED,CAAC,EAAE,EAAE;YAC7C,IAAIsK,SAAS,KAAK8M,eAAe,CAACpX,CAAC,CAAC,EAAE;cAClC,IAAImW,OAAO,EAAE;gBACT,OAAOoB,cAAc,CAAC1T,IAAI,CAACvD,MAAM,EAAEgK,SAAS,EAAElK,QAAQ,EAAEqD,OAAO,CAAC;cACpE,CAAC,MACI;gBACD,OAAO8T,cAAc,CAACxU,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;cAChD;YACJ;UACJ;QACJ;QACA,MAAMiZ,OAAO,GAAG,CAAC3S,OAAO,GAAG,KAAK,GAAG,OAAOA,OAAO,KAAK,SAAS,GAAG,IAAI,GAAGA,OAAO,CAAC2S,OAAO;QACxF,MAAM5H,IAAI,GAAG/K,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,GAAGA,OAAO,CAAC+K,IAAI,GAAG,KAAK;QAC1E,MAAMnT,IAAI,GAAGJ,IAAI,CAACK,OAAO;QACzB,IAAIkb,gBAAgB,GAAGrD,oBAAoB,CAAC7I,SAAS,CAAC;QACtD,IAAI,CAACkM,gBAAgB,EAAE;UACnBhD,iBAAiB,CAAClJ,SAAS,EAAEmJ,iBAAiB,CAAC;UAC/C+C,gBAAgB,GAAGrD,oBAAoB,CAAC7I,SAAS,CAAC;QACtD;QACA,MAAMmM,eAAe,GAAGD,gBAAgB,CAACJ,OAAO,GAAG1O,QAAQ,GAAGC,SAAS,CAAC;QACxE,IAAI+O,aAAa,GAAGpW,MAAM,CAACmW,eAAe,CAAC;QAC3C,IAAIH,UAAU,GAAG,KAAK;QACtB,IAAII,aAAa,EAAE;UACf;UACAJ,UAAU,GAAG,IAAI;UACjB,IAAIvb,cAAc,EAAE;YAChB,KAAK,IAAIiF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0W,aAAa,CAACzW,MAAM,EAAED,CAAC,EAAE,EAAE;cAC3C,IAAIkX,OAAO,CAACR,aAAa,CAAC1W,CAAC,CAAC,EAAEI,QAAQ,CAAC,EAAE;gBACrC;gBACA;cACJ;YACJ;UACJ;QACJ,CAAC,MACI;UACDsW,aAAa,GAAGpW,MAAM,CAACmW,eAAe,CAAC,GAAG,EAAE;QAChD;QACA,IAAI1Z,MAAM;QACV,MAAM8a,eAAe,GAAGvX,MAAM,CAACnE,WAAW,CAAC,MAAM,CAAC;QAClD,MAAM2b,YAAY,GAAG1E,aAAa,CAACyE,eAAe,CAAC;QACnD,IAAIC,YAAY,EAAE;UACd/a,MAAM,GAAG+a,YAAY,CAACxN,SAAS,CAAC;QACpC;QACA,IAAI,CAACvN,MAAM,EAAE;UACTA,MAAM,GAAG8a,eAAe,GAAGL,SAAS,IAC/B/D,iBAAiB,GAAGA,iBAAiB,CAACnJ,SAAS,CAAC,GAAGA,SAAS,CAAC;QACtE;QACA;QACA;QACAqL,QAAQ,CAAClS,OAAO,GAAGA,OAAO;QAC1B,IAAI+K,IAAI,EAAE;UACN;UACA;UACA;UACAmH,QAAQ,CAAClS,OAAO,CAAC+K,IAAI,GAAG,KAAK;QACjC;QACAmH,QAAQ,CAACrV,MAAM,GAAGA,MAAM;QACxBqV,QAAQ,CAACS,OAAO,GAAGA,OAAO;QAC1BT,QAAQ,CAACrL,SAAS,GAAGA,SAAS;QAC9BqL,QAAQ,CAACW,UAAU,GAAGA,UAAU;QAChC,MAAM9X,IAAI,GAAG6W,iBAAiB,GAAGnC,8BAA8B,GAAGvU,SAAS;QAC3E;QACA,IAAIH,IAAI,EAAE;UACNA,IAAI,CAACmX,QAAQ,GAAGA,QAAQ;QAC5B;QACA,MAAMhY,IAAI,GAAGtC,IAAI,CAACuE,iBAAiB,CAAC7C,MAAM,EAAEqD,QAAQ,EAAE5B,IAAI,EAAEiZ,gBAAgB,EAAEC,cAAc,CAAC;QAC7F;QACA;QACA/B,QAAQ,CAACrV,MAAM,GAAG,IAAI;QACtB;QACA,IAAI9B,IAAI,EAAE;UACNA,IAAI,CAACmX,QAAQ,GAAG,IAAI;QACxB;QACA;QACA;QACA,IAAInH,IAAI,EAAE;UACN/K,OAAO,CAAC+K,IAAI,GAAG,IAAI;QACvB;QACA,IAAI,EAAE,CAACyE,gBAAgB,IAAI,OAAOtV,IAAI,CAAC8F,OAAO,KAAK,SAAS,CAAC,EAAE;UAC3D;UACA;UACA9F,IAAI,CAAC8F,OAAO,GAAGA,OAAO;QAC1B;QACA9F,IAAI,CAAC2C,MAAM,GAAGA,MAAM;QACpB3C,IAAI,CAACyY,OAAO,GAAGA,OAAO;QACtBzY,IAAI,CAAC2M,SAAS,GAAGA,SAAS;QAC1B,IAAIsN,aAAa,EAAE;UACf;UACAja,IAAI,CAACiV,gBAAgB,GAAGxS,QAAQ;QACpC;QACA,IAAI,CAAC6V,OAAO,EAAE;UACVS,aAAa,CAACzT,IAAI,CAACtF,IAAI,CAAC;QAC5B,CAAC,MACI;UACD+Y,aAAa,CAACqB,OAAO,CAACpa,IAAI,CAAC;QAC/B;QACA,IAAI8X,YAAY,EAAE;UACd,OAAOnV,MAAM;QACjB;MACJ,CAAC;IACL,CAAC;IACD8K,KAAK,CAAC2I,kBAAkB,CAAC,GAAGuD,eAAe,CAAC1B,sBAAsB,EAAEpB,yBAAyB,EAAEjV,cAAc,EAAEI,YAAY,EAAE8V,YAAY,CAAC;IAC1I,IAAIO,0BAA0B,EAAE;MAC5B5K,KAAK,CAACqJ,sBAAsB,CAAC,GAAG6C,eAAe,CAACtB,0BAA0B,EAAEtB,6BAA6B,EAAEoC,qBAAqB,EAAEnX,YAAY,EAAE8V,YAAY,EAAE,IAAI,CAAC;IACvK;IACArK,KAAK,CAAC6I,qBAAqB,CAAC,GAAG,YAAY;MACvC,MAAM3T,MAAM,GAAG,IAAI,IAAI2H,OAAO;MAC9B,IAAIqC,SAAS,GAAGnN,SAAS,CAAC,CAAC,CAAC;MAC5B,IAAI2W,YAAY,IAAIA,YAAY,CAAC6D,iBAAiB,EAAE;QAChDrN,SAAS,GAAGwJ,YAAY,CAAC6D,iBAAiB,CAACrN,SAAS,CAAC;MACzD;MACA,MAAM7G,OAAO,GAAGtG,SAAS,CAAC,CAAC,CAAC;MAC5B,MAAMiZ,OAAO,GAAG,CAAC3S,OAAO,GAAG,KAAK,GAAG,OAAOA,OAAO,KAAK,SAAS,GAAG,IAAI,GAAGA,OAAO,CAAC2S,OAAO;MACxF,MAAMhW,QAAQ,GAAGjD,SAAS,CAAC,CAAC,CAAC;MAC7B,IAAI,CAACiD,QAAQ,EAAE;QACX,OAAOyV,yBAAyB,CAAC9S,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;MAC3D;MACA,IAAImY,eAAe,IACf,CAACA,eAAe,CAACO,yBAAyB,EAAEzV,QAAQ,EAAEE,MAAM,EAAEnD,SAAS,CAAC,EAAE;QAC1E;MACJ;MACA,MAAMqZ,gBAAgB,GAAGrD,oBAAoB,CAAC7I,SAAS,CAAC;MACxD,IAAImM,eAAe;MACnB,IAAID,gBAAgB,EAAE;QAClBC,eAAe,GAAGD,gBAAgB,CAACJ,OAAO,GAAG1O,QAAQ,GAAGC,SAAS,CAAC;MACtE;MACA,MAAM+O,aAAa,GAAGD,eAAe,IAAInW,MAAM,CAACmW,eAAe,CAAC;MAChE,IAAIC,aAAa,EAAE;QACf,KAAK,IAAI1W,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0W,aAAa,CAACzW,MAAM,EAAED,CAAC,EAAE,EAAE;UAC3C,MAAM2W,YAAY,GAAGD,aAAa,CAAC1W,CAAC,CAAC;UACrC,IAAIkX,OAAO,CAACP,YAAY,EAAEvW,QAAQ,CAAC,EAAE;YACjCsW,aAAa,CAACtH,MAAM,CAACpP,CAAC,EAAE,CAAC,CAAC;YAC1B;YACA2W,YAAY,CAAChC,SAAS,GAAG,IAAI;YAC7B,IAAI+B,aAAa,CAACzW,MAAM,KAAK,CAAC,EAAE;cAC5B;cACA;cACA0W,YAAY,CAACC,UAAU,GAAG,IAAI;cAC9BtW,MAAM,CAACmW,eAAe,CAAC,GAAG,IAAI;cAC9B;cACA;cACA;cACA,IAAI,OAAOnM,SAAS,KAAK,QAAQ,EAAE;gBAC/B,MAAM0N,gBAAgB,GAAGpQ,kBAAkB,GAAG,aAAa,GAAG0C,SAAS;gBACvEhK,MAAM,CAAC0X,gBAAgB,CAAC,GAAG,IAAI;cACnC;YACJ;YACArB,YAAY,CAACtb,IAAI,CAACwE,UAAU,CAAC8W,YAAY,CAAC;YAC1C,IAAIlB,YAAY,EAAE;cACd,OAAOnV,MAAM;YACjB;YACA;UACJ;QACJ;MACJ;MACA;MACA;MACA;MACA;MACA,OAAOuV,yBAAyB,CAAC9S,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;IAC3D,CAAC;IACDiO,KAAK,CAAC+I,wBAAwB,CAAC,GAAG,YAAY;MAC1C,MAAM7T,MAAM,GAAG,IAAI,IAAI2H,OAAO;MAC9B,IAAIqC,SAAS,GAAGnN,SAAS,CAAC,CAAC,CAAC;MAC5B,IAAI2W,YAAY,IAAIA,YAAY,CAAC6D,iBAAiB,EAAE;QAChDrN,SAAS,GAAGwJ,YAAY,CAAC6D,iBAAiB,CAACrN,SAAS,CAAC;MACzD;MACA,MAAM8J,SAAS,GAAG,EAAE;MACpB,MAAMY,KAAK,GAAGiD,cAAc,CAAC3X,MAAM,EAAEmT,iBAAiB,GAAGA,iBAAiB,CAACnJ,SAAS,CAAC,GAAGA,SAAS,CAAC;MAClG,KAAK,IAAItK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgV,KAAK,CAAC/U,MAAM,EAAED,CAAC,EAAE,EAAE;QACnC,MAAMrC,IAAI,GAAGqX,KAAK,CAAChV,CAAC,CAAC;QACrB,IAAII,QAAQ,GAAGzC,IAAI,CAACiV,gBAAgB,GAAGjV,IAAI,CAACiV,gBAAgB,GAAGjV,IAAI,CAACb,QAAQ;QAC5EsX,SAAS,CAACnR,IAAI,CAAC7C,QAAQ,CAAC;MAC5B;MACA,OAAOgU,SAAS;IACpB,CAAC;IACDhJ,KAAK,CAACiJ,mCAAmC,CAAC,GAAG,YAAY;MACrD,MAAM/T,MAAM,GAAG,IAAI,IAAI2H,OAAO;MAC9B,IAAIqC,SAAS,GAAGnN,SAAS,CAAC,CAAC,CAAC;MAC5B,IAAI,CAACmN,SAAS,EAAE;QACZ,MAAM4N,IAAI,GAAG3T,MAAM,CAAC2T,IAAI,CAAC5X,MAAM,CAAC;QAChC,KAAK,IAAIN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkY,IAAI,CAACjY,MAAM,EAAED,CAAC,EAAE,EAAE;UAClC,MAAM+J,IAAI,GAAGmO,IAAI,CAAClY,CAAC,CAAC;UACpB,MAAMmY,KAAK,GAAG9E,sBAAsB,CAAC+E,IAAI,CAACrO,IAAI,CAAC;UAC/C,IAAIsO,OAAO,GAAGF,KAAK,IAAIA,KAAK,CAAC,CAAC,CAAC;UAC/B;UACA;UACA;UACA;UACA,IAAIE,OAAO,IAAIA,OAAO,KAAK,gBAAgB,EAAE;YACzC,IAAI,CAAChE,mCAAmC,CAAC,CAACxQ,IAAI,CAAC,IAAI,EAAEwU,OAAO,CAAC;UACjE;QACJ;QACA;QACA,IAAI,CAAChE,mCAAmC,CAAC,CAACxQ,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC;MAC1E,CAAC,MACI;QACD,IAAIiQ,YAAY,IAAIA,YAAY,CAAC6D,iBAAiB,EAAE;UAChDrN,SAAS,GAAGwJ,YAAY,CAAC6D,iBAAiB,CAACrN,SAAS,CAAC;QACzD;QACA,MAAMkM,gBAAgB,GAAGrD,oBAAoB,CAAC7I,SAAS,CAAC;QACxD,IAAIkM,gBAAgB,EAAE;UAClB,MAAMC,eAAe,GAAGD,gBAAgB,CAAC7O,SAAS,CAAC;UACnD,MAAM2Q,sBAAsB,GAAG9B,gBAAgB,CAAC9O,QAAQ,CAAC;UACzD,MAAMsN,KAAK,GAAG1U,MAAM,CAACmW,eAAe,CAAC;UACrC,MAAM8B,YAAY,GAAGjY,MAAM,CAACgY,sBAAsB,CAAC;UACnD,IAAItD,KAAK,EAAE;YACP,MAAMwD,WAAW,GAAGxD,KAAK,CAAC3N,KAAK,EAAE;YACjC,KAAK,IAAIrH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwY,WAAW,CAACvY,MAAM,EAAED,CAAC,EAAE,EAAE;cACzC,MAAMrC,IAAI,GAAG6a,WAAW,CAACxY,CAAC,CAAC;cAC3B,IAAII,QAAQ,GAAGzC,IAAI,CAACiV,gBAAgB,GAAGjV,IAAI,CAACiV,gBAAgB,GAAGjV,IAAI,CAACb,QAAQ;cAC5E,IAAI,CAACmX,qBAAqB,CAAC,CAACpQ,IAAI,CAAC,IAAI,EAAEyG,SAAS,EAAElK,QAAQ,EAAEzC,IAAI,CAAC8F,OAAO,CAAC;YAC7E;UACJ;UACA,IAAI8U,YAAY,EAAE;YACd,MAAMC,WAAW,GAAGD,YAAY,CAAClR,KAAK,EAAE;YACxC,KAAK,IAAIrH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwY,WAAW,CAACvY,MAAM,EAAED,CAAC,EAAE,EAAE;cACzC,MAAMrC,IAAI,GAAG6a,WAAW,CAACxY,CAAC,CAAC;cAC3B,IAAII,QAAQ,GAAGzC,IAAI,CAACiV,gBAAgB,GAAGjV,IAAI,CAACiV,gBAAgB,GAAGjV,IAAI,CAACb,QAAQ;cAC5E,IAAI,CAACmX,qBAAqB,CAAC,CAACpQ,IAAI,CAAC,IAAI,EAAEyG,SAAS,EAAElK,QAAQ,EAAEzC,IAAI,CAAC8F,OAAO,CAAC;YAC7E;UACJ;QACJ;MACJ;MACA,IAAIgS,YAAY,EAAE;QACd,OAAO,IAAI;MACf;IACJ,CAAC;IACD;IACA9O,qBAAqB,CAACyE,KAAK,CAAC2I,kBAAkB,CAAC,EAAE6B,sBAAsB,CAAC;IACxEjP,qBAAqB,CAACyE,KAAK,CAAC6I,qBAAqB,CAAC,EAAE4B,yBAAyB,CAAC;IAC9E,IAAIE,wBAAwB,EAAE;MAC1BpP,qBAAqB,CAACyE,KAAK,CAACiJ,mCAAmC,CAAC,EAAE0B,wBAAwB,CAAC;IAC/F;IACA,IAAID,eAAe,EAAE;MACjBnP,qBAAqB,CAACyE,KAAK,CAAC+I,wBAAwB,CAAC,EAAE2B,eAAe,CAAC;IAC3E;IACA,OAAO,IAAI;EACf;EACA,IAAI2C,OAAO,GAAG,EAAE;EAChB,KAAK,IAAIzY,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6T,IAAI,CAAC5T,MAAM,EAAED,CAAC,EAAE,EAAE;IAClCyY,OAAO,CAACzY,CAAC,CAAC,GAAGoV,uBAAuB,CAACvB,IAAI,CAAC7T,CAAC,CAAC,EAAE8T,YAAY,CAAC;EAC/D;EACA,OAAO2E,OAAO;AAClB;AACA,SAASR,cAAc,CAAC3X,MAAM,EAAEgK,SAAS,EAAE;EACvC,IAAI,CAACA,SAAS,EAAE;IACZ,MAAMoO,UAAU,GAAG,EAAE;IACrB,KAAK,IAAI3O,IAAI,IAAIzJ,MAAM,EAAE;MACrB,MAAM6X,KAAK,GAAG9E,sBAAsB,CAAC+E,IAAI,CAACrO,IAAI,CAAC;MAC/C,IAAIsO,OAAO,GAAGF,KAAK,IAAIA,KAAK,CAAC,CAAC,CAAC;MAC/B,IAAIE,OAAO,KAAK,CAAC/N,SAAS,IAAI+N,OAAO,KAAK/N,SAAS,CAAC,EAAE;QAClD,MAAM0K,KAAK,GAAG1U,MAAM,CAACyJ,IAAI,CAAC;QAC1B,IAAIiL,KAAK,EAAE;UACP,KAAK,IAAIhV,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgV,KAAK,CAAC/U,MAAM,EAAED,CAAC,EAAE,EAAE;YACnC0Y,UAAU,CAACzV,IAAI,CAAC+R,KAAK,CAAChV,CAAC,CAAC,CAAC;UAC7B;QACJ;MACJ;IACJ;IACA,OAAO0Y,UAAU;EACrB;EACA,IAAIjC,eAAe,GAAGtD,oBAAoB,CAAC7I,SAAS,CAAC;EACrD,IAAI,CAACmM,eAAe,EAAE;IAClBjD,iBAAiB,CAAClJ,SAAS,CAAC;IAC5BmM,eAAe,GAAGtD,oBAAoB,CAAC7I,SAAS,CAAC;EACrD;EACA,MAAMqO,iBAAiB,GAAGrY,MAAM,CAACmW,eAAe,CAAC9O,SAAS,CAAC,CAAC;EAC5D,MAAMiR,gBAAgB,GAAGtY,MAAM,CAACmW,eAAe,CAAC/O,QAAQ,CAAC,CAAC;EAC1D,IAAI,CAACiR,iBAAiB,EAAE;IACpB,OAAOC,gBAAgB,GAAGA,gBAAgB,CAACvR,KAAK,EAAE,GAAG,EAAE;EAC3D,CAAC,MACI;IACD,OAAOuR,gBAAgB,GAAGD,iBAAiB,CAACE,MAAM,CAACD,gBAAgB,CAAC,GAChED,iBAAiB,CAACtR,KAAK,EAAE;EACjC;AACJ;AACA,SAASpB,mBAAmB,CAAC1L,MAAM,EAAE6R,GAAG,EAAE;EACtC,MAAM0M,KAAK,GAAGve,MAAM,CAAC,OAAO,CAAC;EAC7B,IAAIue,KAAK,IAAIA,KAAK,CAACtU,SAAS,EAAE;IAC1B4H,GAAG,CAACvG,WAAW,CAACiT,KAAK,CAACtU,SAAS,EAAE,0BAA0B,EAAGpE,QAAQ,IAAK,UAAUuD,IAAI,EAAEG,IAAI,EAAE;MAC7FH,IAAI,CAAC4P,4BAA4B,CAAC,GAAG,IAAI;MACzC;MACA;MACA;MACAnT,QAAQ,IAAIA,QAAQ,CAAC2C,KAAK,CAACY,IAAI,EAAEG,IAAI,CAAC;IAC1C,CAAC,CAAC;EACN;AACJ;AAEA,SAAS+C,cAAc,CAACuF,GAAG,EAAE9L,MAAM,EAAEyY,UAAU,EAAEC,MAAM,EAAEC,SAAS,EAAE;EAChE,MAAM1T,MAAM,GAAGtK,IAAI,CAACH,UAAU,CAACke,MAAM,CAAC;EACtC,IAAI1Y,MAAM,CAACiF,MAAM,CAAC,EAAE;IAChB;EACJ;EACA,MAAM2T,cAAc,GAAG5Y,MAAM,CAACiF,MAAM,CAAC,GAAGjF,MAAM,CAAC0Y,MAAM,CAAC;EACtD1Y,MAAM,CAAC0Y,MAAM,CAAC,GAAG,UAAUte,IAAI,EAAEye,IAAI,EAAE1V,OAAO,EAAE;IAC5C,IAAI0V,IAAI,IAAIA,IAAI,CAAC3U,SAAS,EAAE;MACxByU,SAAS,CAACG,OAAO,CAAC,UAAUtc,QAAQ,EAAE;QAClC,MAAMC,MAAM,GAAI,GAAEgc,UAAW,IAAGC,MAAO,IAAG,GAAGlc,QAAQ;QACrD,MAAM0H,SAAS,GAAG2U,IAAI,CAAC3U,SAAS;QAChC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;UACA,IAAIA,SAAS,CAAC1I,cAAc,CAACgB,QAAQ,CAAC,EAAE;YACpC,MAAMuc,UAAU,GAAGjN,GAAG,CAAC/F,8BAA8B,CAAC7B,SAAS,EAAE1H,QAAQ,CAAC;YAC1E,IAAIuc,UAAU,IAAIA,UAAU,CAAClW,KAAK,EAAE;cAChCkW,UAAU,CAAClW,KAAK,GAAGiJ,GAAG,CAAC3F,mBAAmB,CAAC4S,UAAU,CAAClW,KAAK,EAAEpG,MAAM,CAAC;cACpEqP,GAAG,CAACxF,iBAAiB,CAACuS,IAAI,CAAC3U,SAAS,EAAE1H,QAAQ,EAAEuc,UAAU,CAAC;YAC/D,CAAC,MACI,IAAI7U,SAAS,CAAC1H,QAAQ,CAAC,EAAE;cAC1B0H,SAAS,CAAC1H,QAAQ,CAAC,GAAGsP,GAAG,CAAC3F,mBAAmB,CAACjC,SAAS,CAAC1H,QAAQ,CAAC,EAAEC,MAAM,CAAC;YAC9E;UACJ,CAAC,MACI,IAAIyH,SAAS,CAAC1H,QAAQ,CAAC,EAAE;YAC1B0H,SAAS,CAAC1H,QAAQ,CAAC,GAAGsP,GAAG,CAAC3F,mBAAmB,CAACjC,SAAS,CAAC1H,QAAQ,CAAC,EAAEC,MAAM,CAAC;UAC9E;QACJ,CAAC,CACD,MAAM;UACF;UACA;QAAA;MAER,CAAC,CAAC;IACN;IACA,OAAOmc,cAAc,CAACrV,IAAI,CAACvD,MAAM,EAAE5F,IAAI,EAAEye,IAAI,EAAE1V,OAAO,CAAC;EAC3D,CAAC;EACD2I,GAAG,CAACzF,qBAAqB,CAACrG,MAAM,CAAC0Y,MAAM,CAAC,EAAEE,cAAc,CAAC;AAC7D;;AAEA;AACA;AACA;AACA;AACA,SAASxS,gBAAgB,CAACpG,MAAM,EAAEsK,YAAY,EAAE0O,gBAAgB,EAAE;EAC9D,IAAI,CAACA,gBAAgB,IAAIA,gBAAgB,CAACrZ,MAAM,KAAK,CAAC,EAAE;IACpD,OAAO2K,YAAY;EACvB;EACA,MAAM2O,GAAG,GAAGD,gBAAgB,CAACE,MAAM,CAACC,EAAE,IAAIA,EAAE,CAACnZ,MAAM,KAAKA,MAAM,CAAC;EAC/D,IAAI,CAACiZ,GAAG,IAAIA,GAAG,CAACtZ,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAO2K,YAAY;EACvB;EACA,MAAM8O,sBAAsB,GAAGH,GAAG,CAAC,CAAC,CAAC,CAACD,gBAAgB;EACtD,OAAO1O,YAAY,CAAC4O,MAAM,CAACG,EAAE,IAAID,sBAAsB,CAACvN,OAAO,CAACwN,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/E;AACA,SAASC,uBAAuB,CAACtZ,MAAM,EAAEsK,YAAY,EAAE0O,gBAAgB,EAAE9U,SAAS,EAAE;EAChF;EACA;EACA,IAAI,CAAClE,MAAM,EAAE;IACT;EACJ;EACA,MAAMuZ,kBAAkB,GAAGnT,gBAAgB,CAACpG,MAAM,EAAEsK,YAAY,EAAE0O,gBAAgB,CAAC;EACnF1T,iBAAiB,CAACtF,MAAM,EAAEuZ,kBAAkB,EAAErV,SAAS,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA,SAASsV,eAAe,CAACxZ,MAAM,EAAE;EAC7B,OAAOiE,MAAM,CAACwV,mBAAmB,CAACzZ,MAAM,CAAC,CACpCkZ,MAAM,CAAC9e,IAAI,IAAIA,IAAI,CAACsf,UAAU,CAAC,IAAI,CAAC,IAAItf,IAAI,CAACuF,MAAM,GAAG,CAAC,CAAC,CACxDga,GAAG,CAACvf,IAAI,IAAIA,IAAI,CAACwf,SAAS,CAAC,CAAC,CAAC,CAAC;AACvC;AACA,SAASC,uBAAuB,CAAC/N,GAAG,EAAEnE,OAAO,EAAE;EAC3C,IAAIY,MAAM,IAAI,CAACG,KAAK,EAAE;IAClB;EACJ;EACA,IAAI/N,IAAI,CAACmR,GAAG,CAAC7G,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE;IACjC;IACA;EACJ;EACA,MAAM+T,gBAAgB,GAAGrR,OAAO,CAAC,6BAA6B,CAAC;EAC/D;EACA,IAAImS,YAAY,GAAG,EAAE;EACrB,IAAIrR,SAAS,EAAE;IACX,MAAMf,cAAc,GAAGlB,MAAM;IAC7BsT,YAAY,GAAGA,YAAY,CAACvB,MAAM,CAAC,CAC/B,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EACzF,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,QAAQ,CACjG,CAAC;IACF,MAAMwB,qBAAqB,GAAGtO,IAAI,EAAE,GAAG,CAAC;MAAEzL,MAAM,EAAE0H,cAAc;MAAEsR,gBAAgB,EAAE,CAAC,OAAO;IAAE,CAAC,CAAC,GAAG,EAAE;IACrG;IACA;IACAM,uBAAuB,CAAC5R,cAAc,EAAE8R,eAAe,CAAC9R,cAAc,CAAC,EAAEsR,gBAAgB,GAAGA,gBAAgB,CAACT,MAAM,CAACwB,qBAAqB,CAAC,GAAGf,gBAAgB,EAAErS,oBAAoB,CAACe,cAAc,CAAC,CAAC;EACxM;EACAoS,YAAY,GAAGA,YAAY,CAACvB,MAAM,CAAC,CAC/B,gBAAgB,EAAE,2BAA2B,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAC3F,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,CAC5D,CAAC;EACF,KAAK,IAAI7Y,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoa,YAAY,CAACna,MAAM,EAAED,CAAC,EAAE,EAAE;IAC1C,MAAMM,MAAM,GAAG2H,OAAO,CAACmS,YAAY,CAACpa,CAAC,CAAC,CAAC;IACvCM,MAAM,IAAIA,MAAM,CAACkE,SAAS,IACtBoV,uBAAuB,CAACtZ,MAAM,CAACkE,SAAS,EAAEsV,eAAe,CAACxZ,MAAM,CAACkE,SAAS,CAAC,EAAE8U,gBAAgB,CAAC;EACtG;AACJ;AAEAre,IAAI,CAACU,YAAY,CAAC,MAAM,EAAE,CAACpB,MAAM,EAAEU,IAAI,EAAEmR,GAAG,KAAK;EAC7C;EACA;EACA,MAAMkO,UAAU,GAAGR,eAAe,CAACvf,MAAM,CAAC;EAC1C6R,GAAG,CAACxG,iBAAiB,GAAGA,iBAAiB;EACzCwG,GAAG,CAACvG,WAAW,GAAGA,WAAW;EAC7BuG,GAAG,CAACtG,aAAa,GAAGA,aAAa;EACjCsG,GAAG,CAACpG,cAAc,GAAGA,cAAc;EACnC;EACA;EACA;EACA;EACA;EACA;EACA,MAAMuU,0BAA0B,GAAGtf,IAAI,CAACH,UAAU,CAAC,qBAAqB,CAAC;EACzE,MAAM0f,uBAAuB,GAAGvf,IAAI,CAACH,UAAU,CAAC,kBAAkB,CAAC;EACnE,IAAIP,MAAM,CAACigB,uBAAuB,CAAC,EAAE;IACjCjgB,MAAM,CAACggB,0BAA0B,CAAC,GAAGhgB,MAAM,CAACigB,uBAAuB,CAAC;EACxE;EACA,IAAIjgB,MAAM,CAACggB,0BAA0B,CAAC,EAAE;IACpCtf,IAAI,CAACsf,0BAA0B,CAAC,GAAGtf,IAAI,CAACuf,uBAAuB,CAAC,GAC5DjgB,MAAM,CAACggB,0BAA0B,CAAC;EAC1C;EACAnO,GAAG,CAACnG,mBAAmB,GAAGA,mBAAmB;EAC7CmG,GAAG,CAACzG,gBAAgB,GAAGA,gBAAgB;EACvCyG,GAAG,CAAClG,UAAU,GAAGA,UAAU;EAC3BkG,GAAG,CAAChG,oBAAoB,GAAGA,oBAAoB;EAC/CgG,GAAG,CAAC/F,8BAA8B,GAAGA,8BAA8B;EACnE+F,GAAG,CAAC9F,YAAY,GAAGA,YAAY;EAC/B8F,GAAG,CAAC7F,UAAU,GAAGA,UAAU;EAC3B6F,GAAG,CAAC5F,UAAU,GAAGA,UAAU;EAC3B4F,GAAG,CAAC3F,mBAAmB,GAAGA,mBAAmB;EAC7C2F,GAAG,CAAC1F,gBAAgB,GAAGA,gBAAgB;EACvC0F,GAAG,CAACzF,qBAAqB,GAAGA,qBAAqB;EACjDyF,GAAG,CAACxF,iBAAiB,GAAGrC,MAAM,CAACyC,cAAc;EAC7CoF,GAAG,CAACvF,cAAc,GAAGA,cAAc;EACnCuF,GAAG,CAACjG,gBAAgB,GAAG,OAAO;IAC1BiN,aAAa;IACbD,oBAAoB;IACpBmH,UAAU;IACVvR,SAAS;IACTC,KAAK;IACLH,MAAM;IACNnB,QAAQ;IACRC,SAAS;IACTC,kBAAkB;IAClBN,sBAAsB;IACtBC;EACJ,CAAC,CAAC;AACN,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,SAASkT,mBAAmB,CAAClgB,MAAM,EAAE6R,GAAG,EAAE;EACtCA,GAAG,CAACvG,WAAW,CAACtL,MAAM,EAAE,gBAAgB,EAAG6F,QAAQ,IAAK;IACpD,OAAO,UAAUuD,IAAI,EAAEG,IAAI,EAAE;MACzB7I,IAAI,CAACK,OAAO,CAACgE,iBAAiB,CAAC,gBAAgB,EAAEwE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;EACL,CAAC,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA,MAAM4W,UAAU,GAAG5S,UAAU,CAAC,UAAU,CAAC;AACzC,SAAS6S,UAAU,CAAC7T,MAAM,EAAE8T,OAAO,EAAEC,UAAU,EAAEC,UAAU,EAAE;EACzD,IAAIrP,SAAS,GAAG,IAAI;EACpB,IAAIsP,WAAW,GAAG,IAAI;EACtBH,OAAO,IAAIE,UAAU;EACrBD,UAAU,IAAIC,UAAU;EACxB,MAAME,eAAe,GAAG,CAAC,CAAC;EAC1B,SAASjc,YAAY,CAACpB,IAAI,EAAE;IACxB,MAAMa,IAAI,GAAGb,IAAI,CAACa,IAAI;IACtBA,IAAI,CAACsF,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY;MACvB,OAAOnG,IAAI,CAACJ,MAAM,CAACwF,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;IAC7C,CAAC;IACDqB,IAAI,CAAC8F,QAAQ,GAAGmH,SAAS,CAAC1I,KAAK,CAAC+D,MAAM,EAAEtI,IAAI,CAACsF,IAAI,CAAC;IAClD,OAAOnG,IAAI;EACf;EACA,SAASsd,SAAS,CAACtd,IAAI,EAAE;IACrB,OAAOod,WAAW,CAAClX,IAAI,CAACiD,MAAM,EAAEnJ,IAAI,CAACa,IAAI,CAAC8F,QAAQ,CAAC;EACvD;EACAmH,SAAS,GACL5F,WAAW,CAACiB,MAAM,EAAE8T,OAAO,EAAGxa,QAAQ,IAAK,UAAUuD,IAAI,EAAEG,IAAI,EAAE;IAC7D,IAAI,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;MAC/B,MAAML,OAAO,GAAG;QACZhF,UAAU,EAAEqc,UAAU,KAAK,UAAU;QACrCI,KAAK,EAAGJ,UAAU,KAAK,SAAS,IAAIA,UAAU,KAAK,UAAU,GAAIhX,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GACzEnF,SAAS;QACbmF,IAAI,EAAEA;MACV,CAAC;MACD,MAAMhH,QAAQ,GAAGgH,IAAI,CAAC,CAAC,CAAC;MACxBA,IAAI,CAAC,CAAC,CAAC,GAAG,SAASqX,KAAK,GAAG;QACvB,IAAI;UACA,OAAOre,QAAQ,CAACiG,KAAK,CAAC,IAAI,EAAE5F,SAAS,CAAC;QAC1C,CAAC,SACO;UACJ;UACA;UACA;UACA;UACA;UACA;UACA;UACA,IAAI,CAAEsG,OAAO,CAAChF,UAAW,EAAE;YACvB,IAAI,OAAOgF,OAAO,CAACa,QAAQ,KAAK,QAAQ,EAAE;cACtC;cACA;cACA,OAAO0W,eAAe,CAACvX,OAAO,CAACa,QAAQ,CAAC;YAC5C,CAAC,MACI,IAAIb,OAAO,CAACa,QAAQ,EAAE;cACvB;cACA;cACAb,OAAO,CAACa,QAAQ,CAACoW,UAAU,CAAC,GAAG,IAAI;YACvC;UACJ;QACJ;MACJ,CAAC;MACD,MAAM/c,IAAI,GAAGkK,gCAAgC,CAAC+S,OAAO,EAAE9W,IAAI,CAAC,CAAC,CAAC,EAAEL,OAAO,EAAE1E,YAAY,EAAEkc,SAAS,CAAC;MACjG,IAAI,CAACtd,IAAI,EAAE;QACP,OAAOA,IAAI;MACf;MACA;MACA,MAAMyd,MAAM,GAAGzd,IAAI,CAACa,IAAI,CAAC8F,QAAQ;MACjC,IAAI,OAAO8W,MAAM,KAAK,QAAQ,EAAE;QAC5B;QACA;QACAJ,eAAe,CAACI,MAAM,CAAC,GAAGzd,IAAI;MAClC,CAAC,MACI,IAAIyd,MAAM,EAAE;QACb;QACA;QACAA,MAAM,CAACV,UAAU,CAAC,GAAG/c,IAAI;MAC7B;MACA;MACA;MACA,IAAIyd,MAAM,IAAIA,MAAM,CAACC,GAAG,IAAID,MAAM,CAACE,KAAK,IAAI,OAAOF,MAAM,CAACC,GAAG,KAAK,UAAU,IACxE,OAAOD,MAAM,CAACE,KAAK,KAAK,UAAU,EAAE;QACpC3d,IAAI,CAAC0d,GAAG,GAAGD,MAAM,CAACC,GAAG,CAACE,IAAI,CAACH,MAAM,CAAC;QAClCzd,IAAI,CAAC2d,KAAK,GAAGF,MAAM,CAACE,KAAK,CAACC,IAAI,CAACH,MAAM,CAAC;MAC1C;MACA,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,EAAE;QACtC,OAAOA,MAAM;MACjB;MACA,OAAOzd,IAAI;IACf,CAAC,MACI;MACD;MACA,OAAOyC,QAAQ,CAAC2C,KAAK,CAAC+D,MAAM,EAAEhD,IAAI,CAAC;IACvC;EACJ,CAAC,CAAC;EACNiX,WAAW,GACPlV,WAAW,CAACiB,MAAM,EAAE+T,UAAU,EAAGza,QAAQ,IAAK,UAAUuD,IAAI,EAAEG,IAAI,EAAE;IAChE,MAAM0X,EAAE,GAAG1X,IAAI,CAAC,CAAC,CAAC;IAClB,IAAInG,IAAI;IACR,IAAI,OAAO6d,EAAE,KAAK,QAAQ,EAAE;MACxB;MACA7d,IAAI,GAAGqd,eAAe,CAACQ,EAAE,CAAC;IAC9B,CAAC,MACI;MACD;MACA7d,IAAI,GAAG6d,EAAE,IAAIA,EAAE,CAACd,UAAU,CAAC;MAC3B;MACA,IAAI,CAAC/c,IAAI,EAAE;QACPA,IAAI,GAAG6d,EAAE;MACb;IACJ;IACA,IAAI7d,IAAI,IAAI,OAAOA,IAAI,CAACI,IAAI,KAAK,QAAQ,EAAE;MACvC,IAAIJ,IAAI,CAACE,KAAK,KAAK,cAAc,KAC5BF,IAAI,CAACe,QAAQ,IAAIf,IAAI,CAACa,IAAI,CAACC,UAAU,IAAId,IAAI,CAACW,QAAQ,KAAK,CAAC,CAAC,EAAE;QAChE,IAAI,OAAOkd,EAAE,KAAK,QAAQ,EAAE;UACxB,OAAOR,eAAe,CAACQ,EAAE,CAAC;QAC9B,CAAC,MACI,IAAIA,EAAE,EAAE;UACTA,EAAE,CAACd,UAAU,CAAC,GAAG,IAAI;QACzB;QACA;QACA/c,IAAI,CAACtC,IAAI,CAACwE,UAAU,CAAClC,IAAI,CAAC;MAC9B;IACJ,CAAC,MACI;MACD;MACAyC,QAAQ,CAAC2C,KAAK,CAAC+D,MAAM,EAAEhD,IAAI,CAAC;IAChC;EACJ,CAAC,CAAC;AACV;AAEA,SAAS2X,mBAAmB,CAACxT,OAAO,EAAEmE,GAAG,EAAE;EACvC,MAAM;IAAErD,SAAS;IAAEC;EAAM,CAAC,GAAGoD,GAAG,CAACjG,gBAAgB,EAAE;EACnD,IAAK,CAAC4C,SAAS,IAAI,CAACC,KAAK,IAAK,CAACf,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,IAAIA,OAAO,CAAC,EAAE;IACxF;EACJ;EACA,MAAMgR,SAAS,GAAG,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,0BAA0B,CAAC;EAC9G7M,GAAG,CAACvF,cAAc,CAACuF,GAAG,EAAEnE,OAAO,CAACyT,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAEzC,SAAS,CAAC;AAC1F;AAEA,SAAS0C,gBAAgB,CAAC1T,OAAO,EAAEmE,GAAG,EAAE;EACpC,IAAInR,IAAI,CAACmR,GAAG,CAAC7G,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE;IACtC;IACA;EACJ;EACA,MAAM;IAAE+U,UAAU;IAAEnH,oBAAoB;IAAEzL,QAAQ;IAAEC,SAAS;IAAEC;EAAmB,CAAC,GAAGwE,GAAG,CAACjG,gBAAgB,EAAE;EAC5G;EACA,KAAK,IAAInG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsa,UAAU,CAACra,MAAM,EAAED,CAAC,EAAE,EAAE;IACxC,MAAMsK,SAAS,GAAGgQ,UAAU,CAACta,CAAC,CAAC;IAC/B,MAAM0T,cAAc,GAAGpJ,SAAS,GAAG3C,SAAS;IAC5C,MAAMgM,aAAa,GAAGrJ,SAAS,GAAG5C,QAAQ;IAC1C,MAAMnC,MAAM,GAAGqC,kBAAkB,GAAG8L,cAAc;IAClD,MAAME,aAAa,GAAGhM,kBAAkB,GAAG+L,aAAa;IACxDR,oBAAoB,CAAC7I,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC6I,oBAAoB,CAAC7I,SAAS,CAAC,CAAC3C,SAAS,CAAC,GAAGpC,MAAM;IACnD4N,oBAAoB,CAAC7I,SAAS,CAAC,CAAC5C,QAAQ,CAAC,GAAGkM,aAAa;EAC7D;EACA,MAAMgI,YAAY,GAAG3T,OAAO,CAAC,aAAa,CAAC;EAC3C,IAAI,CAAC2T,YAAY,IAAI,CAACA,YAAY,CAACpX,SAAS,EAAE;IAC1C;EACJ;EACA4H,GAAG,CAACzG,gBAAgB,CAACsC,OAAO,EAAEmE,GAAG,EAAE,CAACwP,YAAY,IAAIA,YAAY,CAACpX,SAAS,CAAC,CAAC;EAC5E,OAAO,IAAI;AACf;AACA,SAASqX,UAAU,CAACthB,MAAM,EAAE6R,GAAG,EAAE;EAC7BA,GAAG,CAACnG,mBAAmB,CAAC1L,MAAM,EAAE6R,GAAG,CAAC;AACxC;;AAEA;AACA;AACA;AACA;AACAnR,IAAI,CAACU,YAAY,CAAC,QAAQ,EAAGpB,MAAM,IAAK;EACpC,MAAMuhB,WAAW,GAAGvhB,MAAM,CAACU,IAAI,CAACH,UAAU,CAAC,aAAa,CAAC,CAAC;EAC1D,IAAIghB,WAAW,EAAE;IACbA,WAAW,EAAE;EACjB;AACJ,CAAC,CAAC;AACF7gB,IAAI,CAACU,YAAY,CAAC,QAAQ,EAAGpB,MAAM,IAAK;EACpC,MAAMmO,GAAG,GAAG,KAAK;EACjB,MAAMqT,KAAK,GAAG,OAAO;EACrBpB,UAAU,CAACpgB,MAAM,EAAEmO,GAAG,EAAEqT,KAAK,EAAE,SAAS,CAAC;EACzCpB,UAAU,CAACpgB,MAAM,EAAEmO,GAAG,EAAEqT,KAAK,EAAE,UAAU,CAAC;EAC1CpB,UAAU,CAACpgB,MAAM,EAAEmO,GAAG,EAAEqT,KAAK,EAAE,WAAW,CAAC;AAC/C,CAAC,CAAC;AACF9gB,IAAI,CAACU,YAAY,CAAC,uBAAuB,EAAGpB,MAAM,IAAK;EACnDogB,UAAU,CAACpgB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC;EACzDogB,UAAU,CAACpgB,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,CAAC;EAC/DogB,UAAU,CAACpgB,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC;AACzE,CAAC,CAAC;AACFU,IAAI,CAACU,YAAY,CAAC,UAAU,EAAE,CAACpB,MAAM,EAAEU,IAAI,KAAK;EAC5C,MAAM+gB,eAAe,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;EACtD,KAAK,IAAIhc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgc,eAAe,CAAC/b,MAAM,EAAED,CAAC,EAAE,EAAE;IAC7C,MAAMtF,IAAI,GAAGshB,eAAe,CAAChc,CAAC,CAAC;IAC/B6F,WAAW,CAACtL,MAAM,EAAEG,IAAI,EAAE,CAAC0F,QAAQ,EAAEmF,MAAM,EAAE7K,IAAI,KAAK;MAClD,OAAO,UAAUuhB,CAAC,EAAEnY,IAAI,EAAE;QACtB,OAAO7I,IAAI,CAACK,OAAO,CAAC8B,GAAG,CAACgD,QAAQ,EAAE7F,MAAM,EAAEuJ,IAAI,EAAEpJ,IAAI,CAAC;MACzD,CAAC;IACL,CAAC,CAAC;EACN;AACJ,CAAC,CAAC;AACFO,IAAI,CAACU,YAAY,CAAC,aAAa,EAAE,CAACpB,MAAM,EAAEU,IAAI,EAAEmR,GAAG,KAAK;EACpDyP,UAAU,CAACthB,MAAM,EAAE6R,GAAG,CAAC;EACvBuP,gBAAgB,CAACphB,MAAM,EAAE6R,GAAG,CAAC;EAC7B;EACA,MAAM8P,yBAAyB,GAAG3hB,MAAM,CAAC,2BAA2B,CAAC;EACrE,IAAI2hB,yBAAyB,IAAIA,yBAAyB,CAAC1X,SAAS,EAAE;IAClE4H,GAAG,CAACzG,gBAAgB,CAACpL,MAAM,EAAE6R,GAAG,EAAE,CAAC8P,yBAAyB,CAAC1X,SAAS,CAAC,CAAC;EAC5E;AACJ,CAAC,CAAC;AACFvJ,IAAI,CAACU,YAAY,CAAC,kBAAkB,EAAE,CAACpB,MAAM,EAAEU,IAAI,EAAEmR,GAAG,KAAK;EACzD5F,UAAU,CAAC,kBAAkB,CAAC;EAC9BA,UAAU,CAAC,wBAAwB,CAAC;AACxC,CAAC,CAAC;AACFvL,IAAI,CAACU,YAAY,CAAC,sBAAsB,EAAE,CAACpB,MAAM,EAAEU,IAAI,EAAEmR,GAAG,KAAK;EAC7D5F,UAAU,CAAC,sBAAsB,CAAC;AACtC,CAAC,CAAC;AACFvL,IAAI,CAACU,YAAY,CAAC,YAAY,EAAE,CAACpB,MAAM,EAAEU,IAAI,EAAEmR,GAAG,KAAK;EACnD5F,UAAU,CAAC,YAAY,CAAC;AAC5B,CAAC,CAAC;AACFvL,IAAI,CAACU,YAAY,CAAC,aAAa,EAAE,CAACpB,MAAM,EAAEU,IAAI,EAAEmR,GAAG,KAAK;EACpD+N,uBAAuB,CAAC/N,GAAG,EAAE7R,MAAM,CAAC;AACxC,CAAC,CAAC;AACFU,IAAI,CAACU,YAAY,CAAC,gBAAgB,EAAE,CAACpB,MAAM,EAAEU,IAAI,EAAEmR,GAAG,KAAK;EACvDqP,mBAAmB,CAAClhB,MAAM,EAAE6R,GAAG,CAAC;AACpC,CAAC,CAAC;AACFnR,IAAI,CAACU,YAAY,CAAC,KAAK,EAAE,CAACpB,MAAM,EAAEU,IAAI,KAAK;EACvC;EACAkhB,QAAQ,CAAC5hB,MAAM,CAAC;EAChB,MAAM6hB,QAAQ,GAAGtU,UAAU,CAAC,SAAS,CAAC;EACtC,MAAMuU,QAAQ,GAAGvU,UAAU,CAAC,SAAS,CAAC;EACtC,MAAMwU,YAAY,GAAGxU,UAAU,CAAC,aAAa,CAAC;EAC9C,MAAMyU,aAAa,GAAGzU,UAAU,CAAC,cAAc,CAAC;EAChD,MAAM0U,OAAO,GAAG1U,UAAU,CAAC,QAAQ,CAAC;EACpC,MAAM2U,0BAA0B,GAAG3U,UAAU,CAAC,yBAAyB,CAAC;EACxE,SAASqU,QAAQ,CAACrV,MAAM,EAAE;IACtB,MAAM4V,cAAc,GAAG5V,MAAM,CAAC,gBAAgB,CAAC;IAC/C,IAAI,CAAC4V,cAAc,EAAE;MACjB;MACA;IACJ;IACA,MAAMC,uBAAuB,GAAGD,cAAc,CAAClY,SAAS;IACxD,SAASoY,eAAe,CAACtc,MAAM,EAAE;MAC7B,OAAOA,MAAM,CAAC8b,QAAQ,CAAC;IAC3B;IACA,IAAIS,cAAc,GAAGF,uBAAuB,CAACnV,8BAA8B,CAAC;IAC5E,IAAIsV,iBAAiB,GAAGH,uBAAuB,CAAClV,iCAAiC,CAAC;IAClF,IAAI,CAACoV,cAAc,EAAE;MACjB,MAAMX,yBAAyB,GAAGpV,MAAM,CAAC,2BAA2B,CAAC;MACrE,IAAIoV,yBAAyB,EAAE;QAC3B,MAAMa,kCAAkC,GAAGb,yBAAyB,CAAC1X,SAAS;QAC9EqY,cAAc,GAAGE,kCAAkC,CAACvV,8BAA8B,CAAC;QACnFsV,iBAAiB,GAAGC,kCAAkC,CAACtV,iCAAiC,CAAC;MAC7F;IACJ;IACA,MAAMuV,kBAAkB,GAAG,kBAAkB;IAC7C,MAAMC,SAAS,GAAG,WAAW;IAC7B,SAASle,YAAY,CAACpB,IAAI,EAAE;MACxB,MAAMa,IAAI,GAAGb,IAAI,CAACa,IAAI;MACtB,MAAM8B,MAAM,GAAG9B,IAAI,CAAC8B,MAAM;MAC1BA,MAAM,CAACic,aAAa,CAAC,GAAG,KAAK;MAC7Bjc,MAAM,CAACmc,0BAA0B,CAAC,GAAG,KAAK;MAC1C;MACA,MAAMpT,QAAQ,GAAG/I,MAAM,CAACgc,YAAY,CAAC;MACrC,IAAI,CAACO,cAAc,EAAE;QACjBA,cAAc,GAAGvc,MAAM,CAACkH,8BAA8B,CAAC;QACvDsV,iBAAiB,GAAGxc,MAAM,CAACmH,iCAAiC,CAAC;MACjE;MACA,IAAI4B,QAAQ,EAAE;QACVyT,iBAAiB,CAACjZ,IAAI,CAACvD,MAAM,EAAE0c,kBAAkB,EAAE3T,QAAQ,CAAC;MAChE;MACA,MAAM6T,WAAW,GAAG5c,MAAM,CAACgc,YAAY,CAAC,GAAG,MAAM;QAC7C,IAAIhc,MAAM,CAAC6c,UAAU,KAAK7c,MAAM,CAAC8c,IAAI,EAAE;UACnC;UACA;UACA,IAAI,CAAC5e,IAAI,CAAC6e,OAAO,IAAI/c,MAAM,CAACic,aAAa,CAAC,IAAI5e,IAAI,CAACE,KAAK,KAAKof,SAAS,EAAE;YACpE;YACA;YACA;YACA;YACA;YACA;YACA;YACA,MAAMK,SAAS,GAAGhd,MAAM,CAACrF,IAAI,CAACH,UAAU,CAAC,WAAW,CAAC,CAAC;YACtD,IAAIwF,MAAM,CAACyQ,MAAM,KAAK,CAAC,IAAIuM,SAAS,IAAIA,SAAS,CAACrd,MAAM,GAAG,CAAC,EAAE;cAC1D,MAAMsd,SAAS,GAAG5f,IAAI,CAACJ,MAAM;cAC7BI,IAAI,CAACJ,MAAM,GAAG,YAAY;gBACtB;gBACA;gBACA,MAAM+f,SAAS,GAAGhd,MAAM,CAACrF,IAAI,CAACH,UAAU,CAAC,WAAW,CAAC,CAAC;gBACtD,KAAK,IAAIkF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsd,SAAS,CAACrd,MAAM,EAAED,CAAC,EAAE,EAAE;kBACvC,IAAIsd,SAAS,CAACtd,CAAC,CAAC,KAAKrC,IAAI,EAAE;oBACvB2f,SAAS,CAAClO,MAAM,CAACpP,CAAC,EAAE,CAAC,CAAC;kBAC1B;gBACJ;gBACA,IAAI,CAACxB,IAAI,CAAC6e,OAAO,IAAI1f,IAAI,CAACE,KAAK,KAAKof,SAAS,EAAE;kBAC3CM,SAAS,CAAC1Z,IAAI,CAAClG,IAAI,CAAC;gBACxB;cACJ,CAAC;cACD2f,SAAS,CAACra,IAAI,CAACtF,IAAI,CAAC;YACxB,CAAC,MACI;cACDA,IAAI,CAACJ,MAAM,EAAE;YACjB;UACJ,CAAC,MACI,IAAI,CAACiB,IAAI,CAAC6e,OAAO,IAAI/c,MAAM,CAACic,aAAa,CAAC,KAAK,KAAK,EAAE;YACvD;YACAjc,MAAM,CAACmc,0BAA0B,CAAC,GAAG,IAAI;UAC7C;QACJ;MACJ,CAAC;MACDI,cAAc,CAAChZ,IAAI,CAACvD,MAAM,EAAE0c,kBAAkB,EAAEE,WAAW,CAAC;MAC5D,MAAMM,UAAU,GAAGld,MAAM,CAAC8b,QAAQ,CAAC;MACnC,IAAI,CAACoB,UAAU,EAAE;QACbld,MAAM,CAAC8b,QAAQ,CAAC,GAAGze,IAAI;MAC3B;MACA8f,UAAU,CAAC1a,KAAK,CAACzC,MAAM,EAAE9B,IAAI,CAACsF,IAAI,CAAC;MACnCxD,MAAM,CAACic,aAAa,CAAC,GAAG,IAAI;MAC5B,OAAO5e,IAAI;IACf;IACA,SAAS+f,mBAAmB,GAAG,CAAE;IACjC,SAASzC,SAAS,CAACtd,IAAI,EAAE;MACrB,MAAMa,IAAI,GAAGb,IAAI,CAACa,IAAI;MACtB;MACA;MACAA,IAAI,CAAC6e,OAAO,GAAG,IAAI;MACnB,OAAOM,WAAW,CAAC5a,KAAK,CAACvE,IAAI,CAAC8B,MAAM,EAAE9B,IAAI,CAACsF,IAAI,CAAC;IACpD;IACA,MAAM8Z,UAAU,GAAG/X,WAAW,CAAC8W,uBAAuB,EAAE,MAAM,EAAE,MAAM,UAAUhZ,IAAI,EAAEG,IAAI,EAAE;MACxFH,IAAI,CAAC0Y,QAAQ,CAAC,GAAGvY,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK;MACjCH,IAAI,CAAC6Y,OAAO,CAAC,GAAG1Y,IAAI,CAAC,CAAC,CAAC;MACvB,OAAO8Z,UAAU,CAAC7a,KAAK,CAACY,IAAI,EAAEG,IAAI,CAAC;IACvC,CAAC,CAAC;IACF,MAAM+Z,qBAAqB,GAAG,qBAAqB;IACnD,MAAMC,iBAAiB,GAAGhW,UAAU,CAAC,mBAAmB,CAAC;IACzD,MAAMiW,mBAAmB,GAAGjW,UAAU,CAAC,qBAAqB,CAAC;IAC7D,MAAM2V,UAAU,GAAG5X,WAAW,CAAC8W,uBAAuB,EAAE,MAAM,EAAE,MAAM,UAAUhZ,IAAI,EAAEG,IAAI,EAAE;MACxF,IAAI7I,IAAI,CAACK,OAAO,CAACyiB,mBAAmB,CAAC,KAAK,IAAI,EAAE;QAC5C;QACA;QACA;QACA,OAAON,UAAU,CAAC1a,KAAK,CAACY,IAAI,EAAEG,IAAI,CAAC;MACvC;MACA,IAAIH,IAAI,CAAC0Y,QAAQ,CAAC,EAAE;QAChB;QACA,OAAOoB,UAAU,CAAC1a,KAAK,CAACY,IAAI,EAAEG,IAAI,CAAC;MACvC,CAAC,MACI;QACD,MAAML,OAAO,GAAG;UAAEnD,MAAM,EAAEqD,IAAI;UAAEqa,GAAG,EAAEra,IAAI,CAAC6Y,OAAO,CAAC;UAAE/d,UAAU,EAAE,KAAK;UAAEqF,IAAI,EAAEA,IAAI;UAAEuZ,OAAO,EAAE;QAAM,CAAC;QACnG,MAAM1f,IAAI,GAAGkK,gCAAgC,CAACgW,qBAAqB,EAAEH,mBAAmB,EAAEja,OAAO,EAAE1E,YAAY,EAAEkc,SAAS,CAAC;QAC3H,IAAItX,IAAI,IAAIA,IAAI,CAAC8Y,0BAA0B,CAAC,KAAK,IAAI,IAAI,CAAChZ,OAAO,CAAC4Z,OAAO,IACrE1f,IAAI,CAACE,KAAK,KAAKof,SAAS,EAAE;UAC1B;UACA;UACA;UACAtf,IAAI,CAACJ,MAAM,EAAE;QACjB;MACJ;IACJ,CAAC,CAAC;IACF,MAAMogB,WAAW,GAAG9X,WAAW,CAAC8W,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAUhZ,IAAI,EAAEG,IAAI,EAAE;MAC1F,MAAMnG,IAAI,GAAGif,eAAe,CAACjZ,IAAI,CAAC;MAClC,IAAIhG,IAAI,IAAI,OAAOA,IAAI,CAACI,IAAI,IAAI,QAAQ,EAAE;QACtC;QACA;QACA;QACA;QACA,IAAIJ,IAAI,CAACe,QAAQ,IAAI,IAAI,IAAKf,IAAI,CAACa,IAAI,IAAIb,IAAI,CAACa,IAAI,CAAC6e,OAAQ,EAAE;UAC3D;QACJ;QACA1f,IAAI,CAACtC,IAAI,CAACwE,UAAU,CAAClC,IAAI,CAAC;MAC9B,CAAC,MACI,IAAI1C,IAAI,CAACK,OAAO,CAACwiB,iBAAiB,CAAC,KAAK,IAAI,EAAE;QAC/C;QACA,OAAOH,WAAW,CAAC5a,KAAK,CAACY,IAAI,EAAEG,IAAI,CAAC;MACxC;MACA;MACA;MACA;IACJ,CAAC,CAAC;EACN;AACJ,CAAC,CAAC;;AACF7I,IAAI,CAACU,YAAY,CAAC,aAAa,EAAGpB,MAAM,IAAK;EACzC;EACA,IAAIA,MAAM,CAAC,WAAW,CAAC,IAAIA,MAAM,CAAC,WAAW,CAAC,CAAC0jB,WAAW,EAAE;IACxD9V,cAAc,CAAC5N,MAAM,CAAC,WAAW,CAAC,CAAC0jB,WAAW,EAAE,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;EAC5F;AACJ,CAAC,CAAC;AACFhjB,IAAI,CAACU,YAAY,CAAC,uBAAuB,EAAE,CAACpB,MAAM,EAAEU,IAAI,KAAK;EACzD;EACA,SAASijB,2BAA2B,CAAC7F,OAAO,EAAE;IAC1C,OAAO,UAAU1L,CAAC,EAAE;MAChB,MAAMwR,UAAU,GAAGlG,cAAc,CAAC1d,MAAM,EAAE8d,OAAO,CAAC;MAClD8F,UAAU,CAAC/E,OAAO,CAACpb,SAAS,IAAI;QAC5B;QACA;QACA,MAAMogB,qBAAqB,GAAG7jB,MAAM,CAAC,uBAAuB,CAAC;QAC7D,IAAI6jB,qBAAqB,EAAE;UACvB,MAAMC,GAAG,GAAG,IAAID,qBAAqB,CAAC/F,OAAO,EAAE;YAAEhK,OAAO,EAAE1B,CAAC,CAAC0B,OAAO;YAAE4C,MAAM,EAAEtE,CAAC,CAACC;UAAU,CAAC,CAAC;UAC3F5O,SAAS,CAACT,MAAM,CAAC8gB,GAAG,CAAC;QACzB;MACJ,CAAC,CAAC;IACN,CAAC;EACL;EACA,IAAI9jB,MAAM,CAAC,uBAAuB,CAAC,EAAE;IACjCU,IAAI,CAAC6M,UAAU,CAAC,kCAAkC,CAAC,CAAC,GAChDoW,2BAA2B,CAAC,oBAAoB,CAAC;IACrDjjB,IAAI,CAAC6M,UAAU,CAAC,yBAAyB,CAAC,CAAC,GACvCoW,2BAA2B,CAAC,kBAAkB,CAAC;EACvD;AACJ,CAAC,CAAC;AACFjjB,IAAI,CAACU,YAAY,CAAC,gBAAgB,EAAE,CAACpB,MAAM,EAAEU,IAAI,EAAEmR,GAAG,KAAK;EACvDqO,mBAAmB,CAAClgB,MAAM,EAAE6R,GAAG,CAAC;AACpC,CAAC,CAAC;;;;;;;;;;;;;ACprFF;;;;;;;;;;;;;;;AAgBA;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;AAwBA;;;AAGiB,CAAC;AAElB","sources":["./node_modules/zone.js/fesm2015/zone.js","./src/polyfills.ts"],"sourcesContent":["'use strict';\n/**\n * @license Angular v\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n((function (global) {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) {\n return symbolPrefix + name;\n }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n // tslint:disable-next-line:require-internal-with-underscore\n static { this.__symbol__ = __symbol__; }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n if (task.state !== scheduled && task.state !== running) {\n return;\n }\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class _ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n}))(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n/// \n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = Zone.__symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n}\n\nZone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected :\n forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then(v => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, err => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n ;\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and invokes\n // it with the `value` context. Otherwise, this will throw an error: `TypeError: Cannot read\n // properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', delegate => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n});\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return { ...options, passive: true };\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = buildEventListenerOptions(arguments[2], passive);\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n}\n\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter(name => name.startsWith('on') && name.length > 2)\n .map(name => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat([\n 'Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement',\n 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker'\n ]);\n const ignoreErrorProperties = isIE() ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest',\n 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket'\n ]);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target && target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n}\n\nZone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR\n });\n});\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchQueueMicrotask(global, api) {\n api.patchMethod(global, 'queueMicrotask', (delegate) => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative.call(window, task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n if (!(options.isPeriodic)) {\n if (typeof options.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[options.handleId];\n }\n else if (options.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n options.handleId[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n}\n\nfunction patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nZone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n});\nZone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n});\nZone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n});\nZone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n});\nZone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n});\nZone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\nZone.__load_patch('queueMicrotask', (global, Zone, api) => {\n patchQueueMicrotask(global, api);\n});\n","/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\n * file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n * (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js'; // Included with Angular CLI.\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"],"names":["global","performance","mark","name","performanceMeasure","label","symbolPrefix","__symbol__","checkDuplicate","Error","Zone","assertZonePatched","patches","root","zone","current","parent","_currentZoneFrame","currentTask","_currentTask","__load_patch","fn","ignoreDuplicate","hasOwnProperty","perfName","_api","_parent","_name","constructor","zoneSpec","_properties","properties","_zoneDelegate","_ZoneDelegate","get","key","getZoneWith","fork","wrap","callback","source","_callback","intercept","runGuarded","arguments","run","applyThis","applyArgs","invoke","error","handleError","runTask","task","NO_ZONE","state","notScheduled","type","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","runCount","previousTask","data","isPeriodic","cancelFn","undefined","invokeTask","unknown","_updateTaskCount","scheduleTask","newZone","scheduling","zoneDelegates","_zoneDelegates","_zone","err","scheduleMicroTask","customSchedule","ZoneTask","microTask","scheduleMacroTask","customCancel","scheduleEventTask","cancelTask","canceling","count","i","length","DELEGATE_ZS","onHasTask","delegate","_","target","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","parentHasTask","targetZone","apply","returnTask","push","scheduleFn","value","isEmpty","counts","prev","next","change","options","_state","self","useG","call","args","_numberOfNestedTaskFrames","drainMicroTaskQueue","cancelScheduleRequest","toState","fromState1","fromState2","toString","handleId","Object","prototype","toJSON","symbolSetTimeout","symbolPromise","symbolThen","_microTaskQueue","_isDrainingMicrotaskQueue","nativeMicroTaskQueuePromise","nativeScheduleMicroTask","func","resolve","nativeThen","queue","onUnhandledError","microtaskDrainDone","symbol","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","window","getOwnPropertyDescriptor","defineProperty","ObjectGetPrototypeOf","getPrototypeOf","create","Array","slice","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","scheduleMacroTaskWithCurrentZone","zoneSymbol","isWindowExists","internalWindow","_global","REMOVE_ATTRIBUTE","patchPrototype","fnNames","prototypeDesc","isPropertyWritable","patched","propertyDesc","writable","set","isWebWorker","WorkerGlobalScope","isNode","process","isBrowser","isMix","zoneSymbolEventNames$1","wrapFn","event","eventNameSymbol","listener","result","errorEvent","message","filename","lineno","colno","preventDefault","patchProperty","obj","prop","desc","enumerable","configurable","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","previousValue","removeEventListener","addEventListener","removeAttribute","onProperties","j","originalInstanceKey","className","OriginalClass","a","instance","patchFn","proto","delegateName","patchDelegate","funcName","metaCreator","setNative","cbIdx","meta","original","isDetectedIEOrEdge","ieOrEdge","isIE","ua","navigator","userAgent","indexOf","api","readableObjectToString","JSON","stringify","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","creationTrace","e","rejection","console","stack","uncaughtPromiseError","shift","throwOriginal","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","handler","isThenable","then","forwardResolution","forwardRejection","ZoneAwarePromise","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED","REJECTED_NO_CATCH","makeResolver","promise","v","resolvePromise","once","wasCalled","wrapper","wrappedFunction","TYPE_ERROR","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","TypeError","clearRejectedNoCatch","trace","scheduleResolveOrReject","REJECTION_HANDLED_HANDLER","splice","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","ZONE_AWARE_PROMISE_TO_STRING","AggregateError","any","values","Symbol","iterator","Promise","promises","finished","errors","race","res","rej","onResolve","onReject","all","allWithCallback","allSettled","P","thenCallback","status","errorCallback","reason","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","executor","toStringTag","species","C","catch","finally","onFinally","NativePromise","symbolThenPatched","Ctor","originalThen","wrapped","zoneify","resultPromise","ctor","originalFunctionToString","Function","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","originalDelegate","nativePromise","nativeError","originalObjectToString","PROMISE_OBJECT_TO_STRING","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbolCapture","apis","patchOptions","ADD_EVENT_LISTENER","add","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","PREPEND_EVENT_LISTENER","PREPEND_EVENT_LISTENER_SOURCE","isRemoved","handleEvent","globalCallback","context","isCapture","tasks","copyTasks","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","rt","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","prepend","buildEventListenerOptions","passive","capture","customScheduleGlobal","isExisting","customCancelGlobal","symbolEventNames","symbolEventName","existingTasks","existingTask","allRemoved","customScheduleNonGlobal","customSchedulePrepend","customCancelNonGlobal","compareTaskCallbackVsDelegate","typeOfDelegate","compare","diff","unpatchedEvents","passiveEvents","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","constructorName","targetSource","unshift","onPropertySymbol","findEventTasks","keys","match","exec","evtName","symbolCaptureEventName","captureTasks","removeTasks","results","foundTasks","captureFalseTasks","captureTrueTasks","concat","Event","targetName","method","callbacks","nativeDelegate","opts","forEach","descriptor","ignoreProperties","tip","filter","ip","targetIgnoreProperties","op","patchFilteredProperties","filteredProperties","getOnEventNames","getOwnPropertyNames","startsWith","map","substring","propertyDescriptorPatch","patchTargets","ignoreErrorProperties","eventNames","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","patchQueueMicrotask","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","clearTask","delay","timer","handle","ref","unref","bind","id","patchCustomElements","customElements","eventTargetPatch","EVENT_TARGET","patchEvent","legacyPatch","clear","blockingMethods","s","XMLHttpRequestEventTarget","patchXHR","XHR_TASK","XHR_SYNC","XHR_LISTENER","XHR_SCHEDULED","XHR_URL","XHR_ERROR_BEFORE_SCHEDULED","XMLHttpRequest","XMLHttpRequestPrototype","findPendingTask","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","newListener","readyState","DONE","aborted","loadTasks","oriInvoke","storedTask","sendNative","placeholderCallback","abortNative","openNative","XMLHTTPREQUEST_SOURCE","fetchTaskAborting","fetchTaskScheduling","url","geolocation","findPromiseRejectionHandler","eventTasks","PromiseRejectionEvent","evt"],"sourceRoot":"webpack:///","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/app-v2.0.0-beta/styles.css.map b/app-v2.0.0-beta/styles.css.map index 4707827..bcb8011 100644 --- a/app-v2.0.0-beta/styles.css.map +++ b/app-v2.0.0-beta/styles.css.map @@ -1 +1 @@ -{"version":3,"file":"styles.css","mappings":"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yJJ;;AU9JE;;;;;;;ER+BA;EACA;EACA;EACA;EAEA;EQ5BE;AVqKJ;;AW7NE;EACE;AXgOJ;;AW7NE;;EAEE;EACA;AXgOJ;;AMrPW;ECmEP;EAAA;EAAA;EAAA;EAAA;AP0LJ;;AM7PW;ECmEP;EAAA;EAAA;EAAA;EAAA;APkMJ;;AYxOE;ELsCE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP+MJ;;AaxQE;ENyDE;EAAA;EAAA;EAAA;APsNJ;;AclNE;ECuPE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;APiOJ;Ac5ME;ECsOE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;AP2OJ;AgBzOM;EACE;EAEA;AhB0OR;;AgB7OM;EACE;EAEA;AhB+OR;;AcxKI;EAq8DA,mBGh9DmB;AjBuLvB;AgBtPM;EACE;EAEA;AhBuPR;AgB1PM;EACE;EAEA;AhB2PR;;AgB9PM;EACE;EAEA;AhBgQR;AkBrSE;EH2RE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;AP+QJ;;AmBhRE;;EJ4PE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;AP4RJ;;AoBrQI;;ELoOA;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;APySJ;;AoBpQM;EACE;ApBuQR;AoBpQM;EACE;ApBsQR;;AMnXW;ECmEP;EAAA;EAAA;EAAA;EAAA;APwTJ;;AqBrXE;Ed6DE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APqUJ;;AsB/UE;EfUE;EAAA;EAAA;EAAA;EAAA;AP6UJ;;AuBrXE;ERmSE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;APyVJ;;AuBjYE;ERmSE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;APqWJ;;AwB/XI;EjB0BA;EAAA;EAAA;EAAA;EAAA;AP6WJ;;AMhbW;ECmEP;EAAA;EAAA;EAAA;EAAA;APqXJ;;AyBvUE;ElB9CE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APuYJ;;AyBnVE;EvB1BA;EACA;EACA;EACA;EAEA;AFgXF;;AMldW;ECmEP;EAAA;EAAA;EAAA;EAAA;EAAA;APwZJ;;A0B1aE;EnBkBE;EAAA;EAAA;EAAA;EAAA;APgaJ;;AuBxcE;ERmSE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;AP4aJ;;A2BhWE;EZ+KE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;APwbJ;;A4BncE;EbsQE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;APocJ;A6B1fE;EtBsDE;EAAA;EAAA;EAAA;AP0cJ;;A8BzaE;Ef0NE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;APsdJ;;A+BngBE;EhBwSE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;APkeJ;;AgCzgBE;EjBkSE;EACA;ER5PA;EAAA;EAAA;EAAA;EAAA;EAAA;UAAA;EAAA;AP8eJ;;AgB5eM;EACE;EAEA;AhB8eR;;AiC5jBE;EACE;EAIA;AjC4jBJ;AiCrjBI;EACE;AjCujBN;;AiCnjBE;EACE;AjCsjBJ;;AiCnjBE;EACE;EACA;EACA;EAEA;EAIA;AjCkjBJ;AkCniBI;EDXE;AjCijBN;;AkCrlBE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EAGA;EAGA;EACA;EAMA;AlC4kBJ;AkC1kBI;EACE;EACA;AlC4kBN;;AmC5lBE;EAEE;EAGA;EACA;EACA;EACA;AnC4lBJ;;AmCxlBE;EACE;EACA,aA3BwB;AnCsnB5B;AmCzlBI;EAGE;AnCylBN;;AmCjlBE;EACE;EACA;EACA,aA1Cc;AnC8nBlB;;AmChlBE;EAGE;EACA;EACA;EACA,aApDc;EAwDd;EACA;EACA;AnC8kBJ;;AmC3kBE;EAEE;EACA;EACA;EACA;EACA;EAEA,aApEuB;EAqEvB;EACA;EACA;EACA;AnC4kBJ;AmC1kBI;EACE;AnC4kBN;AmCvkBM;EAGE;AnCukBR;;AmClkBE;EACE,+BAtFqB;AnC2pBzB;;AmClkBE;EAEE;EACA;EACA;AnCokBJ;AmC9jBI;EACE;EACA;AnCgkBN;;AmC5jBE;EACE;AnC+jBJ;;AmC1jBE;EACE;EACA,aArHc;EA0Hd;EAIA;EAGA;EACA;AnCojBJ;;AmChjBE;EACE;EAKA;EAKA;AnC2iBJ;;AoC5rBE;EACE;ApC+rBJ;;AoCzrBE;EAyCA;EACA;EAxCE;EACA;ApC6rBJ;;AoCprBE;EA6BA;EACA;EA5BE;ApCwrBJ;;AoC9qBE;AACA;AAEA;EAEE;ApC+qBJ;;AoC5qBE;EAEE;ApC8qBJ;;AqC7sBE;EACE;ArCgtBJ;AqC9sBI;ECfF;EACA;EACA;EACA;EACA;EDaI;EACA;EACA;EACA;EAYA;ArCysBN;AqCjsBI;EACE;ArCmsBN;;AkCxpBM;EG7BA;ArCyrBN;;AqCpuBE;EACE;ArCuuBJ;AqCruBI;ECfF;EACA;EACA;EACA;EACA;EDaI;EACA;EACA;EACA;EAYA;ArCguBN;AqCxtBI;EACE;ArC0tBN;;AkC/qBM;EG7BA;ArCgtBN;;AuC9vBE;EAII;AvC8vBN;;AMlwBW;ECmEP;EAAA;EAAA;EAAA;EAAA;APusBJ;;AwCnwBI;EjC4DA;AP2sBJ;;AwClwBI;EjCuDA;AP+sBJ;;AMlxBW;ECmEP;APmtBJ;;AyC1vBE;EACE,0BAXe;AzCwwBnB;AyC5vBI;EACE,cANa;AzCowBnB;;AyClyBI;;EACE,cAkBM;AzCoxBZ;AyClyBI;;EAKE,mBASM;AzCwxBZ;AyCryBM;;EACE,cAeO;AzCyxBf;;AyC/yBI;;EACE,cAmBK;AzCgyBX;AyC/yBI;;EAKE,mBAUK;AzCoyBX;AyClzBM;;EACE,cAeO;AzCsyBf;;AyC5zBI;;EACE,cAmBK;AzC6yBX;AyC5zBI;;EAKE,mBAUK;AzCizBX;AyC/zBM;;EACE,cAeO;AzCmzBf;;AyCz0BI;;EACE,cAoBG;AzCyzBT;AyCz0BI;;EAKE,mBAWG;AzC6zBT;AyC50BM;;EACE,cAeO;AzCg0Bf;;AyC1xBI;;EACE,cA/Ba;AzC6zBnB;AyC3xBI;;EACE,mBAnCa;AzCi0BnB;;A0Ch1BE;EAIE;EACA;A1Cg1BJ;;A0Ct0BI;EnC0CA;APgyBJ;;A0C10BI;EnC0CA;APoyBJ;;A0C90BI;EnC0CA;APwyBJ;;A0Cl1BI;EnC0CA;AP4yBJ;;A0Ct1BI;EnC0CA;APgzBJ;;A0C11BI;EnC0CA;APozBJ;;A0C91BI;EnC0CA;APwzBJ;;A0Cl2BI;EnC0CA;AP4zBJ;;A0Ct2BI;EnC0CA;APg0BJ;;A0C12BI;EnC0CA;APo0BJ;;A0C92BI;EnC0CA;APw0BJ;;A0Cl3BI;EnC0CA;AP40BJ;;A0Ct3BI;EnC0CA;APg1BJ;;A0C13BI;EnC0CA;APo1BJ;;A0C93BI;EnC0CA;APw1BJ;;A0Cl4BI;EnC0CA;AP41BJ;;A0Ct4BI;EnC0CA;APg2BJ;;A0C14BI;EnC0CA;APo2BJ;;A0C94BI;EnC0CA;APw2BJ;;A0Cl5BI;EnC0CA;AP42BJ;;A0Ct5BI;EnC0CA;APg3BJ;;A0C15BI;EnC0CA;APo3BJ;;A0C95BI;EnC0CA;APw3BJ;;A0Cl6BI;EnC0CA;AP43BJ;;A0Ct6BI;EnC0CA;APg4BJ;;A0Cn6BI;EACE;A1Cs6BN;;AYz7BE;ELqDE;EAAA;EAAA;EAAA;EAAA;EAAA;AP64BJ;;A2Ch8BE;EpCmDE;EAAA;APk5BJ;A4CpyBI;EACE;IClIF;E7Cy6BF;AACF;A4Cx1BE;ErC3EI;EsCZF;EtCwBA;AP45BJ;A4Cz1BM;EAJJ;IAKM;E5C41BN;AACF;A8C55BE;EF0DA;IASM;IrCxEJ;EPs6BF;AACF;A4Cl1BE;ErCjGI;EsCZF;EtCwBA;AP46BJ;A2C59BI;EpCgDA;EAAA;APg7BJ;A4Cl0BI;EACE;IClIF;E7Cu8BF;AACF;A4Ct3BE;ErC3EI;EsCZF;EtCwBA;AP07BJ;A4Cv3BM;EAJJ;IAKM;E5C03BN;AACF;A8C17BE;EF0DA;IASM;IrCxEJ;EPo8BF;AACF;A4Ch3BE;ErCjGI;EsCZF;EtCwBA;AP08BJ;A2Ct/BI;EpC4CA;EAAA;AP88BJ;A4Ch2BI;EACE;IClIF;E7Cq+BF;AACF;A4Cp5BE;ErC3EI;EsCZF;EtCwBA;APw9BJ;A4Cr5BM;EAJJ;IAKM;E5Cw5BN;AACF;A8Cx9BE;EF0DA;IASM;IrCxEJ;EPk+BF;AACF;A4C94BE;ErCjGI;EsCZF;EtCwBA;APw+BJ;Aa5iCE;ENoEE;EAAA;AP4+BJ;;Ac2+CE;EPv9EE;APg/BJ;Ack6CE;EPl5EE;APm/BJ;AcsgDE;EAGE;IP5/EA;EPu/BF;AACF;AcygDE;EAGE;IPpgFA;EP4/BF;AACF;AcnDE;EP18BE;APggCJ;A+C3+BE;ExCrBE;APmgCJ;AgD9+BE;;EzCrBE;APugCJ;AiDz6BE;E1C9FE;AP0gCJ;AiDl6BE;E1CxGE;AP6gCJ;Acm9CI;EPh+EA;APghCJ;Ac09CI;EP1+EA;APmhCJ;AkDv8BI;;E3C5EA;APuhCJ;AkDnkBE;E3CpdE;AP0hCJ;AkDtkBE;E3CpdE;AP6hCJ;Aco/CE;EPjhFE;APgiCJ;AmDniCI;E5CGA;APmiCJ;AmDtiCI;E5CGA;APsiCJ;AmDnjCI;E5CaA;APyiCJ;AoD7hCE;;;E7CZE;AP8iCJ;AoDliCE;;;E7CZE;APmjCJ;AoDviCE;;;E7CZE;APwjCJ;AgBtjCM;EACE;EAEA;AhBujCR;;AgB1jCM;EACE;EAEA;AhB4jCR;;AkDr/BI;;E3C5EA;APskCJ;AgBpkCM;EACE;EAEA;AhBqkCR;Ac64CE;EPv9EE;AP6kCJ;AmDhlCI;E5CGA;APglCJ;AmD7lCI;E5CaA;APmlCJ;Aco4CE;EPv9EE;APslCJ;A+CvjCE;ExC/BE;APylCJ;Ac/IE;EP18BE;AP4lCJ;AiDp/BE;E1CxGE;AP+lCJ;AmDlmCI;E5CGA;APkmCJ;AoDtlCE;;;E7CZE;APumCJ;AoD3lCE;;;E7CZE;AP4mCJ;AoDhmCE;;;E7CZE;APinCJ;AciyCE;EPl5EE;APonCJ;Acq4CE;EAGE;IP5/EA;EPwnCF;AACF;Acw4CE;EAGE;IPpgFA;EP6nCF;AACF;Acy1CE;EPv9EE;APioCJ;A+C5mCE;ExCrBE;APooCJ;AgD/mCE;;EzCrBE;APwoCJ;AiD1iCE;E1C9FE;AP2oCJ;AiDniCE;E1CxGE;AP8oCJ;Ack1CI;EPh+EA;APipCJ;Acy1CI;EP1+EA;APopCJ;AmDvpCI;E5CGA;APupCJ;AoD3oCE;;;E7CZE;AP4pCJ;Ac61CE;EAGE;IP5/EA;EPgqCF;AACF;Acg2CE;EAGE;IPpgFA;EPqqCF;EckzCA;IPv9EE;EPwqCF;E+CnpCA;IxCrBE;EP2qCF;EgDtpCA;;IzCrBE;EP+qCF;EiDjlCA;I1C9FE;EPkrCF;EiD1kCA;I1CxGE;EPqrCF;Ec2yCE;IPh+EA;EPwrCF;EckzCE;IP1+EA;EP2rCF;EmD9rCE;I5CGA;EP8rCF;EoDlrCA;;;I7CZE;EPmsCF;AACF;Acx+BI;EP5NA;APusCJ;AgBrsCM;EACE;EAEA;AhBssCR;;AgBzsCM;EACE;EAEA;AhB2sCR;AmB7tCE;EZaE;APmtCJ;;AqDzwCE;EACE,qCCHwB;AtD+wC5B;;AqDzwCE;EACE,aAPc;ArDmxClB;;AqDzwCE;EACE,aAZc;ArDwxClB;;AuDvsCM;EACE,0BAtBkB;AvDguC1B;AuDrsCU;EACE;AvDusCZ;AuDlsCU;EACE;AvDosCZ;AuD/rCU;EACE;AvDisCZ;AuD3rCQ;EACE,0BA9CyB;AvD2uCnC;;AcrSE;EP18BE;APmvCJ;AmDhwCI;E5CaA;APsvCJ;AciuCE;EPv9EE;APyvCJ;AmD5vCI;E5CGA;AP4vCJ;AmDzwCI;E5CaA;AP+vCJ;AcwtCE;EPv9EE;APkwCJ;A+CnuCE;ExC/BE;APqwCJ;Ac3TE;EP18BE;APwwCJ;AiDhqCE;E1CxGE;AP2wCJ;AmD9wCI;E5CGA;AP8wCJ;AoDlwCE;;;E7CZE;APmxCJ;AoDvwCE;;;E7CZE;APwxCJ;AoD5wCE;;;E7CZE;AP6xCJ;AoDjxCE;;;E7CZE;APkyCJ;;AcxVE;EP18BE;APsyCJ;AmDnzCI;E5CaA;APyyCJ;Ac8qCE;EPv9EE;AP4yCJ;AmD/yCI;E5CGA;AP+yCJ;AmD5zCI;E5CaA;APkzCJ;AcqqCE;EPv9EE;APqzCJ;A+CtxCE;ExC/BE;APwzCJ;Ac9WE;EP18BE;AP2zCJ;AiDntCE;E1CxGE;AP8zCJ;AmDj0CI;E5CGA;APi0CJ;AoDrzCE;;;E7CZE;APs0CJ;AoD1zCE;;;E7CZE;AP20CJ;AoD/zCE;;;E7CZE;APg1CJ;AoDp0CE;;;E7CZE;APq1CJ;;AoB51CQ;EACE;ApB+1CV;;AoBz1CU;EACE;EACA;ApB41CZ;;AwDp2CE;EACE,gBA7BO;AxDo4CX;;AwDh2CE;EACE;AxDm2CJ;;AwD71CE;EAEE;;qEAAA;EAGA;AxD+1CJ;;AwD/5CE;EACE;EACA;AxDk6CJ;;AwDp7CE;EACE;EACA;AxDu7CJ;;AwDp7CE;EAEE;EACA;AxDs7CJ;;AM/7CW;ECmEP;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APu4CJ;AyDp8CI;ElD6DA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APi5CJ;AyDv8CI;ElDsDA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP25CJ;;AM99CW;ECmEP;AP+5CJ;;AqBr+CE;EdsEE;EAAA;EAAA;APq6CJ;;AsBj9CE;Ef4CE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APm7CJ;AsBv9CM;EfoCF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APg8CJ;AsB/9CM;Ef+BF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP68CJ;AsBt+CM;EfyBF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP09CJ;;AsB59CE;EfEE;AP89CJ;;A0D19CI;EnDJA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APq/CJ;AuB7hDE;EhBwCE;APw/CJ;A0D/+CM;EACE;A1Di/CR;A0D9+CM;EnDbF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APwgDJ;A0Dv/CM;EnDjBF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APqhDJ;A0DhgDM;EnDrBF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APkiDJ;;A0D5/CE;EnDtCE;APsiDJ;;AuB9kDE;EhBwCE;AP0iDJ;;A2DhmDI;EpDsDA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APyjDJ;A2DxmDI;EpD+CA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APukDJ;A2D/mDI;EpDwCA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APqlDJ;;A2DtmDE;EpDiBE;APylDJ;;AwBxpDI;EjB+DA;EAAA;EAAA;EAAA;EAAA;EAAA;EiB/CE;AxBkpDN;AwBhpDM;EjB6CF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EiBsBF;EACA;EACA;AxBulDF;AwBxpDM;EjByCF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EiBsBF;EACA;EACA;AxBmmDF;AwBhqDM;EjBqCF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EiBsBF;EACA;EACA;AxB+mDF;;AM1sDW;ECmEP;EAAA;EAAA;EAAA;EAAA;AP+oDJ;;AyBpsDE;ElBqDE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APmqDJ;;AyBptDE;;ElBiDE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APgrDJ;;AyB3tDI;;ElB2CA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP6rDJ;;AyBjuDI;;ElBoCA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP0sDJ;;AyBxuDE;ElB8BE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP8tDJ;;AyBzvDE;ElB2BE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APkvDJ;;AyB1wDE;ElBwBE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APswDJ;;A4D5iCE;;ErD1tBE;AP2wDJ;A4DlYI;;ErDz4CA;AP+wDJ;;AyBzxDI;;;EAGE;AzB4xDN;;AyBlxDE;ElBHE;EAAA;EAAA;AP2xDJ;;AyB5wDM;EACE;AzB+wDR;AyBrwDM;EACE;AzBuwDR;;AMr2DW;ECmEP;EAAA;EAAA;EAAA;APyyDJ;;AM52DW;ECmEP;AP6yDJ;;AwDnzDE;EACE,gBA7BO;AxDm1DX;AwD/yDE;EACE;AxDizDJ;AwD3yDE;EAEE;;qEAAA;EAGA;AxD4yDJ;AwD52DE;EACE;EACA;AxD82DJ;AwDh4DE;EACE;EACA;AxDk4DJ;AwD/3DE;EAEE;EACA;AxDg4DJ;AwDzyDI;EACI;AxD2yDR;;A0Bx4DE;EnB+DE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APy1DJ;A0Br5DI;EnB4DA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APw2DJ;A0Bh6DI;EnBwDA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APu3DJ;A0B36DI;EnBoDA;EAAA;AP23DJ;A0B36DI;EnBgDA;EAAA;AP+3DJ;A0B36DI;EnB4CA;EAAA;APm4DJ;;A0Bv4DE;EnBIE;APu4DJ;;AM18DW;ECmEP;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP25DJ;;A6Dr9DI;EtD0DA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP+6DJ;A6Dp+DI;EtDqDA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;APk8DJ;AuB1+DE;EhBwCE;APq8DJ;A6Dh/DI;EAEE;A7Di/DN;;AM3gEW;ECmEP;AP48DJ;;A8Dl+DM;EvDsBF;APg9DJ;A8Dl+DM;EvDkBF;APm9DJ;A8Dj+DM;EvDcF;APs9DJ;A8Dh+DM;EvDUF;APy9DJ;A+Dl/DE;ExDyBE;EAAA;AP69DJ;;A8Dx9DM;EvDLF;EAAA;APk+DJ;A8Dz9DM;EvDTF;EAAA;APs+DJ;A8Dz9DM;EvDbF;EAAA;AP0+DJ;A8Dz9DM;EvDjBF;EAAA;AP8+DJ;A+DvgEE;ExDyBE;EAAA;EAAA;EAAA;APo/DJ;;A8Dl9DM;EvDlCF;EAAA;APy/DJ;A8Dn9DM;EvDtCF;EAAA;AP6/DJ;A8Dn9DM;EvD1CF;EAAA;APigEJ;A8Dn9DM;EvD9CF;EAAA;APqgEJ;A+D9hEE;ExDyBE;EAAA;EAAA;EAAA;EAAA;AP4gEJ;;A8D78DI;EvD/DA;APghEJ;A8D58DM;EvDpEF;APmhEJ;A8D38DM;EvDxEF;APshEJ;A8D18DM;EvD5EF;APyhEJ;A8Dz8DM;EvDhFF;AP4hEJ;A+DrjEE;ExDyBE;EAAA;EAAA;EAAA;APkiEJ;;A8Dj8DI;ECxKF;EACA;A/D6mEF;A+DrmEE;EACE;A/DumEJ;A+DlmEI;EACE;A/DomEN;A+DhmEE;EACE;A/DkmEJ;A+D7lEE;EA1BA;EACA;A/D0nEF;A+D7lEE;EA9BA;EACA;A/D8nEF;A+D7lEE;EAlCA;EACA;A/DkoEF;;A8Dv9DI;EC5KF;EACA;A/DuoEF;A+D/nEE;EACE;A/DioEJ;A+D5nEI;EACE;A/D8nEN;A+D1nEE;EACE;A/D4nEJ;A+DvnEE;EA1BA;EACA;A/DopEF;A+DvnEE;EA9BA;EACA;A/DwpEF;A+DvnEE;EAlCA;EACA;A/D4pEF;;A8D59DI;;;;EvD1HA;AP6lEJ;;AgE1oEE;ED1BA;EACA;ExDsEE;EyDjEF;EACA;AhEqqEF;A+DnqEE;EACE;A/DqqEJ;A+DhqEI;EACE;A/DkqEN;A+D9pEE;EACE;A/DgqEJ;A+D3pEE;EA1BA;EACA;A/DwrEF;A+D3pEE;EA9BA;EACA;A/D4rEF;A+D3pEE;EAlCA;EACA;A/DgsEF;AgElqEI;EzDwCA;EyDjEF;EACA;AhE+rEF;AgEjqEI;EzDkCA;EyDjEF;EACA;AhEosEF;AgEhqEI;EzD4BA;EyDjEF;EACA;AhEysEF;A+DlqEE;ExDyBE;EAAA;AP6oEJ;;AgEroEE;EzDRE;EyDoBA;EACA;EACA;AhE8nEJ;;AiEzsEI;EFlBF;EACA;A/D+tEF;A+DvtEE;EACE;A/DytEJ;A+DptEI;EACE;A/DstEN;A+DltEE;EACE;A/DotEJ;A+D/sEE;EA1BA;EACA;A/D4uEF;A+D/sEE;EA9BA;EACA;A/DgvEF;A+D/sEE;EAlCA;EACA;A/DovEF;AiEhuEM;E1DkDF;EAAA;E0D9DF;AjEivEF;AiEjuEM;E1D8CF;EAAA;E0D9DF;AjEsvEF;AiE/tEM;E1DuCF;EAAA;E0D9DF;AjE2vEF;AiE7tEM;E1DgCF;EAAA;E0D9DF;AjEgwEF;A+D3tEE;ExDyBE;EAAA;E0D9DF;AjEqwEF;;A6B1wEE;EtBmEE;EAAA;EAAA;AP6sEJ;;A8BxqEE;EvBrCE;EAAA;APktEJ;AkEt9DE;E3D5PE;APqtEJ;;AkEn+DE;E3DlPE;APytEJ;;AkEn9DE;E3DtQE;AP6tEJ;;AoDjtEE;;;E7CZE;APmuEJ;AkE97DE;;E3DrSE;APuuEJ;;AkE37DE;E3D5SE;AP2uEJ;;AkE55DE;E3D/UE;AP+uEJ;;AkEt5DE;E3DzVE;APmvEJ;;AkE54DE;;;E3DvWE;APyvEJ;;AgBvvEM;EACE;EAEA;AhByvER;;AmEtyEE;EAEE;AnEwyEJ;;AkEpxDE;E3D9eE;APswEJ;AkElxDE;E3DpfE;APywEJ;AkEryDE;E3DpeE;AP4wEJ;;AoEj1EE;E7DqEE;APgxEJ;AoEl1EI;E7DkEA;APmxEJ;AoEh1EI;E7D6DA;APsxEJ;;AD/vEE;EACE;ACkwEJ;;AD3vEE;EACE;AC8vEJ;;AD1vEI;EACE;AC6vEN;;ADzvEE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AC4vEJ;;ADzvEE;;EAEE;AC4vEJ;;ADvvEE;EAEE;ACyvEJ;;AD92EE;EACE,WATS;EAUT,YAVS;EAWT,iBAXS;AC43Eb;AD72EI;EACE;AC+2EN;AD12EI;EACE;AC42EN;ADv2EI;EACE;ACy2EN;ADp2EI;EACE;EACA;ACs2EN;ADj2EI;EACE;ACm2EN;AD91EI;EACE;EACA;ACg2EN;AD11EM;EACE;AC41ER;ADv1EM;EACE;EACA;ACy1ER;ADp1EM;EACE;ACs1ER;ADj1EM;EACE;EACA;ACm1ER;;ADt5EE;EACE,WAVW;EAWX,YAXW;EAYX,iBAZW;ACq6Ef;ADr5EI;EACE;ACu5EN;ADl5EI;EACE;ACo5EN;AD/4EI;EACE;ACi5EN;AD54EI;EACE;EACA;AC84EN;ADz4EI;EACE;AC24EN;ADt4EI;EACE;EACA;ACw4EN;ADl4EM;EACE;ACo4ER;AD/3EM;EACE;EACA;ACi4ER;AD53EM;EACE;AC83ER;ADz3EM;EACE;EACA;AC23ER;;AD97EE;EACE,WARS;EAST,YATS;EAUT,iBAVS;AC28Eb;AD77EI;EACE;AC+7EN;AD17EI;EACE;AC47EN;ADv7EI;EACE;ACy7EN;ADp7EI;EACE;EACA;ACs7EN;ADj7EI;EACE;ACm7EN;AD96EI;EACE;EACA;ACg7EN;AD16EM;EACE;AC46ER;ADv6EM;EACE;EACA;ACy6ER;ADp6EM;EACE;ACs6ER;ADj6EM;EACE;EACA;ACm6ER;;ADz1EE;EACE;EACA;AC41EJ;AkCj9EI;EnCwHE;EACA;AC41EN;;ADv1EI;EACE;EACA;AC01EN;;ADr1EI;EACE;EACA;ACw1EN;;ADn1EI;EAWI;EAMF;ACu0EN;;AG3gFE;EImEE;EJjEA;EACA;AH8gFJ;;AqEz9EE;;E9DWE;APm9EJ;;AIlgFI;;EACE;AJsgFN;;AIlgFE;EACE;AJqgFJ;AIngFI;EACE;AJqgFN;;AIjgFE;EACE;EACA;AJogFJ;AIlgFI;EACE;AJogFN;;AIhgFE;EACE;AJmgFJ;;AIhgFE;EACE;EACA;AJmgFJ;;AI//EI;EACE;EACA;EACA;AJkgFN;;AI9/EE;EACE;EACA;AJigFJ;AI//EI;EACE;AJigFN;;AI7/EE;EACE;EACA;AJggFJ;AI9/EI;EACE;AJggFN;AI7/EI;EACE;AJ+/EN;;AI3/EE;;EAEE;AJ8/EJ;;AI5+EI;EACE,iBALc;AJo/EpB;;AKlhFE;EACE;ALqhFJ;;AKhhFE;;;EAGE;ALmhFJ;;AKhhFE;EACE;ALmhFJ;;AKhhFE;;EAEE;ALmhFJ;;AKhhFE;;EAEE;EACA;ALmhFJ;;AK/jFE;EAiDI,0BA/Ba;ALijFnB;;AK9gFE;EACE,0BApCe;ALqjFnB;;AK9gFE;EAOI;AL2gFN;;AK3kFE;EA2EI;ALogFN;;AK/kFE;EAoFM;AL+/ER;;AK76EE;EACE,kCA9MA;AL8nFJ;;AK76EE;;EAEE,kCAViB;AL07ErB;;AK76EE;;EAEE;ALg7EJ;;AK76EE;;EAEE;ALg7EJ;;AK76EE;;EAEE,mBAxBc;ALw8ElB;;AK76EE;;EAEE,mBA5BuB;AL48E3B;;AKrpFE;EACE;EACA;ALwpFJ;;AKrpFE;EAII;ALqpFN;;AK5oFE;EACE;AL+oFJ;;AK7nFE;;EASI;ALynFN;;AK3oFE;EASA;IASI;EL8nFJ;AACF;AKtiFE;EE9EE;EFgFA;EACA;ALwiFJ;AKv+EE;EACE,mCA9MA;ALurFJ;AKt+EE;;EAEE,kCAViB;ALk/ErB;AKr+EE;;EAEE;ALu+EJ;AKp+EE;;EAEE;ALs+EJ;AKn+EE;;EAEE,mBAxBc;AL6/ElB;AKl+EE;;EAEE,mBA5BuB;ALggF3B;AKzsFE;EACE;EACA;AL2sFJ;AKxsFE;EAII;ALusFN;AK9rFE;EACE;ALgsFJ;AK9qFE;;EASI;ALyqFN;AK3rFE;EASA;IASI;EL6qFJ;AACF;AKjhFE;EACE,kCA9MA;ALiuFJ;AKhhFE;;EAEE,kCAViB;AL4hFrB;AK/gFE;;EAEE;ALihFJ;AK9gFE;;EAEE;ALghFJ;AK7gFE;;EAEE,mBAxBc;ALuiFlB;AK5gFE;;EAEE,mBA5BuB;AL0iF3B;AKnvFE;EACE;EACA;ALqvFJ;AKlvFE;EAII;ALivFN;AKxuFE;EACE;AL0uFJ;AKxtFE;;EASI;ALmtFN;AKruFE;EASA;IASI;ELutFJ;AACF;;AKjnFE;EE5FE;APitFJ;;AKjnFE;EACE;ALonFJ;AKlnFI;EACE;ALonFN;AKjnFI;EACE;ALmnFN;;AK/mFE;EACE;ALknFJ;;AgEvtFE;EzDRE;EyDoBA;EACA;EACA;AhEgtFJ;A+DvvFI;EACE;A/DyvFN;;AsEhzFE;EACE;AtEmzFJ;;AsEhzFE;EACE;AtEmzFJ;;AMpzFW;ECmEP;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AP6vFJ;;AMh0FW;ECmEP;EAAA;APkwFJ;;AuEp0FI;EACE;AvEu0FN;AuEp0FI;EACE;AvEs0FN;AuEn0FI;EACE;AvEq0FN;;AwEv0FE;EACE,yBALmC;EAMnC;AxE00FJ;;AwEv0FE;EACE,uBAXwB;EAYxB;AxE00FJ;AwEx0FI;EACE,uBAb2B;AxEu1FjC;AwEv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","sources":["./node_modules/diagram-js/assets/diagram-js.css","./node_modules/bpmn-js/dist/assets/bpmn-font/css/bpmn.css","./node_modules/material-icons/iconfont/material-icons.css","./node_modules/@angular/material/badge/_badge-theme.scss","./src/styles.scss","./node_modules/@angular/material/core/typography/_typography.scss","./node_modules/@angular/material/core/typography/_typography-utils.scss","./node_modules/@angular/material/bottom-sheet/_bottom-sheet-theme.scss","./node_modules/@angular/material/button-toggle/_button-toggle-theme.scss","./node_modules/@angular/material/datepicker/_datepicker-theme.scss","./node_modules/@angular/material/core/style/_sass-utils.scss","./node_modules/@material/theme/_css.scss","./node_modules/@angular/material/grid-list/_grid-list-theme.scss","./node_modules/@angular/material/core/style/_list-common.scss","./node_modules/@angular/material/toolbar/_toolbar-theme.scss","./node_modules/@angular/material/tree/_tree-theme.scss","./node_modules/@angular/material/card/_card-theme.scss","./node_modules/@angular/material/tooltip/_tooltip-theme.scss","./node_modules/@material/textfield/_text-field.scss","./node_modules/@material/typography/_typography.scss","./node_modules/@material/rtl/_rtl.scss","./node_modules/@material/textfield/_variables.scss","./node_modules/@material/floating-label/_floating-label-theme.scss","./node_modules/@angular/material/form-field/_form-field-subscript.scss","./node_modules/@angular/material/form-field/_form-field-theme.scss","./node_modules/@angular/material/dialog/_dialog-theme.scss","./node_modules/@angular/material/chips/_chips-theme.scss","./node_modules/@material/form-field/_form-field.scss","./node_modules/@angular/material/slider/_slider-theme.scss","./node_modules/@angular/material/list/_list-theme.scss","./node_modules/@angular/material/tabs/_tabs-theme.scss","./node_modules/@material/button/_button-base.scss","./node_modules/@material/fab/_fab.scss","./node_modules/@angular/material/snack-bar/_snack-bar-theme.scss","./node_modules/@material/data-table/_data-table.scss","./node_modules/@material/data-table/_data-table-cell.scss","./node_modules/@material/data-table/_data-table-header-cell.scss","./node_modules/@angular/material/core/ripple/_ripple.scss","./node_modules/@angular/cdk/a11y/_index.scss","./node_modules/@angular/cdk/overlay/_index.scss","./node_modules/@angular/cdk/text-field/_index.scss","./node_modules/@angular/material/core/focus-indicators/_private.scss","./node_modules/@angular/material/core/style/_layout-common.scss","./node_modules/@angular/material/core/ripple/_ripple-theme.scss","./node_modules/@angular/material/core/option/_option-theme.scss","./node_modules/@angular/material/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss","./node_modules/@angular/material/core/_core-theme.scss","./node_modules/@angular/material/progress-bar/_progress-bar-theme.scss","./node_modules/@material/linear-progress/_linear-progress-theme.scss","./node_modules/@material/theme/_gss.scss","./node_modules/@material/dom/_dom.scss","./node_modules/@material/textfield/helper-text/_mixins.scss","./node_modules/@material/textfield/character-counter/_mixins.scss","./node_modules/@material/textfield/icon/_mixins.scss","./node_modules/@material/ripple/_ripple-theme.scss","./node_modules/@material/line-ripple/_line-ripple-theme.scss","./node_modules/@material/notched-outline/_notched-outline-theme.scss","./node_modules/@angular/material/form-field/_form-field-focus-overlay.scss","./node_modules/@angular/material/form-field/_mdc-text-field-theme-variable-refresh.scss","./node_modules/@angular/material/form-field/_form-field-native-select.scss","./node_modules/@angular/material/form-field/_form-field-density.scss","./node_modules/@angular/material/select/_select-theme.scss","./node_modules/@angular/material/slide-toggle/_slide-toggle-theme.scss","./node_modules/@angular/material/radio/_radio-theme.scss","./node_modules/@material/list/_list.scss","./node_modules/@angular/material/checkbox/_checkbox-theme.scss","./node_modules/@angular/material/button/_button-theme.scss","./node_modules/@angular/material/button/_button-theme-private.scss","./node_modules/@angular/material/button/_icon-button-theme.scss","./node_modules/@angular/material/button/_fab-theme.scss","./node_modules/@material/data-table/_data-table-theme.scss","./node_modules/@angular/material/table/_table-theme.scss","./node_modules/@angular/material/progress-spinner/_progress-spinner-theme.scss","./node_modules/@angular/material/core/style/_elevation.scss","./node_modules/@angular/material/divider/_divider-theme.scss","./node_modules/@angular/material/icon/_icon-theme.scss","./node_modules/@angular/material/sidenav/_sidenav-theme.scss","./node_modules/@angular/material/stepper/_stepper-theme.scss","./node_modules/@angular/material/sort/_sort-theme.scss"],"sourcesContent":["/**\n * color definitions\n */\n.djs-container {\n --color-grey-225-10-15: hsl(225, 10%, 15%);\n --color-grey-225-10-35: hsl(225, 10%, 35%);\n --color-grey-225-10-55: hsl(225, 10%, 55%);\n --color-grey-225-10-75: hsl(225, 10%, 75%);\n --color-grey-225-10-80: hsl(225, 10%, 80%);\n --color-grey-225-10-85: hsl(225, 10%, 85%);\n --color-grey-225-10-90: hsl(225, 10%, 90%);\n --color-grey-225-10-95: hsl(225, 10%, 95%); \n --color-grey-225-10-97: hsl(225, 10%, 97%);\n\n --color-blue-205-100-45: hsl(205, 100%, 45%);\n --color-blue-205-100-45-opacity-30: hsla(205, 100%, 45%, 30%);\n --color-blue-205-100-50: hsl(205, 100%, 50%);\n --color-blue-205-100-95: hsl(205, 100%, 95%);\n\n --color-green-150-86-44: hsl(150, 86%, 44%);\n\n --color-red-360-100-40: hsl(360, 100%, 40%);\n --color-red-360-100-45: hsl(360, 100%, 45%);\n --color-red-360-100-92: hsl(360, 100%, 92%);\n --color-red-360-100-97: hsl(360, 100%, 97%);\n\n --color-white: hsl(0, 0%, 100%);\n --color-black: hsl(0, 0%, 0%); \n --color-black-opacity-05: hsla(0, 0%, 0%, 5%); \n --color-black-opacity-10: hsla(0, 0%, 0%, 10%);\n\n --bendpoint-fill-color: var(--color-blue-205-100-45-opacity-30);\n --bendpoint-stroke-color: var(--color-blue-205-100-50);\n\n --context-pad-entry-background-color: var(--color-white);\n --context-pad-entry-hover-background-color: var(--color-grey-225-10-95);\n\n --element-dragger-color: var(--color-blue-205-100-50);\n --element-hover-outline-fill-color: var(--color-blue-205-100-45);\n --element-selected-outline-stroke-color: var(--color-blue-205-100-50);\n\n --lasso-fill-color: var(--color-black-opacity-05);\n --lasso-stroke-color: var(--color-black);\n\n --palette-entry-color: var(--color-grey-225-10-15);\n --palette-entry-hover-color: var(--color-blue-205-100-45);\n --palette-entry-selected-color: var(--color-blue-205-100-50);\n --palette-separator-color: var(--color-grey-225-10-75);\n --palette-toggle-hover-background-color: var(--color-grey-225-10-55);\n --palette-background-color: var(--color-grey-225-10-97);\n --palette-border-color: var(--color-grey-225-10-75);\n\n --popup-body-background-color: var(--color-white);\n --popup-header-entry-selected-color: var(--color-blue-205-100-50);\n --popup-header-entry-selected-background-color: var(--color-black-opacity-10);\n --popup-header-separator-color: var(--color-grey-225-10-75);\n --popup-background-color: var(--color-grey-225-10-97);\n --popup-border-color: var(--color-grey-225-10-75);\n\n --resizer-fill-color: var(--color-blue-205-100-45-opacity-30);\n --resizer-stroke-color: var(--color-blue-205-100-50);\n\n --search-container-background-color: var(--color-grey-225-10-97);\n --search-container-border-color: var(--color-blue-205-100-50);\n --search-container-box-shadow-color: var(--color-blue-205-100-95);\n --search-container-box-shadow-inset-color: var(--color-grey-225-10-80);\n --search-input-border-color: var(--color-grey-225-10-75);\n --search-result-border-color: var(--color-grey-225-10-75);\n --search-result-highlight-color: var(--color-black);\n --search-result-selected-color: var(--color-blue-205-100-45-opacity-30);\n\n --shape-attach-allowed-stroke-color: var(--color-blue-205-100-50);\n --shape-connect-allowed-fill-color: var(--color-grey-225-10-97);\n --shape-drop-allowed-fill-color: var(--color-grey-225-10-97);\n --shape-drop-not-allowed-fill-color: var(--color-red-360-100-97);\n --shape-resize-preview-stroke-color: var(--color-blue-205-100-50);\n\n --snap-line-stroke-color: var(--color-blue-205-100-45-opacity-30);\n\n --space-tool-crosshair-stroke-color: var(--color-black);\n\n --tooltip-error-background-color: var(--color-red-360-100-97);\n --tooltip-error-border-color: var(--color-red-360-100-45);\n --tooltip-error-color: var(--color-red-360-100-45);\n}\n\n/**\n * outline styles\n */\n\n.djs-outline {\n fill: none;\n visibility: hidden;\n}\n\n.djs-element.hover .djs-outline,\n.djs-element.selected .djs-outline {\n visibility: visible;\n shape-rendering: geometricPrecision;\n stroke-dasharray: 3,3;\n}\n\n.djs-element.selected .djs-outline {\n stroke: var(--element-selected-outline-stroke-color);\n stroke-width: 1px;\n}\n\n.djs-element.hover .djs-outline {\n stroke: var(--element-hover-outline-fill-color);\n stroke-width: 1px;\n}\n\n.djs-shape.connect-ok .djs-visual > :nth-child(1) {\n fill: var(--shape-connect-allowed-fill-color) !important;\n}\n\n.djs-shape.connect-not-ok .djs-visual > :nth-child(1),\n.djs-shape.drop-not-ok .djs-visual > :nth-child(1) {\n fill: var(--shape-drop-not-allowed-fill-color) !important;\n}\n\n.djs-shape.new-parent .djs-visual > :nth-child(1) {\n fill: var(--shape-drop-allowed-fill-color) !important;\n}\n\nsvg.drop-not-ok {\n background: var(--shape-drop-not-allowed-fill-color) !important;\n}\n\nsvg.new-parent {\n background: var(--shape-drop-allowed-fill-color) !important;\n}\n\n.djs-connection.connect-ok .djs-visual > :nth-child(1),\n.djs-connection.drop-ok .djs-visual > :nth-child(1) {\n stroke: var(--shape-drop-allowed-fill-color) !important;\n}\n\n.djs-connection.connect-not-ok .djs-visual > :nth-child(1),\n.djs-connection.drop-not-ok .djs-visual > :nth-child(1) {\n stroke: var(--shape-drop-not-allowed-fill-color) !important;\n}\n\n.drop-not-ok,\n.connect-not-ok {\n cursor: not-allowed;\n}\n\n.djs-element.attach-ok .djs-visual > :nth-child(1) {\n stroke-width: 5px !important;\n stroke: var(--shape-attach-allowed-stroke-color) !important;\n}\n\n.djs-frame.connect-not-ok .djs-visual > :nth-child(1),\n.djs-frame.drop-not-ok .djs-visual > :nth-child(1) {\n stroke-width: 3px !important;\n stroke: var(--shape-drop-not-allowed-fill-color) !important;\n fill: none !important;\n}\n\n/**\n* Selection box style\n*\n*/\n.djs-lasso-overlay {\n fill: var(--lasso-fill-color);\n\n stroke-dasharray: 5 1 3 1;\n stroke: var(--lasso-stroke-color);\n\n shape-rendering: geometricPrecision;\n pointer-events: none;\n}\n\n/**\n * Resize styles\n */\n.djs-resize-overlay {\n fill: none;\n\n stroke-dasharray: 5 1 3 1;\n stroke: var(--shape-resize-preview-stroke-color);\n\n pointer-events: none;\n}\n\n.djs-resizer-hit {\n fill: none;\n pointer-events: all;\n}\n\n.djs-resizer-visual {\n fill: var(--resizer-fill-color);\n stroke-width: 1px;\n stroke-opacity: 0.5;\n stroke: var(--resizer-stroke-color);\n shape-rendering: geometricprecision;\n}\n\n.djs-resizer:hover .djs-resizer-visual {\n stroke: var(--resizer-stroke-color);\n stroke-opacity: 1;\n}\n\n.djs-cursor-resize-ns,\n.djs-resizer-n,\n.djs-resizer-s {\n cursor: ns-resize;\n}\n\n.djs-cursor-resize-ew,\n.djs-resizer-e,\n.djs-resizer-w {\n cursor: ew-resize;\n}\n\n.djs-cursor-resize-nwse,\n.djs-resizer-nw,\n.djs-resizer-se {\n cursor: nwse-resize;\n}\n\n.djs-cursor-resize-nesw,\n.djs-resizer-ne,\n.djs-resizer-sw {\n cursor: nesw-resize;\n}\n\n.djs-shape.djs-resizing > .djs-outline {\n visibility: hidden !important;\n}\n\n.djs-shape.djs-resizing > .djs-resizer {\n visibility: hidden;\n}\n\n.djs-dragger > .djs-resizer {\n visibility: hidden;\n}\n\n/**\n * drag styles\n */\n.djs-dragger * {\n fill: none !important;\n stroke: var(--element-dragger-color) !important;\n}\n\n.djs-dragger tspan,\n.djs-dragger text {\n fill: var(--element-dragger-color) !important;\n stroke: none !important;\n}\n\nmarker.djs-dragger circle,\nmarker.djs-dragger path,\nmarker.djs-dragger polygon,\nmarker.djs-dragger polyline,\nmarker.djs-dragger rect {\n fill: var(--element-dragger-color) !important;\n stroke: none !important;\n}\n\nmarker.djs-dragger text,\nmarker.djs-dragger tspan {\n fill: none !important;\n stroke: var(--element-dragger-color) !important;\n}\n\n.djs-dragging {\n opacity: 0.3;\n}\n\n.djs-dragging,\n.djs-dragging > * {\n pointer-events: none !important;\n}\n\n.djs-dragging .djs-context-pad,\n.djs-dragging .djs-outline {\n display: none !important;\n}\n\n/**\n * no pointer events for visual\n */\n.djs-visual,\n.djs-outline {\n pointer-events: none;\n}\n\n.djs-element.attach-ok .djs-hit {\n stroke-width: 60px !important;\n}\n\n/**\n * all pointer events for hit shape\n */\n.djs-element > .djs-hit-all {\n pointer-events: all;\n}\n\n.djs-element > .djs-hit-stroke,\n.djs-element > .djs-hit-click-stroke {\n pointer-events: stroke;\n}\n\n/**\n * all pointer events for hit shape\n */\n.djs-drag-active .djs-element > .djs-hit-click-stroke {\n pointer-events: all;\n}\n\n/**\n * shape / connection basic styles\n */\n.djs-connection .djs-visual {\n stroke-width: 2px;\n fill: none;\n}\n\n.djs-cursor-grab {\n cursor: -webkit-grab;\n cursor: -moz-grab;\n cursor: grab;\n}\n\n.djs-cursor-grabbing {\n cursor: -webkit-grabbing;\n cursor: -moz-grabbing;\n cursor: grabbing;\n}\n\n.djs-cursor-crosshair {\n cursor: crosshair;\n}\n\n.djs-cursor-move {\n cursor: move;\n}\n\n.djs-cursor-resize-ns {\n cursor: ns-resize;\n}\n\n.djs-cursor-resize-ew {\n cursor: ew-resize;\n}\n\n\n/**\n * snapping\n */\n.djs-snap-line {\n stroke: var(--snap-line-stroke-color);\n stroke-linecap: round;\n stroke-width: 2px;\n pointer-events: none;\n}\n\n/**\n * snapping\n */\n.djs-crosshair {\n stroke: var(--space-tool-crosshair-stroke-color);\n stroke-linecap: round;\n stroke-width: 1px;\n pointer-events: none;\n shape-rendering: crispEdges;\n stroke-dasharray: 5, 5;\n}\n\n/**\n * palette\n */\n\n.djs-palette {\n position: absolute;\n left: 20px;\n top: 20px;\n\n box-sizing: border-box;\n width: 48px;\n}\n\n.djs-palette .separator {\n margin: 0 5px;\n padding-top: 5px;\n\n border: none;\n border-bottom: solid 1px var(--palette-separator-color);\n\n clear: both;\n}\n\n.djs-palette .entry:before {\n vertical-align: text-bottom;\n}\n\n.djs-palette .djs-palette-toggle {\n cursor: pointer;\n}\n\n.djs-palette .entry,\n.djs-palette .djs-palette-toggle {\n color: var(--palette-entry-color);\n font-size: 30px;\n\n text-align: center;\n}\n\n.djs-palette .entry {\n float: left;\n}\n\n.djs-palette .entry img {\n max-width: 100%;\n}\n\n.djs-palette .djs-palette-entries:after {\n content: '';\n display: table;\n clear: both;\n}\n\n.djs-palette .djs-palette-toggle:hover {\n background: var(--palette-toggle-hover-background-color);\n}\n\n.djs-palette .entry:hover {\n color: var(--palette-entry-hover-color);\n}\n\n.djs-palette .highlighted-entry {\n color: var(--palette-entry-selected-color) !important;\n}\n\n.djs-palette .entry,\n.djs-palette .djs-palette-toggle {\n width: 46px;\n height: 46px;\n line-height: 46px;\n cursor: default;\n}\n\n/**\n * Palette open / two-column layout is controlled via\n * classes on the palette. Events to hook into palette\n * changed life-cycle are available in addition.\n */\n.djs-palette.two-column.open {\n width: 94px;\n}\n\n.djs-palette:not(.open) .djs-palette-entries {\n display: none;\n}\n\n.djs-palette:not(.open) {\n overflow: hidden;\n}\n\n.djs-palette.open .djs-palette-toggle {\n display: none;\n}\n\n/**\n * context-pad\n */\n.djs-overlay-context-pad {\n width: 72px;\n z-index: 100;\n}\n\n.djs-context-pad {\n position: absolute;\n display: none;\n pointer-events: none;\n line-height: 1;\n}\n\n.djs-context-pad .entry {\n width: 22px;\n height: 22px;\n text-align: center;\n display: inline-block;\n font-size: 22px;\n margin: 0 2px 2px 0;\n\n border-radius: 3px;\n\n cursor: default;\n\n background-color: var(--context-pad-entry-background-color);\n box-shadow: 0 0 2px 1px var(--context-pad-entry-background-color);\n pointer-events: all;\n vertical-align: middle;\n}\n\n.djs-context-pad .entry:hover {\n background: var(--context-pad-entry-hover-background-color);\n}\n\n.djs-context-pad.open {\n display: block;\n}\n\n/**\n * popup styles\n */\n.djs-popup .entry {\n line-height: 20px;\n white-space: nowrap;\n cursor: default;\n}\n\n/* larger font for prefixed icons */\n.djs-popup .entry:before {\n vertical-align: middle;\n font-size: 20px;\n}\n\n.djs-popup .entry > span {\n vertical-align: middle;\n font-size: 14px;\n}\n\n.djs-popup .entry:hover,\n.djs-popup .entry.active:hover {\n background: var(--popup-header-entry-selected-background-color);\n}\n\n.djs-popup .entry.disabled {\n background: inherit;\n}\n\n.djs-popup .djs-popup-header .entry {\n display: inline-block;\n padding: 2px 3px 2px 3px;\n\n border: solid 1px transparent;\n border-radius: 3px;\n}\n\n.djs-popup .djs-popup-header .entry.active {\n color: var(--popup-header-entry-selected-color);\n border: solid 1px var(--popup-header-entry-selected-color);\n background-color: var(--popup-header-entry-selected-background-color);\n}\n\n.djs-popup-body .entry {\n padding: 4px 10px 4px 5px;\n}\n\n.djs-popup-body .entry > span {\n margin-left: 5px;\n}\n\n.djs-popup-body {\n background-color: var(--popup-body-background-color);\n}\n\n.djs-popup-header {\n border-bottom: 1px solid var(--popup-header-separator-color);\n}\n\n.djs-popup-header .entry {\n margin: 1px;\n margin-left: 3px;\n}\n\n.djs-popup-header .entry:last-child {\n margin-right: 3px;\n}\n\n/**\n * popup / palette styles\n */\n.djs-palette {\n background: var(--palette-background-color);\n border: solid 1px var(--palette-border-color);\n border-radius: 2px;\n}\n\n.djs-popup {\n background: var(--popup-background-color);\n border: solid 1px var(--popup-border-color);\n border-radius: 2px;\n}\n\n/**\n * touch\n */\n\n.djs-shape,\n.djs-connection {\n touch-action: none;\n}\n\n.djs-segment-dragger,\n.djs-bendpoint {\n display: none;\n}\n\n/**\n * bendpoints\n */\n.djs-segment-dragger .djs-visual {\n display: none;\n\n fill: var(--bendpoint-fill-color);\n stroke: var(--bendpoint-stroke-color);\n stroke-width: 1px;\n stroke-opacity: 1;\n}\n\n.djs-segment-dragger:hover .djs-visual {\n display: block;\n}\n\n.djs-bendpoint .djs-visual {\n fill: var(--bendpoint-fill-color);\n stroke: var(--bendpoint-stroke-color);\n stroke-width: 1px;\n stroke-opacity: 0.5;\n}\n\n.djs-segment-dragger:hover,\n.djs-bendpoints.hover .djs-segment-dragger,\n.djs-bendpoints.selected .djs-segment-dragger,\n.djs-bendpoint:hover,\n.djs-bendpoints.hover .djs-bendpoint,\n.djs-bendpoints.selected .djs-bendpoint {\n display: block;\n}\n\n.djs-drag-active .djs-bendpoints * {\n display: none;\n}\n\n.djs-bendpoints:not(.hover) .floating {\n display: none;\n}\n\n.djs-segment-dragger:hover .djs-visual,\n.djs-segment-dragger.djs-dragging .djs-visual,\n.djs-bendpoint:hover .djs-visual,\n.djs-bendpoint.floating .djs-visual {\n fill: var(--bendpoint-fill-color);\n stroke: var(--bendpoint-stroke-color);\n stroke-opacity: 1;\n}\n\n.djs-bendpoint.floating .djs-hit {\n pointer-events: none;\n}\n\n.djs-segment-dragger .djs-hit,\n.djs-bendpoint .djs-hit {\n fill: none;\n pointer-events: all;\n}\n\n.djs-segment-dragger.horizontal .djs-hit {\n cursor: ns-resize;\n}\n\n.djs-segment-dragger.vertical .djs-hit {\n cursor: ew-resize;\n}\n\n.djs-segment-dragger.djs-dragging .djs-hit {\n pointer-events: none;\n}\n\n.djs-updating,\n.djs-updating > * {\n pointer-events: none !important;\n}\n\n.djs-updating .djs-context-pad,\n.djs-updating .djs-outline,\n.djs-updating .djs-bendpoint,\n.connect-ok .djs-bendpoint,\n.connect-not-ok .djs-bendpoint,\n.drop-ok .djs-bendpoint,\n.drop-not-ok .djs-bendpoint {\n display: none !important;\n}\n\n.djs-segment-dragger.djs-dragging,\n.djs-bendpoint.djs-dragging {\n display: block;\n opacity: 1.0;\n}\n\n\n/**\n * tooltips\n */\n.djs-tooltip-error {\n width: 160px;\n padding: 6px;\n\n background: var(--tooltip-error-background-color);\n border: solid 1px var(--tooltip-error-border-color);\n border-radius: 2px;\n color: var(--tooltip-error-color);\n font-size: 12px;\n line-height: 16px;\n\n opacity: 0.75;\n}\n\n.djs-tooltip-error:hover {\n opacity: 1;\n}\n\n\n/**\n * search pad\n */\n.djs-search-container {\n position: absolute;\n top: 20px;\n left: 0;\n right: 0;\n margin-left: auto;\n margin-right: auto;\n\n width: 25%;\n min-width: 300px;\n max-width: 400px;\n z-index: 10;\n\n font-size: 1.05em;\n opacity: 0.9;\n background: var(--search-container-background-color);\n border: solid 1px var(--search-container-border-color);\n border-radius: 2px;\n box-shadow: 0 0 0 2px var(--search-container-box-shadow-color), 0 0 0 1px var(--search-container-box-shadow-inset-color) inset;\n}\n\n.djs-search-container:not(.open) {\n display: none;\n}\n\n.djs-search-input input {\n font-size: 1.05em;\n width: 100%;\n padding: 6px 10px;\n border: 1px solid var(--search-input-border-color);\n box-sizing: border-box;\n}\n\n.djs-search-input input:focus {\n outline: none;\n border-color: var(--search-input-border-color);\n}\n\n.djs-search-results {\n position: relative;\n overflow-y: auto;\n max-height: 200px;\n}\n\n.djs-search-results:hover {\n cursor: pointer;\n}\n\n.djs-search-result {\n width: 100%;\n padding: 6px 10px;\n background: white;\n border-bottom: solid 1px var(--search-result-border-color);\n border-radius: 1px;\n}\n\n.djs-search-highlight {\n color: var(--search-result-highlight-color);\n}\n\n.djs-search-result-primary {\n margin: 0 0 10px;\n}\n\n.djs-search-result-secondary {\n font-family: monospace;\n margin: 0;\n}\n\n.djs-search-result:hover {\n background: var(--search-result-selected-color);\n}\n\n.djs-search-result-selected {\n background: var(--search-result-selected-color);\n}\n\n.djs-search-result-selected:hover {\n background: var(--search-result-selected-color);\n}\n\n.djs-search-overlay {\n background: var(--search-result-selected-color);\n}\n\n/**\n * hidden styles\n */\n.djs-element-hidden,\n.djs-element-hidden .djs-hit,\n.djs-element-hidden .djs-outline,\n.djs-label-hidden .djs-label {\n display: none !important;\n}\n","@font-face {\n font-family: 'bpmn';\n src: url('../font/bpmn.eot?26374340');\n src: url('../font/bpmn.eot?26374340#iefix') format('embedded-opentype'),\n url('../font/bpmn.woff2?26374340') format('woff2'),\n url('../font/bpmn.woff?26374340') format('woff'),\n url('../font/bpmn.ttf?26374340') format('truetype'),\n url('../font/bpmn.svg?26374340#bpmn') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */\n/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */\n/*\n@media screen and (-webkit-min-device-pixel-ratio:0) {\n @font-face {\n font-family: 'bpmn';\n src: url('../font/bpmn.svg?26374340#bpmn') format('svg');\n }\n}\n*/\n\n [class^=\"bpmn-icon-\"]:before, [class*=\" bpmn-icon-\"]:before {\n font-family: \"bpmn\";\n font-style: normal;\n font-weight: normal;\n speak: never;\n\n display: inline-block;\n text-decoration: inherit;\n width: 1em;\n /* margin-right: .2em; */\n text-align: center;\n /* opacity: .8; */\n\n /* For safety - reset parent styles, that can break glyph codes*/\n font-variant: normal;\n text-transform: none;\n\n /* fix buttons height, for twitter bootstrap */\n line-height: 1em;\n\n /* Animation center compensation - margins should be symmetric */\n /* remove if not needed */\n /* margin-left: .2em; */\n\n /* you can be more comfortable with increased icons size */\n /* font-size: 120%; */\n\n /* Font smoothing. That was taken from TWBS */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n /* Uncomment for 3D effect */\n /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */\n}\n\n.bpmn-icon-screw-wrench:before { content: '\\e800'; } /* '' */\n.bpmn-icon-trash:before { content: '\\e801'; } /* '' */\n.bpmn-icon-conditional-flow:before { content: '\\e802'; } /* '' */\n.bpmn-icon-default-flow:before { content: '\\e803'; } /* '' */\n.bpmn-icon-gateway-parallel:before { content: '\\e804'; } /* '' */\n.bpmn-icon-intermediate-event-catch-cancel:before { content: '\\e805'; } /* '' */\n.bpmn-icon-intermediate-event-catch-non-interrupting-message:before { content: '\\e806'; } /* '' */\n.bpmn-icon-start-event-compensation:before { content: '\\e807'; } /* '' */\n.bpmn-icon-start-event-non-interrupting-parallel-multiple:before { content: '\\e808'; } /* '' */\n.bpmn-icon-loop-marker:before { content: '\\e809'; } /* '' */\n.bpmn-icon-parallel-mi-marker:before { content: '\\e80a'; } /* '' */\n.bpmn-icon-start-event-non-interrupting-signal:before { content: '\\e80b'; } /* '' */\n.bpmn-icon-intermediate-event-catch-non-interrupting-timer:before { content: '\\e80c'; } /* '' */\n.bpmn-icon-intermediate-event-catch-parallel-multiple:before { content: '\\e80d'; } /* '' */\n.bpmn-icon-intermediate-event-catch-compensation:before { content: '\\e80e'; } /* '' */\n.bpmn-icon-gateway-xor:before { content: '\\e80f'; } /* '' */\n.bpmn-icon-connection:before { content: '\\e810'; } /* '' */\n.bpmn-icon-end-event-cancel:before { content: '\\e811'; } /* '' */\n.bpmn-icon-intermediate-event-catch-condition:before { content: '\\e812'; } /* '' */\n.bpmn-icon-intermediate-event-catch-non-interrupting-parallel-multiple:before { content: '\\e813'; } /* '' */\n.bpmn-icon-start-event-condition:before { content: '\\e814'; } /* '' */\n.bpmn-icon-start-event-non-interrupting-timer:before { content: '\\e815'; } /* '' */\n.bpmn-icon-sequential-mi-marker:before { content: '\\e816'; } /* '' */\n.bpmn-icon-user-task:before { content: '\\e817'; } /* '' */\n.bpmn-icon-business-rule:before { content: '\\e818'; } /* '' */\n.bpmn-icon-sub-process-marker:before { content: '\\e819'; } /* '' */\n.bpmn-icon-start-event-parallel-multiple:before { content: '\\e81a'; } /* '' */\n.bpmn-icon-start-event-error:before { content: '\\e81b'; } /* '' */\n.bpmn-icon-intermediate-event-catch-signal:before { content: '\\e81c'; } /* '' */\n.bpmn-icon-intermediate-event-catch-error:before { content: '\\e81d'; } /* '' */\n.bpmn-icon-end-event-compensation:before { content: '\\e81e'; } /* '' */\n.bpmn-icon-subprocess-collapsed:before { content: '\\e81f'; } /* '' */\n.bpmn-icon-subprocess-expanded:before { content: '\\e820'; } /* '' */\n.bpmn-icon-task:before { content: '\\e821'; } /* '' */\n.bpmn-icon-end-event-error:before { content: '\\e822'; } /* '' */\n.bpmn-icon-intermediate-event-catch-escalation:before { content: '\\e823'; } /* '' */\n.bpmn-icon-intermediate-event-catch-timer:before { content: '\\e824'; } /* '' */\n.bpmn-icon-start-event-escalation:before { content: '\\e825'; } /* '' */\n.bpmn-icon-start-event-signal:before { content: '\\e826'; } /* '' */\n.bpmn-icon-business-rule-task:before { content: '\\e827'; } /* '' */\n.bpmn-icon-manual:before { content: '\\e828'; } /* '' */\n.bpmn-icon-receive:before { content: '\\e829'; } /* '' */\n.bpmn-icon-call-activity:before { content: '\\e82a'; } /* '' */\n.bpmn-icon-start-event-timer:before { content: '\\e82b'; } /* '' */\n.bpmn-icon-start-event-message:before { content: '\\e82c'; } /* '' */\n.bpmn-icon-intermediate-event-none:before { content: '\\e82d'; } /* '' */\n.bpmn-icon-intermediate-event-catch-link:before { content: '\\e82e'; } /* '' */\n.bpmn-icon-end-event-escalation:before { content: '\\e82f'; } /* '' */\n.bpmn-icon-text-annotation:before { content: '\\e830'; } /* '' */\n.bpmn-icon-bpmn-io:before { content: '\\e831'; } /* '' */\n.bpmn-icon-gateway-complex:before { content: '\\e832'; } /* '' */\n.bpmn-icon-gateway-eventbased:before { content: '\\e833'; } /* '' */\n.bpmn-icon-gateway-none:before { content: '\\e834'; } /* '' */\n.bpmn-icon-gateway-or:before { content: '\\e835'; } /* '' */\n.bpmn-icon-end-event-terminate:before { content: '\\e836'; } /* '' */\n.bpmn-icon-end-event-signal:before { content: '\\e837'; } /* '' */\n.bpmn-icon-end-event-none:before { content: '\\e838'; } /* '' */\n.bpmn-icon-end-event-multiple:before { content: '\\e839'; } /* '' */\n.bpmn-icon-end-event-message:before { content: '\\e83a'; } /* '' */\n.bpmn-icon-end-event-link:before { content: '\\e83b'; } /* '' */\n.bpmn-icon-intermediate-event-catch-message:before { content: '\\e83c'; } /* '' */\n.bpmn-icon-intermediate-event-throw-compensation:before { content: '\\e83d'; } /* '' */\n.bpmn-icon-start-event-multiple:before { content: '\\e83e'; } /* '' */\n.bpmn-icon-script:before { content: '\\e83f'; } /* '' */\n.bpmn-icon-manual-task:before { content: '\\e840'; } /* '' */\n.bpmn-icon-send:before { content: '\\e841'; } /* '' */\n.bpmn-icon-service:before { content: '\\e842'; } /* '' */\n.bpmn-icon-receive-task:before { content: '\\e843'; } /* '' */\n.bpmn-icon-user:before { content: '\\e844'; } /* '' */\n.bpmn-icon-start-event-none:before { content: '\\e845'; } /* '' */\n.bpmn-icon-intermediate-event-throw-escalation:before { content: '\\e846'; } /* '' */\n.bpmn-icon-intermediate-event-catch-multiple:before { content: '\\e847'; } /* '' */\n.bpmn-icon-intermediate-event-catch-non-interrupting-escalation:before { content: '\\e848'; } /* '' */\n.bpmn-icon-intermediate-event-throw-link:before { content: '\\e849'; } /* '' */\n.bpmn-icon-start-event-non-interrupting-condition:before { content: '\\e84a'; } /* '' */\n.bpmn-icon-data-object:before { content: '\\e84b'; } /* '' */\n.bpmn-icon-script-task:before { content: '\\e84c'; } /* '' */\n.bpmn-icon-send-task:before { content: '\\e84d'; } /* '' */\n.bpmn-icon-data-store:before { content: '\\e84e'; } /* '' */\n.bpmn-icon-start-event-non-interrupting-escalation:before { content: '\\e84f'; } /* '' */\n.bpmn-icon-intermediate-event-throw-message:before { content: '\\e850'; } /* '' */\n.bpmn-icon-intermediate-event-catch-non-interrupting-multiple:before { content: '\\e851'; } /* '' */\n.bpmn-icon-intermediate-event-catch-non-interrupting-signal:before { content: '\\e852'; } /* '' */\n.bpmn-icon-intermediate-event-throw-multiple:before { content: '\\e853'; } /* '' */\n.bpmn-icon-start-event-non-interrupting-message:before { content: '\\e854'; } /* '' */\n.bpmn-icon-ad-hoc-marker:before { content: '\\e855'; } /* '' */\n.bpmn-icon-service-task:before { content: '\\e856'; } /* '' */\n.bpmn-icon-task-none:before { content: '\\e857'; } /* '' */\n.bpmn-icon-compensation-marker:before { content: '\\e858'; } /* '' */\n.bpmn-icon-start-event-non-interrupting-multiple:before { content: '\\e859'; } /* '' */\n.bpmn-icon-intermediate-event-throw-signal:before { content: '\\e85a'; } /* '' */\n.bpmn-icon-intermediate-event-catch-non-interrupting-condition:before { content: '\\e85b'; } /* '' */\n.bpmn-icon-participant:before { content: '\\e85c'; } /* '' */\n.bpmn-icon-event-subprocess-expanded:before { content: '\\e85d'; } /* '' */\n.bpmn-icon-lane-insert-below:before { content: '\\e85e'; } /* '' */\n.bpmn-icon-space-tool:before { content: '\\e85f'; } /* '' */\n.bpmn-icon-connection-multi:before { content: '\\e860'; } /* '' */\n.bpmn-icon-lane:before { content: '\\e861'; } /* '' */\n.bpmn-icon-lasso-tool:before { content: '\\e862'; } /* '' */\n.bpmn-icon-lane-insert-above:before { content: '\\e863'; } /* '' */\n.bpmn-icon-lane-divide-three:before { content: '\\e864'; } /* '' */\n.bpmn-icon-lane-divide-two:before { content: '\\e865'; } /* '' */\n.bpmn-icon-data-input:before { content: '\\e866'; } /* '' */\n.bpmn-icon-data-output:before { content: '\\e867'; } /* '' */\n.bpmn-icon-hand-tool:before { content: '\\e868'; } /* '' */\n.bpmn-icon-group:before { content: '\\e869'; } /* '' */\n.bpmn-icon-transaction:before { content: '\\e8c4'; } /* '' */","@font-face {\n font-family: \"Material Icons\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"./material-icons.woff2\") format(\"woff2\"), url(\"./material-icons.woff\") format(\"woff\");\n}\n.material-icons {\n font-family: \"Material Icons\";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: \"liga\";\n}\n\n@font-face {\n font-family: \"Material Icons Outlined\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"./material-icons-outlined.woff2\") format(\"woff2\"), url(\"./material-icons-outlined.woff\") format(\"woff\");\n}\n.material-icons-outlined {\n font-family: \"Material Icons Outlined\";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: \"liga\";\n}\n\n@font-face {\n font-family: \"Material Icons Round\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"./material-icons-round.woff2\") format(\"woff2\"), url(\"./material-icons-round.woff\") format(\"woff\");\n}\n.material-icons-round {\n font-family: \"Material Icons Round\";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: \"liga\";\n}\n\n@font-face {\n font-family: \"Material Icons Sharp\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"./material-icons-sharp.woff2\") format(\"woff2\"), url(\"./material-icons-sharp.woff\") format(\"woff\");\n}\n.material-icons-sharp {\n font-family: \"Material Icons Sharp\";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: \"liga\";\n}\n\n@font-face {\n font-family: \"Material Icons Two Tone\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(\"./material-icons-two-tone.woff2\") format(\"woff2\"), url(\"./material-icons-two-tone.woff\") format(\"woff\");\n}\n.material-icons-two-tone {\n font-family: \"Material Icons Two Tone\";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: \"liga\";\n}\n","// This contains all of the styles for the badge\n// rather than just the color/theme because of\n// no style sheet support for directives.\n@use 'sass:color';\n@use 'sass:map';\n@use 'sass:meta';\n@use 'sass:math';\n@use '@angular/cdk';\n\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n$font-size: 12px;\n$font-weight: 600;\n$default-size: 22px !default;\n$small-size: $default-size - 6;\n$large-size: $default-size + 6;\n$_badge-structure-emitted: false !default;\n\n// Mixin for building offset given different sizes\n@mixin _badge-size($size) {\n // This mixin isn't used in the context of a theme so we can disable the ampersand check.\n // stylelint-disable material/no-ampersand-beyond-selector-start\n .mat-badge-content {\n width: $size;\n height: $size;\n line-height: $size;\n }\n\n &.mat-badge-above {\n .mat-badge-content {\n top: math.div(-$size, 2);\n }\n }\n\n &.mat-badge-below {\n .mat-badge-content {\n bottom: math.div(-$size, 2);\n }\n }\n\n &.mat-badge-before {\n .mat-badge-content {\n left: -$size;\n }\n }\n\n [dir='rtl'] &.mat-badge-before {\n .mat-badge-content {\n left: auto;\n right: -$size;\n }\n }\n\n &.mat-badge-after {\n .mat-badge-content {\n right: -$size;\n }\n }\n\n [dir='rtl'] &.mat-badge-after {\n .mat-badge-content {\n right: auto;\n left: -$size;\n }\n }\n\n &.mat-badge-overlap {\n &.mat-badge-before {\n .mat-badge-content {\n left: math.div(-$size, 2);\n }\n }\n\n [dir='rtl'] &.mat-badge-before {\n .mat-badge-content {\n left: auto;\n right: math.div(-$size, 2);\n }\n }\n\n &.mat-badge-after {\n .mat-badge-content {\n right: math.div(-$size, 2);\n }\n }\n\n [dir='rtl'] &.mat-badge-after {\n .mat-badge-content {\n right: auto;\n left: math.div(-$size, 2);\n }\n }\n }\n // stylelint-enable\n}\n\n// Structural styles for the badge. They have to be included as a part of the theme,\n// because the badge is a directive and we have no other way of attaching styles to it.\n@mixin _badge-structure {\n .mat-badge {\n position: relative;\n }\n\n // The badge should make sure its host is overflow visible so that the badge content\n // can be rendered outside of the element. Some components such as explicitly\n // style `overflow: hidden` so this requires extra specificity so that it does not\n // depend on style load order.\n .mat-badge.mat-badge {\n overflow: visible;\n }\n\n .mat-badge-hidden {\n .mat-badge-content {\n display: none;\n }\n }\n\n .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n }\n\n .ng-animate-disabled .mat-badge-content,\n .mat-badge-content._mat-animation-noopable {\n transition: none;\n }\n\n // The active class is added after the element is added\n // so it can animate scale to default\n .mat-badge-content.mat-badge-active {\n // Scale to `none` instead of `1` to avoid blurry text in some browsers.\n transform: none;\n }\n\n .mat-badge-small {\n @include _badge-size($small-size);\n }\n\n .mat-badge-medium {\n @include _badge-size($default-size);\n }\n\n .mat-badge-large {\n @include _badge-size($large-size);\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $primary: map.get($config, primary);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-badge-content {\n color: theming.get-color-from-palette($primary, default-contrast);\n background: theming.get-color-from-palette($primary);\n\n @include cdk.high-contrast(active, off) {\n outline: solid 1px;\n border-radius: 0;\n }\n }\n\n .mat-badge-accent {\n .mat-badge-content {\n background: theming.get-color-from-palette($accent);\n color: theming.get-color-from-palette($accent, default-contrast);\n }\n }\n\n .mat-badge-warn {\n .mat-badge-content {\n color: theming.get-color-from-palette($warn, default-contrast);\n background: theming.get-color-from-palette($warn);\n }\n }\n\n .mat-badge-disabled {\n .mat-badge-content {\n $app-background: theming.get-color-from-palette($background, 'background');\n $badge-color: theming.get-color-from-palette($foreground, disabled-button);\n\n // The disabled color usually has some kind of opacity, but because the badge is overlayed\n // on top of something else, it won't look good if it's opaque. If it is a color *type*,\n // we convert it into a solid color by taking the opacity from the rgba value and using\n // the value to determine the percentage of the background to put into foreground when\n // mixing the colors together.\n @if (meta.type-of($badge-color) == color and meta.type-of($app-background) == color) {\n $badge-opacity: opacity($badge-color);\n background: color.mix($app-background, rgba($badge-color, 1), (1 - $badge-opacity) * 100%);\n }\n @else {\n background: $badge-color;\n }\n\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-badge-content {\n font-weight: $font-weight;\n font-size: $font-size;\n font-family: typography-utils.font-family($config);\n }\n\n .mat-badge-small .mat-badge-content {\n // Set the font size to 75% of the original.\n font-size: $font-size * 0.75;\n }\n\n .mat-badge-large .mat-badge-content {\n font-size: $font-size * 2;\n }\n}\n\n@mixin density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-badge') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n // Try to reduce the number of times that the structural styles are emitted.\n @if not $_badge-structure-emitted {\n @include _badge-structure;\n\n // Only flip the flag if the mixin is included at the top level. Otherwise the first\n // inclusion might be inside of a theme class which will exclude the structural styles\n // from all other themes.\n @if not & {\n $_badge-structure-emitted: true !global;\n }\n }\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","// Custom Theming for Angular Material\r\n// For more information: https://material.angular.io/guide/theming\r\n@use \"@angular/material\" as mat;\r\n@import \"@angular/material/theming\";\r\n@import \"material-icons/iconfont/material-icons.css\";\r\n// Plus imports for other components in your app.\r\n\r\n// Include the common styles for Angular Material. We include this here so that you only\r\n// have to load a single css file for Angular Material in your app.\r\n// Be sure that you only ever include this mixin once!\r\n// TODO(v15): As of v15 mat.legacy-core no longer includes default typography styles.\r\n// The following line adds:\r\n// 1. Default typography styles for all components\r\n// 2. Styles for typography hierarchy classes (e.g. .mat-headline-1)\r\n// If you specify typography styles for the components you use elsewhere, you should delete this line.\r\n// If you don't need the default component typographies but still want the hierarchy styles,\r\n// you can delete this line and instead use:\r\n// `@include mat.legacy-typography-hierarchy(mat.define-legacy-typography-config());`\r\n@include mat.all-component-typographies();\r\n@include mat.core();\r\n\r\n// Define the palettes for your theme using the Material Design palettes available in palette.scss\r\n// (imported above). For each palette, you can optionally specify a default, lighter, and darker\r\n// hue. Available color palettes: https://material.io/design/color/\r\n$egon-primary: mat.define-palette(mat.$indigo-palette);\r\n$egon-accent: mat.define-palette(mat.$pink-palette, A200, A100, A400);\r\n\r\n// The warn palette is optional (defaults to red).\r\n$egon-warn: mat.define-palette(mat.$red-palette);\r\n\r\n// Create the theme object. A theme consists of configurations for individual\r\n// theming systems such as \"color\" or \"typography\".\r\n$egon-theme: mat.define-light-theme(\r\n (\r\n color: (\r\n primary: $egon-primary,\r\n accent: $egon-accent,\r\n warn: $egon-warn,\r\n ),\r\n )\r\n);\r\n\r\n// Include theme styles for core and each component used in your app.\r\n// Alternatively, you can import and @include the theme mixins for each component\r\n// that you are using.\r\n@include mat.all-component-themes($egon-theme);\r\n\r\n/* FONTS */\r\n\r\n@font-face {\r\n font-family: Roboto;\r\n font-style: normal;\r\n font-weight: 700;\r\n src: local(\"Roboto-Regular\"), url(\"~src/assets/font/Roboto-Regular.woff\");\r\n}\r\n\r\n/* You can add global styles to this file, and also import other style files */\r\n\r\nhtml,\r\nbody {\r\n height: 100%;\r\n}\r\n\r\nbody {\r\n margin: 0;\r\n font-family: Roboto, \"Helvetica Neue\", Arial, sans-serif;\r\n}\r\n\r\n.smallScrollbar {\r\n /* Works on Firefox */\r\n scrollbar-width: thin;\r\n\r\n /* Works on Chrome, Edge, and Safari */\r\n *::-webkit-scrollbar {\r\n width: 12px;\r\n }\r\n}\r\n\r\n.headline {\r\n font-size: 17pt;\r\n height: 40px;\r\n cursor: pointer;\r\n}\r\n\r\n.headerButton {\r\n background-color: transparent;\r\n border: none;\r\n}\r\n\r\n.spacer {\r\n flex: 1 1 auto;\r\n}\r\n\r\n.mr-1 {\r\n margin-right: 8px !important;\r\n}\r\n\r\n.mr-10 {\r\n margin-right: 10px !important;\r\n}\r\n\r\n.materialIconButton {\r\n font-size: 24px !important;\r\n padding-left: 5px;\r\n padding-right: 5px;\r\n margin-top: 9px;\r\n}\r\n\r\n.toolbar {\r\n height: 65px;\r\n}\r\n\r\napp-root {\r\n display: block;\r\n height: 100%;\r\n}\r\n\r\n/* Material Design */\r\n\r\nmat-dialog-actions.mdc-dialog__actions {\r\n padding: 0 24px 20px 24px;\r\n justify-content: end;\r\n}\r\n\r\n/* Snackbar */\r\n\r\n.mat-mdc-snack-bar-container {\r\n &.snackbar_success {\r\n --mdc-snackbar-container-color: darkgreen;\r\n --mat-mdc-snack-bar-button-color: #fff;\r\n --mdc-snackbar-supporting-text-color: #fff;\r\n }\r\n &.snackbar_warning {\r\n --mdc-snackbar-container-color: darkorange;\r\n --mat-mdc-snack-bar-button-color: black;\r\n --mdc-snackbar-supporting-text-color: #fff;\r\n }\r\n &.snackbar_error {\r\n --mdc-snackbar-container-color: #d04437;\r\n --mat-mdc-snack-bar-button-color: #fff;\r\n --mdc-snackbar-supporting-text-color: #fff;\r\n }\r\n &.snackbar_info {\r\n --mdc-snackbar-container-color: #42aebb;\r\n --mat-mdc-snack-bar-button-color: black;\r\n --mdc-snackbar-supporting-text-color: #fff;\r\n }\r\n}\r\n\r\n/* BPMN elements */\r\n\r\n.djs-overlay-context-pad {\r\n width: 120px;\r\n height: 238px;\r\n overflow-y: auto;\r\n}\r\n\r\n.djs-context-pad.open {\r\n border: solid 1px #80808054;\r\n}\r\n\r\n.djs-context-pad.open > .group {\r\n border: solid 1px #80808054;\r\n padding: 1px;\r\n background-color: white;\r\n}\r\n\r\n/**\r\n * from bpmn.io\r\n */\r\n\r\n/**\r\n * palette\r\n */\r\n\r\n.djs-palette {\r\n position: absolute;\r\n left: 20px;\r\n top: 20px;\r\n\r\n box-sizing: border-box;\r\n width: 32px;\r\n}\r\n\r\n.djs-palette .separator {\r\n margin: 0 2px;\r\n padding-top: 0;\r\n\r\n border: none;\r\n border-bottom: solid 1px #ddd;\r\n\r\n clear: both;\r\n}\r\n\r\n.djs-palette .entry:before {\r\n vertical-align: middle;\r\n}\r\n\r\n.djs-palette .djs-palette-toggle {\r\n cursor: pointer;\r\n}\r\n\r\n.djs-palette .entry,\r\n.djs-palette .djs-palette-toggle {\r\n color: #333;\r\n font-size: 26px;\r\n\r\n text-align: center;\r\n}\r\n\r\n.djs-palette .entry {\r\n float: left;\r\n}\r\n\r\n.djs-palette .entry img {\r\n max-width: 100%;\r\n}\r\n\r\n.djs-palette .djs-palette-entries:after {\r\n content: \"\";\r\n display: table;\r\n clear: both;\r\n}\r\n\r\n.djs-palette .djs-palette-toggle:hover {\r\n background: #666;\r\n}\r\n\r\n.djs-palette .entry:hover {\r\n fill: #42aebb;\r\n}\r\n\r\n.djs-palette .highlighted-entry {\r\n color: #42aebb !important;\r\n}\r\n\r\n.djs-palette .entry,\r\n.djs-palette .djs-palette-toggle {\r\n width: 30px;\r\n height: 30px;\r\n line-height: 30px;\r\n cursor: default;\r\n}\r\n\r\n/**\r\n * Palette open / two-column layout is controlled via\r\n * classes on the palette. Events to hook into palette\r\n * changed life-cycle are available in addition.\r\n */\r\n.djs-palette.two-column.open {\r\n width: 64px;\r\n}\r\n\r\n.djs-palette:not(.open) .djs-palette-entries {\r\n display: none;\r\n}\r\n\r\n.djs-palette:not(.open) {\r\n overflow: hidden;\r\n}\r\n\r\n.djs-palette.open .djs-palette-toggle {\r\n display: none;\r\n}\r\n\r\n/**\r\n * outline styles\r\n */\r\n\r\n.djs-outline {\r\n fill: none;\r\n visibility: hidden;\r\n}\r\n\r\n.djs-element.hover .djs-outline,\r\n.djs-element.selected .djs-outline {\r\n visibility: visible;\r\n shape-rendering: crispEdges;\r\n stroke-dasharray: 3, 3;\r\n}\r\n\r\n.djs-element.selected .djs-outline {\r\n stroke: #8888ff;\r\n stroke-width: 1px;\r\n}\r\n\r\n.djs-element.hover .djs-outline {\r\n stroke: #42aebb;\r\n}\r\n\r\n.djs-element.attach-ok .djs-visual > :nth-child(1) {\r\n stroke: #42aebb !important;\r\n}\r\n\r\n/**\r\n* Selection box style\r\n*\r\n*/\r\n.djs-lasso-overlay {\r\n stroke: #42aebb;\r\n}\r\n\r\n/**\r\n * Resize styles\r\n */\r\n.djs-resize-overlay {\r\n stroke: #42aebb;\r\n}\r\n\r\n/**\r\n * drag styles\r\n */\r\n.djs-dragger .djs-visual circle,\r\n.djs-dragger .djs-visual path,\r\n.djs-dragger .djs-visual polygon,\r\n.djs-dragger .djs-visual polyline,\r\n.djs-dragger .djs-visual rect,\r\n.djs-dragger .djs-visual text {\r\n fill: none !important;\r\n stroke: #42aebb !important;\r\n}\r\n\r\n/**\r\n * snapping\r\n */\r\n.djs-snap-line {\r\n stroke: #42aebb;\r\n stroke: rgba(255, 195, 66, 0.5);\r\n}\r\n\r\n.djs-palette .entry:hover {\r\n color: #42aebb;\r\n}\r\n\r\n.djs-palette .highlighted-entry {\r\n color: #42aebb !important;\r\n}\r\n\r\n.mat-toolbar.mat-primary {\r\n background: #0168b7 !important;\r\n}\r\n\r\n.djs-context-pad .entry:hover {\r\n background: #42aebb;\r\n}\r\n\r\n.djs-popup .djs-popup-header .entry.active {\r\n color: #42aebb;\r\n border: solid 1px #42aebb;\r\n background-color: #f6f6f6;\r\n}\r\n\r\n.djs-popup-body .entry {\r\n width: auto !important;\r\n}\r\n\r\n.djs-segment-dragger:hover .djs-visual,\r\n.djs-segment-dragger.djs-dragging .djs-visual,\r\n.djs-bendpoint:hover .djs-visual,\r\n.djs-bendpoint.floating .djs-visual {\r\n fill: #42aebb;\r\n stroke-opacity: 0.5;\r\n stroke: black;\r\n}\r\n\r\n.djs-segment-dragger.djs-dragging .djs-visual,\r\n.djs-bendpoint.djs-dragging .djs-visual {\r\n fill: #42aebb;\r\n}\r\n\r\n.djs-tooltip-error > * {\r\n color: #42aebb;\r\n border-left: solid 5px #42aebb;\r\n}\r\n\r\n.djs-search-input input:focus {\r\n outline: none;\r\n border-color: #52b415;\r\n}\r\n\r\n.djs-search-result:hover {\r\n background: #fdffd6;\r\n}\r\n\r\n.djs-search-result-selected {\r\n background: #42aebb;\r\n}\r\n\r\n.djs-search-result-selected:hover {\r\n background: #42aebb;\r\n}\r\n\r\n.djs-search-overlay {\r\n background: #42aebb;\r\n}\r\n","@use 'sass:map';\n@use 'sass:math';\n@use 'sass:meta';\n@use 'typography-utils';\n@use '../theming/theming';\n@use '@material/typography' as mdc-typography;\n\n/// Defines a typography level from the Material Design spec.\n/// @param {String} $font-size The font-size for this level.\n/// @param {String | Number} $line-height The line-height for this level.\n/// @param {String | Number} $font-weight The font-weight for this level.\n/// @param {String} $font-family The font-family for this level.\n/// @param {String} $letter-spacing The letter-spacing for this level.\n/// @returns {Map} A map representing the definition of this typographic level.\n@function define-typography-level(\n $font-size,\n $line-height: $font-size,\n $font-weight: 400,\n $font-family: null,\n $letter-spacing: normal) {\n\n @return (\n font-size: $font-size,\n line-height: $line-height,\n font-weight: $font-weight,\n font-family: $font-family,\n letter-spacing: $letter-spacing\n );\n}\n\n/// Defines a collection of typography levels to configure typography for an application.\n/// Any level not specified defaults to the values defined in the Material Design specification:\n/// https://material.io/guidelines/style/typography.html.\n///\n/// Note that the Material Design specification does not describe explicit letter-spacing values.\n/// The values here come from reverse engineering the Material Design examples.\n/// @param {String} $font-family Default font-family for levels that don't specify font-family.\n/// @param {Map} $display-4 Configuration for the \"display-4\" typographic level.\n/// @param {Map} $display-3 Configuration for the \"display-3\" typographic level.\n/// @param {Map} $display-2 Configuration for the \"display-2\" typographic level.\n/// @param {Map} $display-1 Configuration for the \"display-1\" typographic level.\n/// @param {Map} $headline Configuration for the \"headline\" typographic level.\n/// @param {Map} $title Configuration for the \"title\" typographic level.\n/// @param {Map} $subheading-2 Configuration for the \"subheading-2\" typographic level.\n/// @param {Map} $subheading-1 Configuration for the \"subheading-1\" typographic level.\n/// @param {Map} $body-2 Configuration for the \"body-2\" typographic level.\n/// @param {Map} $body-1 Configuration for the \"body-1\" typographic level.\n/// @param {Map} $caption Configuration for the \"caption\" typographic level.\n/// @param {Map} $button Configuration for the \"button\" typographic level.\n/// @param {Map} $input Configuration for the \"input\" typographic level.\n/// @returns {Map} A typography config for the application.\n///\n/// @deprecated Use `mat.define-typography-config` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n/// @breaking-change 17.0.0\n@function define-legacy-typography-config(\n $font-family: 'Roboto, \"Helvetica Neue\", sans-serif',\n $display-4: define-typography-level(112px, 112px, 300, $letter-spacing: -0.05em),\n $display-3: define-typography-level(56px, 56px, 400, $letter-spacing: -0.02em),\n $display-2: define-typography-level(45px, 48px, 400, $letter-spacing: -0.005em),\n $display-1: define-typography-level(34px, 40px, 400),\n $headline: define-typography-level(24px, 32px, 400),\n $title: define-typography-level(20px, 32px, 500),\n $subheading-2: define-typography-level(16px, 28px, 400),\n $subheading-1: define-typography-level(15px, 24px, 400),\n $body-2: define-typography-level(14px, 24px, 500),\n $body-1: define-typography-level(14px, 20px, 400),\n $caption: define-typography-level(12px, 20px, 400),\n $button: define-typography-level(14px, 14px, 500),\n // Line-height must be unit-less fraction of the font-size.\n $input: define-typography-level(inherit, 1.125, 400)\n) {\n\n // Declare an initial map with all of the levels.\n $config: (\n display-4: $display-4,\n display-3: $display-3,\n display-2: $display-2,\n display-1: $display-1,\n headline: $headline,\n title: $title,\n subheading-2: $subheading-2,\n subheading-1: $subheading-1,\n body-2: $body-2,\n body-1: $body-1,\n caption: $caption,\n button: $button,\n input: $input,\n );\n\n // Loop through the levels and set the `font-family` of the ones that don't have one to the base.\n // Note that Sass can't modify maps in place, which means that we need to merge and re-assign.\n @each $key, $level in $config {\n @if map.get($level, font-family) == null {\n $new-level: map.merge($level, (font-family: $font-family));\n $config: map.merge($config, ($key: $new-level));\n }\n }\n\n // Add the base font family to the config.\n @return map.merge($config, (font-family: $font-family));\n}\n\n// Converts a map containing rem values to a map containing px values.\n@function _rem-to-px($x, $px-per-rem: 16px) {\n @if meta.type-of($x) == 'map' {\n @each $key, $val in $x {\n $x: map.merge($x, ($key: _rem-to-px($val)));\n }\n @return $x;\n }\n @if meta.type-of($x) == 'number' and math.unit($x) == 'rem' {\n @return math.div($x, 1rem) * $px-per-rem;\n }\n @else {\n @return $x;\n }\n}\n\n// Applies the default font family to all levels in a typography config.\n@function _apply-font-family($font-family, $initial-config) {\n $config: $initial-config;\n\n @each $key, $level in $config {\n @if map.get($level, 'font-family') == null {\n // Sass maps are immutable so we have to re-assign the variable each time.\n $config: map.set($config, $key, map.set($level, 'font-family', $font-family));\n }\n }\n\n @return map.set($config, 'font-family', $font-family);\n}\n\n// Converts an MDC typography level config to an Angular Material one.\n@function typography-config-level-from-mdc($mdc-level, $font-family: null) {\n $mdc-level-config: map.get(mdc-typography.$styles, $mdc-level);\n\n // Explicitly default the font family to null since we'll apply it globally\n // through the `define-typgraphy-config`/`define-legacy-typography-config`.\n @return define-typography-level(\n $font-family: $font-family,\n $font-size: map.get($mdc-level-config, font-size),\n $line-height: map.get($mdc-level-config, line-height),\n $font-weight: map.get($mdc-level-config, font-weight),\n $letter-spacing: map.get($mdc-level-config, letter-spacing)\n );\n}\n\n/// Generates an Angular Material typography config based on values from the official Material\n/// Design spec implementation (MDC Web). All arguments are optional, but may be passed to override\n/// the default values. The `mat-typography-level` function can be used to generate a custom\n/// typography level map which can be passed to this function to override one of the default levels.\n/// All default typography sizing generated by this function is in `px` units.\n///\n/// @param {String} $font-family The font family to use for levels where it is not explicitly\n/// specified.\n/// @param {Map} $headline-1 The font settings for the headline-1 font level.\n/// @param {Map} $headline-2 The font settings for the headline-2 font level.\n/// @param {Map} $headline-3 The font settings for the headline-3 font level.\n/// @param {Map} $headline-4 The font settings for the headline-4 font level.\n/// @param {Map} $headline-5 The font settings for the headline-5 font level.\n/// @param {Map} $headline-6 The font settings for the headline-6 font level.\n/// @param {Map} $subtitle-1 The font settings for the subtitle-1 font level.\n/// @param {Map} $subtitle-2 The font settings for the subtitle-2 font level.\n/// @param {Map} $body-1 The font settings for the body-1 font level.\n/// @param {Map} $body-2 The font settings for the body-2 font level.\n/// @param {Map} $caption The font settings for the caption font level.\n/// @param {Map} $button The font settings for the button font level.\n/// @param {Map} $overline The font settings for the overline font level.\n/// @return {Map} A map containing font settings for each of the levels in the Material Design spec.\n@function define-typography-config(\n // TODO(mmalerba): rename this function to define-typography-config,\n // and create a predefined px based config for people that need it.\n $font-family: mdc-typography.$font-family,\n $headline-1: null,\n $headline-2: null,\n $headline-3: null,\n $headline-4: null,\n $headline-5: null,\n $headline-6: null,\n $subtitle-1: null,\n $subtitle-2: null,\n $body-1: null,\n $body-2: null,\n $caption: null,\n $button: null,\n $overline: null,\n) {\n @return _apply-font-family($font-family, (\n headline-1: $headline-1 or _rem-to-px(typography-config-level-from-mdc(headline1)),\n headline-2: $headline-2 or _rem-to-px(typography-config-level-from-mdc(headline2)),\n headline-3: $headline-3 or _rem-to-px(typography-config-level-from-mdc(headline3)),\n headline-4: $headline-4 or _rem-to-px(typography-config-level-from-mdc(headline4)),\n headline-5: $headline-5 or _rem-to-px(typography-config-level-from-mdc(headline5)),\n headline-6: $headline-6 or _rem-to-px(typography-config-level-from-mdc(headline6)),\n subtitle-1: $subtitle-1 or _rem-to-px(typography-config-level-from-mdc(subtitle1)),\n subtitle-2: $subtitle-2 or _rem-to-px(typography-config-level-from-mdc(subtitle2)),\n body-1: $body-1 or _rem-to-px(typography-config-level-from-mdc(body1)),\n body-2: $body-2 or _rem-to-px(typography-config-level-from-mdc(body2)),\n caption: $caption or _rem-to-px(typography-config-level-from-mdc(caption)),\n button: $button or _rem-to-px(typography-config-level-from-mdc(button)),\n overline: $overline or _rem-to-px(typography-config-level-from-mdc(overline)),\n ));\n}\n\n/// Generates an Angular Material typography config based on values from the official Material\n/// Design spec implementation (MDC Web). All arguments are optional, but may be passed to override\n/// the default values. The `mat-typography-level` function can be used to generate a custom\n/// typography level map which can be passed to this function to override one of the default levels.\n/// All default typography sizing generated by this function is in `rem` units.\n///\n/// @param {String} $font-family The font family to use for levels where it is not explicitly\n/// specified.\n/// @param {Map} $headline-1 The font settings for the headline-1 font level.\n/// @param {Map} $headline-2 The font settings for the headline-2 font level.\n/// @param {Map} $headline-3 The font settings for the headline-3 font level.\n/// @param {Map} $headline-4 The font settings for the headline-4 font level.\n/// @param {Map} $headline-5 The font settings for the headline-5 font level.\n/// @param {Map} $headline-6 The font settings for the headline-6 font level.\n/// @param {Map} $subtitle-1 The font settings for the subtitle-1 font level.\n/// @param {Map} $subtitle-2 The font settings for the subtitle-2 font level.\n/// @param {Map} $body-1 The font settings for the body-1 font level.\n/// @param {Map} $body-2 The font settings for the body-2 font level.\n/// @param {Map} $caption The font settings for the caption font level.\n/// @param {Map} $button The font settings for the button font level.\n/// @param {Map} $overline The font settings for the overline font level.\n/// @return {Map} A map containing font settings for each of the levels in the Material Design spec.\n@function define-rem-typography-config(\n // TODO(mmalerba): rename this function to define-typography-config,\n // and create a predefined px based config for people that need it.\n $font-family: mdc-typography.$font-family,\n $headline-1: null,\n $headline-2: null,\n $headline-3: null,\n $headline-4: null,\n $headline-5: null,\n $headline-6: null,\n $subtitle-1: null,\n $subtitle-2: null,\n $body-1: null,\n $body-2: null,\n $caption: null,\n $button: null,\n $overline: null,\n) {\n @return _apply-font-family($font-family, (\n headline-1: $headline-1 or typography-config-level-from-mdc(headline1),\n headline-2: $headline-2 or typography-config-level-from-mdc(headline2),\n headline-3: $headline-3 or typography-config-level-from-mdc(headline3),\n headline-4: $headline-4 or typography-config-level-from-mdc(headline4),\n headline-5: $headline-5 or typography-config-level-from-mdc(headline5),\n headline-6: $headline-6 or typography-config-level-from-mdc(headline6),\n subtitle-1: $subtitle-1 or typography-config-level-from-mdc(subtitle1),\n subtitle-2: $subtitle-2 or typography-config-level-from-mdc(subtitle2),\n body-1: $body-1 or typography-config-level-from-mdc(body1),\n body-2: $body-2 or typography-config-level-from-mdc(body2),\n caption: $caption or typography-config-level-from-mdc(caption),\n button: $button or typography-config-level-from-mdc(button),\n overline: $overline or typography-config-level-from-mdc(overline),\n ));\n}\n\n// Whether a config is for the Material Design 2018 typography system.\n@function private-typography-is-2018-config($config) {\n @return map.get($config, headline-1) != null;\n}\n\n// Whether a config is for the Material Design 2014 typography system.\n@function private-typography-is-2014-config($config) {\n @return map.get($config, headline) != null;\n}\n\n// Given a config for either the 2014 or 2018 Material Design typography system,\n// produces a normalized typography config for the 2014 Material Design typography system.\n// 2014 - https://material.io/archive/guidelines/style/typography.html#typography-styles\n// 2018 - https://material.io/design/typography/the-type-system.html#type-scale\n//\n// Components using this function should be migrated to normalize to the 2018 style config instead.\n// New components should not use this function.\n@function private-typography-to-2014-config($config) {\n @if $config == null {\n @return null;\n }\n @if not private-typography-is-2014-config($config) {\n $args: (\n display-4: map.get($config, headline-1),\n display-3: map.get($config, headline-2),\n display-2: map.get($config, headline-3),\n display-1: map.get($config, headline-4),\n headline: map.get($config, headline-5),\n title: map.get($config, headline-6),\n subheading-2: map.get($config, subtitle-1),\n subheading-1: map.get($config, subtitle-2),\n body-2: map.get($config, body-1),\n body-1: map.get($config, body-2),\n button: map.get($config, button),\n caption: map.get($config, caption),\n font-family: map.get($config, font-family),\n );\n $non-null-args: ();\n @each $key, $value in $args {\n @if $value != null {\n $non-null-args: map.merge($non-null-args, ($key: $value));\n }\n }\n @return define-legacy-typography-config($non-null-args...);\n }\n @return $config;\n}\n\n// Given a config for either the 2014 or 2018 Material Design typography system,\n// produces a normalized typography config for the 2018 Material Design typography system.\n// 2014 - https://material.io/archive/guidelines/style/typography.html#typography-styles\n// 2018 - https://material.io/design/typography/the-type-system.html#type-scale\n@function private-typography-to-2018-config($config) {\n @if $config == null {\n @return null;\n }\n @if not private-typography-is-2018-config($config) {\n @return (\n headline-1: map.get($config, display-4),\n headline-2: map.get($config, display-3),\n headline-3: map.get($config, display-2),\n headline-4: map.get($config, display-1),\n headline-5: map.get($config, headline),\n headline-6: map.get($config, title),\n subtitle-1: map.get($config, subheading-2),\n font-famiy: map.get($config, font-family),\n\n // These mappings are odd, but body-2 in the 2014 system actually looks closer to subtitle-2\n // in the 2018 system, and subeading-1 in the 2014 system looks more like body-1 in the 2018\n // system.\n subtitle-2: map.get($config, body-2),\n body-1: map.get($config, subheading-1),\n\n body-2: map.get($config, body-1),\n button: map.get($config, button),\n caption: map.get($config, caption),\n overline: if(map.get($config, overline), map.get($config, overline),\n define-typography-level(12px, 32px, 500)\n )\n );\n }\n @return $config;\n}\n\n/// Emits baseline typographic styles based on a given config.\n/// @param {Map} $config-or-theme A typography config for an entire theme.\n/// @param {String} $selector Ancestor selector under which native elements, such as h1, will\n/// be styled.\n@mixin typography-hierarchy($config-or-theme, $selector: '.mat-typography') {\n $config: private-typography-to-2018-config(theming.get-typography-config($config-or-theme));\n\n // Note that it seems redundant to prefix the class rules with the `$selector`, however it's\n // necessary if we want to allow people to overwrite the tag selectors. This is due to\n // selectors like `#{$selector} h1` being more specific than ones like `.mat-title`.\n .mat-h1,\n .mat-headline-5,\n #{$selector} .mat-h1,\n #{$selector} .mat-headline-5,\n #{$selector} h1 {\n @include typography-utils.typography-level($config, headline-5);\n margin: 0 0 16px;\n }\n\n .mat-h2,\n .mat-headline-6,\n #{$selector} .mat-h2,\n #{$selector} .mat-headline-6,\n #{$selector} h2 {\n @include typography-utils.typography-level($config, headline-6);\n margin: 0 0 16px;\n }\n\n .mat-h3,\n .mat-subtitle-1,\n #{$selector} .mat-h3,\n #{$selector} .mat-subtitle-1,\n #{$selector} h3 {\n @include typography-utils.typography-level($config, subtitle-1);\n margin: 0 0 16px;\n }\n\n .mat-h4,\n .mat-body-1,\n #{$selector} .mat-h4,\n #{$selector} .mat-body-1,\n #{$selector} h4 {\n @include typography-utils.typography-level($config, body-1);\n margin: 0 0 16px;\n }\n\n // Note: the spec doesn't have anything that would correspond to h5 and h6, but we add these for\n // consistency. The font sizes come from the Chrome user agent styles which have h5 at 0.83em\n // and h6 at 0.67em.\n .mat-h5,\n #{$selector} .mat-h5,\n #{$selector} h5 {\n @include typography-utils.font-shorthand(\n // calc is used here to support css variables\n calc(#{typography-utils.font-size($config, body-2)} * 0.83),\n typography-utils.font-weight($config, body-2),\n typography-utils.line-height($config, body-2),\n typography-utils.font-family($config, body-2)\n );\n\n margin: 0 0 12px;\n }\n\n .mat-h6,\n #{$selector} .mat-h6,\n #{$selector} h6 {\n @include typography-utils.font-shorthand(\n // calc is used here to support css variables\n calc(#{typography-utils.font-size($config, body-2)} * 0.67),\n typography-utils.font-weight($config, body-2),\n typography-utils.line-height($config, body-2),\n typography-utils.font-family($config, body-2)\n );\n\n margin: 0 0 12px;\n }\n\n .mat-body-strong,\n .mat-subtitle-2,\n #{$selector} .mat-body-strong,\n #{$selector} .mat-subtitle-2 {\n @include typography-utils.typography-level($config, subtitle-2);\n }\n\n .mat-body,\n .mat-body-2,\n #{$selector} .mat-body,\n #{$selector} .mat-body-2,\n #{$selector} {\n @include typography-utils.typography-level($config, body-2);\n\n p {\n margin: 0 0 12px;\n }\n }\n\n .mat-small,\n .mat-caption,\n #{$selector} .mat-small,\n #{$selector} .mat-caption {\n @include typography-utils.typography-level($config, caption);\n }\n\n .mat-headline-1,\n #{$selector} .mat-headline-1 {\n @include typography-utils.typography-level($config, headline-1);\n margin: 0 0 56px;\n }\n\n .mat-headline-2,\n #{$selector} .mat-headline-2 {\n @include typography-utils.typography-level($config, headline-2);\n margin: 0 0 64px;\n }\n\n .mat-headline-3,\n #{$selector} .mat-headline-3 {\n @include typography-utils.typography-level($config, headline-3);\n margin: 0 0 64px;\n }\n\n .mat-headline-4,\n #{$selector} .mat-headline-4 {\n @include typography-utils.typography-level($config, headline-4);\n margin: 0 0 64px;\n }\n}\n\n/// Emits baseline typographic styles based on a given config.\n/// @param {Map} $config-or-theme A typography config for an entire theme.\n/// @param {String} $selector Ancestor selector under which native elements, such as h1, will\n/// be styled.\n/// @deprecated Use `mat.typography-hierarchy` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n/// @breaking-change 17.0.0\n@mixin legacy-typography-hierarchy($config-or-theme, $selector: '.mat-typography') {\n $config: private-typography-to-2014-config(theming.get-typography-config($config-or-theme));\n\n // Note that it seems redundant to prefix the class rules with the `$selector`, however it's\n // necessary if we want to allow people to overwrite the tag selectors. This is due to\n // selectors like `#{$selector} h1` being more specific than ones like `.mat-title`.\n .mat-h1,\n .mat-headline,\n #{$selector} .mat-h1,\n #{$selector} .mat-headline,\n #{$selector} h1 {\n @include typography-utils.typography-level($config, headline);\n margin: 0 0 16px;\n }\n\n .mat-h2,\n .mat-title,\n #{$selector} .mat-h2,\n #{$selector} .mat-title,\n #{$selector} h2 {\n @include typography-utils.typography-level($config, title);\n margin: 0 0 16px;\n }\n\n .mat-h3,\n .mat-subheading-2,\n #{$selector} .mat-h3,\n #{$selector} .mat-subheading-2,\n #{$selector} h3 {\n @include typography-utils.typography-level($config, subheading-2);\n margin: 0 0 16px;\n }\n\n .mat-h4,\n .mat-subheading-1,\n #{$selector} .mat-h4,\n #{$selector} .mat-subheading-1,\n #{$selector} h4 {\n @include typography-utils.typography-level($config, subheading-1);\n margin: 0 0 16px;\n }\n\n // Note: the spec doesn't have anything that would correspond to h5 and h6, but we add these for\n // consistency. The font sizes come from the Chrome user agent styles which have h5 at 0.83em\n // and h6 at 0.67em.\n .mat-h5,\n #{$selector} .mat-h5,\n #{$selector} h5 {\n @include typography-utils.font-shorthand(\n // calc is used here to support css variables\n calc(#{typography-utils.font-size($config, body-1)} * 0.83),\n typography-utils.font-weight($config, body-1),\n typography-utils.line-height($config, body-1),\n typography-utils.font-family($config, body-1)\n );\n\n margin: 0 0 12px;\n }\n\n .mat-h6,\n #{$selector} .mat-h6,\n #{$selector} h6 {\n @include typography-utils.font-shorthand(\n // calc is used here to support css variables\n calc(#{typography-utils.font-size($config, body-1)} * 0.67),\n typography-utils.font-weight($config, body-1),\n typography-utils.line-height($config, body-1),\n typography-utils.font-family($config, body-1)\n );\n\n margin: 0 0 12px;\n }\n\n .mat-body-strong,\n .mat-body-2,\n #{$selector} .mat-body-strong,\n #{$selector} .mat-body-2 {\n @include typography-utils.typography-level($config, body-2);\n }\n\n .mat-body,\n .mat-body-1,\n #{$selector} .mat-body,\n #{$selector} .mat-body-1,\n #{$selector} {\n @include typography-utils.typography-level($config, body-1);\n\n p {\n margin: 0 0 12px;\n }\n }\n\n .mat-small,\n .mat-caption,\n #{$selector} .mat-small,\n #{$selector} .mat-caption {\n @include typography-utils.typography-level($config, caption);\n }\n\n .mat-display-4,\n #{$selector} .mat-display-4 {\n @include typography-utils.typography-level($config, display-4);\n margin: 0 0 56px;\n }\n\n .mat-display-3,\n #{$selector} .mat-display-3 {\n @include typography-utils.typography-level($config, display-3);\n margin: 0 0 64px;\n }\n\n .mat-display-2,\n #{$selector} .mat-display-2 {\n @include typography-utils.typography-level($config, display-2);\n margin: 0 0 64px;\n }\n\n .mat-display-1,\n #{$selector} .mat-display-1 {\n @include typography-utils.typography-level($config, display-1);\n margin: 0 0 64px;\n }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'sass:math';\n@use 'sass:meta';\n@use 'sass:string';\n\n\n// Utility for fetching a nested value from a typography config.\n@function _mat-get-type-value($config, $level, $name) {\n @if meta.type-of($config) != 'map' {\n @error 'Typography config must be a map. Received #{meta.type-of($config)}.';\n }\n\n @if not map.has-key($config, $level) {\n @error 'Typography config does not have a level called \"#{$level}\". ' +\n 'Available levels are: #{map.keys($config)}.';\n }\n\n @return map.get(map.get($config, $level), $name);\n}\n\n/// Gets the font size for a level inside a typography config.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function font-size($config, $level) {\n @return _mat-get-type-value($config, $level, font-size);\n}\n\n/// Gets the line height for a level inside a typography config.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function line-height($config, $level) {\n @return _mat-get-type-value($config, $level, line-height);\n}\n\n/// Gets the font weight for a level inside a typography config.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function font-weight($config, $level) {\n @return _mat-get-type-value($config, $level, font-weight);\n}\n\n/// Gets the letter spacing for a level inside a typography config.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function letter-spacing($config, $level) {\n @return _mat-get-type-value($config, $level, letter-spacing);\n}\n\n/// Gets the font-family from a typography config and removes the quotes around it.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function font-family($config, $level: null) {\n @if meta.type-of($config) != 'map' {\n @error 'Typography config must be a map. Received #{meta.type-of($config)}.';\n }\n\n $font-family: map.get($config, font-family);\n\n @if $level != null {\n $font-family: _mat-get-type-value($config, $level, font-family);\n }\n\n // Guard against unquoting non-string values, because it's deprecated.\n @return if(meta.type-of($font-family) == string, string.unquote($font-family), $font-family);\n}\n\n/// Outputs the shorthand `font` CSS property, based on a set of typography values. Falls back to\n/// the individual properties if a value that isn't allowed in the shorthand is passed in.\n/// @param {String} $font-size The font-size value.\n/// @param {String | Number} $font-weight The font-weight value.\n/// @param {String | Number} $line-height The line-height value.\n/// @param {String} $font-family The font-family value.\n/// @returns {String} The `font` shorthand value combining the given parts.\n@mixin font-shorthand($font-size, $font-weight, $line-height, $font-family) {\n // If any of the values are set to `inherit`, we can't use the shorthand\n // so we fall back to passing in the individual properties.\n @if ($font-size == inherit or\n $font-weight == inherit or\n $line-height == inherit or\n $font-family == inherit or\n $font-size == null or\n $font-weight == null or\n $line-height == null or\n $font-family == null) {\n\n font-size: $font-size;\n font-weight: $font-weight;\n line-height: $line-height;\n font-family: $font-family;\n }\n @else {\n // Otherwise use the shorthand `font`, because it's the least amount of bytes.\n font: $font-weight list.slash($font-size, $line-height) $font-family;\n }\n}\n\n/// Emits CSS styles for the given typography level.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@mixin typography-level($config, $level) {\n // we deliberately do not use the font shorthand here because it overrides\n // certain font properties that can't be configured in the current typography\n // config, e.g. the font-variant-caps or font-feature-settings property\n font-size: font-size($config, $level);\n font-weight: font-weight($config, $level);\n line-height: line-height($config, $level);\n font-family: font-family($config, $level);\n\n letter-spacing: letter-spacing($config, $level);\n}\n\n/// Coerce a value to `em` if it is a unitless number, otherwise returns\n/// the value provided.\n@function private-coerce-unitless-to-em($value) {\n @return if(math.is-unitless($value), 1em * $value, $value);\n}\n","@use 'sass:map';\n@use '../core/style/private';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/theming/theming';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-bottom-sheet-container {\n @include private.private-theme-elevation(16, $config);\n background: theming.get-color-from-palette($background, dialog);\n color: theming.get-color-from-palette($foreground, text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-bottom-sheet-container {\n @include typography-utils.typography-level($config, body-1);\n }\n}\n\n@mixin density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-bottom-sheet') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/style/private';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/density/private/compatibility';\n@use './button-toggle-variables';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $background: map.get($config, background);\n $divider-color: theming.get-color-from-palette($foreground, divider);\n $theme-divider-color: map.get($foreground, divider);\n\n // By default the theme usually has an rgba color for the dividers, which can\n // stack up with the background of a button toggle. This can cause the border\n // of a selected toggle to look different from an deselected one. We use a solid\n // color to ensure that the border always stays the same.\n $divider-color: if(type-of($theme-divider-color) == color,\n theming.private-rgba-to-hex($theme-divider-color, map.get($background, card)),\n $theme-divider-color\n );\n\n .mat-button-toggle-standalone,\n .mat-button-toggle-group {\n @include private.private-theme-overridable-elevation(2, $config);\n }\n\n .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n .mat-button-toggle-group-appearance-standard {\n &:not([class*='mat-elevation-z']) {\n box-shadow: none;\n }\n }\n\n .mat-button-toggle {\n color: theming.get-color-from-palette($foreground, hint-text);\n\n .mat-button-toggle-focus-overlay {\n background-color: theming.get-color-from-palette($background, focused-button);\n }\n }\n\n .mat-button-toggle-appearance-standard {\n color: theming.get-color-from-palette($foreground, text);\n background: theming.get-color-from-palette($background, card);\n\n .mat-button-toggle-focus-overlay {\n background-color: theming.get-color-from-palette($background, focused-button, 1);\n }\n }\n\n .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px $divider-color;\n }\n\n [dir='rtl'] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px $divider-color;\n }\n\n .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical {\n .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px $divider-color;\n }\n }\n\n .mat-button-toggle-checked {\n background-color: theming.get-color-from-palette($background, selected-button);\n color: theming.get-color-from-palette($foreground, secondary-text);\n\n &.mat-button-toggle-appearance-standard {\n color: theming.get-color-from-palette($foreground, text);\n }\n }\n\n .mat-button-toggle-disabled {\n color: theming.get-color-from-palette($foreground, disabled-button);\n background-color: theming.get-color-from-palette($background, disabled-button-toggle);\n\n &.mat-button-toggle-appearance-standard {\n background: theming.get-color-from-palette($background, card);\n }\n\n &.mat-button-toggle-checked {\n background-color: theming.get-color-from-palette($background, selected-disabled-button);\n }\n }\n\n .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n .mat-button-toggle-group-appearance-standard {\n border: solid 1px $divider-color;\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-button-toggle {\n font-family: typography-utils.font-family($config);\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $standard-height: compatibility.private-density-prop-value(\n button-toggle-variables.$standard-density-config, $density-scale, height);\n\n @include compatibility.private-density-legacy-compatibility() {\n .mat-button-toggle-appearance-standard .mat-button-toggle-label-content {\n line-height: $standard-height;\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-button-toggle') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:color';\n@use 'sass:map';\n@use 'sass:math';\n@use 'sass:meta';\n@use '../core/style/private';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../button/icon-button-theme';\n\n$selected-today-box-shadow-width: 1px;\n$selected-fade-amount: 0.6;\n$range-fade-amount: 0.2;\n$today-fade-amount: 0.2;\n$calendar-body-font-size: 13px !default;\n$calendar-weekday-table-font-size: 11px !default;\n\n@mixin _color($palette) {\n @include date-range-colors(\n theming.get-color-from-palette($palette, default, $range-fade-amount));\n\n .mat-calendar-body-selected {\n background-color: theming.get-color-from-palette($palette);\n color: theming.get-color-from-palette($palette, default-contrast);\n }\n\n .mat-calendar-body-disabled > .mat-calendar-body-selected {\n $background: theming.get-color-from-palette($palette);\n\n @if (meta.type-of($background) == color) {\n background-color: color.adjust($background, $alpha: -$selected-fade-amount);\n }\n @else {\n // If we couldn't resolve to background to a color (e.g. it's a CSS variable),\n // fall back to fading the content out via `opacity`.\n opacity: $today-fade-amount;\n }\n }\n\n .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 $selected-today-box-shadow-width\n theming.get-color-from-palette($palette, default-contrast);\n }\n\n .cdk-keyboard-focused .mat-calendar-body-active,\n .cdk-program-focused .mat-calendar-body-active {\n @include _highlighted-cell($palette);\n }\n\n @media (hover: hover) {\n .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover {\n @include _highlighted-cell($palette);\n }\n }\n}\n\n// Utility mixin to target cells that aren't selected. Used to make selector easier to follow.\n@mixin _unselected-cell {\n &:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n @content;\n }\n}\n\n// Styles for a highlighted calendar cell (e.g. hovered or focused).\n@mixin _highlighted-cell($palette) {\n & > .mat-calendar-body-cell-content {\n @include _unselected-cell {\n background-color: theming.get-color-from-palette($palette, 0.3);\n }\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $background: map.get($config, background);\n $disabled-color: theming.get-color-from-palette($foreground, disabled-text);\n\n .mat-calendar-arrow {\n fill: theming.get-color-from-palette($foreground, icon);\n }\n\n // The prev/next buttons need a bit more specificity to\n // avoid being overwritten by the .mat-icon-button.\n .mat-datepicker-toggle,\n .mat-datepicker-content .mat-calendar-next-button,\n .mat-datepicker-content .mat-calendar-previous-button {\n color: theming.get-color-from-palette($foreground, icon);\n }\n\n .mat-calendar-table-header-divider::after {\n background: theming.get-color-from-palette($foreground, divider);\n }\n\n .mat-calendar-table-header,\n .mat-calendar-body-label {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-calendar-body-cell-content,\n .mat-date-range-input-separator {\n color: theming.get-color-from-palette($foreground, text);\n border-color: transparent;\n }\n\n .mat-calendar-body-disabled > .mat-calendar-body-cell-content {\n @include _unselected-cell {\n color: $disabled-color;\n }\n }\n\n .mat-form-field-disabled .mat-date-range-input-separator {\n color: $disabled-color;\n }\n\n .mat-calendar-body-in-preview {\n $divider-color: theming.get-color-from-palette($foreground, divider);\n\n @if meta.type-of($divider-color) == color {\n // The divider color is set under the assumption that it'll be used\n // for a solid border, but because we're using a dashed border for the\n // preview range, we need to bump its opacity to ensure that it's visible.\n color: rgba($divider-color, math.min(opacity($divider-color) * 2, 1));\n }\n @else {\n color: $divider-color;\n }\n }\n\n .mat-calendar-body-today {\n @include _unselected-cell {\n // Note: though it's not text, the border is a hint about the fact that this is today's date,\n // so we use the hint color.\n border-color: theming.get-color-from-palette($foreground, hint-text);\n }\n }\n\n .mat-calendar-body-disabled > .mat-calendar-body-today {\n @include _unselected-cell {\n $color: theming.get-color-from-palette($foreground, hint-text);\n\n @if (meta.type-of($color) == color) {\n border-color: color.adjust($color, $alpha: -$today-fade-amount);\n }\n @else {\n // If the color didn't resolve to a color value, but something like a CSS variable, we can't\n // fade it out so we fall back to reducing the element opacity. Note that we don't use the\n // $mat-datepicker-today-fade-amount, because hint text usually has some opacity applied\n // to it already and we don't want them to stack on top of each other.\n opacity: 0.5;\n }\n }\n }\n\n @include _color(map.get($config, primary));\n\n .mat-datepicker-content {\n @include private.private-theme-elevation(4, $config);\n background-color: theming.get-color-from-palette($background, card);\n color: theming.get-color-from-palette($foreground, text);\n\n &.mat-accent {\n @include _color(map.get($config, accent));\n }\n\n &.mat-warn {\n @include _color(map.get($config, warn));\n }\n }\n\n .mat-datepicker-content-touch {\n @include private.private-theme-elevation(24, $config);\n }\n\n .mat-datepicker-toggle-active {\n color: theming.get-color-from-palette(map.get($config, primary), text);\n\n &.mat-accent {\n color: theming.get-color-from-palette(map.get($config, accent), text);\n }\n\n &.mat-warn {\n color: theming.get-color-from-palette(map.get($config, warn), text);\n }\n }\n\n .mat-date-range-input-inner[disabled] {\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-calendar {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-calendar-body {\n font-size: $calendar-body-font-size;\n }\n\n .mat-calendar-body-label,\n .mat-calendar-period-button {\n font: {\n size: typography-utils.font-size($config, button);\n weight: typography-utils.font-weight($config, button);\n }\n }\n\n .mat-calendar-table-header th {\n font: {\n size: $calendar-weekday-table-font-size;\n weight: typography-utils.font-weight($config, body-1);\n }\n }\n}\n\n@mixin date-range-colors(\n $range-color,\n $comparison-color: rgba(#f9ab00, $range-fade-amount),\n $overlap-color: #a8dab5,\n $overlap-selected-color: color.adjust($overlap-color, $lightness: -30%)) {\n\n .mat-calendar-body-in-range::before {\n background: $range-color;\n }\n\n .mat-calendar-body-comparison-identical,\n .mat-calendar-body-in-comparison-range::before {\n background: $comparison-color;\n }\n\n .mat-calendar-body-comparison-bridge-start::before,\n [dir='rtl'] .mat-calendar-body-comparison-bridge-end::before {\n background: linear-gradient(to right, $range-color 50%, $comparison-color 50%);\n }\n\n .mat-calendar-body-comparison-bridge-end::before,\n [dir='rtl'] .mat-calendar-body-comparison-bridge-start::before {\n background: linear-gradient(to left, $range-color 50%, $comparison-color 50%);\n }\n\n .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,\n .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {\n background: $overlap-color;\n }\n\n .mat-calendar-body-comparison-identical.mat-calendar-body-selected,\n .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {\n background: $overlap-selected-color;\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n\n // Regardless of the user-passed density, we want the calendar previous/next buttons to remain at\n // density -2\n .mat-calendar-controls {\n @include icon-button-theme.density(-2);\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-datepicker') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:meta';\n\n/// Include content under the current selector (&) or the document root if there is no current\n/// selector.\n/// @param {String} $root [html] The default root selector to use when there is no current selector.\n/// @output The given content under the current selector, or root selector if there is no current\n/// selector.\n/// @content Content to output under the current selector, or root selector if there is no current\n/// selector.\n@mixin current-selector-or-root($root: html) {\n @at-root #{& or $root} {\n @content;\n }\n}\n\n/// A version of the standard `map.deep-merge` function that takes a variable number of arguments.\n/// Each argument is deep-merged into the final result from left to right.\n/// @param {List} $maps The maps to combine with map.deep-merge\n/// @return {Map} The combined result of successively calling map.deep-merge with each parameter.\n@function deep-merge-all($maps...) {\n $result: ();\n @each $map in $maps {\n $result: map.deep-merge($result, $map);\n }\n @return $result;\n}\n\n/// Coerces the given value to a list, by converting any non-list value into a single-item list.\n/// This should be used when dealing with user-passed lists of args to avoid confusing errors,\n/// since Sass treats `($x)` as equivalent to `$x`.\n/// @param {Any} $value The value to coerce to a list.\n/// @return {List} The original $value if it was a list, otherwise a single-item list containing\n/// $value.\n@function coerce-to-list($value) {\n @return if(meta.type-of($value) != 'list', ($value,), $value);\n}\n","//\n// Copyright 2020 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\n@use 'sass:list';\n@use 'sass:map';\n@use 'sass:meta';\n@use './gss';\n\n/// When true, add an additional property/value declaration before declarations\n/// that use advanced features such as custom properties or CSS functions. This\n/// adds fallback support for older browsers such as IE11 that do not support\n/// these features at the cost of additional CSS. Set this variable to false to\n/// disable generating fallback declarations.\n$enable-fallback-declarations: true !default;\n\n/// Writes a CSS property/value declaration. This mixin is used throughout the\n/// theme package for consistency for dynamically setting CSS property values.\n///\n/// This mixin may optionally take a fallback value. For advanced features such\n/// as custom properties or CSS functions like min and max, a fallback value is\n/// recommended to support older browsers.\n///\n/// @param {String} $property - The CSS property of the declaration.\n/// @param {*} $value - The value of the CSS declaration. The value should be\n/// resolved by other theme functions first (i.e. custom property Maps and\n/// Material theme keys are not supported in this mixin). If the value is\n/// null, no declarations will be emitted.\n/// @param {*} $fallback - An optional fallback value for older browsers. If\n/// provided, a second property/value declaration will be added before the\n/// main property/value declaration.\n/// @param {Map} $gss - An optional Map of GSS annotations to add.\n/// @param {Bool} $important - If true, add `!important` to the declaration.\n@mixin declaration(\n $property,\n $value,\n $fallback-value: null,\n $gss: (),\n $important: false\n) {\n // Normally setting a null value to a property will not emit CSS, so mixins\n // wouldn't need to check this. However, Sass will throw an error if the\n // interpolated property is a custom property.\n @if $value != null {\n $important-rule: if($important, ' !important', '');\n\n @if $fallback-value and $enable-fallback-declarations {\n @include gss.annotate($gss);\n #{$property}: #{$fallback-value} #{$important-rule};\n\n // Add @alternate to annotations.\n $gss: map.merge(\n $gss,\n (\n alternate: true,\n )\n );\n }\n\n @include gss.annotate($gss);\n #{$property}: #{$value}#{$important-rule};\n }\n}\n\n/// Unpacks shorthand values for CSS properties (i.e. lists of 1-3 values).\n/// If a list of 4 values is given, it is returned as-is.\n///\n/// Examples:\n///\n/// unpack-value(4px) => 4px 4px 4px 4px\n/// unpack-value(4px 2px) => 4px 2px 4px 2px\n/// unpack-value(4px 2px 2px) => 4px 2px 2px 2px\n/// unpack-value(4px 2px 0 2px) => 4px 2px 0 2px\n///\n/// @param {Number | Map | List} $value - List of 1 to 4 value numbers.\n/// @return {List} a List of 4 value numbers.\n@function unpack-value($value) {\n @if meta.type-of($value) == 'map' or list.length($value) == 1 {\n @return $value $value $value $value;\n } @else if list.length($value) == 4 {\n @return $value;\n } @else if list.length($value) == 3 {\n @return list.nth($value, 1) list.nth($value, 2) list.nth($value, 3)\n list.nth($value, 2);\n } @else if list.length($value) == 2 {\n @return list.nth($value, 1) list.nth($value, 2) list.nth($value, 1)\n list.nth($value, 2);\n }\n\n @error \"Invalid CSS property value: '#{$value}' is more than 4 values\";\n}\n","@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/style/list-common';\n\n\n// Include this empty mixin for consistency with the other components.\n@mixin color($config-or-theme) {}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-grid-tile-header,\n .mat-grid-tile-footer {\n @include list-common.base(typography-utils.font-size($config, caption));\n font-size: typography-utils.font-size($config, body-1);\n }\n}\n\n@mixin density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-grid-list') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","// This mixin will ensure that lines that overflow the container will hide the overflow and\n// truncate neatly with an ellipsis.\n@mixin truncate-line() {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n// Mixin to provide all mat-line styles, changing secondary font size based on whether the list\n// is in dense mode.\n@mixin base($secondary-font-size) {\n .mat-line {\n @include truncate-line();\n display: block;\n box-sizing: border-box;\n\n // all lines but the top line should have smaller text\n &:nth-child(n+2) {\n font-size: $secondary-font-size;\n }\n }\n}\n\n// This mixin normalizes default element styles, e.g. font weight for heading text.\n@mixin normalize-text() {\n & > * {\n margin: 0;\n padding: 0;\n font-weight: normal;\n font-size: inherit;\n }\n}\n\n// This mixin provides base styles for the wrapper around mat-line elements in a list.\n@mixin wrapper-base() {\n @include normalize-text();\n\n display: flex;\n flex-direction: column;\n flex: auto;\n box-sizing: border-box;\n overflow: hidden;\n\n // Must remove wrapper when lines are empty or it takes up horizontal\n // space and pushes other elements to the right.\n &:empty {\n display: none;\n }\n}\n","@use 'sass:map';\n@use '../core/density/private/compatibility';\n@use '../core/style/variables';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use './toolbar-variables';\n\n@mixin _height($height) {\n .mat-toolbar-multiple-rows {\n min-height: $height;\n }\n .mat-toolbar-row, .mat-toolbar-single-row {\n height: $height;\n }\n}\n\n@mixin _palette-styles($palette) {\n background: theming.get-color-from-palette($palette);\n color: theming.get-color-from-palette($palette, default-contrast);\n}\n\n@mixin _form-field-overrides {\n .mat-form-field-underline,\n .mat-form-field-ripple,\n .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n }\n\n .mat-form-field-label,\n .mat-focused .mat-form-field-label,\n .mat-select-value,\n .mat-select-arrow,\n .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n }\n\n .mat-input-element {\n caret-color: currentColor;\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-toolbar {\n background: theming.get-color-from-palette($background, app-bar);\n color: theming.get-color-from-palette($foreground, text);\n\n &.mat-primary {\n @include _palette-styles($primary);\n }\n\n &.mat-accent {\n @include _palette-styles($accent);\n }\n\n &.mat-warn {\n @include _palette-styles($warn);\n }\n\n @include _form-field-overrides;\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-toolbar,\n .mat-toolbar h1,\n .mat-toolbar h2,\n .mat-toolbar h3,\n .mat-toolbar h4,\n .mat-toolbar h5,\n .mat-toolbar h6 {\n @include typography-utils.typography-level($config, title);\n margin: 0;\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $height-desktop: compatibility.private-density-prop-value(\n toolbar-variables.$desktop-density-config, $density-scale, height);\n $height-mobile: compatibility.private-density-prop-value(\n toolbar-variables.$mobile-density-config, $density-scale, height);\n\n @include compatibility.private-density-legacy-compatibility() {\n // Set the default height for the toolbar.\n @include _height($height-desktop);\n\n // As per specs, toolbars should have a different height in mobile devices. This has been\n // specified in the old guidelines and is still observable in the new specifications by\n // looking at the spec images. See: https://material.io/design/components/app-bars-top.html#anatomy\n @media (variables.$xsmall) {\n @include _height($height-mobile);\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-toolbar') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/density/private/compatibility';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use './tree-variables';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-tree {\n background: theming.get-color-from-palette($background, 'card');\n }\n\n .mat-tree-node,\n .mat-nested-tree-node {\n color: theming.get-color-from-palette($foreground, text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-tree {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-tree-node,\n .mat-nested-tree-node {\n font-weight: typography-utils.font-weight($config, body-1);\n font-size: typography-utils.font-size($config, body-1);\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $height: compatibility.private-density-prop-value(tree-variables.$density-config,\n $density-scale, height);\n\n @include compatibility.private-density-legacy-compatibility() {\n .mat-tree-node {\n min-height: $height;\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-tree') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n\n","@use 'sass:map';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/tokens/token-utils';\n@use '../core/tokens/m2/mat/card' as tokens-mat-card;\n@use '../core/tokens/m2/mdc/elevated-card' as tokens-mdc-elevated-card;\n@use '../core/tokens/m2/mdc/outlined-card' as tokens-mdc-outlined-card;\n@use '@material/card/elevated-card-theme' as mdc-elevated-card-theme;\n@use '@material/card/outlined-card-theme' as mdc-outlined-card-theme;\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $mdc-elevated-card-color-tokens: token-utils.resolve-elevation(\n tokens-mdc-elevated-card.get-color-tokens($config),\n container-elevation,\n container-shadow-color\n );\n $mdc-outlined-card-color-tokens: token-utils.resolve-elevation(\n tokens-mdc-outlined-card.get-color-tokens($config),\n container-elevation,\n container-shadow-color,\n );\n $mat-card-color-tokens: tokens-mat-card.get-color-tokens($config);\n\n // Add values for card tokens.\n .mat-mdc-card {\n @include mdc-elevated-card-theme.theme($mdc-elevated-card-color-tokens);\n @include mdc-outlined-card-theme.theme($mdc-outlined-card-color-tokens);\n @include token-utils.create-token-values(tokens-mat-card.$prefix, $mat-card-color-tokens);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2018-config(\n theming.get-typography-config($config-or-theme));\n $mdc-elevated-card-typography-tokens: tokens-mdc-elevated-card.get-typography-tokens($config);\n $mdc-outlined-card-typography-tokens: tokens-mdc-outlined-card.get-typography-tokens($config);\n $mat-card-typography-tokens: tokens-mat-card.get-typography-tokens($config);\n\n // Add values for card tokens.\n .mat-mdc-card {\n @include mdc-elevated-card-theme.theme($mdc-elevated-card-typography-tokens);\n @include mdc-outlined-card-theme.theme($mdc-outlined-card-typography-tokens);\n @include token-utils.create-token-values(tokens-mat-card.$prefix, $mat-card-typography-tokens);\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $mdc-elevated-card-density-tokens: tokens-mdc-elevated-card.get-density-tokens($density-scale);\n $mdc-outlined-card-density-tokens: tokens-mdc-outlined-card.get-density-tokens($density-scale);\n $mat-card-density-tokens: tokens-mat-card.get-density-tokens($density-scale);\n\n // Add values for card tokens.\n .mat-mdc-card {\n @include mdc-elevated-card-theme.theme($mdc-elevated-card-density-tokens);\n @include mdc-outlined-card-theme.theme($mdc-outlined-card-density-tokens);\n @include token-utils.create-token-values(tokens-mat-card.$prefix, $mat-card-density-tokens);\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-card') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n\n@mixin theme-from-tokens($tokens) {\n // Add values for card tokens.\n .mat-mdc-card {\n @include mdc-elevated-card-theme.theme(map.get($tokens, tokens-mdc-elevated-card.$prefix));\n @include mdc-outlined-card-theme.theme(map.get($tokens, tokens-mdc-outlined-card.$prefix));\n @include token-utils.create-token-values(\n tokens-mat-card.$prefix, map.get($tokens, tokens-mat-card.$prefix));\n }\n}\n","@use '@material/tooltip/plain-tooltip-theme' as mdc-plain-tooltip-theme;\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/tokens/m2/mdc/plain-tooltip' as m2-mdc-plain-tooltip;\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $mdc-tooltip-color-tokens: m2-mdc-plain-tooltip.get-color-tokens($config);\n\n // Add values for MDC tooltip tokens.\n .mat-mdc-tooltip {\n @include mdc-plain-tooltip-theme.theme($mdc-tooltip-color-tokens);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2018-config(\n theming.get-typography-config($config-or-theme));\n $mdc-tooltip-typography-tokens: m2-mdc-plain-tooltip.get-typography-tokens($config);\n\n // Add values for MDC tooltip tokens.\n .mat-mdc-tooltip {\n @include mdc-plain-tooltip-theme.theme($mdc-tooltip-typography-tokens);\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $mdc-tooltip-density-tokens: m2-mdc-plain-tooltip.get-density-tokens($density-scale);\n\n // Add values for MDC tooltip tokens.\n .mat-mdc-tooltip {\n @include mdc-plain-tooltip-theme.theme($mdc-tooltip-density-tokens);\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-tooltip') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","//\n// Copyright 2017 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\n// stylelint-disable selector-class-pattern --\n// Selector '.mdc-*' should only be used in this project.\n\n@use 'sass:math';\n@use 'sass:list';\n@use 'sass:meta';\n@use 'sass:map';\n@use '@material/animation/animation';\n@use '@material/theme/css';\n@use '@material/density/functions' as density-functions;\n@use '@material/dom/dom';\n@use '@material/floating-label/mixins' as floating-label-mixins;\n@use '@material/floating-label/variables' as floating-label-variables;\n@use '@material/line-ripple/mixins' as line-ripple-mixins;\n@use '@material/notched-outline/mixins' as notched-outline-mixins;\n@use '@material/notched-outline/variables' as notched-outline-variables;\n@use '@material/ripple/ripple';\n@use '@material/ripple/ripple-theme';\n@use '@material/theme/custom-properties';\n@use '@material/theme/theme';\n@use '@material/shape/mixins' as shape-mixins;\n@use '@material/shape/functions' as shape-functions;\n@use '@material/feature-targeting/feature-targeting';\n@use '@material/typography/typography';\n@use 'helper-text/mixins' as helper-text-mixins;\n@use 'character-counter/mixins' as character-counter-mixins;\n@use 'icon/mixins' as icon-mixins;\n@use 'icon/variables' as icon-variables;\n@use './variables';\n@use '@material/rtl/rtl';\n\n$_density-config: map.merge(\n variables.$density-config,\n (\n minimum: math.min(variables.$minimum-height, 36px),\n )\n);\n\n@mixin core-styles($query: feature-targeting.all()) {\n @include ripple($query);\n @include static-styles($query);\n @include helper-text-mixins.helper-text-core-styles($query);\n @include character-counter-mixins.character-counter-core-styles($query);\n @include icon-mixins.icon-core-styles($query);\n}\n\n/// @deprecated Use static-styles() instead.\n@mixin without-ripple($query: feature-targeting.all()) {\n @include static-styles($query);\n}\n\n@mixin static-styles($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n // Baseline\n // postcss-bem-linter: define text-field\n .mdc-text-field {\n @include _base($query);\n }\n\n .mdc-text-field__input {\n @include _input($query);\n\n @include placeholder-selector_ {\n @include _input-placeholder($query);\n }\n\n // Always show placeholder for text fields that has no\n // label and show only on focused state when label is present.\n .mdc-text-field--no-label &,\n .mdc-text-field--focused & {\n @include placeholder-selector_ {\n @include _input-placeholder-visible($query);\n }\n }\n }\n\n .mdc-text-field__affix {\n @include _affix($query: $query);\n\n .mdc-text-field--label-floating &,\n .mdc-text-field--no-label & {\n @include _affix-visible($query: $query);\n }\n\n // Safari only\n @supports (-webkit-hyphens: none) {\n .mdc-text-field--outlined & {\n @include _centered-affix-safari-support($query: $query);\n }\n }\n }\n\n .mdc-text-field__affix--prefix {\n @include _prefix($query: $query);\n\n .mdc-text-field--end-aligned & {\n @include _prefix-end-aligned($query: $query);\n }\n }\n\n .mdc-text-field__affix--suffix {\n @include _suffix($query: $query);\n\n .mdc-text-field--end-aligned & {\n @include _suffix-end-aligned($query: $query);\n }\n }\n\n // Variants\n\n .mdc-text-field--filled {\n @include _filled($query);\n\n &.mdc-text-field--no-label {\n @include filled-no-label($query);\n }\n }\n\n .mdc-text-field--outlined {\n @include outlined_($query);\n\n .mdc-notched-outline {\n @include _outlined-notched-outline($query);\n }\n }\n\n // Other Variations\n\n .mdc-text-field--textarea {\n @include textarea_($query);\n\n .mdc-text-field__input {\n @include _textarea-input($query);\n }\n\n &.mdc-text-field--filled {\n @include _textarea-filled($query);\n\n .mdc-text-field__input {\n @include _textarea-filled-input($query);\n }\n\n &.mdc-text-field--no-label {\n .mdc-text-field__input {\n @include _textarea-filled-no-label-input($query);\n }\n }\n }\n\n &.mdc-text-field--outlined {\n @include _textarea-outlined($query);\n\n .mdc-text-field__input {\n @include _textarea-outlined-input($query);\n }\n\n .mdc-floating-label {\n @include _textarea-outlined-floating-label($query);\n }\n }\n\n &.mdc-text-field--with-internal-counter {\n .mdc-text-field__input {\n @include _textarea-input-with-internal-counter($query);\n }\n\n .mdc-text-field-character-counter {\n @include _textarea-internal-counter($query);\n }\n }\n }\n\n // Resizer element does not need to be under mdc-text-field--textarea, that\n // just adds specificity\n .mdc-text-field__resizer {\n @include _textarea-resizer($query);\n\n .mdc-text-field--filled & {\n @include _textarea-filled-resizer($query);\n\n .mdc-text-field__input,\n .mdc-text-field-character-counter {\n @include _textarea-filled-resizer-children($query);\n }\n }\n\n .mdc-text-field--outlined & {\n @include _textarea-outlined-resizer($query);\n\n .mdc-text-field__input,\n .mdc-text-field-character-counter {\n @include _textarea-outlined-resizer-children($query);\n }\n }\n }\n\n .mdc-text-field--with-leading-icon {\n @include _padding-horizontal-with-leading-icon($query);\n\n &.mdc-text-field--filled {\n @include with-leading-icon_($query);\n }\n\n &.mdc-text-field--outlined {\n @include outlined-with-leading-icon_($query);\n }\n }\n\n .mdc-text-field--with-trailing-icon {\n @include _padding-horizontal-with-trailing-icon($query);\n\n &.mdc-text-field--filled {\n @include _with-trailing-icon($query);\n }\n\n &.mdc-text-field--outlined {\n @include _outlined-with-trailing-icon($query);\n }\n }\n\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon {\n @include _padding-horizontal-with-both-icons($query);\n\n &.mdc-text-field--filled {\n @include _with-leading-and-trailing-icon($query);\n }\n }\n\n // postcss-bem-linter: define text-field-helper-text\n .mdc-text-field-helper-line {\n @include feature-targeting.targets($feat-structure) {\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n }\n\n .mdc-text-field + & {\n @include feature-targeting.targets($feat-structure) {\n padding-right: variables.$helper-line-padding;\n padding-left: variables.$helper-line-padding;\n }\n }\n }\n // postcss-bem-linter: end\n\n // mdc-form-field tweaks to align text field label correctly\n // stylelint-disable selector-max-type --\n // TODO: document why this disable is neccessary\n .mdc-form-field > .mdc-text-field + label {\n @include feature-targeting.targets($feat-structure) {\n align-self: flex-start;\n }\n }\n // stylelint-enable selector-max-type\n\n // States\n .mdc-text-field--focused {\n @include focused_($query);\n\n &.mdc-text-field--outlined {\n @include _focused-outlined($query);\n\n &.mdc-text-field--textarea {\n @include _focused-outlined-textarea($query);\n }\n }\n }\n\n .mdc-text-field--invalid {\n @include invalid_($query);\n }\n\n .mdc-text-field--disabled {\n @include disabled_($query);\n\n &.mdc-text-field--filled {\n @include _disabled-filled($query);\n }\n\n .mdc-text-field__input {\n @include _disabled-input($query);\n }\n }\n\n .mdc-text-field--end-aligned {\n @include end-aligned_($query);\n }\n\n .mdc-text-field--ltr-text {\n @include _ltr-text($query);\n\n &.mdc-text-field--end-aligned {\n @include _ltr-text-end-aligned($query);\n }\n }\n}\n\n// This API is intended for use by frameworks that may want to separate the ripple-related styles\n// from the other text field styles. It is recommended that most users use `mdc-text-field-core-styles` instead.\n@mixin ripple($query: feature-targeting.all()) {\n @include ripple.common($query); // COPYBARA_COMMENT_THIS_LINE\n\n .mdc-text-field--filled {\n @include ripple.surface(\n $query: $query,\n $ripple-target: variables.$ripple-target\n );\n @include ripple.radius-bounded(\n $query: $query,\n $ripple-target: variables.$ripple-target\n );\n }\n\n #{variables.$ripple-target} {\n @include ripple.target-common($query: $query);\n }\n}\n\n///\n/// Sets density scale for default text field variant.\n///\n/// @param {Number | String} $density-scale - Density scale value for component. Supported density scale values `-4`,\n/// `-3`, `-2`, `-1`, `0`. Default is `0`.\n/// @param {Number} $minimum-height-for-filled-label Sets the minimum height for\n/// filled textfields at which to allow floating labels.\n///\n@mixin density(\n $density-scale,\n $minimum-height-for-filled-label: variables.$minimum-height-for-filled-label,\n $query: feature-targeting.all()\n) {\n $height: density-functions.prop-value(\n $density-config: $_density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n @include height(\n $height,\n $minimum-height-for-filled-label: $minimum-height-for-filled-label,\n $query: $query\n );\n // TODO(b/151839219): resize icons and adjust label position\n // @if $density-scale < 0 {\n // @include icon-mixins.size(icon-variables.$dense-icon-size);\n // }\n}\n\n///\n/// Sets density scale for outlined text field (Excluding outlined text field with leading icon).\n///\n/// @param {Number | String} $density-scale - Density scale value for component. Supported density scale values `-4`,\n/// `-3`, `-2`, `-1`, `0`. Default is `0`.\n///\n@mixin outlined-density($density-scale, $query: feature-targeting.all()) {\n $height: density-functions.prop-value(\n $density-config: $_density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n @include outlined-height($height, $query: $query);\n // TODO(b/151839219): resize icons and adjust label position\n // @if $density-scale < 0 {\n // @include icon-mixins.size(icon-variables.$dense-icon-size);\n // }\n}\n\n///\n/// Sets density scale for outlined text field with leading icon.\n///\n/// @param {Number | String} $density-scale - Density scale value for component. Supported density scale values `-4`,\n/// `-3`, `-2`, `-1`, `0`. Default is `0`.\n///\n@mixin outlined-with-leading-icon-density(\n $density-scale,\n $query: feature-targeting.all()\n) {\n $height: density-functions.prop-value(\n $density-config: $_density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n @include outlined-with-leading-icon-height($height, $query: $query);\n // TODO(b/151839219): resize icons and adjust label position\n // @if $density-scale < 0 {\n // @include icon-mixins.size(icon-variables.$dense-icon-size);\n // }\n}\n\n///\n/// Sets density scale for filled textarea.\n///\n/// @param {Number | String} $density-scale - Density scale value for component. Supported density scale values `-4`,\n/// `-3`, `-2`, `-1`, `0`. Default is `0`.\n///\n@mixin filled-textarea-density(\n $density-scale,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $textfield-height: density-functions.prop-value(\n $density-config: $_density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n $no-label-margin-top: density-functions.prop-value(\n $density-config: variables.$textarea-filled-no-label-density-config,\n $density-scale: math.div($density-scale, 2),\n $property-name: margin-top,\n );\n $no-label-margin-bottom: density-functions.prop-value(\n $density-config: variables.$textarea-filled-no-label-density-config,\n $density-scale: math.div($density-scale, 2),\n $property-name: margin-bottom,\n );\n\n // Textarea mixins require two modifier classes since two are used internally\n // for styles (textarea and filled). An extra class is added for the public\n // mixin so that only a single public class is needed for specificity.\n &.mdc-text-field--filled {\n .mdc-text-field__resizer {\n @include feature-targeting.targets($feat-structure) {\n min-height: $textfield-height;\n }\n }\n\n @if $density-scale >= -1 {\n $keyframe-suffix: text-field-filled-#{$density-scale};\n $label-top: density-functions.prop-value(\n $density-config: variables.$textarea-filled-label-density-config,\n $density-scale: math.div($density-scale, 2),\n $property-name: top,\n );\n\n // Adjust the floating position and animation/keyframes of the floating\n // label by the new position of the resting label\n $label-top-difference: variables.$textarea-outlined-label-top -\n $label-top;\n\n // Floating label position\n @include floating-label-mixins.float-position(\n variables.$textarea-filled-label-position-y - $label-top-difference,\n $query: $query\n );\n\n // Floating label animation\n @include floating-label-mixins.shake-animation(\n $keyframe-suffix,\n $query: $query\n );\n @at-root {\n @include floating-label-mixins.shake-keyframes(\n $keyframe-suffix,\n variables.$textarea-filled-label-position-y - $label-top-difference,\n 0%,\n $query: $query\n );\n }\n\n // Resting label position\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n top: $label-top;\n }\n }\n\n $margin-bottom: density-functions.prop-value(\n $density-config: variables.$textarea-filled-density-config,\n $density-scale: $density-scale,\n $property-name: margin-bottom,\n );\n\n .mdc-text-field__input {\n @include feature-targeting.targets($feat-structure) {\n margin-bottom: $margin-bottom;\n }\n }\n } @else {\n // The textarea is too dense to show a floating label\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n display: none;\n }\n }\n\n .mdc-text-field__input {\n @include feature-targeting.targets($feat-structure) {\n margin-top: $no-label-margin-top;\n margin-bottom: $no-label-margin-bottom;\n }\n }\n }\n\n &.mdc-text-field--no-label {\n .mdc-text-field__input {\n @include feature-targeting.targets($feat-structure) {\n margin-top: $no-label-margin-top;\n margin-bottom: $no-label-margin-bottom;\n }\n }\n }\n\n &.mdc-text-field--with-internal-counter {\n .mdc-text-field__input {\n // Space between textarea and internal counter should not be affected\n @include _textarea-input-with-internal-counter($query);\n }\n }\n }\n}\n\n///\n/// Sets density scale for outlined textarea.\n///\n/// @param {Number | String} $density-scale - Density scale value for component. Supported density scale values `-4`,\n/// `-3`, `-2`, `-1`, `0`. Default is `0`.\n///\n@mixin outlined-textarea-density(\n $density-scale,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $keyframe-suffix: text-field-outlined-#{$density-scale};\n $label-top: density-functions.prop-value(\n $density-config: variables.$textarea-outlined-label-density-config,\n $density-scale: math.div($density-scale, 2),\n $property-name: top,\n );\n $textfield-height: density-functions.prop-value(\n $density-config: $_density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n $margin-top: density-functions.prop-value(\n $density-config: variables.$textarea-outlined-density-config,\n $density-scale: math.div($density-scale, 2),\n $property-name: margin-top,\n );\n $margin-bottom: density-functions.prop-value(\n $density-config: variables.$textarea-outlined-density-config,\n $density-scale: math.div($density-scale, 2),\n $property-name: margin-bottom,\n );\n\n // Textarea mixins require two modifier classes since two are used internally\n // for styles (textarea and outlined). An extra class is added for the public\n // mixin so that only a single public class is needed for specificity.\n &.mdc-text-field--outlined {\n // Adjust the floating position and animation/keyframes of the floating\n // label by the new position of the resting label\n $label-top-difference: variables.$textarea-outlined-label-top - $label-top;\n\n // Floating label position\n @include notched-outline-mixins.floating-label-float-position-absolute(\n variables.$textarea-outlined-label-position-y - $label-top-difference,\n $query: $query\n );\n\n // Floating label animation\n @include floating-label-mixins.shake-animation(\n $keyframe-suffix,\n $query: $query\n );\n @at-root {\n @include floating-label-mixins.shake-keyframes(\n $keyframe-suffix,\n variables.$textarea-outlined-label-position-y - $label-top-difference,\n 0%,\n $query: $query\n );\n }\n\n // Resting label position\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n top: $label-top;\n }\n }\n\n .mdc-text-field__resizer {\n @include feature-targeting.targets($feat-structure) {\n min-height: $textfield-height;\n }\n }\n\n .mdc-text-field__input {\n @include feature-targeting.targets($feat-structure) {\n margin-top: $margin-top;\n margin-bottom: $margin-bottom;\n }\n }\n\n &.mdc-text-field--with-internal-counter {\n .mdc-text-field__input {\n // Space between textarea and internal counter should not be affected\n @include _textarea-input-with-internal-counter($query);\n }\n }\n }\n}\n\n///\n/// Sets the minimum number of rows for a textarea a textarea may be resized to.\n///\n/// For IE11 this mixin can be used instead of the rows attribute.\n///\n/// @param {Number} $rows - The minimum number of rows for a textarea.\n/// @param {Number} $line-height - The line-height of the textarea.\n///\n@mixin textarea-min-rows(\n $rows,\n $line-height: variables.$textarea-line-height,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n .mdc-text-field__input {\n @include feature-targeting.targets($feat-structure) {\n min-height: $rows * $line-height;\n }\n }\n}\n\n///\n/// Sets height of default text field variant.\n///\n/// @param {Number} $height\n/// @param {Number} $minimum-height-for-filled-label Sets the minimum height for\n/// filled textfields at which to allow floating labels.\n/// @access public\n///\n@mixin height(\n $height,\n $minimum-height-for-filled-label: variables.$minimum-height-for-filled-label,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n @include feature-targeting.targets($feat-structure) {\n @include theme.property(height, $height);\n }\n\n // We can only hide the label (when there's not enough vertical space for it)\n // if we know the container height at compilation time.\n // That's not the case when $height is a custom property.\n @if not custom-properties.is-custom-prop($height) {\n @if $height < $minimum-height-for-filled-label {\n @include filled-no-label($query: $query);\n }\n }\n}\n\n///\n/// Sets height of outlined text field variant (Excluding outlined text field with leading icon).\n///\n/// @param {Number} $height\n/// @param {String} $keyframe-suffix - Optional suffix to use for generated\n/// floating label keyframes\n/// @access public\n///\n@mixin outlined-height(\n $height,\n $keyframe-suffix: text-field-outlined-#{$height},\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $positionY: variables.get-outlined-label-position-y($height);\n\n // Floating label position\n @include notched-outline-mixins.floating-label-float-position-absolute(\n $positionY,\n $query: $query\n );\n\n // Floating label animation\n @include floating-label-mixins.shake-animation(\n $keyframe-suffix,\n $query: $query\n );\n @at-root {\n @include floating-label-mixins.shake-keyframes(\n $keyframe-suffix,\n $positionY,\n $query: $query\n );\n }\n\n @include feature-targeting.targets($feat-structure) {\n height: $height;\n }\n}\n\n///\n/// Sets height of outlined text field with leading icon variant.\n///\n/// @param {Number} $height\n/// @param {String} $keyframe-suffix - Optional suffix to use for generated\n/// floating label keyframes\n/// @access public\n///\n@mixin outlined-with-leading-icon-height(\n $height,\n $keyframe-suffix: null,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n // This extra specificity is needed because textfield applies the below mixin\n // already to two selectors (outlined + with-leading-icon). To override\n // them with a new label position and animation, another selector is needed.\n &.mdc-text-field--outlined {\n @include _outlined-with-leading-icon-floating-label-position-animation(\n $height,\n $keyframe-suffix,\n $query\n );\n }\n\n @include feature-targeting.targets($feat-structure) {\n height: $height;\n }\n}\n\n// Mixin that sets the floating label position and animations for a given height.\n// This mixin is separate to allow outlined-with-leading-icon-height() to\n// provide greater specificity over the default mixin that adds styles for\n// outlined with leading icons.\n@mixin _outlined-with-leading-icon-floating-label-position-animation(\n $height,\n $keyframe-suffix: text-field-outlined-with-leading-icon-#{$height},\n $query: feature-targeting.all()\n) {\n $positionY: variables.get-outlined-label-position-y($height);\n\n // Floating label position\n @include notched-outline-mixins.floating-label-float-position-absolute(\n $positionY,\n variables.$outlined-with-leading-icon-label-position-x,\n $query: $query\n );\n\n // Floating label animation\n @include floating-label-mixins.shake-animation(\n $keyframe-suffix,\n $query: $query\n );\n @at-root {\n @include floating-label-mixins.shake-keyframes(\n $keyframe-suffix,\n $positionY,\n variables.$outlined-with-leading-icon-label-position-x,\n $query: $query\n );\n }\n\n $keyframe-suffix-rtl: #{$keyframe-suffix}-rtl;\n @include rtl.rtl {\n @include floating-label-mixins.shake-animation(\n $keyframe-suffix,\n $query: $query\n );\n }\n @at-root {\n @include floating-label-mixins.shake-keyframes(\n $keyframe-suffix-rtl,\n $positionY,\n -(variables.$outlined-with-leading-icon-label-position-x),\n $query: $query\n );\n }\n}\n\n///\n/// Sets shape radius of default text field variant.\n///\n/// @param {Number} $radius Shape radius value in `px` or in percentage.\n/// @param {Number} $text-field-height Height of default text field variant. Required only when `$radius` is in\n/// percentage unit and if text field has custom height. Defaults to `variables.$height`.\n/// @param {Boolean} $rtl-reflexive Set to true to flip shape radius in RTL context. Defaults to `false`.\n///\n@mixin shape-radius(\n $radius,\n $density-scale: variables.$density-scale,\n $rtl-reflexive: false,\n $query: feature-targeting.all()\n) {\n @if (meta.type-of($radius) == 'list') and\n (list.length($radius) > 2) and\n (list.nth($radius, 3) != 0 or list.nth($radius, 4) != 0)\n {\n @error \"mdc-textfield: Invalid radius #{$radius}. Only top-left and top-right corners may be customized.\";\n }\n\n $height: density-functions.prop-value(\n $density-config: $_density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n $masked-radius: shape-functions.mask-radius($radius, 1 1 0 0);\n\n $fallback: if(\n custom-properties.is-custom-prop($radius),\n custom-properties.get-fallback($radius),\n null\n );\n\n @if meta.type-of($fallback) == 'list' {\n $fallback: css.unpack-value($fallback);\n $first: list.nth($masked-radius, 1);\n $second: list.nth($masked-radius, 2);\n $third: list.nth($masked-radius, 3);\n $fourth: list.nth($masked-radius, 4);\n $masked-radius: (\n if(\n custom-properties.is-custom-prop($first),\n custom-properties.set-fallback($first, list.nth($fallback, 1)),\n $first\n ),\n if(\n custom-properties.is-custom-prop($second),\n custom-properties.set-fallback($second, list.nth($fallback, 2)),\n $second\n ),\n if(\n custom-properties.is-custom-prop($third),\n custom-properties.set-fallback($third, list.nth($fallback, 3)),\n $third\n ),\n if(\n custom-properties.is-custom-prop($fourth),\n custom-properties.set-fallback($fourth, list.nth($fallback, 4)),\n $fourth\n )\n );\n }\n\n @include shape-mixins.radius(\n $masked-radius,\n $rtl-reflexive,\n $component-height: $height,\n $query: $query\n );\n}\n\n@mixin textarea-shape-radius(\n $radius,\n $rtl-reflexive: false,\n $query: feature-targeting.all()\n) {\n @include notched-outline-mixins.shape-radius(\n $radius,\n $rtl-reflexive,\n $query: $query\n );\n}\n\n///\n/// Customizes the color of the text entered into an enabled text field.\n/// @param {Color} $color - The desired input text color.\n///\n@mixin ink-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include ink-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the color of the entered text in a disabled text field.\n/// @param {Color} $color - The desired input text color.\n///\n@mixin disabled-ink-color($color, $query: feature-targeting.all()) {\n @include if-disabled_ {\n @include ink-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the color of the placeholder in an enabled text field.\n/// @param {Color} $color - The desired placeholder text color.\n///\n@mixin placeholder-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include placeholder-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the color of the placeholder in a disabled text field.\n/// @param {Color} $color - The desired placeholder text color.\n///\n@mixin disabled-placeholder-color($color, $query: feature-targeting.all()) {\n @include if-disabled_ {\n @include placeholder-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the background color of the text field or textarea when enabled.\n/// @param {Color} $color - The desired background color.\n///\n@mixin fill-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include fill-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the background color of the text field or textarea when disabled.\n/// @param {Color} $color - The desired background color.\n///\n@mixin disabled-fill-color($color, $query: feature-targeting.all()) {\n @include if-disabled_ {\n @include fill-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the text field bottom line color for the filled variant.\n/// @param {Color} $color - The desired bottom line color.\n///\n@mixin bottom-line-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include bottom-line-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the disabled text field bottom line color for the filled variant.\n/// @param {Color} $color - The desired bottom line color.\n///\n@mixin disabled-bottom-line-color($color, $query: feature-targeting.all()) {\n @include if-disabled_ {\n @include bottom-line-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the hover text field bottom line color for the filled variant.\n/// @param {Color} $color - The desired bottom line color.\n///\n@mixin hover-bottom-line-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include hover-bottom-line-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the color of the default line ripple of the text field.\n/// @param {Color} $color - The desired line ripple color.\n///\n@mixin line-ripple-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include line-ripple-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the text color of the label in an enabled text field.\n/// @param {Color} $color - The desired label text color.\n///\n@mixin label-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include label-ink-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the text color of the label in a disabled text field.\n/// @param {Color} $color - The desired label text color.\n///\n@mixin disabled-label-color($color, $query: feature-targeting.all()) {\n @include if-disabled_ {\n @include label-ink-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the border color of the outlined text field or textarea.\n/// @param {Color} $color - The desired outline border color.\n///\n@mixin outline-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include notched-outline-mixins.color($color, $query: $query);\n }\n}\n\n///\n/// Customizes the outline border color when the text field or textarea is hovered.\n/// @param {Color} $color - The desired outline border color.\n///\n@mixin hover-outline-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include hover-outline-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the outline border color when the text field or textarea is focused.\n/// @param {Color} $color - The desired outline border color.\n///\n@mixin focused-outline-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include focused-outline-color_($color, $query: $query);\n }\n}\n\n///\n/// Customizes the outline border color when the text field or textarea is disabled.\n/// @param {Color} $color - The desired outline border color.\n///\n@mixin disabled-outline-color($color, $query: feature-targeting.all()) {\n @include if-disabled_ {\n @include notched-outline-mixins.color($color, $query: $query);\n }\n}\n\n///\n/// Customizes the caret color of the text field or textarea.\n/// @param {Color} $color - The desired caret color.\n///\n@mixin caret-color($color, $query: feature-targeting.all()) {\n $feat-color: feature-targeting.create-target($query, color);\n\n .mdc-text-field__input {\n @include feature-targeting.targets($feat-color) {\n @include theme.property(caret-color, $color);\n }\n }\n}\n\n///\n/// Customizes the color of the prefix text for an enabled text field.\n/// @param {Color} $color - The desired prefix text color.\n///\n@mixin prefix-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include _prefix-color($color, $query: $query);\n }\n}\n\n///\n/// Customizes the color of the prefix text for a disabled text field.\n/// @param {Color} $color - The desired prefix text color.\n///\n@mixin disabled-prefix-color($color, $query: feature-targeting.all()) {\n @include if-disabled_ {\n @include _prefix-color($color, $query: $query);\n }\n}\n\n///\n/// Customizes the color of the suffix text for an enabled text field.\n/// @param {Color} $color - The desired suffix text color.\n///\n@mixin suffix-color($color, $query: feature-targeting.all()) {\n @include if-enabled_ {\n @include _suffix-color($color, $query: $query);\n }\n}\n\n///\n/// Customizes the color of the suffix text for a disabled text field.\n/// @param {Color} $color - The desired suffix text color.\n///\n@mixin disabled-suffix-color($color, $query: feature-targeting.all()) {\n @include if-disabled_ {\n @include _suffix-color($color, $query: $query);\n }\n}\n\n///\n/// Sets shape radius of outlined text field variant.\n///\n/// @param {Number} $radius Shape radius value in `px` or in percentage.\n/// @param {Number} $text-field-height Height of outlined text field variant. Required only when `$radius` is in\n/// percentage unit and if text field has custom height. Defaults to `variables.$height`.\n/// @param {Boolean} $rtl-reflexive Set to true to flip shape radius in RTL context. Defaults to `false`.\n///\n@mixin outline-shape-radius(\n $radius,\n $density-scale: variables.$density-scale,\n $rtl-reflexive: false,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $height: density-functions.prop-value(\n $density-config: $_density-config,\n $density-scale: $density-scale,\n $property-name: height,\n );\n\n .mdc-notched-outline {\n @include notched-outline-mixins.shape-radius(\n $radius,\n $rtl-reflexive,\n $component-height: $height,\n $query: $query\n );\n }\n\n $resolved-radius: shape-functions.resolve-radius(\n $radius,\n $component-height: $height\n );\n $unpacked-radius: shape-functions.unpack-radius($resolved-radius);\n $top-left-radius: list.nth($unpacked-radius, 1);\n $top-left-is-custom-prop: custom-properties.is-custom-prop($top-left-radius);\n $top-left-radius-px: $top-left-radius;\n @if ($top-left-is-custom-prop) {\n $top-left-radius-px: custom-properties.get-fallback($top-left-radius);\n }\n $top-right-radius: list.nth($unpacked-radius, 2);\n $top-right-is-custom-prop: custom-properties.is-custom-prop(\n $top-right-radius\n );\n\n @if (\n $top-left-is-custom-prop or\n $top-right-is-custom-prop or\n $top-left-radius-px >\n notched-outline-variables.$leading-width\n ) {\n // The horizontal padding only needs to be overriden from the base padding\n // if the radius is a custom property, or if the top-left radius is a value\n // that is large than that default notched outline's leading width.\n @include _outline-shape-radius-horizontal-padding(\n $top-left-radius,\n $top-right-radius,\n $query: $query\n );\n\n + .mdc-text-field-helper-line {\n @include _outline-shape-radius-horizontal-padding(\n $top-left-radius,\n $top-right-radius,\n $query: $query\n );\n }\n\n // Ensure that leading/trailing icon padding is overriden. Even if the\n // top left/right isn't a custom property or the leading isn't larger, we\n // still need to override. The above left/right padding rules have more\n // specificty than the original leading/trailing icon rules, so we need to\n // re-apply them.\n // Additionally, if the top left/right radii _are_ custom properties, we\n // should use those instead.\n\n &.mdc-text-field--with-leading-icon {\n @if ($top-right-is-custom-prop) {\n @include feature-targeting.targets($feat-structure) {\n @include rtl.ignore-next-line();\n padding-left: 0;\n }\n @include _apply-outline-shape-padding(\n padding-right,\n $top-right-radius,\n $query: $query\n );\n\n @include rtl.rtl {\n @include _apply-outline-shape-padding(\n padding-left,\n $top-right-radius,\n $query: $query\n );\n @include feature-targeting.targets($feat-structure) {\n @include rtl.ignore-next-line();\n padding-right: 0;\n }\n }\n } @else {\n @include _padding-horizontal-with-leading-icon($query);\n }\n }\n\n &.mdc-text-field--with-trailing-icon {\n @if (\n $top-left-is-custom-prop or\n $top-left-radius-px >\n notched-outline-variables.$leading-width\n ) {\n @include _apply-outline-shape-padding(\n padding-left,\n $top-left-radius,\n $add-label-padding: true,\n $query: $query\n );\n @include feature-targeting.targets($feat-structure) {\n @include rtl.ignore-next-line();\n padding-right: 0;\n }\n\n @include rtl.rtl {\n @include feature-targeting.targets($feat-structure) {\n @include rtl.ignore-next-line();\n padding-left: 0;\n }\n @include _apply-outline-shape-padding(\n padding-right,\n $top-left-radius,\n $add-label-padding: true,\n $query: $query\n );\n }\n } @else {\n @include _padding-horizontal-with-trailing-icon($query);\n }\n }\n\n &.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon {\n @include _padding-horizontal-with-both-icons($query);\n }\n }\n}\n\n@mixin _outline-shape-radius-horizontal-padding(\n $top-left-radius,\n $top-right-radius,\n $query: feature-targeting.all()\n) {\n @include _apply-outline-shape-padding(\n padding-left,\n $top-left-radius,\n $add-label-padding: true,\n $query: $query\n );\n @include _apply-outline-shape-padding(\n padding-right,\n $top-right-radius,\n $query: $query\n );\n\n $top-left-is-custom-prop: custom-properties.is-custom-prop($top-left-radius);\n $top-left-radius-px: $top-left-radius;\n @if ($top-left-is-custom-prop) {\n $top-left-radius-px: custom-properties.get-fallback($top-left-radius);\n }\n $top-right-is-custom-prop: custom-properties.is-custom-prop(\n $top-right-radius\n );\n $top-right-radius-px: $top-right-radius;\n @if ($top-right-is-custom-prop) {\n $top-right-radius-px: custom-properties.get-fallback($top-right-radius);\n }\n\n @if (\n (\n $top-left-is-custom-prop and\n $top-right-is-custom-prop and not\n custom-properties.are-equal($top-left-radius, $top-right-radius)\n ) or\n $top-left-radius-px !=\n $top-right-radius-px\n ) {\n // Normally base horizontal padding doesn't need RTL, but if the values\n // are different or they are two different custom properties, they need to\n // be reversed.\n @include rtl.rtl {\n @include _apply-outline-shape-padding(\n padding-right,\n $top-left-radius,\n $add-label-padding: true,\n $query: $query\n );\n @include _apply-outline-shape-padding(\n padding-left,\n $top-right-radius,\n $query: $query\n );\n }\n }\n}\n\n@mixin _apply-outline-shape-padding(\n $property,\n $padding,\n $add-label-padding: false,\n $query: feature-targeting.all()\n) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $padding-is-custom-prop: custom-properties.is-custom-prop($padding);\n $padding-px: $padding;\n @if ($padding-is-custom-prop) {\n $padding-px: custom-properties.get-fallback($padding);\n }\n\n @include feature-targeting.targets($feat-structure) {\n // The shape should only change the padding if the radius becomes greater\n // than the default padding. That means we need to add more padding.\n @if ($padding-px > variables.$padding-horizontal) {\n // Set a px value if it's greater. This is either the only value (if\n // we're given an exact value), or an IE11 fallback if we're given a\n // custom property and the fallback value is greater than the padding.\n $value: $padding-px;\n @if ($add-label-padding) {\n // If this is for the top-left leading, add the notched outline padding\n // to keep it aligned with the label\n $value: $padding-px + notched-outline-variables.$padding;\n }\n\n @include rtl.ignore-next-line();\n #{$property}: $value;\n @if ($padding-is-custom-prop) {\n // Add an alternate GSS tag b/c this was an IE11 fallback and we're\n // going to add another property with the var() value\n /* @alternate */\n }\n }\n @if ($padding-is-custom-prop) {\n // If it's a custom property, always add it since the value may change\n // to be greater than the padding at runtime, even if the fallback is\n // not currently greater than the default padding.\n $value: custom-properties.create-var($padding);\n @if ($add-label-padding) {\n $value: calc(#{$value} + #{notched-outline-variables.$padding});\n }\n\n // Interpolation is a workaround for sass/sass#3259.\n @supports (top: max(#{0%})) {\n // A max() function makes this runtime dynamic. The padding will be\n // whichever is greater: the default horizontal padding, or the calculated\n // custom property plus extra padding.\n @include rtl.ignore-next-line();\n #{$property}: max(#{variables.$padding-horizontal}, #{$value});\n }\n }\n }\n}\n\n///\n/// Sets the CSS transition for the floating label's 'float' animation.\n///\n/// @param {Number} $duration-ms - Duration (in ms) of the animation.\n/// @param {String} $timing-function - Optionally overrides the default animation timing function.\n///\n@mixin floating-label-float-transition(\n $duration-ms,\n $timing-function: null,\n $query: feature-targeting.all()\n) {\n .mdc-floating-label {\n @include floating-label-mixins.float-transition(\n $duration-ms,\n $timing-function,\n $query: $query\n );\n }\n}\n\n///\n/// Sets custom font size of the input.\n///\n/// @param {number} $font-size - Overrides the font size.\n///\n@mixin input-font-size($font-size, $query: feature-targeting.all()) {\n $feat-typography: feature-targeting.create-target($query, typography);\n\n .mdc-text-field__input,\n .mdc-text-field__affix--suffix,\n .mdc-text-field__affix--prefix {\n @include feature-targeting.targets($feat-typography) {\n font-size: $font-size;\n }\n }\n}\n\n///\n/// Sets custom font family of the input.\n///\n/// @param {String} $font-family - Selected font family.\n///\n@mixin input-font-family($font-family, $query: feature-targeting.all()) {\n $feat-typography: feature-targeting.create-target($query, typography);\n\n .mdc-text-field__input {\n @include feature-targeting.targets($feat-typography) {\n font-family: $font-family;\n }\n }\n}\n\n// Private mixins\n\n// Base shared styles\n@mixin _base($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n // Shape\n @include shape-radius(variables.$shape-radius, $query: $query);\n\n // Colors\n @include label-color(variables.$label, $query: $query);\n @include ink-color(variables.$ink-color, $query: $query);\n @include placeholder-color(variables.$placeholder-ink-color, $query: $query);\n @include caret-color(primary, $query: $query);\n @include helper-text-mixins.helper-text-color(\n variables.$helper-text-color,\n $query: $query\n );\n @include character-counter-mixins.character-counter-color(\n variables.$helper-text-color,\n $query: $query\n );\n @include icon-mixins.leading-icon-color(\n variables.$icon-color,\n $query: $query\n );\n @include icon-mixins.trailing-icon-color(\n variables.$icon-color,\n $query: $query\n );\n @include prefix-color(variables.$affix-color, $query: $query);\n @include suffix-color(variables.$affix-color, $query: $query);\n\n // Floating Label\n @include floating-label_($query);\n\n @include feature-targeting.targets($feat-structure) {\n // display and align-items are necessary to make the text field participate\n // in baseline alignment, even though some variants are 'centered'. Those\n // variants should use the _baseline-center-aligned() mixin\n display: inline-flex;\n align-items: baseline;\n padding: 0 variables.$padding-horizontal;\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n /* @alternate */\n will-change: opacity, transform, color;\n }\n}\n\n// This mixin adds styles to visually center the text within the text field.\n// Sibling text will align to the baseline and appear centered next to the\n// text field.\n@mixin _baseline-center-aligned($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n // In order for a flexbox container to participate in baseline alignment,\n // it follows these rules to determine where its baseline is:\n // https://www.w3.org/TR/css-flexbox-1/#flex-baselines\n //\n // In order to avoid leading icons 'controlling' the baseline (since they\n // are the first child), flexbox will generate a baseline from any child\n // flex items that participate in baseline alignment.\n //\n // Icons are set to \"align-self: center\", while all other children are\n // aligned to baseline. The next problem is deciding which child is\n // used to determine the baseline.\n //\n // According to spec, the item with the largest distance between its\n // baseline and the edge of the cross axis is placed flush with that edge,\n // making it the baseline of the container.\n // https://www.w3.org/TR/css-flexbox-1/#baseline-participation\n //\n // For the filled variant, the pseudo ::before strut is the 'largest'\n // child since the input has a height of 28px and the strut is 40px. We\n // can emulate center alignment and force the baseline to use the input\n // text by making the input the full height of the container and removing\n // the baseline strut.\n\n // IE11 does not respect this, and makes the leading icon (if present) the\n // baseline. This is a gap with IE11 that we have accepted.\n .mdc-text-field__input {\n height: 100%;\n }\n }\n}\n\n@mixin _padding-horizontal-with-leading-icon($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n @include rtl.reflexive-property(padding, 0, variables.$padding-horizontal);\n }\n}\n\n@mixin _padding-horizontal-with-trailing-icon($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n @include rtl.reflexive-property(padding, variables.$padding-horizontal, 0);\n }\n}\n\n@mixin _padding-horizontal-with-both-icons($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n @include rtl.ignore-next-line();\n padding-left: 0;\n @include rtl.ignore-next-line();\n padding-right: 0;\n }\n}\n\n@mixin floating-label_($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n }\n }\n}\n\n// Filled\n\n@mixin _filled($query: feature-targeting.all()) {\n // Text Field intentionally omits press ripple, so each state needs to be specified individually.\n @include ripple-theme.states-base-color(\n variables.$ink-color,\n $query: $query,\n $ripple-target: variables.$ripple-target\n );\n @include ripple-theme.states-hover-opacity(\n ripple-theme.states-opacity(variables.$ink-color, hover),\n $query: $query,\n $ripple-target: variables.$ripple-target\n );\n @include ripple-theme.states-focus-opacity(\n ripple-theme.states-opacity(variables.$ink-color, focus),\n $query: $query,\n $ripple-target: variables.$ripple-target\n );\n\n @include height(variables.$height, $query: $query);\n @include typography.baseline-top(\n variables.$filled-baseline-top,\n $query: $query\n );\n @include fill-color(variables.$background, $query: $query);\n @include bottom-line-color(variables.$bottom-line-idle, $query: $query);\n @include hover-bottom-line-color(\n variables.$bottom-line-hover,\n $query: $query\n );\n @include line-ripple-color_(primary, $query: $query);\n @include _filled-floating-label($query);\n}\n\n@mixin _filled-floating-label($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n @include rtl.reflexive-position(left, variables.$label-offset);\n }\n }\n\n @include floating-label-mixins.float-position(\n variables.$label-position-y,\n $query: $query\n );\n}\n\n// Filled variant with no label. This variant centers the text elements and\n// hides the label and is used with there is explicitly no label provided or\n// when the height of the text field is too small for a label to be allowed.\n@mixin filled-no-label($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include _baseline-center-aligned($query);\n @include feature-targeting.targets($feat-structure) {\n .mdc-floating-label {\n display: none;\n }\n\n &::before {\n // Remove baseline-top strut\n display: none;\n }\n }\n\n // Safari only\n @supports (-webkit-hyphens: none) {\n .mdc-text-field__affix {\n @include _centered-affix-safari-support($query: $query);\n }\n }\n}\n\n// Outlined\n\n@mixin outlined_($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include outlined-height(\n $height: variables.$height,\n $keyframe-suffix: text-field-outlined,\n $query: $query\n );\n @include _baseline-center-aligned($query: $query);\n @include outline-color(variables.$outlined-idle-border, $query: $query);\n @include hover-outline-color(\n variables.$outlined-hover-border,\n $query: $query\n );\n @include focused-outline-color(primary, $query: $query);\n @include outline-shape-radius(variables.$shape-radius, $query: $query);\n @include notched-outline-mixins.notch-offset(\n notched-outline-variables.$border-width,\n $query: $query\n );\n @include ripple-theme.states-base-color(\n transparent,\n $query: $query,\n $ripple-target: variables.$ripple-target\n );\n @include _outlined-floating-label($query);\n\n @include feature-targeting.targets($feat-structure) {\n overflow: visible;\n }\n\n .mdc-text-field__input {\n @include feature-targeting.targets($feat-structure) {\n // TODO(b/154349735): Investigate the neccessity of these styles\n display: flex;\n // stylelint-disable-next-line declaration-no-important --\n // FF adds unwanted border in HC mode on windows.\n border: none !important;\n background-color: transparent;\n }\n }\n}\n\n@mixin _outlined-floating-label($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n @include rtl.reflexive-position(left, notched-outline-variables.$padding);\n }\n }\n}\n\n@mixin _outlined-notched-outline($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n // Force the outline to appear \"above\" the textfield elements, even though\n // it is absolutely positioned and comes before the input in the DOM. This\n // is primarily for the textarea scrollbar and resize elements, which may\n // clip with with outline border.\n z-index: 1;\n }\n}\n\n// States\n\n@mixin disabled_($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include ink-color_(variables.$disabled-ink-color, $query: $query);\n @include placeholder-color_(\n variables.$disabled-placeholder-ink-color,\n $query: $query\n );\n @include label-ink-color_(variables.$disabled-label-color, $query: $query);\n @include helper-text-mixins.helper-text-color_(\n variables.$disabled-helper-text-color,\n $query: $query\n );\n @include character-counter-mixins.character-counter-color_(\n variables.$disabled-helper-text-color,\n $query: $query\n );\n @include icon-mixins.leading-icon-color_(\n variables.$disabled-icon,\n $query: $query\n );\n @include icon-mixins.trailing-icon-color_(\n variables.$disabled-icon,\n $query: $query\n );\n @include _prefix-color(variables.$disabled-affix-color, $query: $query);\n @include _suffix-color(variables.$disabled-affix-color, $query: $query);\n\n // Mixins that are ok to include since they target variant-specific elements\n @include bottom-line-color_(variables.$disabled-border, $query: $query);\n @include notched-outline-mixins.color(\n variables.$outlined-disabled-border,\n $query: $query\n );\n\n @include dom.forced-colors-mode {\n @include placeholder-color_(GrayText, $query: $query);\n @include label-ink-color_(GrayText, $query: $query);\n @include helper-text-mixins.helper-text-color_(GrayText, $query: $query);\n @include character-counter-mixins.character-counter-color_(\n GrayText,\n $query: $query\n );\n @include icon-mixins.leading-icon-color_(GrayText, $query: $query);\n @include icon-mixins.trailing-icon-color_(GrayText, $query: $query);\n @include _prefix-color(GrayText, $query: $query);\n @include _suffix-color(GrayText, $query: $query);\n\n // Mixins that are ok to include since they target variant-specific elements\n @include bottom-line-color_(GrayText, $query: $query);\n @include notched-outline-mixins.color(GrayText, $query: $query);\n }\n\n @include dom.forced-colors-mode($exclude-ie11: true) {\n .mdc-text-field__input {\n @include feature-targeting.targets($feat-structure) {\n background-color: Window;\n }\n }\n\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n z-index: 1;\n }\n }\n }\n\n @include feature-targeting.targets($feat-structure) {\n pointer-events: none;\n }\n\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n cursor: default;\n }\n }\n}\n\n@mixin _disabled-input($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n // disabled inputs should still allow users to interact with them to select\n // text and scroll for textareas\n pointer-events: auto;\n }\n}\n\n@mixin _disabled-filled($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include fill-color_(variables.$disabled-background, $query: $query);\n\n #{variables.$ripple-target} {\n @include feature-targeting.targets($feat-structure) {\n // prevent ripple from displaying on hover when some interactible\n // elements like input and resize handles are hovered\n display: none;\n }\n }\n}\n\n@mixin invalid_($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include hover-bottom-line-color(variables.$error, $query: $query);\n @include line-ripple-color(variables.$error, $query: $query);\n @include label-color(variables.$error, $query: $query);\n @include helper-text-mixins.helper-text-validation-color(\n variables.$error,\n $query: $query\n );\n @include caret-color(variables.$error, $query: $query);\n @include icon-mixins.trailing-icon-color(variables.$error, $query: $query);\n\n // Mixins that are ok to include since they target variant-specific elements\n @include bottom-line-color(variables.$error, $query: $query);\n @include outline-color(variables.$error, $query: $query);\n @include hover-outline-color(variables.$error, $query: $query);\n @include focused-outline-color(variables.$error, $query: $query);\n\n + .mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg {\n @include feature-targeting.targets($feat-structure) {\n opacity: 1;\n }\n }\n}\n\n@mixin focused_($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include label-color(variables.$focused-label-color, $query: $query);\n\n // Mixins that are ok to include since they target variant-specific elements\n @include notched-outline-mixins.stroke-width(\n variables.$outlined-stroke-width,\n $query: $query\n );\n\n + .mdc-text-field-helper-line\n .mdc-text-field-helper-text:not(\n .mdc-text-field-helper-text--validation-msg\n ) {\n @include feature-targeting.targets($feat-structure) {\n opacity: 1;\n }\n }\n}\n\n@mixin _focused-outlined($query: feature-targeting.all()) {\n @include notched-outline-mixins.notch-offset(\n variables.$outlined-stroke-width,\n $query: $query\n );\n}\n\n@mixin _focused-outlined-textarea($query: feature-targeting.all()) {\n @include notched-outline-mixins.notch-offset(0, $query: $query);\n}\n\n// Icons\n\n@mixin with-leading-icon_($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n $icon-padding: icon-variables.$leading-icon-padding-left +\n icon-variables.$icon-size + icon-variables.$leading-icon-padding-right;\n\n .mdc-floating-label {\n @include _truncate-floating-label-max-width($icon-padding, $query: $query);\n @include feature-targeting.targets($feat-structure) {\n @include rtl.reflexive-position(left, $icon-padding);\n }\n }\n\n $truncation: $icon-padding + variables.$padding-horizontal;\n\n .mdc-floating-label--float-above {\n @include _truncate-floating-label-floated-max-width(\n $truncation,\n $query: $query\n );\n }\n}\n\n@mixin _with-trailing-icon($query: feature-targeting.all()) {\n $truncation: icon-variables.$trailing-icon-padding-left +\n icon-variables.$icon-size + icon-variables.$trailing-icon-padding-right +\n variables.$label-offset;\n\n .mdc-floating-label {\n @include _truncate-floating-label-max-width($truncation, $query: $query);\n }\n\n .mdc-floating-label--float-above {\n @include _truncate-floating-label-floated-max-width(\n $truncation,\n $query: $query\n );\n }\n}\n\n@mixin _with-leading-and-trailing-icon($query: feature-targeting.all()) {\n $leading-icon: icon-variables.$leading-icon-padding-left +\n icon-variables.$icon-size + icon-variables.$leading-icon-padding-right;\n $trailing-icon: icon-variables.$trailing-icon-padding-left +\n icon-variables.$icon-size + icon-variables.$trailing-icon-padding-right;\n $truncation: $leading-icon + $trailing-icon;\n\n .mdc-floating-label {\n @include _truncate-floating-label-max-width($truncation, $query: $query);\n }\n\n .mdc-floating-label--float-above {\n @include _truncate-floating-label-floated-max-width(\n $truncation,\n $query: $query\n );\n }\n}\n\n@mixin outlined-with-leading-icon_($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n // Resting label position\n $icon-padding: icon-variables.$leading-icon-padding-left +\n icon-variables.$icon-size + icon-variables.$leading-icon-padding-right;\n $left-spacing: $icon-padding - notched-outline-variables.$leading-width;\n\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n @include rtl.reflexive-position(left, $left-spacing);\n }\n }\n\n // Notch width\n $notch-truncation: $icon-padding + notched-outline-variables.$leading-width;\n @include _truncate-notched-outline-max-width(\n $notch-truncation,\n $query: $query\n );\n\n // Floating label position and animation\n @include _outlined-with-leading-icon-floating-label-position-animation(\n $height: variables.$height,\n $keyframe-suffix: text-field-outlined-leading-icon,\n $query: $query\n );\n}\n\n///\n/// Applied to the outlined text field with a trailing icon\n///\n@mixin _outlined-with-trailing-icon($query: feature-targeting.all()) {\n // Resting label position\n $icon-padding: icon-variables.$trailing-icon-padding-left +\n icon-variables.$icon-size + icon-variables.$trailing-icon-padding-right;\n // Notch width\n $notch-truncation: $icon-padding + notched-outline-variables.$leading-width;\n\n @include _truncate-notched-outline-max-width(\n $notch-truncation,\n $query: $query\n );\n}\n\n///\n/// Truncates the max-width of the notched outline by the given amount\n///\n/// @param {Number} $truncation - Amount to truncate the notched outline max-width\n///\n@mixin _truncate-notched-outline-max-width(\n $truncation,\n $query: feature-targeting.all()\n) {\n @include notched-outline-mixins.notch-max-width(\n calc(100% - #{$truncation}),\n $query: $query\n );\n}\n\n///\n/// Truncates the max-width of the floating label by the given amount\n///\n/// @param {Number} $truncation - Amount to truncate the floating label max-width\n///\n@mixin _truncate-floating-label-max-width(\n $truncation,\n $query: feature-targeting.all()\n) {\n @include floating-label-mixins.max-width(\n calc(100% - #{$truncation}),\n $query: $query\n );\n}\n\n///\n/// Truncates the max-width of the floating label by the given amount while scaling by the given scale value\n///\n/// @param {Number} $truncation - Amount to truncate the floating label max-width\n///\n@mixin _truncate-floating-label-floated-max-width(\n $truncation,\n $query: feature-targeting.all()\n) {\n $scale: floating-label-variables.$float-scale;\n @include floating-label-mixins.max-width(\n calc(100% / #{$scale} - #{$truncation} / #{$scale}),\n $query: $query\n );\n}\n\n// Textarea\n\n@mixin textarea_($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $feat-animation: feature-targeting.create-target($query, animation);\n\n @include _textarea-floating-label($query);\n\n @include feature-targeting.targets($feat-structure) {\n flex-direction: column;\n align-items: center;\n width: auto;\n height: auto;\n padding: 0; // see below for explanation\n }\n\n @include feature-targeting.targets($feat-animation) {\n transition: none;\n }\n}\n\n@mixin _textarea-resizer($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n align-self: stretch;\n display: inline-flex;\n flex-direction: column;\n flex-grow: 1;\n max-height: 100%;\n max-width: 100%;\n min-height: variables.$height;\n // 'stretch' is the preferred rule here. It will allow the textarea to grow\n // to the min/max width of the container, but if an explicit width is set,\n // it cannot be resized horizontally.\n // Stretch is still a working draft. Chrome and Firefox have it implemented\n // with 'available' prefixes. fit-content is another good target for\n // Safari since it works in almost all use cases except when an explicit\n // width is set (the user can make the textarea smaller than the container).\n // None of this matters for IE11, which doesn't support resize.\n min-width: fit-content;\n /* @alternate */\n min-width: -moz-available;\n /* @alternate */\n min-width: -webkit-fill-available;\n overflow: hidden;\n resize: both;\n }\n}\n\n@mixin _textarea-filled-resizer($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n // Shift the resizer element up by a margin amount to make space for the\n // resize handle. For filled elements, the resize handle directly touches\n // the bottom line and is hard to see.\n // Using a margin affects the width and positioning of the overall component\n // and underlying textarea, which is why a transform is used instead.\n $y: -1 * variables.$textarea-input-handle-margin;\n\n @include feature-targeting.targets($feat-structure) {\n transform: translateY($y);\n }\n}\n\n@mixin _textarea-filled-resizer-children($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n // See above. After shifting the resize wrapper element, all of its children\n // should be shifted in the opposite direction (down) to compensate.\n $y: variables.$textarea-input-handle-margin;\n\n @include feature-targeting.targets($feat-structure) {\n transform: translateY($y);\n }\n}\n\n@mixin _textarea-outlined-resizer($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n // Shift the resizer element left/up by a margin amount to make space for the\n // resize handle. For outlined elements, the resize handle directly touches\n // the outline and is hard to see.\n // Using a margin affects the width and positioning of the overall component\n // and underlying textarea, which is why a transform is used instead.\n $x: -1 * variables.$textarea-input-handle-margin;\n $y: -1 * variables.$textarea-input-handle-margin;\n\n @include feature-targeting.targets($feat-structure) {\n @include rtl.ignore-next-line();\n transform: translateX($x) translateY($y);\n\n @include rtl.rtl {\n // Flip the horizontal shifting direction for RTL\n @include rtl.ignore-next-line();\n transform: translateX(-1 * $x) translateY($y);\n }\n }\n}\n\n@mixin _textarea-outlined-resizer-children($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n // See above. After shifting the resize wrapper element, all of its children\n // should be shifted in the opposite direction (right and down) to compensate.\n $x: variables.$textarea-input-handle-margin;\n $y: variables.$textarea-input-handle-margin;\n\n @include feature-targeting.targets($feat-structure) {\n @include rtl.ignore-next-line();\n transform: translateX($x) translateY($y);\n\n @include rtl.rtl {\n // Flip the horizontal shifting direction for RTL\n @include rtl.ignore-next-line();\n transform: translateX(-1 * $x) translateY($y);\n }\n }\n}\n\n@mixin _textarea-floating-label($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n // Resting label position\n .mdc-floating-label {\n @include feature-targeting.targets($feat-structure) {\n top: variables.$textarea-label-top;\n }\n\n // Resets center aligning the floating label.\n &:not(.mdc-floating-label--float-above) {\n @include feature-targeting.targets($feat-structure) {\n transform: none;\n }\n }\n }\n}\n\n@mixin _textarea-input($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n $feat-typography: feature-targeting.create-target($query, typography);\n\n @include feature-targeting.targets($feat-structure) {\n flex-grow: 1;\n height: auto;\n min-height: variables.$textarea-line-height;\n overflow-x: hidden; // https://bugzilla.mozilla.org/show_bug.cgi?id=33654\n overflow-y: auto;\n box-sizing: border-box;\n resize: none;\n // Textarea has horizontal padding instead of the container. This allows the\n // resize handle to extend to the edge of the container.\n padding: 0 variables.$padding-horizontal;\n }\n\n @include feature-targeting.targets($feat-typography) {\n line-height: variables.$textarea-line-height;\n }\n}\n\n@mixin _textarea-internal-counter($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include typography.baseline-bottom(\n variables.$textarea-internal-counter-baseline-bottom,\n $query: $query\n );\n @include feature-targeting.targets($feat-structure) {\n align-self: flex-end;\n // Needed since padding is on the textarea and not the container\n padding: 0 variables.$padding-horizontal;\n\n &::before {\n // Remove baseline-top\n display: none;\n }\n }\n}\n\n@mixin _textarea-input-with-internal-counter($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n margin-bottom: variables.$textarea-internal-counter-input-margin-bottom;\n }\n}\n\n@mixin _textarea-filled($query: feature-targeting.all()) {\n $feat-structure: feature-targeting.create-target($query, structure);\n\n @include feature-targeting.targets($feat-structure) {\n &::before {\n //