codecharta-visualization 1.86.0 → 1.87.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +1 -1
- package/app/app.module.ts +6 -2
- package/app/codeCharta/codeCharta.model.ts +1 -1
- package/app/codeCharta/state/store/dynamicSettings/dynamicSettings.splitter.ts +2 -2
- package/app/codeCharta/state/store/dynamicSettings/focusedNodePath/currentFocused.selector.ts +8 -0
- package/app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions.ts +27 -7
- package/app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.reducer.spec.ts +27 -11
- package/app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.reducer.ts +11 -5
- package/app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.selector.ts +4 -0
- package/app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.service.spec.ts +2 -2
- package/app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.service.ts +1 -1
- package/app/codeCharta/state/store/fileSettings/markedPackages/markedPackages.actions.ts +9 -10
- package/app/codeCharta/state/store/fileSettings/markedPackages/markedPackages.reducer.spec.ts +37 -7
- package/app/codeCharta/state/store/fileSettings/markedPackages/markedPackages.reducer.ts +7 -3
- package/app/codeCharta/state/store/fileSettings/markedPackages/util/findIndexOfMarkedPackageOrParent.spec.ts +39 -0
- package/app/codeCharta/state/store/fileSettings/markedPackages/util/findIndexOfMarkedPackageOrParent.ts +19 -0
- package/app/codeCharta/state/store/state.splitter.spec.ts +4 -4
- package/app/codeCharta/state/store.service.spec.ts +3 -3
- package/app/codeCharta/state/store.service.ts +5 -0
- package/app/codeCharta/ui/artificialIntelligence/__snapshots__/artificialIntelligence.component.spec.ts.snap +13 -16
- package/app/codeCharta/ui/artificialIntelligence/artificialIntelligence.component.html +4 -4
- package/app/codeCharta/ui/artificialIntelligence/artificialIntelligence.component.scss +0 -4
- package/app/codeCharta/ui/artificialIntelligence/artificialIntelligence.component.spec.ts +82 -52
- package/app/codeCharta/ui/artificialIntelligence/artificialIntelligence.component.ts +41 -101
- package/app/codeCharta/ui/codeMap/codeMap.actions.service.ts +1 -40
- package/app/codeCharta/ui/codeMap/codeMap.mouseEvent.service.ts +10 -16
- package/app/codeCharta/ui/colorPicker/colorPicker.component.html +16 -7
- package/app/codeCharta/ui/colorPicker/colorPicker.component.spec.ts +55 -16
- package/app/codeCharta/ui/colorPicker/colorPicker.component.ts +32 -1
- package/app/codeCharta/ui/colorPicker/colorPicker.module.ts +3 -1
- package/app/codeCharta/ui/customConfigs/customConfigs.component.html +21 -3
- package/app/codeCharta/ui/customConfigs/customConfigs.component.scss +1 -0
- package/app/codeCharta/ui/customConfigs/customConfigs.component.spec.ts +123 -2
- package/app/codeCharta/ui/customConfigs/customConfigs.component.ts +56 -2
- package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.html +21 -13
- package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.spec.ts +11 -24
- package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.ts +1 -40
- package/app/codeCharta/ui/labelledColorPicker/labelledColorPicker.module.ts +1 -2
- package/app/codeCharta/ui/legendPanel/legendMarkedPackages/legendMarkedPackages.component.ts +2 -2
- package/app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.html +24 -0
- package/app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.spec.ts +55 -0
- package/app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.ts +38 -0
- package/app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.module.ts +13 -0
- package/app/codeCharta/ui/nodeContextMenu/focusButtons/isNodeFocused.pipe.spec.ts +31 -0
- package/app/codeCharta/ui/nodeContextMenu/focusButtons/isNodeFocused.pipe.ts +25 -0
- package/app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.html +8 -4
- package/app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.ts +1 -21
- package/app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.module.ts +1 -2
- package/app/codeCharta/ui/nodeContextMenu/nodeContextMenu.component.html +2 -12
- package/app/codeCharta/ui/nodeContextMenu/nodeContextMenu.component.scss +3 -1
- package/app/codeCharta/ui/nodeContextMenu/nodeContextMenu.component.spec.ts +28 -125
- package/app/codeCharta/ui/nodeContextMenu/nodeContextMenu.component.ts +29 -55
- package/app/codeCharta/ui/nodeContextMenu/nodeContextMenu.module.ts +2 -0
- package/app/codeCharta/ui/ui.ts +0 -2
- package/app/codeCharta/util/algorithm/streetLayout/strip/strip.ts +2 -2
- package/app/codeCharta/util/algorithm/streetLayout/treeMap.ts +1 -1
- package/app/codeCharta/util/algorithm/treeMapLayout/treeMapGenerator.spec.ts +1 -1
- package/app/codeCharta/util/algorithm/treeMapLayout/treeMapHelper.spec.ts +2 -2
- package/app/codeCharta/util/algorithm/treeMapLayout/treeMapHelper.ts +1 -1
- package/app/codeCharta/util/customConfigBuilder.ts +1 -1
- package/app/codeCharta/util/dataMocks.ts +2 -2
- package/app/codeCharta/util/fileExtensionCalculator.ts +1 -1
- package/dist/webpack/bundle.js +963 -934
- package/dist/webpack/bundle.js.map +1 -1
- package/package.json +6 -5
- package/app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.splitter.ts +0 -8
- package/app/codeCharta/ui/codeMap/codeMap.actions.service.spec.ts +0 -147
- package/app/codeCharta/ui/unfocusButton/unfocusButton.component.html +0 -15
- package/app/codeCharta/ui/unfocusButton/unfocusButton.component.scss +0 -5
- package/app/codeCharta/ui/unfocusButton/unfocusButton.component.spec.ts +0 -106
- package/app/codeCharta/ui/unfocusButton/unfocusButton.component.ts +0 -62
- package/app/codeCharta/ui/unfocusButton/unfocusButton.module.ts +0 -7
package/dist/webpack/bundle.js
CHANGED
|
@@ -205640,6 +205640,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
205640
205640
|
/* harmony import */ var _store_store__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./store/store */ "./app/codeCharta/state/store/store.ts");
|
|
205641
205641
|
/* harmony import */ var _store_appSettings_enableClipboard_screenshotToClipboardEnabled_actions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./store/appSettings/enableClipboard/screenshotToClipboardEnabled.actions */ "./app/codeCharta/state/store/appSettings/enableClipboard/screenshotToClipboardEnabled.actions.ts");
|
|
205642
205642
|
/* harmony import */ var _store_appStatus_hoveredBuildingPath_hoveredBuildingPath_actions__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./store/appStatus/hoveredBuildingPath/hoveredBuildingPath.actions */ "./app/codeCharta/state/store/appStatus/hoveredBuildingPath/hoveredBuildingPath.actions.ts");
|
|
205643
|
+
/* harmony import */ var _store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./store/dynamicSettings/focusedNodePath/focusedNodePath.actions */ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions.ts");
|
|
205644
|
+
|
|
205643
205645
|
|
|
205644
205646
|
|
|
205645
205647
|
|
|
@@ -205671,6 +205673,10 @@ class StoreService {
|
|
|
205671
205673
|
this.dispatch((0,_store_appSettings_isLoadingMap_isLoadingMap_actions__WEBPACK_IMPORTED_MODULE_1__.setIsLoadingMap)(true));
|
|
205672
205674
|
}
|
|
205673
205675
|
|
|
205676
|
+
if ((0,_util_reduxHelper__WEBPACK_IMPORTED_MODULE_4__.isActionOfType)(action.type, _store_appSettings_isLoadingFile_isLoadingFile_actions__WEBPACK_IMPORTED_MODULE_2__.IsLoadingFileActions)) {
|
|
205677
|
+
this.dispatch((0,_store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_14__.unfocusAllNodes)());
|
|
205678
|
+
}
|
|
205679
|
+
|
|
205674
205680
|
for (const atomicAction of (0,_store_state_splitter__WEBPACK_IMPORTED_MODULE_0__.splitStateActions)(action)) {
|
|
205675
205681
|
this.originalDispatch(atomicAction);
|
|
205676
205682
|
|
|
@@ -210883,11 +210889,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
210883
210889
|
/* harmony import */ var _colorRange_colorRange_splitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./colorRange/colorRange.splitter */ "./app/codeCharta/state/store/dynamicSettings/colorRange/colorRange.splitter.ts");
|
|
210884
210890
|
/* harmony import */ var _margin_margin_splitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./margin/margin.splitter */ "./app/codeCharta/state/store/dynamicSettings/margin/margin.splitter.ts");
|
|
210885
210891
|
/* harmony import */ var _searchPattern_searchPattern_splitter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./searchPattern/searchPattern.splitter */ "./app/codeCharta/state/store/dynamicSettings/searchPattern/searchPattern.splitter.ts");
|
|
210886
|
-
/* harmony import */ var
|
|
210887
|
-
/* harmony import */ var
|
|
210888
|
-
/* harmony import */ var
|
|
210889
|
-
/* harmony import */ var
|
|
210890
|
-
/* harmony import */ var
|
|
210892
|
+
/* harmony import */ var _heightMetric_heightMetric_splitter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./heightMetric/heightMetric.splitter */ "./app/codeCharta/state/store/dynamicSettings/heightMetric/heightMetric.splitter.ts");
|
|
210893
|
+
/* harmony import */ var _distributionMetric_distributionMetric_splitter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./distributionMetric/distributionMetric.splitter */ "./app/codeCharta/state/store/dynamicSettings/distributionMetric/distributionMetric.splitter.ts");
|
|
210894
|
+
/* harmony import */ var _colorMetric_colorMetric_splitter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./colorMetric/colorMetric.splitter */ "./app/codeCharta/state/store/dynamicSettings/colorMetric/colorMetric.splitter.ts");
|
|
210895
|
+
/* harmony import */ var _areaMetric_areaMetric_splitter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./areaMetric/areaMetric.splitter */ "./app/codeCharta/state/store/dynamicSettings/areaMetric/areaMetric.splitter.ts");
|
|
210896
|
+
/* harmony import */ var _focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./focusedNodePath/focusedNodePath.actions */ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions.ts");
|
|
210891
210897
|
|
|
210892
210898
|
|
|
210893
210899
|
|
|
@@ -210932,23 +210938,23 @@ function splitDynamicSettingsActions(payload) {
|
|
|
210932
210938
|
}
|
|
210933
210939
|
|
|
210934
210940
|
if (payload.focusedNodePath !== undefined) {
|
|
210935
|
-
actions.push((0,
|
|
210941
|
+
actions.push((0,_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_11__.setAllFocusedNodes)(payload.focusedNodePath));
|
|
210936
210942
|
}
|
|
210937
210943
|
|
|
210938
210944
|
if (payload.heightMetric !== undefined) {
|
|
210939
|
-
actions.push((0,
|
|
210945
|
+
actions.push((0,_heightMetric_heightMetric_splitter__WEBPACK_IMPORTED_MODULE_7__.splitHeightMetricAction)(payload.heightMetric));
|
|
210940
210946
|
}
|
|
210941
210947
|
|
|
210942
210948
|
if (payload.distributionMetric !== undefined) {
|
|
210943
|
-
actions.push((0,
|
|
210949
|
+
actions.push((0,_distributionMetric_distributionMetric_splitter__WEBPACK_IMPORTED_MODULE_8__.splitDistributionMetricAction)(payload.distributionMetric));
|
|
210944
210950
|
}
|
|
210945
210951
|
|
|
210946
210952
|
if (payload.colorMetric !== undefined) {
|
|
210947
|
-
actions.push((0,
|
|
210953
|
+
actions.push((0,_colorMetric_colorMetric_splitter__WEBPACK_IMPORTED_MODULE_9__.splitColorMetricAction)(payload.colorMetric));
|
|
210948
210954
|
}
|
|
210949
210955
|
|
|
210950
210956
|
if (payload.areaMetric !== undefined) {
|
|
210951
|
-
actions.push((0,
|
|
210957
|
+
actions.push((0,_areaMetric_areaMetric_splitter__WEBPACK_IMPORTED_MODULE_10__.splitAreaMetricAction)(payload.areaMetric));
|
|
210952
210958
|
}
|
|
210953
210959
|
|
|
210954
210960
|
return actions;
|
|
@@ -211119,6 +211125,25 @@ function splitEdgeMetricAction(payload) {
|
|
|
211119
211125
|
|
|
211120
211126
|
/***/ }),
|
|
211121
211127
|
|
|
211128
|
+
/***/ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/currentFocused.selector.ts":
|
|
211129
|
+
/*!***********************************************************************************************!*\
|
|
211130
|
+
!*** ./app/codeCharta/state/store/dynamicSettings/focusedNodePath/currentFocused.selector.ts ***!
|
|
211131
|
+
\***********************************************************************************************/
|
|
211132
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
211133
|
+
|
|
211134
|
+
"use strict";
|
|
211135
|
+
__webpack_require__.r(__webpack_exports__);
|
|
211136
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
211137
|
+
/* harmony export */ "currentFocusedNodePathSelector": () => (/* binding */ currentFocusedNodePathSelector)
|
|
211138
|
+
/* harmony export */ });
|
|
211139
|
+
/* harmony import */ var _angular_redux_createSelector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../angular-redux/createSelector */ "./app/codeCharta/state/angular-redux/createSelector.ts");
|
|
211140
|
+
/* harmony import */ var _focusedNodePath_selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./focusedNodePath.selector */ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.selector.ts");
|
|
211141
|
+
|
|
211142
|
+
|
|
211143
|
+
const currentFocusedNodePathSelector = (0,_angular_redux_createSelector__WEBPACK_IMPORTED_MODULE_0__.createSelector)([_focusedNodePath_selector__WEBPACK_IMPORTED_MODULE_1__.focusedNodePathSelector], focusedNodePath => focusedNodePath[0]);
|
|
211144
|
+
|
|
211145
|
+
/***/ }),
|
|
211146
|
+
|
|
211122
211147
|
/***/ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions.ts":
|
|
211123
211148
|
/*!***********************************************************************************************!*\
|
|
211124
211149
|
!*** ./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions.ts ***!
|
|
@@ -211131,6 +211156,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
211131
211156
|
/* harmony export */ "FocusedNodePathActions": () => (/* binding */ FocusedNodePathActions),
|
|
211132
211157
|
/* harmony export */ "focusNode": () => (/* binding */ focusNode),
|
|
211133
211158
|
/* harmony export */ "unfocusNode": () => (/* binding */ unfocusNode),
|
|
211159
|
+
/* harmony export */ "unfocusAllNodes": () => (/* binding */ unfocusAllNodes),
|
|
211160
|
+
/* harmony export */ "setAllFocusedNodes": () => (/* binding */ setAllFocusedNodes),
|
|
211134
211161
|
/* harmony export */ "defaultFocusedNodePath": () => (/* binding */ defaultFocusedNodePath)
|
|
211135
211162
|
/* harmony export */ });
|
|
211136
211163
|
var FocusedNodePathActions;
|
|
@@ -211138,9 +211165,11 @@ var FocusedNodePathActions;
|
|
|
211138
211165
|
(function (FocusedNodePathActions) {
|
|
211139
211166
|
FocusedNodePathActions["FOCUS_NODE"] = "FOCUS_NODE";
|
|
211140
211167
|
FocusedNodePathActions["UNFOCUS_NODE"] = "UNFOCUS_NODE";
|
|
211168
|
+
FocusedNodePathActions["UNFOCUS_ALL_NODES"] = "UNFOCUS_ALL_NODES";
|
|
211169
|
+
FocusedNodePathActions["SET_ALL_FOCUSED_NODES"] = "SET_ALL_FOCUSED_NODES";
|
|
211141
211170
|
})(FocusedNodePathActions || (FocusedNodePathActions = {}));
|
|
211142
211171
|
|
|
211143
|
-
function focusNode(focusedNodePath
|
|
211172
|
+
function focusNode(focusedNodePath) {
|
|
211144
211173
|
return {
|
|
211145
211174
|
type: FocusedNodePathActions.FOCUS_NODE,
|
|
211146
211175
|
payload: focusedNodePath
|
|
@@ -211148,11 +211177,21 @@ function focusNode(focusedNodePath = defaultFocusedNodePath) {
|
|
|
211148
211177
|
}
|
|
211149
211178
|
function unfocusNode() {
|
|
211150
211179
|
return {
|
|
211151
|
-
type: FocusedNodePathActions.UNFOCUS_NODE
|
|
211152
|
-
payload: ""
|
|
211180
|
+
type: FocusedNodePathActions.UNFOCUS_NODE
|
|
211153
211181
|
};
|
|
211154
211182
|
}
|
|
211155
|
-
|
|
211183
|
+
function unfocusAllNodes() {
|
|
211184
|
+
return {
|
|
211185
|
+
type: FocusedNodePathActions.UNFOCUS_ALL_NODES
|
|
211186
|
+
};
|
|
211187
|
+
}
|
|
211188
|
+
function setAllFocusedNodes(focusedNodePaths) {
|
|
211189
|
+
return {
|
|
211190
|
+
type: FocusedNodePathActions.SET_ALL_FOCUSED_NODES,
|
|
211191
|
+
payload: focusedNodePaths
|
|
211192
|
+
};
|
|
211193
|
+
}
|
|
211194
|
+
const defaultFocusedNodePath = [];
|
|
211156
211195
|
|
|
211157
211196
|
/***/ }),
|
|
211158
211197
|
|
|
@@ -211171,13 +211210,22 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
211171
211210
|
/* harmony import */ var _codeCharta_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../codeCharta.service */ "./app/codeCharta/codeCharta.service.ts");
|
|
211172
211211
|
|
|
211173
211212
|
|
|
211174
|
-
function focusedNodePath(state =
|
|
211213
|
+
function focusedNodePath(state = _focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_0__.defaultFocusedNodePath, action) {
|
|
211175
211214
|
switch (action.type) {
|
|
211176
211215
|
case _focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_0__.FocusedNodePathActions.FOCUS_NODE:
|
|
211177
|
-
|
|
211216
|
+
{
|
|
211217
|
+
if (action.payload === _codeCharta_service__WEBPACK_IMPORTED_MODULE_1__.CodeChartaService.ROOT_PATH) return state;
|
|
211218
|
+
return [action.payload, ...state];
|
|
211219
|
+
}
|
|
211178
211220
|
|
|
211179
211221
|
case _focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_0__.FocusedNodePathActions.UNFOCUS_NODE:
|
|
211180
|
-
return
|
|
211222
|
+
return state.slice(1);
|
|
211223
|
+
|
|
211224
|
+
case _focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_0__.FocusedNodePathActions.UNFOCUS_ALL_NODES:
|
|
211225
|
+
return [];
|
|
211226
|
+
|
|
211227
|
+
case _focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_0__.FocusedNodePathActions.SET_ALL_FOCUSED_NODES:
|
|
211228
|
+
return [...action.payload];
|
|
211181
211229
|
|
|
211182
211230
|
default:
|
|
211183
211231
|
return state;
|
|
@@ -211186,6 +211234,25 @@ function focusedNodePath(state = (0,_focusedNodePath_actions__WEBPACK_IMPORTED_M
|
|
|
211186
211234
|
|
|
211187
211235
|
/***/ }),
|
|
211188
211236
|
|
|
211237
|
+
/***/ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.selector.ts":
|
|
211238
|
+
/*!************************************************************************************************!*\
|
|
211239
|
+
!*** ./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.selector.ts ***!
|
|
211240
|
+
\************************************************************************************************/
|
|
211241
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
211242
|
+
|
|
211243
|
+
"use strict";
|
|
211244
|
+
__webpack_require__.r(__webpack_exports__);
|
|
211245
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
211246
|
+
/* harmony export */ "focusedNodePathSelector": () => (/* binding */ focusedNodePathSelector)
|
|
211247
|
+
/* harmony export */ });
|
|
211248
|
+
/* harmony import */ var _angular_redux_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../angular-redux/store */ "./app/codeCharta/state/angular-redux/store.ts");
|
|
211249
|
+
/* harmony import */ var _dynamicSettings_selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dynamicSettings.selector */ "./app/codeCharta/state/store/dynamicSettings/dynamicSettings.selector.ts");
|
|
211250
|
+
|
|
211251
|
+
|
|
211252
|
+
const focusedNodePathSelector = (0,_angular_redux_store__WEBPACK_IMPORTED_MODULE_0__.createSelector)([_dynamicSettings_selector__WEBPACK_IMPORTED_MODULE_1__.dynamicSettingsSelector], dynamicSettings => dynamicSettings.focusedNodePath);
|
|
211253
|
+
|
|
211254
|
+
/***/ }),
|
|
211255
|
+
|
|
211189
211256
|
/***/ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.service.ts":
|
|
211190
211257
|
/*!***********************************************************************************************!*\
|
|
211191
211258
|
!*** ./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.service.ts ***!
|
|
@@ -211264,29 +211331,6 @@ FocusedNodePathService.UNFOCUS_NODE_EVENT = "unfocus-node";
|
|
|
211264
211331
|
|
|
211265
211332
|
/***/ }),
|
|
211266
211333
|
|
|
211267
|
-
/***/ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.splitter.ts":
|
|
211268
|
-
/*!************************************************************************************************!*\
|
|
211269
|
-
!*** ./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.splitter.ts ***!
|
|
211270
|
-
\************************************************************************************************/
|
|
211271
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
211272
|
-
|
|
211273
|
-
"use strict";
|
|
211274
|
-
__webpack_require__.r(__webpack_exports__);
|
|
211275
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
211276
|
-
/* harmony export */ "splitFocusedNodePathAction": () => (/* binding */ splitFocusedNodePathAction)
|
|
211277
|
-
/* harmony export */ });
|
|
211278
|
-
/* harmony import */ var _focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./focusedNodePath.actions */ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions.ts");
|
|
211279
|
-
|
|
211280
|
-
function splitFocusedNodePathAction(payload) {
|
|
211281
|
-
if (payload === "") {
|
|
211282
|
-
return (0,_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_0__.unfocusNode)();
|
|
211283
|
-
}
|
|
211284
|
-
|
|
211285
|
-
return (0,_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_0__.focusNode)(payload);
|
|
211286
|
-
}
|
|
211287
|
-
|
|
211288
|
-
/***/ }),
|
|
211289
|
-
|
|
211290
211334
|
/***/ "./app/codeCharta/state/store/dynamicSettings/heightMetric/heightMetric.actions.ts":
|
|
211291
211335
|
/*!*****************************************************************************************!*\
|
|
211292
211336
|
!*** ./app/codeCharta/state/store/dynamicSettings/heightMetric/heightMetric.actions.ts ***!
|
|
@@ -212859,7 +212903,7 @@ function splitFileSettingsActions(payload) {
|
|
|
212859
212903
|
__webpack_require__.r(__webpack_exports__);
|
|
212860
212904
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
212861
212905
|
/* harmony export */ "MarkedPackagesActions": () => (/* binding */ MarkedPackagesActions),
|
|
212862
|
-
/* harmony export */ "
|
|
212906
|
+
/* harmony export */ "markPackages": () => (/* binding */ markPackages),
|
|
212863
212907
|
/* harmony export */ "setMarkedPackages": () => (/* binding */ setMarkedPackages),
|
|
212864
212908
|
/* harmony export */ "unmarkPackage": () => (/* binding */ unmarkPackage),
|
|
212865
212909
|
/* harmony export */ "defaultMarkedPackages": () => (/* binding */ defaultMarkedPackages)
|
|
@@ -212868,14 +212912,13 @@ var MarkedPackagesActions;
|
|
|
212868
212912
|
|
|
212869
212913
|
(function (MarkedPackagesActions) {
|
|
212870
212914
|
MarkedPackagesActions["SET_MARKED_PACKAGES"] = "SET_MARKED_PACKAGES";
|
|
212871
|
-
MarkedPackagesActions["CALCULATE_MARKED_PACKAGES_FOR_PATHS"] = "CALCULATE_MARKED_PACKAGES";
|
|
212872
212915
|
MarkedPackagesActions["MARK_PACKAGE"] = "MARK_PACKAGE";
|
|
212873
212916
|
MarkedPackagesActions["UNMARK_PACKAGE"] = "UNMARK_PACKAGE";
|
|
212874
212917
|
})(MarkedPackagesActions || (MarkedPackagesActions = {}));
|
|
212875
212918
|
|
|
212876
|
-
function
|
|
212919
|
+
function markPackages(packagesToBeMarked) {
|
|
212877
212920
|
return {
|
|
212878
|
-
type: MarkedPackagesActions.
|
|
212921
|
+
type: MarkedPackagesActions.MARK_PACKAGE,
|
|
212879
212922
|
payload: packagesToBeMarked
|
|
212880
212923
|
};
|
|
212881
212924
|
}
|
|
@@ -212885,10 +212928,10 @@ function setMarkedPackages(markedPackages = defaultMarkedPackages) {
|
|
|
212885
212928
|
payload: markedPackages
|
|
212886
212929
|
};
|
|
212887
212930
|
}
|
|
212888
|
-
function unmarkPackage(
|
|
212931
|
+
function unmarkPackage(node) {
|
|
212889
212932
|
return {
|
|
212890
212933
|
type: MarkedPackagesActions.UNMARK_PACKAGE,
|
|
212891
|
-
payload:
|
|
212934
|
+
payload: node.path
|
|
212892
212935
|
};
|
|
212893
212936
|
}
|
|
212894
212937
|
const defaultMarkedPackages = [];
|
|
@@ -212946,6 +212989,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
212946
212989
|
/* harmony import */ var _markedPackages_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./markedPackages.actions */ "./app/codeCharta/state/store/fileSettings/markedPackages/markedPackages.actions.ts");
|
|
212947
212990
|
/* harmony import */ var _util_reduxHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../util/reduxHelper */ "./app/codeCharta/util/reduxHelper.ts");
|
|
212948
212991
|
/* harmony import */ var _util_addMarkedPackage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/addMarkedPackage */ "./app/codeCharta/state/store/fileSettings/markedPackages/util/addMarkedPackage.ts");
|
|
212992
|
+
/* harmony import */ var _util_findIndexOfMarkedPackageOrParent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/findIndexOfMarkedPackageOrParent */ "./app/codeCharta/state/store/fileSettings/markedPackages/util/findIndexOfMarkedPackageOrParent.ts");
|
|
212993
|
+
|
|
212949
212994
|
|
|
212950
212995
|
|
|
212951
212996
|
|
|
@@ -212955,9 +213000,13 @@ function markedPackages(state = (0,_markedPackages_actions__WEBPACK_IMPORTED_MOD
|
|
|
212955
213000
|
return action.payload;
|
|
212956
213001
|
|
|
212957
213002
|
case _markedPackages_actions__WEBPACK_IMPORTED_MODULE_0__.MarkedPackagesActions.UNMARK_PACKAGE:
|
|
212958
|
-
|
|
213003
|
+
{
|
|
213004
|
+
const indexOfPackageToBeUnmarked = (0,_util_findIndexOfMarkedPackageOrParent__WEBPACK_IMPORTED_MODULE_3__.findIndexOfMarkedPackageOrParent)(state, action.payload);
|
|
213005
|
+
if (indexOfPackageToBeUnmarked !== -1) return (0,_util_reduxHelper__WEBPACK_IMPORTED_MODULE_1__.removeEntryAtIndexFromArray)(state, indexOfPackageToBeUnmarked);
|
|
213006
|
+
return state;
|
|
213007
|
+
}
|
|
212959
213008
|
|
|
212960
|
-
case _markedPackages_actions__WEBPACK_IMPORTED_MODULE_0__.MarkedPackagesActions.
|
|
213009
|
+
case _markedPackages_actions__WEBPACK_IMPORTED_MODULE_0__.MarkedPackagesActions.MARK_PACKAGE:
|
|
212961
213010
|
{
|
|
212962
213011
|
const markedPackagesMap = new Map(state.map(entry => [entry.path, entry]));
|
|
212963
213012
|
|
|
@@ -213128,6 +213177,32 @@ const addMarkedPackage = (markedPackagesMap, {
|
|
|
213128
213177
|
|
|
213129
213178
|
/***/ }),
|
|
213130
213179
|
|
|
213180
|
+
/***/ "./app/codeCharta/state/store/fileSettings/markedPackages/util/findIndexOfMarkedPackageOrParent.ts":
|
|
213181
|
+
/*!*********************************************************************************************************!*\
|
|
213182
|
+
!*** ./app/codeCharta/state/store/fileSettings/markedPackages/util/findIndexOfMarkedPackageOrParent.ts ***!
|
|
213183
|
+
\*********************************************************************************************************/
|
|
213184
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
213185
|
+
|
|
213186
|
+
"use strict";
|
|
213187
|
+
__webpack_require__.r(__webpack_exports__);
|
|
213188
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
213189
|
+
/* harmony export */ "findIndexOfMarkedPackageOrParent": () => (/* binding */ findIndexOfMarkedPackageOrParent)
|
|
213190
|
+
/* harmony export */ });
|
|
213191
|
+
const findIndexOfMarkedPackageOrParent = (markedPackages, nodePath) => {
|
|
213192
|
+
const indexOfNodePath = markedPackages.findIndex(mp => mp.path === nodePath);
|
|
213193
|
+
if (indexOfNodePath !== -1) return indexOfNodePath;
|
|
213194
|
+
let indexOfNearestParent = -1;
|
|
213195
|
+
|
|
213196
|
+
for (let loopIndex = 0; loopIndex < markedPackages.length; loopIndex++) {
|
|
213197
|
+
const markedPackage = markedPackages[loopIndex];
|
|
213198
|
+
if (nodePath.startsWith(markedPackage.path) && (indexOfNearestParent === -1 || markedPackages[indexOfNearestParent].path.length < markedPackage.path.length)) indexOfNearestParent = loopIndex;
|
|
213199
|
+
}
|
|
213200
|
+
|
|
213201
|
+
return indexOfNearestParent;
|
|
213202
|
+
};
|
|
213203
|
+
|
|
213204
|
+
/***/ }),
|
|
213205
|
+
|
|
213131
213206
|
/***/ "./app/codeCharta/state/store/files/files.actions.ts":
|
|
213132
213207
|
/*!***********************************************************!*\
|
|
213133
213208
|
!*** ./app/codeCharta/state/store/files/files.actions.ts ***!
|
|
@@ -214608,21 +214683,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
214608
214683
|
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash.debounce */ "./node_modules/lodash.debounce/index.js");
|
|
214609
214684
|
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
|
|
214610
214685
|
/* harmony import */ var _state_store_files_files_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../state/store/files/files.service */ "./app/codeCharta/state/store/files/files.service.ts");
|
|
214611
|
-
/* harmony import */ var
|
|
214612
|
-
/* harmony import */ var
|
|
214613
|
-
/* harmony import */ var klona__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! klona */ "./node_modules/klona/dist/index.mjs");
|
|
214614
|
-
/* harmony import */ var _model_customConfig_customConfig_api_model__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../model/customConfig/customConfig.api.model */ "./app/codeCharta/model/customConfig/customConfig.api.model.ts");
|
|
214615
|
-
/* harmony import */ var _util_nodeDecorator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/nodeDecorator */ "./app/codeCharta/util/nodeDecorator.ts");
|
|
214616
|
-
/* harmony import */ var _codeCharta_model__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../codeCharta.model */ "./app/codeCharta/codeCharta.model.ts");
|
|
214686
|
+
/* harmony import */ var _util_nodeDecorator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/nodeDecorator */ "./app/codeCharta/util/nodeDecorator.ts");
|
|
214687
|
+
/* harmony import */ var _codeCharta_model__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../codeCharta.model */ "./app/codeCharta/codeCharta.model.ts");
|
|
214617
214688
|
/* harmony import */ var d3_hierarchy__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! d3-hierarchy */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
|
|
214618
|
-
/* harmony import */ var
|
|
214619
|
-
/* harmony import */ var
|
|
214620
|
-
/* harmony import */ var
|
|
214621
|
-
/* harmony import */ var
|
|
214622
|
-
/* harmony import */ var
|
|
214623
|
-
/* harmony import */ var
|
|
214624
|
-
/* harmony import */ var
|
|
214625
|
-
/* harmony import */ var
|
|
214689
|
+
/* harmony import */ var _model_files_files_helper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../model/files/files.helper */ "./app/codeCharta/model/files/files.helper.ts");
|
|
214690
|
+
/* harmony import */ var _artificialIntelligence_metricThresholds__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./artificialIntelligence.metricThresholds */ "./app/codeCharta/ui/artificialIntelligence/artificialIntelligence.metricThresholds.ts");
|
|
214691
|
+
/* harmony import */ var _state_store_appSettings_mapColors_mapColors_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../state/store/appSettings/mapColors/mapColors.actions */ "./app/codeCharta/state/store/appSettings/mapColors/mapColors.actions.ts");
|
|
214692
|
+
/* harmony import */ var _state_store_fileSettings_blacklist_blacklist_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../state/store/fileSettings/blacklist/blacklist.service */ "./app/codeCharta/state/store/fileSettings/blacklist/blacklist.service.ts");
|
|
214693
|
+
/* harmony import */ var _util_codeMapHelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util/codeMapHelper */ "./app/codeCharta/util/codeMapHelper.ts");
|
|
214694
|
+
/* harmony import */ var _state_store_appSettings_enableExperimentalFeatures_experimentalFeaturesEnabled_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../state/store/appSettings/enableExperimentalFeatures/experimentalFeaturesEnabled.service */ "./app/codeCharta/state/store/appSettings/enableExperimentalFeatures/experimentalFeaturesEnabled.service.ts");
|
|
214695
|
+
/* harmony import */ var _util_metric_metricDescriptions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../util/metric/metricDescriptions */ "./app/codeCharta/util/metric/metricDescriptions.ts");
|
|
214696
|
+
/* harmony import */ var percent_round__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! percent-round */ "./node_modules/percent-round/dist/percent-round.esm.js");
|
|
214697
|
+
/* harmony import */ var _state_store_dynamicSettings_colorRange_colorRange_actions__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../state/store/dynamicSettings/colorRange/colorRange.actions */ "./app/codeCharta/state/store/dynamicSettings/colorRange/colorRange.actions.ts");
|
|
214698
|
+
/* harmony import */ var _state_store_dynamicSettings_heightMetric_heightMetric_actions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../state/store/dynamicSettings/heightMetric/heightMetric.actions */ "./app/codeCharta/state/store/dynamicSettings/heightMetric/heightMetric.actions.ts");
|
|
214699
|
+
/* harmony import */ var _state_store_dynamicSettings_colorMetric_colorMetric_actions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../state/store/dynamicSettings/colorMetric/colorMetric.actions */ "./app/codeCharta/state/store/dynamicSettings/colorMetric/colorMetric.actions.ts");
|
|
214700
|
+
/* harmony import */ var _state_store_dynamicSettings_areaMetric_areaMetric_actions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../state/store/dynamicSettings/areaMetric/areaMetric.actions */ "./app/codeCharta/state/store/dynamicSettings/areaMetric/areaMetric.actions.ts");
|
|
214626
214701
|
|
|
214627
214702
|
|
|
214628
214703
|
|
|
@@ -214642,13 +214717,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
214642
214717
|
|
|
214643
214718
|
|
|
214644
214719
|
class ArtificialIntelligenceController {
|
|
214645
|
-
constructor($rootScope, storeService
|
|
214720
|
+
constructor($rootScope, storeService) {
|
|
214646
214721
|
"ngInject";
|
|
214647
214722
|
|
|
214648
214723
|
this.$rootScope = $rootScope;
|
|
214649
214724
|
this.storeService = storeService;
|
|
214650
|
-
this.threeOrbitControlsService = threeOrbitControlsService;
|
|
214651
|
-
this.threeCameraService = threeCameraService;
|
|
214652
214725
|
this._viewModel = {
|
|
214653
214726
|
analyzedProgrammingLanguage: undefined,
|
|
214654
214727
|
suspiciousMetricSuggestionLinks: [],
|
|
@@ -214658,13 +214731,12 @@ class ArtificialIntelligenceController {
|
|
|
214658
214731
|
moderateRisk: 0,
|
|
214659
214732
|
highRisk: 0,
|
|
214660
214733
|
veryHighRisk: 0
|
|
214661
|
-
}
|
|
214662
|
-
isHighRiskFilesModeEnabled: false
|
|
214734
|
+
}
|
|
214663
214735
|
};
|
|
214664
214736
|
this.blacklist = [];
|
|
214665
214737
|
_state_store_files_files_service__WEBPACK_IMPORTED_MODULE_2__.FilesService.subscribe(this.$rootScope, this);
|
|
214666
|
-
|
|
214667
|
-
|
|
214738
|
+
_state_store_fileSettings_blacklist_blacklist_service__WEBPACK_IMPORTED_MODULE_8__.BlacklistService.subscribe(this.$rootScope, this);
|
|
214739
|
+
_state_store_appSettings_enableExperimentalFeatures_experimentalFeaturesEnabled_service__WEBPACK_IMPORTED_MODULE_10__.ExperimentalFeaturesEnabledService.subscribe(this.$rootScope, this);
|
|
214668
214740
|
this.debounceCalculation = lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(() => {
|
|
214669
214741
|
this.calculate();
|
|
214670
214742
|
}, 10);
|
|
@@ -214676,13 +214748,37 @@ class ArtificialIntelligenceController {
|
|
|
214676
214748
|
}
|
|
214677
214749
|
}
|
|
214678
214750
|
|
|
214679
|
-
|
|
214680
|
-
|
|
214751
|
+
applySuspiciousMetric(metric, isOutlier) {
|
|
214752
|
+
if (this._viewModel.suspiciousMetricSuggestionLinks.includes(metric)) {
|
|
214753
|
+
const mapColors = Object.assign({}, this.storeService.getState().appSettings.mapColors);
|
|
214754
|
+
const colorRange = {
|
|
214755
|
+
from: metric.from,
|
|
214756
|
+
to: metric.to,
|
|
214757
|
+
max: 0,
|
|
214758
|
+
min: 0
|
|
214759
|
+
};
|
|
214760
|
+
|
|
214761
|
+
if (metric.isOutlier === isOutlier) {
|
|
214762
|
+
mapColors.positive = "#ffffff";
|
|
214763
|
+
mapColors.neutral = "#ffffff";
|
|
214764
|
+
mapColors.negative = "#A900C0";
|
|
214765
|
+
} else {
|
|
214766
|
+
mapColors.positive = _state_store_appSettings_mapColors_mapColors_actions__WEBPACK_IMPORTED_MODULE_7__.defaultMapColors.positive;
|
|
214767
|
+
mapColors.neutral = _state_store_appSettings_mapColors_mapColors_actions__WEBPACK_IMPORTED_MODULE_7__.defaultMapColors.neutral;
|
|
214768
|
+
mapColors.negative = _state_store_appSettings_mapColors_mapColors_actions__WEBPACK_IMPORTED_MODULE_7__.defaultMapColors.negative;
|
|
214769
|
+
}
|
|
214770
|
+
|
|
214771
|
+
this.storeService.dispatch((0,_state_store_dynamicSettings_areaMetric_areaMetric_actions__WEBPACK_IMPORTED_MODULE_16__.setAreaMetric)("rloc"));
|
|
214772
|
+
this.storeService.dispatch((0,_state_store_dynamicSettings_heightMetric_heightMetric_actions__WEBPACK_IMPORTED_MODULE_14__.setHeightMetric)(metric.metric));
|
|
214773
|
+
this.storeService.dispatch((0,_state_store_dynamicSettings_colorMetric_colorMetric_actions__WEBPACK_IMPORTED_MODULE_15__.setColorMetric)(metric.metric));
|
|
214774
|
+
this.storeService.dispatch((0,_state_store_dynamicSettings_colorRange_colorRange_actions__WEBPACK_IMPORTED_MODULE_13__.setColorRange)(colorRange));
|
|
214775
|
+
this.storeService.dispatch((0,_state_store_appSettings_mapColors_mapColors_actions__WEBPACK_IMPORTED_MODULE_7__.setMapColors)(mapColors));
|
|
214776
|
+
}
|
|
214681
214777
|
}
|
|
214682
214778
|
|
|
214683
214779
|
onBlacklistChanged(blacklist) {
|
|
214684
214780
|
this.blacklist = blacklist;
|
|
214685
|
-
this.fileState = (0,
|
|
214781
|
+
this.fileState = (0,_model_files_files_helper__WEBPACK_IMPORTED_MODULE_5__.getVisibleFileStates)(this.storeService.getState().files)[0];
|
|
214686
214782
|
|
|
214687
214783
|
if (this.fileState !== undefined) {
|
|
214688
214784
|
this.debounceCalculation();
|
|
@@ -214690,7 +214786,7 @@ class ArtificialIntelligenceController {
|
|
|
214690
214786
|
}
|
|
214691
214787
|
|
|
214692
214788
|
onFilesSelectionChanged(files) {
|
|
214693
|
-
const fileState = (0,
|
|
214789
|
+
const fileState = (0,_model_files_files_helper__WEBPACK_IMPORTED_MODULE_5__.getVisibleFileStates)(files)[0];
|
|
214694
214790
|
|
|
214695
214791
|
if (fileState === undefined) {
|
|
214696
214792
|
return;
|
|
@@ -214715,7 +214811,7 @@ class ArtificialIntelligenceController {
|
|
|
214715
214811
|
|
|
214716
214812
|
if (mainProgrammingLanguage !== undefined) {
|
|
214717
214813
|
this.calculateRiskProfile(this.fileState, mainProgrammingLanguage, "mcc");
|
|
214718
|
-
this.
|
|
214814
|
+
this.calculateSuspiciousMetrics(this.fileState, mainProgrammingLanguage);
|
|
214719
214815
|
}
|
|
214720
214816
|
}
|
|
214721
214817
|
|
|
@@ -214735,7 +214831,7 @@ class ArtificialIntelligenceController {
|
|
|
214735
214831
|
for (const {
|
|
214736
214832
|
data
|
|
214737
214833
|
} of (0,d3_hierarchy__WEBPACK_IMPORTED_MODULE_17__["default"])(fileState.file.map)) {
|
|
214738
|
-
if (data.type !==
|
|
214834
|
+
if (data.type !== _codeCharta_model__WEBPACK_IMPORTED_MODULE_4__.NodeType.FILE || (0,_util_codeMapHelper__WEBPACK_IMPORTED_MODULE_9__.isPathBlacklisted)(data.path, this.blacklist, _codeCharta_model__WEBPACK_IMPORTED_MODULE_4__.BlacklistType.exclude) || data.attributes[metricName] === undefined || data.attributes["rloc"] === undefined || this.getFileExtension(data.name) !== programmingLanguage) {
|
|
214739
214835
|
continue;
|
|
214740
214836
|
}
|
|
214741
214837
|
|
|
@@ -214758,7 +214854,7 @@ class ArtificialIntelligenceController {
|
|
|
214758
214854
|
return;
|
|
214759
214855
|
}
|
|
214760
214856
|
|
|
214761
|
-
const [lowRisk, moderateRisk, highRisk, veryHighRisk] = (0,
|
|
214857
|
+
const [lowRisk, moderateRisk, highRisk, veryHighRisk] = (0,percent_round__WEBPACK_IMPORTED_MODULE_12__["default"])([numberOfRlocLowRisk, numberOfRlocModerateRisk, numberOfRlocHighRisk, numberOfRlocVeryHighRisk]);
|
|
214762
214858
|
this._viewModel.riskProfile = {
|
|
214763
214859
|
lowRisk,
|
|
214764
214860
|
moderateRisk,
|
|
@@ -214767,37 +214863,29 @@ class ArtificialIntelligenceController {
|
|
|
214767
214863
|
};
|
|
214768
214864
|
}
|
|
214769
214865
|
|
|
214770
|
-
|
|
214866
|
+
calculateSuspiciousMetrics(fileState, programmingLanguage) {
|
|
214771
214867
|
const metricValues = this.getSortedMetricValues(fileState, programmingLanguage);
|
|
214772
214868
|
const metricAssessmentResults = this.findGoodAndBadMetrics(metricValues, programmingLanguage);
|
|
214773
214869
|
const noticeableMetricSuggestionLinks = new Map();
|
|
214774
|
-
const newCustomConfigs = [];
|
|
214775
214870
|
|
|
214776
214871
|
for (const [metricName, colorRange] of metricAssessmentResults.suspiciousMetrics) {
|
|
214777
|
-
|
|
214778
|
-
newCustomConfigs.push(suspiciousMetricConfig);
|
|
214779
|
-
noticeableMetricSuggestionLinks.set(metricName, Object.assign(Object.assign({
|
|
214872
|
+
noticeableMetricSuggestionLinks.set(metricName, Object.assign({
|
|
214780
214873
|
metric: metricName
|
|
214781
|
-
}, colorRange)
|
|
214782
|
-
generalCustomConfigId: suspiciousMetricConfig.id
|
|
214783
|
-
}));
|
|
214874
|
+
}, colorRange));
|
|
214784
214875
|
const outlierThreshold = metricAssessmentResults.outliersThresholds.get(metricName);
|
|
214785
214876
|
|
|
214786
214877
|
if (outlierThreshold > 0) {
|
|
214787
|
-
|
|
214788
|
-
newCustomConfigs.push(highRiskMetricConfig);
|
|
214789
|
-
noticeableMetricSuggestionLinks.get(metricName).outlierCustomConfigId = highRiskMetricConfig.id;
|
|
214878
|
+
noticeableMetricSuggestionLinks.get(metricName).isOutlier = true;
|
|
214790
214879
|
}
|
|
214791
214880
|
}
|
|
214792
214881
|
|
|
214793
|
-
_util_customConfigHelper__WEBPACK_IMPORTED_MODULE_4__.CustomConfigHelper.addCustomConfigs(newCustomConfigs);
|
|
214794
214882
|
this._viewModel.suspiciousMetricSuggestionLinks = [...noticeableMetricSuggestionLinks.values()].sort(this.compareSuspiciousMetricSuggestionLinks);
|
|
214795
214883
|
this._viewModel.unsuspiciousMetrics = metricAssessmentResults.unsuspiciousMetrics;
|
|
214796
214884
|
}
|
|
214797
214885
|
|
|
214798
214886
|
compareSuspiciousMetricSuggestionLinks(a, b) {
|
|
214799
|
-
if (a.
|
|
214800
|
-
if (!a.
|
|
214887
|
+
if (a.isOutlier && !b.isOutlier) return -1;
|
|
214888
|
+
if (!a.isOutlier && b.isOutlier) return 1;
|
|
214801
214889
|
return 0;
|
|
214802
214890
|
}
|
|
214803
214891
|
|
|
@@ -214820,7 +214908,7 @@ class ArtificialIntelligenceController {
|
|
|
214820
214908
|
const maxMetricValue = Math.max(...valuesOfMetric);
|
|
214821
214909
|
|
|
214822
214910
|
if (maxMetricValue <= thresholdConfig.percentile70) {
|
|
214823
|
-
metricAssessmentResults.unsuspiciousMetrics.push(`${metricName} (${
|
|
214911
|
+
metricAssessmentResults.unsuspiciousMetrics.push(`${metricName} (${_util_metric_metricDescriptions__WEBPACK_IMPORTED_MODULE_11__.metricDescriptions.get(metricName)})`);
|
|
214824
214912
|
} else if (maxMetricValue > thresholdConfig.percentile70) {
|
|
214825
214913
|
metricAssessmentResults.suspiciousMetrics.set(metricName, {
|
|
214826
214914
|
from: thresholdConfig.percentile70,
|
|
@@ -214838,49 +214926,13 @@ class ArtificialIntelligenceController {
|
|
|
214838
214926
|
return metricAssessmentResults;
|
|
214839
214927
|
}
|
|
214840
214928
|
|
|
214841
|
-
createOrUpdateCustomConfig(configName, state, fileState) {
|
|
214842
|
-
const customConfig = _util_customConfigHelper__WEBPACK_IMPORTED_MODULE_4__.CustomConfigHelper.getCustomConfigByName(_model_customConfig_customConfig_api_model__WEBPACK_IMPORTED_MODULE_6__.CustomConfigMapSelectionMode.SINGLE, [fileState.file.fileMeta.fileName], configName);
|
|
214843
|
-
|
|
214844
|
-
if (customConfig !== null) {
|
|
214845
|
-
_util_customConfigHelper__WEBPACK_IMPORTED_MODULE_4__.CustomConfigHelper.deleteCustomConfig(customConfig.id);
|
|
214846
|
-
}
|
|
214847
|
-
|
|
214848
|
-
return (0,_util_customConfigBuilder__WEBPACK_IMPORTED_MODULE_3__.buildCustomConfigFromState)(configName, state);
|
|
214849
|
-
}
|
|
214850
|
-
|
|
214851
|
-
prepareOverviewConfigState(metricName, colorRangeFrom, colorRangeTo) {
|
|
214852
|
-
const state = (0,klona__WEBPACK_IMPORTED_MODULE_5__.klona)(this.storeService.getState());
|
|
214853
|
-
state.dynamicSettings.areaMetric = "rloc";
|
|
214854
|
-
state.dynamicSettings.heightMetric = metricName;
|
|
214855
|
-
state.dynamicSettings.colorMetric = metricName;
|
|
214856
|
-
state.dynamicSettings.colorRange.from = colorRangeFrom;
|
|
214857
|
-
state.dynamicSettings.colorRange.to = colorRangeTo;
|
|
214858
|
-
state.appSettings.mapColors.positive = _state_store_appSettings_mapColors_mapColors_actions__WEBPACK_IMPORTED_MODULE_11__.defaultMapColors.positive;
|
|
214859
|
-
state.appSettings.mapColors.neutral = _state_store_appSettings_mapColors_mapColors_actions__WEBPACK_IMPORTED_MODULE_11__.defaultMapColors.neutral;
|
|
214860
|
-
state.appSettings.mapColors.negative = _state_store_appSettings_mapColors_mapColors_actions__WEBPACK_IMPORTED_MODULE_11__.defaultMapColors.negative;
|
|
214861
|
-
return state;
|
|
214862
|
-
}
|
|
214863
|
-
|
|
214864
|
-
prepareOutlierConfigState(metricName, colorRangeFrom, colorRangeTo) {
|
|
214865
|
-
const state = (0,klona__WEBPACK_IMPORTED_MODULE_5__.klona)(this.storeService.getState());
|
|
214866
|
-
state.dynamicSettings.areaMetric = "rloc";
|
|
214867
|
-
state.dynamicSettings.heightMetric = metricName;
|
|
214868
|
-
state.dynamicSettings.colorMetric = metricName;
|
|
214869
|
-
state.dynamicSettings.colorRange.to = colorRangeTo;
|
|
214870
|
-
state.dynamicSettings.colorRange.from = colorRangeFrom;
|
|
214871
|
-
state.appSettings.mapColors.positive = "#ffffff";
|
|
214872
|
-
state.appSettings.mapColors.neutral = "#ffffff";
|
|
214873
|
-
state.appSettings.mapColors.negative = "#A900C0";
|
|
214874
|
-
return state;
|
|
214875
|
-
}
|
|
214876
|
-
|
|
214877
214929
|
getSortedMetricValues(fileState, programmingLanguage) {
|
|
214878
214930
|
const metricValues = {};
|
|
214879
214931
|
|
|
214880
214932
|
for (const {
|
|
214881
214933
|
data
|
|
214882
214934
|
} of (0,d3_hierarchy__WEBPACK_IMPORTED_MODULE_17__["default"])(fileState.file.map)) {
|
|
214883
|
-
if (data.type !==
|
|
214935
|
+
if (data.type !== _codeCharta_model__WEBPACK_IMPORTED_MODULE_4__.NodeType.FILE || (0,_util_codeMapHelper__WEBPACK_IMPORTED_MODULE_9__.isPathBlacklisted)(data.path, this.blacklist, _codeCharta_model__WEBPACK_IMPORTED_MODULE_4__.BlacklistType.exclude) || this.getFileExtension(data.name) !== programmingLanguage) {
|
|
214884
214936
|
continue;
|
|
214885
214937
|
}
|
|
214886
214938
|
|
|
@@ -214892,7 +214944,7 @@ class ArtificialIntelligenceController {
|
|
|
214892
214944
|
metricValues[metricIndex] = [];
|
|
214893
214945
|
}
|
|
214894
214946
|
|
|
214895
|
-
(0,
|
|
214947
|
+
(0,_util_nodeDecorator__WEBPACK_IMPORTED_MODULE_3__.pushSorted)(metricValues[metricIndex], data.attributes[metricIndex]);
|
|
214896
214948
|
}
|
|
214897
214949
|
}
|
|
214898
214950
|
}
|
|
@@ -214916,7 +214968,7 @@ class ArtificialIntelligenceController {
|
|
|
214916
214968
|
continue;
|
|
214917
214969
|
}
|
|
214918
214970
|
|
|
214919
|
-
if (data.type ===
|
|
214971
|
+
if (data.type === _codeCharta_model__WEBPACK_IMPORTED_MODULE_4__.NodeType.FILE) {
|
|
214920
214972
|
const fileExtension = data.name.slice(data.name.lastIndexOf(".") + 1);
|
|
214921
214973
|
const filesPerLanguage = (_a = numberOfFilesPerLanguage.get(fileExtension)) !== null && _a !== void 0 ? _a : 0;
|
|
214922
214974
|
numberOfFilesPerLanguage.set(fileExtension, filesPerLanguage + 1);
|
|
@@ -214941,11 +214993,11 @@ class ArtificialIntelligenceController {
|
|
|
214941
214993
|
}
|
|
214942
214994
|
|
|
214943
214995
|
getAssociatedMetricThresholds(programmingLanguage) {
|
|
214944
|
-
return programmingLanguage === "java" ?
|
|
214996
|
+
return programmingLanguage === "java" ? _artificialIntelligence_metricThresholds__WEBPACK_IMPORTED_MODULE_6__.metricThresholds.java : _artificialIntelligence_metricThresholds__WEBPACK_IMPORTED_MODULE_6__.metricThresholds.miscellaneous;
|
|
214945
214997
|
}
|
|
214946
214998
|
|
|
214947
214999
|
}
|
|
214948
|
-
ArtificialIntelligenceController.$inject = ["$rootScope", "storeService"
|
|
215000
|
+
ArtificialIntelligenceController.$inject = ["$rootScope", "storeService"];
|
|
214949
215001
|
const artificialIntelligenceComponent = {
|
|
214950
215002
|
selector: "artificialIntelligenceComponent",
|
|
214951
215003
|
template: __webpack_require__(/*! ./artificialIntelligence.component.html */ "./app/codeCharta/ui/artificialIntelligence/artificialIntelligence.component.html"),
|
|
@@ -216091,10 +216143,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
216091
216143
|
/* harmony export */ });
|
|
216092
216144
|
/* harmony import */ var _codeCharta_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../codeCharta.model */ "./app/codeCharta/codeCharta.model.ts");
|
|
216093
216145
|
/* harmony import */ var _state_store_fileSettings_edges_edges_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../state/store/fileSettings/edges/edges.actions */ "./app/codeCharta/state/store/fileSettings/edges/edges.actions.ts");
|
|
216094
|
-
/* harmony import */ var _state_store_fileSettings_markedPackages_markedPackages_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../state/store/fileSettings/markedPackages/markedPackages.actions */ "./app/codeCharta/state/store/fileSettings/markedPackages/markedPackages.actions.ts");
|
|
216095
|
-
/* harmony import */ var _state_store_fileSettings_markedPackages_util_addMarkedPackage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../state/store/fileSettings/markedPackages/util/addMarkedPackage */ "./app/codeCharta/state/store/fileSettings/markedPackages/util/addMarkedPackage.ts");
|
|
216096
|
-
|
|
216097
|
-
|
|
216098
216146
|
|
|
216099
216147
|
|
|
216100
216148
|
class CodeMapActionsService {
|
|
@@ -216105,32 +216153,6 @@ class CodeMapActionsService {
|
|
|
216105
216153
|
this.storeService = storeService;
|
|
216106
216154
|
}
|
|
216107
216155
|
|
|
216108
|
-
markFolder({
|
|
216109
|
-
path
|
|
216110
|
-
}, color) {
|
|
216111
|
-
const {
|
|
216112
|
-
markedPackages
|
|
216113
|
-
} = this.storeService.getState().fileSettings;
|
|
216114
|
-
const markedPackagesMap = new Map(markedPackages.map(entry => [entry.path, entry]));
|
|
216115
|
-
(0,_state_store_fileSettings_markedPackages_util_addMarkedPackage__WEBPACK_IMPORTED_MODULE_3__.addMarkedPackage)(markedPackagesMap, {
|
|
216116
|
-
path,
|
|
216117
|
-
color
|
|
216118
|
-
});
|
|
216119
|
-
this.storeService.dispatch((0,_state_store_fileSettings_markedPackages_markedPackages_actions__WEBPACK_IMPORTED_MODULE_2__.setMarkedPackages)([...markedPackagesMap.values()]));
|
|
216120
|
-
}
|
|
216121
|
-
|
|
216122
|
-
unmarkFolder(node) {
|
|
216123
|
-
let index = this.storeService.getState().fileSettings.markedPackages.findIndex(mp => mp.path === node.path);
|
|
216124
|
-
|
|
216125
|
-
if (index === -1) {
|
|
216126
|
-
index = this.getParentMarkedPackageIndex(node.path);
|
|
216127
|
-
}
|
|
216128
|
-
|
|
216129
|
-
if (index !== -1) {
|
|
216130
|
-
this.storeService.dispatch((0,_state_store_fileSettings_markedPackages_markedPackages_actions__WEBPACK_IMPORTED_MODULE_2__.unmarkPackage)(index));
|
|
216131
|
-
}
|
|
216132
|
-
}
|
|
216133
|
-
|
|
216134
216156
|
updateEdgePreviews() {
|
|
216135
216157
|
const state = this.storeService.getState();
|
|
216136
216158
|
const {
|
|
@@ -216164,21 +216186,6 @@ class CodeMapActionsService {
|
|
|
216164
216186
|
this.storeService.dispatch((0,_state_store_fileSettings_edges_edges_actions__WEBPACK_IMPORTED_MODULE_1__.setEdges)(edges));
|
|
216165
216187
|
}
|
|
216166
216188
|
|
|
216167
|
-
getParentMarkedPackageIndex(path) {
|
|
216168
|
-
const markedPackages = this.storeService.getState().fileSettings.markedPackages;
|
|
216169
|
-
let index = -1;
|
|
216170
|
-
|
|
216171
|
-
for (let loopIndex = 0; loopIndex < markedPackages.length; loopIndex++) {
|
|
216172
|
-
const markedPackage = markedPackages[loopIndex];
|
|
216173
|
-
|
|
216174
|
-
if (path.startsWith(markedPackage.path) && path !== markedPackage.path && (index === -1 || markedPackages[index].path.length < markedPackage.path.length)) {
|
|
216175
|
-
index = loopIndex;
|
|
216176
|
-
}
|
|
216177
|
-
}
|
|
216178
|
-
|
|
216179
|
-
return index;
|
|
216180
|
-
}
|
|
216181
|
-
|
|
216182
216189
|
}
|
|
216183
216190
|
CodeMapActionsService.$inject = ["edgeMetricDataService", "storeService"];
|
|
216184
216191
|
|
|
@@ -216986,12 +216993,6 @@ class CodeMapMouseEventService {
|
|
|
216986
216993
|
});
|
|
216987
216994
|
}
|
|
216988
216995
|
|
|
216989
|
-
static subscribeToBuildingRightClickedEvents($rootScope, subscriber) {
|
|
216990
|
-
$rootScope.$on(this.BUILDING_RIGHT_CLICKED_EVENT, (_event, data) => {
|
|
216991
|
-
subscriber.onBuildingRightClicked(data.building, data.x, data.y);
|
|
216992
|
-
});
|
|
216993
|
-
}
|
|
216994
|
-
|
|
216995
216996
|
start() {
|
|
216996
216997
|
this.threeRendererService.renderer.domElement.addEventListener("mousemove", event => this.onDocumentMouseMove(event));
|
|
216997
216998
|
this.threeRendererService.renderer.domElement.addEventListener("mouseup", event => this.onDocumentMouseUp(event));
|
|
@@ -217252,11 +217253,13 @@ class CodeMapMouseEventService {
|
|
|
217252
217253
|
const building = this.intersectedBuilding;
|
|
217253
217254
|
|
|
217254
217255
|
if (building && !this.hasMouseMovedMoreThanThreePixels(this.mouseOnLastClick)) {
|
|
217255
|
-
|
|
217256
|
-
|
|
217257
|
-
|
|
217258
|
-
|
|
217259
|
-
|
|
217256
|
+
document.dispatchEvent(new CustomEvent("building-right-clicked", {
|
|
217257
|
+
detail: {
|
|
217258
|
+
building,
|
|
217259
|
+
x: this.mouse.x,
|
|
217260
|
+
y: this.mouse.y
|
|
217261
|
+
}
|
|
217262
|
+
}));
|
|
217260
217263
|
}
|
|
217261
217264
|
|
|
217262
217265
|
this.threeUpdateCycleService.update();
|
|
@@ -217360,7 +217363,6 @@ class CodeMapMouseEventService {
|
|
|
217360
217363
|
CodeMapMouseEventService.$inject = ["$rootScope", "$window", "threeCameraService", "threeRendererService", "threeSceneService", "threeUpdateCycleService", "storeService", "codeMapLabelService", "codeMapPreRenderService", "viewCubeMouseEventsService", "threeViewerService"];
|
|
217361
217364
|
CodeMapMouseEventService.BUILDING_HOVERED_EVENT = "building-hovered";
|
|
217362
217365
|
CodeMapMouseEventService.BUILDING_UNHOVERED_EVENT = "building-unhovered";
|
|
217363
|
-
CodeMapMouseEventService.BUILDING_RIGHT_CLICKED_EVENT = "building-right-clicked";
|
|
217364
217366
|
|
|
217365
217367
|
/***/ }),
|
|
217366
217368
|
|
|
@@ -220037,6 +220039,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
220037
220039
|
/* harmony export */ "ColorPickerComponent": () => (/* binding */ ColorPickerComponent)
|
|
220038
220040
|
/* harmony export */ });
|
|
220039
220041
|
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
220042
|
+
/* harmony import */ var _angular_material_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/material/menu */ "./node_modules/@angular/material/fesm2015/menu.js");
|
|
220040
220043
|
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
220041
220044
|
var c = arguments.length,
|
|
220042
220045
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
@@ -220050,21 +220053,60 @@ var __metadata = undefined && undefined.__metadata || function (k, v) {
|
|
|
220050
220053
|
};
|
|
220051
220054
|
|
|
220052
220055
|
|
|
220056
|
+
|
|
220053
220057
|
let ColorPickerComponent = class ColorPickerComponent {
|
|
220054
220058
|
constructor() {
|
|
220059
|
+
this.openXPosition = "after";
|
|
220055
220060
|
this.onColorChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter();
|
|
220061
|
+
this.isHovered = false;
|
|
220062
|
+
this.isClickInside = false;
|
|
220056
220063
|
}
|
|
220057
220064
|
|
|
220058
220065
|
handleChangeComplete(hexColor) {
|
|
220059
220066
|
this.onColorChange.emit(hexColor);
|
|
220060
220067
|
}
|
|
220061
220068
|
|
|
220069
|
+
onMouseEnter() {
|
|
220070
|
+
this.isHovered = true;
|
|
220071
|
+
}
|
|
220072
|
+
|
|
220073
|
+
onMouseLeave() {
|
|
220074
|
+
this.isHovered = false;
|
|
220075
|
+
}
|
|
220076
|
+
|
|
220077
|
+
onClick() {
|
|
220078
|
+
this.isClickInside = true;
|
|
220079
|
+
this.colorPickerMenuTrigger.openMenu();
|
|
220080
|
+
}
|
|
220081
|
+
|
|
220082
|
+
handleDocumentClick() {
|
|
220083
|
+
if (!this.isClickInside && this.colorPickerMenuTrigger.menuOpen) {
|
|
220084
|
+
this.colorPickerMenuTrigger.closeMenu();
|
|
220085
|
+
}
|
|
220086
|
+
|
|
220087
|
+
this.isClickInside = false;
|
|
220088
|
+
}
|
|
220089
|
+
|
|
220062
220090
|
};
|
|
220063
220091
|
|
|
220064
220092
|
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input)(), __metadata("design:type", String)], ColorPickerComponent.prototype, "hexColor", void 0);
|
|
220065
220093
|
|
|
220094
|
+
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input)(), __metadata("design:type", String)], ColorPickerComponent.prototype, "openXPosition", void 0);
|
|
220095
|
+
|
|
220096
|
+
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input)(), __metadata("design:type", _angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef)], ColorPickerComponent.prototype, "triggerTemplate", void 0);
|
|
220097
|
+
|
|
220066
220098
|
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Output)(), __metadata("design:type", Object)], ColorPickerComponent.prototype, "onColorChange", void 0);
|
|
220067
220099
|
|
|
220100
|
+
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewChild)("colorPickerMenuTrigger"), __metadata("design:type", _angular_material_menu__WEBPACK_IMPORTED_MODULE_1__.MatMenuTrigger)], ColorPickerComponent.prototype, "colorPickerMenuTrigger", void 0);
|
|
220101
|
+
|
|
220102
|
+
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.HostListener)("mouseenter"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], ColorPickerComponent.prototype, "onMouseEnter", null);
|
|
220103
|
+
|
|
220104
|
+
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.HostListener)("mouseleave"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], ColorPickerComponent.prototype, "onMouseLeave", null);
|
|
220105
|
+
|
|
220106
|
+
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.HostListener)("click"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], ColorPickerComponent.prototype, "onClick", null);
|
|
220107
|
+
|
|
220108
|
+
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.HostListener)("document:click"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], ColorPickerComponent.prototype, "handleDocumentClick", null);
|
|
220109
|
+
|
|
220068
220110
|
ColorPickerComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Component)({
|
|
220069
220111
|
selector: "cc-color-picker",
|
|
220070
220112
|
template: __webpack_require__(/*! ./colorPicker.component.html */ "./app/codeCharta/ui/colorPicker/colorPicker.component.html")
|
|
@@ -220084,10 +220126,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
220084
220126
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
220085
220127
|
/* harmony export */ "ColorPickerModule": () => (/* binding */ ColorPickerModule)
|
|
220086
220128
|
/* harmony export */ });
|
|
220087
|
-
/* harmony import */ var
|
|
220088
|
-
/* harmony import */ var
|
|
220089
|
-
/* harmony import */ var
|
|
220090
|
-
/* harmony import */ var
|
|
220129
|
+
/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js");
|
|
220130
|
+
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
220131
|
+
/* harmony import */ var ngx_color_chrome__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ngx-color/chrome */ "./node_modules/ngx-color/fesm2020/ngx-color-chrome.mjs");
|
|
220132
|
+
/* harmony import */ var _material_material_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../material/material.module */ "./app/material/material.module.ts");
|
|
220133
|
+
/* harmony import */ var _colorPicker_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./colorPicker.component */ "./app/codeCharta/ui/colorPicker/colorPicker.component.ts");
|
|
220091
220134
|
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
220092
220135
|
var c = arguments.length,
|
|
220093
220136
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
@@ -220100,11 +220143,12 @@ var __decorate = undefined && undefined.__decorate || function (decorators, targ
|
|
|
220100
220143
|
|
|
220101
220144
|
|
|
220102
220145
|
|
|
220146
|
+
|
|
220103
220147
|
let ColorPickerModule = class ColorPickerModule {};
|
|
220104
|
-
ColorPickerModule = __decorate([(0,
|
|
220105
|
-
imports: [
|
|
220106
|
-
declarations: [
|
|
220107
|
-
exports: [
|
|
220148
|
+
ColorPickerModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule)({
|
|
220149
|
+
imports: [_angular_common__WEBPACK_IMPORTED_MODULE_3__.CommonModule, ngx_color_chrome__WEBPACK_IMPORTED_MODULE_4__.ColorChromeModule, _material_material_module__WEBPACK_IMPORTED_MODULE_0__.MaterialModule],
|
|
220150
|
+
declarations: [_colorPicker_component__WEBPACK_IMPORTED_MODULE_1__.ColorPickerComponent],
|
|
220151
|
+
exports: [_colorPicker_component__WEBPACK_IMPORTED_MODULE_1__.ColorPickerComponent]
|
|
220108
220152
|
})], ColorPickerModule);
|
|
220109
220153
|
|
|
220110
220154
|
|
|
@@ -220558,9 +220602,12 @@ class CustomConfigsController {
|
|
|
220558
220602
|
this.threeCameraService = threeCameraService;
|
|
220559
220603
|
this._viewModel = {
|
|
220560
220604
|
dropDownCustomConfigItemGroups: [],
|
|
220561
|
-
hasDownloadableConfigs: false
|
|
220605
|
+
hasDownloadableConfigs: false,
|
|
220606
|
+
showNonApplicableButton: false,
|
|
220607
|
+
visibleEntries: 0
|
|
220562
220608
|
};
|
|
220563
220609
|
this.downloadableConfigs = new Map();
|
|
220610
|
+
this.applicableEntries = 0;
|
|
220564
220611
|
_state_store_files_files_service__WEBPACK_IMPORTED_MODULE_2__.FilesService.subscribe(this.$rootScope, this);
|
|
220565
220612
|
}
|
|
220566
220613
|
|
|
@@ -220572,6 +220619,7 @@ class CustomConfigsController {
|
|
|
220572
220619
|
initView() {
|
|
220573
220620
|
this.loadCustomConfigs();
|
|
220574
220621
|
this.preloadDownloadableConfigs();
|
|
220622
|
+
this.initVisibleEntries();
|
|
220575
220623
|
}
|
|
220576
220624
|
|
|
220577
220625
|
loadCustomConfigs() {
|
|
@@ -220589,8 +220637,45 @@ class CustomConfigsController {
|
|
|
220589
220637
|
_util_customConfigHelper__WEBPACK_IMPORTED_MODULE_1__.CustomConfigHelper.applyCustomConfig(configId, this.storeService, this.threeCameraService, this.threeOrbitControlsService);
|
|
220590
220638
|
}
|
|
220591
220639
|
|
|
220592
|
-
removeCustomConfig(configId) {
|
|
220640
|
+
removeCustomConfig(configId, customConfigItemIndex, dropDownCustomConfigItemGroupIndex) {
|
|
220641
|
+
const {
|
|
220642
|
+
dropDownCustomConfigItemGroups
|
|
220643
|
+
} = this._viewModel;
|
|
220593
220644
|
_util_customConfigHelper__WEBPACK_IMPORTED_MODULE_1__.CustomConfigHelper.deleteCustomConfig(configId);
|
|
220645
|
+
dropDownCustomConfigItemGroups[dropDownCustomConfigItemGroupIndex].customConfigItems.splice(customConfigItemIndex, 1);
|
|
220646
|
+
|
|
220647
|
+
if (dropDownCustomConfigItemGroups[dropDownCustomConfigItemGroupIndex].customConfigItems.length === 0) {
|
|
220648
|
+
if (dropDownCustomConfigItemGroups[dropDownCustomConfigItemGroupIndex].hasApplicableItems) {
|
|
220649
|
+
this.applicableEntries--;
|
|
220650
|
+
}
|
|
220651
|
+
|
|
220652
|
+
dropDownCustomConfigItemGroups.splice(dropDownCustomConfigItemGroupIndex, 1);
|
|
220653
|
+
this._viewModel.visibleEntries--;
|
|
220654
|
+
this.previousEntries--;
|
|
220655
|
+
this.updateButtonVisibility();
|
|
220656
|
+
}
|
|
220657
|
+
}
|
|
220658
|
+
|
|
220659
|
+
initVisibleEntries() {
|
|
220660
|
+
var _a;
|
|
220661
|
+
|
|
220662
|
+
this.applicableEntries = 0;
|
|
220663
|
+
|
|
220664
|
+
while ((_a = this._viewModel.dropDownCustomConfigItemGroups[this.applicableEntries]) === null || _a === void 0 ? void 0 : _a.hasApplicableItems) {
|
|
220665
|
+
this.applicableEntries++;
|
|
220666
|
+
}
|
|
220667
|
+
|
|
220668
|
+
this._viewModel.visibleEntries = this.applicableEntries;
|
|
220669
|
+
this.updateButtonVisibility();
|
|
220670
|
+
}
|
|
220671
|
+
|
|
220672
|
+
toggleNonApplicableItems() {
|
|
220673
|
+
if (!this.isExpanded()) {
|
|
220674
|
+
this.previousEntries = this._viewModel.visibleEntries;
|
|
220675
|
+
this._viewModel.visibleEntries = this._viewModel.dropDownCustomConfigItemGroups.length;
|
|
220676
|
+
} else {
|
|
220677
|
+
this._viewModel.visibleEntries = this.previousEntries;
|
|
220678
|
+
}
|
|
220594
220679
|
}
|
|
220595
220680
|
|
|
220596
220681
|
downloadPreloadedCustomConfigs() {
|
|
@@ -220626,6 +220711,20 @@ class CustomConfigsController {
|
|
|
220626
220711
|
return false;
|
|
220627
220712
|
}
|
|
220628
220713
|
|
|
220714
|
+
isExpanded() {
|
|
220715
|
+
return this._viewModel.visibleEntries === this._viewModel.dropDownCustomConfigItemGroups.length;
|
|
220716
|
+
}
|
|
220717
|
+
|
|
220718
|
+
updateButtonVisibility() {
|
|
220719
|
+
if (this._viewModel.dropDownCustomConfigItemGroups.length === 0) {
|
|
220720
|
+
this._viewModel.showNonApplicableButton = false;
|
|
220721
|
+
} else if (this.applicableEntries < this._viewModel.dropDownCustomConfigItemGroups.length) {
|
|
220722
|
+
this._viewModel.showNonApplicableButton = true;
|
|
220723
|
+
} else {
|
|
220724
|
+
this._viewModel.showNonApplicableButton = false;
|
|
220725
|
+
}
|
|
220726
|
+
}
|
|
220727
|
+
|
|
220629
220728
|
}
|
|
220630
220729
|
CustomConfigsController.$inject = ["$rootScope", "storeService", "dialogService", "threeOrbitControlsService", "threeCameraService"];
|
|
220631
220730
|
const customConfigsComponent = {
|
|
@@ -222747,7 +222846,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
222747
222846
|
/* harmony export */ });
|
|
222748
222847
|
/* harmony import */ var _labelledColorPicker_component_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./labelledColorPicker.component.scss */ "./app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.scss");
|
|
222749
222848
|
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
222750
|
-
/* harmony import */ var _angular_material_menu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/menu */ "./node_modules/@angular/material/fesm2015/menu.js");
|
|
222751
222849
|
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
222752
222850
|
var c = arguments.length,
|
|
222753
222851
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
@@ -222762,40 +222860,9 @@ var __metadata = undefined && undefined.__metadata || function (k, v) {
|
|
|
222762
222860
|
|
|
222763
222861
|
|
|
222764
222862
|
|
|
222765
|
-
|
|
222766
222863
|
let LabelledColorPickerComponent = class LabelledColorPickerComponent {
|
|
222767
222864
|
constructor() {
|
|
222768
222865
|
this.onColorChange = new _angular_core__WEBPACK_IMPORTED_MODULE_1__.EventEmitter();
|
|
222769
|
-
this.isClickInside = false;
|
|
222770
|
-
}
|
|
222771
|
-
|
|
222772
|
-
onMouseEnter() {
|
|
222773
|
-
this.brush.nativeElement.style.opacity = "1";
|
|
222774
|
-
}
|
|
222775
|
-
|
|
222776
|
-
onMouseLeave() {
|
|
222777
|
-
if (!this.colorPickerMenuTrigger.menuOpen) this.brush.nativeElement.style.opacity = "0";
|
|
222778
|
-
}
|
|
222779
|
-
|
|
222780
|
-
onClick() {
|
|
222781
|
-
this.isClickInside = true;
|
|
222782
|
-
const menuOpenedSubscription = this.colorPickerMenuTrigger.menuOpened.subscribe(() => {
|
|
222783
|
-
this.brush.nativeElement.style.opacity = "1";
|
|
222784
|
-
menuOpenedSubscription.unsubscribe();
|
|
222785
|
-
});
|
|
222786
|
-
const menuClosedSubscription = this.colorPickerMenuTrigger.menuClosed.subscribe(() => {
|
|
222787
|
-
this.brush.nativeElement.style.opacity = "0";
|
|
222788
|
-
menuClosedSubscription.unsubscribe();
|
|
222789
|
-
});
|
|
222790
|
-
this.colorPickerMenuTrigger.openMenu();
|
|
222791
|
-
}
|
|
222792
|
-
|
|
222793
|
-
handleDocumentClick() {
|
|
222794
|
-
if (!this.isClickInside && this.colorPickerMenuTrigger && this.colorPickerMenuTrigger.menuOpen) {
|
|
222795
|
-
this.colorPickerMenuTrigger.closeMenu();
|
|
222796
|
-
}
|
|
222797
|
-
|
|
222798
|
-
this.isClickInside = false;
|
|
222799
222866
|
}
|
|
222800
222867
|
|
|
222801
222868
|
handleColorChange(hexColor) {
|
|
@@ -222810,18 +222877,6 @@ __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Input)(), __metadata("
|
|
|
222810
222877
|
|
|
222811
222878
|
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Output)(), __metadata("design:type", Object)], LabelledColorPickerComponent.prototype, "onColorChange", void 0);
|
|
222812
222879
|
|
|
222813
|
-
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.ViewChild)("colorPickerMenuTrigger"), __metadata("design:type", _angular_material_menu__WEBPACK_IMPORTED_MODULE_2__.MatMenuTrigger)], LabelledColorPickerComponent.prototype, "colorPickerMenuTrigger", void 0);
|
|
222814
|
-
|
|
222815
|
-
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.ViewChild)("brush"), __metadata("design:type", _angular_core__WEBPACK_IMPORTED_MODULE_1__.ElementRef)], LabelledColorPickerComponent.prototype, "brush", void 0);
|
|
222816
|
-
|
|
222817
|
-
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.HostListener)("mouseenter"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], LabelledColorPickerComponent.prototype, "onMouseEnter", null);
|
|
222818
|
-
|
|
222819
|
-
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.HostListener)("mouseleave"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], LabelledColorPickerComponent.prototype, "onMouseLeave", null);
|
|
222820
|
-
|
|
222821
|
-
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.HostListener)("click"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], LabelledColorPickerComponent.prototype, "onClick", null);
|
|
222822
|
-
|
|
222823
|
-
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.HostListener)("document:click"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], LabelledColorPickerComponent.prototype, "handleDocumentClick", null);
|
|
222824
|
-
|
|
222825
222880
|
LabelledColorPickerComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Component)({
|
|
222826
222881
|
selector: "cc-labelled-color-picker",
|
|
222827
222882
|
template: __webpack_require__(/*! ./labelledColorPicker.component.html */ "./app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.html")
|
|
@@ -222841,12 +222896,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
222841
222896
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
222842
222897
|
/* harmony export */ "LabelledColorPickerModule": () => (/* binding */ LabelledColorPickerModule)
|
|
222843
222898
|
/* harmony export */ });
|
|
222844
|
-
/* harmony import */ var
|
|
222845
|
-
/* harmony import */ var
|
|
222846
|
-
/* harmony import */ var
|
|
222847
|
-
/* harmony import */ var
|
|
222848
|
-
/* harmony import */ var
|
|
222849
|
-
/* harmony import */ var _readableColorForBackground_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./readableColorForBackground.pipe */ "./app/codeCharta/ui/labelledColorPicker/readableColorForBackground.pipe.ts");
|
|
222899
|
+
/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js");
|
|
222900
|
+
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
222901
|
+
/* harmony import */ var _colorPicker_colorPicker_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colorPicker/colorPicker.module */ "./app/codeCharta/ui/colorPicker/colorPicker.module.ts");
|
|
222902
|
+
/* harmony import */ var _labelledColorPicker_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./labelledColorPicker.component */ "./app/codeCharta/ui/labelledColorPicker/labelledColorPicker.component.ts");
|
|
222903
|
+
/* harmony import */ var _readableColorForBackground_pipe__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./readableColorForBackground.pipe */ "./app/codeCharta/ui/labelledColorPicker/readableColorForBackground.pipe.ts");
|
|
222850
222904
|
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
222851
222905
|
var c = arguments.length,
|
|
222852
222906
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
@@ -222860,12 +222914,11 @@ var __decorate = undefined && undefined.__decorate || function (decorators, targ
|
|
|
222860
222914
|
|
|
222861
222915
|
|
|
222862
222916
|
|
|
222863
|
-
|
|
222864
222917
|
let LabelledColorPickerModule = class LabelledColorPickerModule {};
|
|
222865
|
-
LabelledColorPickerModule = __decorate([(0,
|
|
222866
|
-
imports: [
|
|
222867
|
-
declarations: [
|
|
222868
|
-
exports: [
|
|
222918
|
+
LabelledColorPickerModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.NgModule)({
|
|
222919
|
+
imports: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.CommonModule, _colorPicker_colorPicker_module__WEBPACK_IMPORTED_MODULE_0__.ColorPickerModule],
|
|
222920
|
+
declarations: [_labelledColorPicker_component__WEBPACK_IMPORTED_MODULE_1__.LabelledColorPickerComponent, _readableColorForBackground_pipe__WEBPACK_IMPORTED_MODULE_2__.ReadableColorForBackgroundPipe],
|
|
222921
|
+
exports: [_labelledColorPicker_component__WEBPACK_IMPORTED_MODULE_1__.LabelledColorPickerComponent]
|
|
222869
222922
|
})], LabelledColorPickerModule);
|
|
222870
222923
|
|
|
222871
222924
|
|
|
@@ -223070,7 +223123,7 @@ let LegendMarkedPackagesComponent = class LegendMarkedPackagesComponent {
|
|
|
223070
223123
|
}
|
|
223071
223124
|
|
|
223072
223125
|
handleColorChange(newHexColor, paths) {
|
|
223073
|
-
this.store.dispatch((0,_state_store_fileSettings_markedPackages_markedPackages_actions__WEBPACK_IMPORTED_MODULE_3__.
|
|
223126
|
+
this.store.dispatch((0,_state_store_fileSettings_markedPackages_markedPackages_actions__WEBPACK_IMPORTED_MODULE_3__.markPackages)(paths.map(path => ({
|
|
223074
223127
|
color: newHexColor,
|
|
223075
223128
|
path
|
|
223076
223129
|
}))));
|
|
@@ -224606,20 +224659,23 @@ angular__WEBPACK_IMPORTED_MODULE_1___default().module("app.codeCharta.ui.metricV
|
|
|
224606
224659
|
|
|
224607
224660
|
/***/ }),
|
|
224608
224661
|
|
|
224609
|
-
/***/ "./app/codeCharta/ui/nodeContextMenu/
|
|
224610
|
-
|
|
224611
|
-
!*** ./app/codeCharta/ui/nodeContextMenu/
|
|
224612
|
-
|
|
224662
|
+
/***/ "./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.ts":
|
|
224663
|
+
/*!**********************************************************************************!*\
|
|
224664
|
+
!*** ./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.ts ***!
|
|
224665
|
+
\**********************************************************************************/
|
|
224613
224666
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
224614
224667
|
|
|
224615
224668
|
"use strict";
|
|
224616
224669
|
__webpack_require__.r(__webpack_exports__);
|
|
224617
224670
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
224618
|
-
/* harmony export */ "
|
|
224671
|
+
/* harmony export */ "FocusButtonsComponent": () => (/* binding */ FocusButtonsComponent)
|
|
224619
224672
|
/* harmony export */ });
|
|
224620
|
-
/* harmony import */ var
|
|
224621
|
-
/* harmony import */ var
|
|
224622
|
-
/* harmony import */ var
|
|
224673
|
+
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
224674
|
+
/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/dist/esm5/internal/operators/map.js");
|
|
224675
|
+
/* harmony import */ var _state_angular_redux_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../state/angular-redux/store */ "./app/codeCharta/state/angular-redux/store.ts");
|
|
224676
|
+
/* harmony import */ var _state_store_dynamicSettings_focusedNodePath_currentFocused_selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../state/store/dynamicSettings/focusedNodePath/currentFocused.selector */ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/currentFocused.selector.ts");
|
|
224677
|
+
/* harmony import */ var _state_store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions */ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions.ts");
|
|
224678
|
+
/* harmony import */ var _state_store_dynamicSettings_focusedNodePath_focusedNodePath_selector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../state/store/dynamicSettings/focusedNodePath/focusedNodePath.selector */ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.selector.ts");
|
|
224623
224679
|
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
224624
224680
|
var c = arguments.length,
|
|
224625
224681
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
@@ -224632,35 +224688,160 @@ var __metadata = undefined && undefined.__metadata || function (k, v) {
|
|
|
224632
224688
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
224633
224689
|
};
|
|
224634
224690
|
|
|
224691
|
+
var __param = undefined && undefined.__param || function (paramIndex, decorator) {
|
|
224692
|
+
return function (target, key) {
|
|
224693
|
+
decorator(target, key, paramIndex);
|
|
224694
|
+
};
|
|
224695
|
+
};
|
|
224696
|
+
|
|
224635
224697
|
|
|
224636
224698
|
|
|
224637
224699
|
|
|
224638
|
-
|
|
224639
|
-
|
|
224640
|
-
|
|
224700
|
+
|
|
224701
|
+
|
|
224702
|
+
|
|
224703
|
+
let FocusButtonsComponent = class FocusButtonsComponent {
|
|
224704
|
+
constructor(store) {
|
|
224705
|
+
this.store = store;
|
|
224706
|
+
this.currentFocusedNodePath$ = this.store.select(_state_store_dynamicSettings_focusedNodePath_currentFocused_selector__WEBPACK_IMPORTED_MODULE_1__.currentFocusedNodePathSelector);
|
|
224707
|
+
this.hasPreviousFocusedNodePath$ = this.store.select(_state_store_dynamicSettings_focusedNodePath_focusedNodePath_selector__WEBPACK_IMPORTED_MODULE_3__.focusedNodePathSelector).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_4__.map)(focusedNodePaths => focusedNodePaths.length > 1));
|
|
224641
224708
|
}
|
|
224642
224709
|
|
|
224643
|
-
|
|
224644
|
-
this.
|
|
224710
|
+
handleFocusNodeClicked() {
|
|
224711
|
+
this.store.dispatch((0,_state_store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_2__.focusNode)(this.codeMapNode.path));
|
|
224645
224712
|
}
|
|
224646
224713
|
|
|
224647
|
-
|
|
224648
|
-
|
|
224649
|
-
|
|
224650
|
-
}
|
|
224714
|
+
handleUnfocusNodeClicked() {
|
|
224715
|
+
this.store.dispatch((0,_state_store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_2__.unfocusNode)());
|
|
224716
|
+
}
|
|
224651
224717
|
|
|
224652
|
-
|
|
224718
|
+
handleUnfocusAllNodesClicked() {
|
|
224719
|
+
this.store.dispatch((0,_state_store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_2__.unfocusAllNodes)());
|
|
224653
224720
|
}
|
|
224654
224721
|
|
|
224655
224722
|
};
|
|
224656
224723
|
|
|
224657
|
-
__decorate([(0,
|
|
224724
|
+
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Input)(), __metadata("design:type", Object)], FocusButtonsComponent.prototype, "codeMapNode", void 0);
|
|
224658
224725
|
|
|
224659
|
-
__decorate([(0,
|
|
224726
|
+
FocusButtonsComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({
|
|
224727
|
+
selector: "cc-focus-buttons",
|
|
224728
|
+
template: __webpack_require__(/*! ./focusButtons.component.html */ "./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.html")
|
|
224729
|
+
}), __param(0, (0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Inject)(_state_angular_redux_store__WEBPACK_IMPORTED_MODULE_0__.Store)), __metadata("design:paramtypes", [_state_angular_redux_store__WEBPACK_IMPORTED_MODULE_0__.Store])], FocusButtonsComponent);
|
|
224660
224730
|
|
|
224661
|
-
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.HostListener)("click"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], MarkFolderColorPickerComponent.prototype, "onClick", null);
|
|
224662
224731
|
|
|
224663
|
-
|
|
224732
|
+
/***/ }),
|
|
224733
|
+
|
|
224734
|
+
/***/ "./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.module.ts":
|
|
224735
|
+
/*!*******************************************************************************!*\
|
|
224736
|
+
!*** ./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.module.ts ***!
|
|
224737
|
+
\*******************************************************************************/
|
|
224738
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
224739
|
+
|
|
224740
|
+
"use strict";
|
|
224741
|
+
__webpack_require__.r(__webpack_exports__);
|
|
224742
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
224743
|
+
/* harmony export */ "FocusButtonsModule": () => (/* binding */ FocusButtonsModule)
|
|
224744
|
+
/* harmony export */ });
|
|
224745
|
+
/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js");
|
|
224746
|
+
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
224747
|
+
/* harmony import */ var _material_material_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../material/material.module */ "./app/material/material.module.ts");
|
|
224748
|
+
/* harmony import */ var _focusButtons_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./focusButtons.component */ "./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.ts");
|
|
224749
|
+
/* harmony import */ var _isNodeFocused_pipe__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNodeFocused.pipe */ "./app/codeCharta/ui/nodeContextMenu/focusButtons/isNodeFocused.pipe.ts");
|
|
224750
|
+
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
224751
|
+
var c = arguments.length,
|
|
224752
|
+
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
224753
|
+
d;
|
|
224754
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
224755
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
224756
|
+
};
|
|
224757
|
+
|
|
224758
|
+
|
|
224759
|
+
|
|
224760
|
+
|
|
224761
|
+
|
|
224762
|
+
|
|
224763
|
+
let FocusButtonsModule = class FocusButtonsModule {};
|
|
224764
|
+
FocusButtonsModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.NgModule)({
|
|
224765
|
+
imports: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.CommonModule, _material_material_module__WEBPACK_IMPORTED_MODULE_0__.MaterialModule],
|
|
224766
|
+
declarations: [_focusButtons_component__WEBPACK_IMPORTED_MODULE_1__.FocusButtonsComponent, _isNodeFocused_pipe__WEBPACK_IMPORTED_MODULE_2__.IsNodeFocusedPipe],
|
|
224767
|
+
exports: [_focusButtons_component__WEBPACK_IMPORTED_MODULE_1__.FocusButtonsComponent]
|
|
224768
|
+
})], FocusButtonsModule);
|
|
224769
|
+
|
|
224770
|
+
|
|
224771
|
+
/***/ }),
|
|
224772
|
+
|
|
224773
|
+
/***/ "./app/codeCharta/ui/nodeContextMenu/focusButtons/isNodeFocused.pipe.ts":
|
|
224774
|
+
/*!******************************************************************************!*\
|
|
224775
|
+
!*** ./app/codeCharta/ui/nodeContextMenu/focusButtons/isNodeFocused.pipe.ts ***!
|
|
224776
|
+
\******************************************************************************/
|
|
224777
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
224778
|
+
|
|
224779
|
+
"use strict";
|
|
224780
|
+
__webpack_require__.r(__webpack_exports__);
|
|
224781
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
224782
|
+
/* harmony export */ "IsNodeFocusedPipe": () => (/* binding */ IsNodeFocusedPipe)
|
|
224783
|
+
/* harmony export */ });
|
|
224784
|
+
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
224785
|
+
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
224786
|
+
var c = arguments.length,
|
|
224787
|
+
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
224788
|
+
d;
|
|
224789
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
224790
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
224791
|
+
};
|
|
224792
|
+
|
|
224793
|
+
|
|
224794
|
+
let IsNodeFocusedPipe = class IsNodeFocusedPipe {
|
|
224795
|
+
transform(focusedNodePath, node) {
|
|
224796
|
+
if (!focusedNodePath) return {
|
|
224797
|
+
isNodeFocused: false,
|
|
224798
|
+
isParentFocused: false
|
|
224799
|
+
};
|
|
224800
|
+
const isNodeFocused = focusedNodePath === node.path;
|
|
224801
|
+
return {
|
|
224802
|
+
isNodeFocused,
|
|
224803
|
+
isParentFocused: !isNodeFocused && node.path.startsWith(focusedNodePath)
|
|
224804
|
+
};
|
|
224805
|
+
}
|
|
224806
|
+
|
|
224807
|
+
};
|
|
224808
|
+
IsNodeFocusedPipe = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe)({
|
|
224809
|
+
name: "isNodeFocused"
|
|
224810
|
+
})], IsNodeFocusedPipe);
|
|
224811
|
+
|
|
224812
|
+
|
|
224813
|
+
/***/ }),
|
|
224814
|
+
|
|
224815
|
+
/***/ "./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.ts":
|
|
224816
|
+
/*!****************************************************************************************************!*\
|
|
224817
|
+
!*** ./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.ts ***!
|
|
224818
|
+
\****************************************************************************************************/
|
|
224819
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
224820
|
+
|
|
224821
|
+
"use strict";
|
|
224822
|
+
__webpack_require__.r(__webpack_exports__);
|
|
224823
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
224824
|
+
/* harmony export */ "MarkFolderColorPickerComponent": () => (/* binding */ MarkFolderColorPickerComponent)
|
|
224825
|
+
/* harmony export */ });
|
|
224826
|
+
/* harmony import */ var _markFolderColorPicker_component_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./markFolderColorPicker.component.scss */ "./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.scss");
|
|
224827
|
+
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
224828
|
+
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
224829
|
+
var c = arguments.length,
|
|
224830
|
+
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
224831
|
+
d;
|
|
224832
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
224833
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
224834
|
+
};
|
|
224835
|
+
|
|
224836
|
+
var __metadata = undefined && undefined.__metadata || function (k, v) {
|
|
224837
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
224838
|
+
};
|
|
224839
|
+
|
|
224840
|
+
|
|
224841
|
+
|
|
224842
|
+
let MarkFolderColorPickerComponent = class MarkFolderColorPickerComponent {};
|
|
224843
|
+
|
|
224844
|
+
__decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Input)(), __metadata("design:type", Function)], MarkFolderColorPickerComponent.prototype, "markFolder", void 0);
|
|
224664
224845
|
|
|
224665
224846
|
MarkFolderColorPickerComponent = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Component)({
|
|
224666
224847
|
selector: "cc-mark-folder-color-picker",
|
|
@@ -224681,11 +224862,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
224681
224862
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
224682
224863
|
/* harmony export */ "MarkFolderColorPickerModule": () => (/* binding */ MarkFolderColorPickerModule)
|
|
224683
224864
|
/* harmony export */ });
|
|
224684
|
-
/* harmony import */ var
|
|
224685
|
-
/* harmony import */ var
|
|
224686
|
-
/* harmony import */ var
|
|
224687
|
-
/* harmony import */ var
|
|
224688
|
-
/* harmony import */ var _markFolderColorPicker_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./markFolderColorPicker.component */ "./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.ts");
|
|
224865
|
+
/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js");
|
|
224866
|
+
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
224867
|
+
/* harmony import */ var _colorPicker_colorPicker_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../colorPicker/colorPicker.module */ "./app/codeCharta/ui/colorPicker/colorPicker.module.ts");
|
|
224868
|
+
/* harmony import */ var _markFolderColorPicker_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./markFolderColorPicker.component */ "./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.ts");
|
|
224689
224869
|
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
224690
224870
|
var c = arguments.length,
|
|
224691
224871
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
@@ -224698,12 +224878,11 @@ var __decorate = undefined && undefined.__decorate || function (decorators, targ
|
|
|
224698
224878
|
|
|
224699
224879
|
|
|
224700
224880
|
|
|
224701
|
-
|
|
224702
224881
|
let MarkFolderColorPickerModule = class MarkFolderColorPickerModule {};
|
|
224703
|
-
MarkFolderColorPickerModule = __decorate([(0,
|
|
224704
|
-
imports: [
|
|
224705
|
-
declarations: [
|
|
224706
|
-
exports: [
|
|
224882
|
+
MarkFolderColorPickerModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule)({
|
|
224883
|
+
imports: [_angular_common__WEBPACK_IMPORTED_MODULE_3__.CommonModule, _colorPicker_colorPicker_module__WEBPACK_IMPORTED_MODULE_0__.ColorPickerModule],
|
|
224884
|
+
declarations: [_markFolderColorPicker_component__WEBPACK_IMPORTED_MODULE_1__.MarkFolderColorPickerComponent],
|
|
224885
|
+
exports: [_markFolderColorPicker_component__WEBPACK_IMPORTED_MODULE_1__.MarkFolderColorPickerComponent]
|
|
224707
224886
|
})], MarkFolderColorPickerModule);
|
|
224708
224887
|
|
|
224709
224888
|
|
|
@@ -224727,11 +224906,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
224727
224906
|
/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_1__);
|
|
224728
224907
|
/* harmony import */ var _codeCharta_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../codeCharta.model */ "./app/codeCharta/codeCharta.model.ts");
|
|
224729
224908
|
/* harmony import */ var _state_store_fileSettings_blacklist_blacklist_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../state/store/fileSettings/blacklist/blacklist.actions */ "./app/codeCharta/state/store/fileSettings/blacklist/blacklist.actions.ts");
|
|
224730
|
-
/* harmony import */ var
|
|
224731
|
-
/* harmony import */ var
|
|
224732
|
-
/* harmony import */ var
|
|
224733
|
-
/* harmony import */ var
|
|
224734
|
-
/* harmony import */ var
|
|
224909
|
+
/* harmony import */ var _state_store_appSettings_mapColors_mapColors_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../state/store/appSettings/mapColors/mapColors.service */ "./app/codeCharta/state/store/appSettings/mapColors/mapColors.service.ts");
|
|
224910
|
+
/* harmony import */ var _util_codeMapHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/codeMapHelper */ "./app/codeCharta/util/codeMapHelper.ts");
|
|
224911
|
+
/* harmony import */ var _util_fileValidator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/fileValidator */ "./app/codeCharta/util/fileValidator.ts");
|
|
224912
|
+
/* harmony import */ var _state_store_fileSettings_markedPackages_util_findIndexOfMarkedPackageOrParent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../state/store/fileSettings/markedPackages/util/findIndexOfMarkedPackageOrParent */ "./app/codeCharta/state/store/fileSettings/markedPackages/util/findIndexOfMarkedPackageOrParent.ts");
|
|
224913
|
+
/* harmony import */ var _state_store_fileSettings_markedPackages_markedPackages_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../state/store/fileSettings/markedPackages/markedPackages.actions */ "./app/codeCharta/state/store/fileSettings/markedPackages/markedPackages.actions.ts");
|
|
224735
224914
|
|
|
224736
224915
|
|
|
224737
224916
|
|
|
@@ -224748,14 +224927,13 @@ var ClickType;
|
|
|
224748
224927
|
})(ClickType || (ClickType = {}));
|
|
224749
224928
|
|
|
224750
224929
|
class NodeContextMenuController {
|
|
224751
|
-
constructor($element, $window, $rootScope, storeService,
|
|
224930
|
+
constructor($element, $window, $rootScope, storeService, codeMapPreRenderService, threeSceneService, dialogService, blacklistService) {
|
|
224752
224931
|
"ngInject";
|
|
224753
224932
|
|
|
224754
224933
|
this.$element = $element;
|
|
224755
224934
|
this.$window = $window;
|
|
224756
224935
|
this.$rootScope = $rootScope;
|
|
224757
224936
|
this.storeService = storeService;
|
|
224758
|
-
this.codeMapActionsService = codeMapActionsService;
|
|
224759
224937
|
this.codeMapPreRenderService = codeMapPreRenderService;
|
|
224760
224938
|
this.threeSceneService = threeSceneService;
|
|
224761
224939
|
this.dialogService = dialogService;
|
|
@@ -224765,37 +224943,49 @@ class NodeContextMenuController {
|
|
|
224765
224943
|
showNodeContextMenu: false,
|
|
224766
224944
|
markingColors: null,
|
|
224767
224945
|
nodePath: "",
|
|
224768
|
-
lastPartOfNodePath: ""
|
|
224769
|
-
|
|
224770
|
-
|
|
224946
|
+
lastPartOfNodePath: ""
|
|
224947
|
+
};
|
|
224948
|
+
|
|
224949
|
+
this.onBuildingRightClicked = ({
|
|
224950
|
+
detail: {
|
|
224951
|
+
building,
|
|
224952
|
+
x,
|
|
224953
|
+
y
|
|
224954
|
+
}
|
|
224955
|
+
}) => {
|
|
224956
|
+
const nodeType = building.node.isLeaf ? _codeCharta_model__WEBPACK_IMPORTED_MODULE_2__.NodeType.FILE : _codeCharta_model__WEBPACK_IMPORTED_MODULE_2__.NodeType.FOLDER;
|
|
224957
|
+
this.onShowNodeContextMenu(building.node.path, nodeType, x, y);
|
|
224771
224958
|
};
|
|
224772
224959
|
|
|
224773
224960
|
this.onBodyLeftClickHideNodeContextMenu = mouseEvent => {
|
|
224774
224961
|
if (this.isEventFromColorPicker(mouseEvent)) return;
|
|
224775
|
-
|
|
224776
|
-
document.body.removeEventListener("click", this.onBodyLeftClickHideNodeContextMenu, true);
|
|
224962
|
+
this.hideContextMenu();
|
|
224777
224963
|
};
|
|
224778
224964
|
|
|
224779
224965
|
this.onBodyRightClickHideNodeContextMenu = event => {
|
|
224780
224966
|
if (event.button === ClickType.RightClick) {
|
|
224781
|
-
|
|
224967
|
+
this.hideContextMenu();
|
|
224782
224968
|
}
|
|
224783
|
-
|
|
224784
|
-
document.body.removeEventListener("mousedown", this.onBodyRightClickHideNodeContextMenu, true);
|
|
224785
224969
|
};
|
|
224786
224970
|
|
|
224787
224971
|
this.onMapWheelHideNodeContextMenu = () => {
|
|
224972
|
+
this.hideContextMenu();
|
|
224973
|
+
};
|
|
224974
|
+
|
|
224975
|
+
this.hideContextMenu = () => {
|
|
224788
224976
|
NodeContextMenuController.broadcastHideEvent(this.$rootScope);
|
|
224789
|
-
document.getElementById("codeMap").removeEventListener("wheel", this.onMapWheelHideNodeContextMenu, true);
|
|
224790
224977
|
};
|
|
224791
224978
|
|
|
224792
224979
|
this.markFolder = color => {
|
|
224793
|
-
this.
|
|
224980
|
+
this.storeService.dispatch((0,_state_store_fileSettings_markedPackages_markedPackages_actions__WEBPACK_IMPORTED_MODULE_8__.markPackages)([{
|
|
224981
|
+
path: this._viewModel.codeMapNode.path,
|
|
224982
|
+
color
|
|
224983
|
+
}]));
|
|
224794
224984
|
};
|
|
224795
224985
|
|
|
224796
224986
|
NodeContextMenuController.instance = this;
|
|
224797
|
-
|
|
224798
|
-
|
|
224987
|
+
_state_store_appSettings_mapColors_mapColors_service__WEBPACK_IMPORTED_MODULE_4__.MapColorsService.subscribe(this.$rootScope, this);
|
|
224988
|
+
document.addEventListener("building-right-clicked", this.onBuildingRightClicked);
|
|
224799
224989
|
NodeContextMenuController.subscribeToShowNodeContextMenu(this.$rootScope, this);
|
|
224800
224990
|
NodeContextMenuController.subscribeToHideNodeContextMenu(this.$rootScope, this);
|
|
224801
224991
|
}
|
|
@@ -224804,18 +224994,10 @@ class NodeContextMenuController {
|
|
|
224804
224994
|
this._viewModel.markingColors = mapColors.markingColors;
|
|
224805
224995
|
}
|
|
224806
224996
|
|
|
224807
|
-
onBuildingRightClicked(building, x, y) {
|
|
224808
|
-
const nodeType = building.node.isLeaf ? _codeCharta_model__WEBPACK_IMPORTED_MODULE_2__.NodeType.FILE : _codeCharta_model__WEBPACK_IMPORTED_MODULE_2__.NodeType.FOLDER;
|
|
224809
|
-
this.onShowNodeContextMenu(building.node.path, nodeType, x, y);
|
|
224810
|
-
}
|
|
224811
|
-
|
|
224812
224997
|
onShowNodeContextMenu(path, nodeType, mouseX, mouseY) {
|
|
224813
|
-
this._viewModel.codeMapNode = (0,
|
|
224998
|
+
this._viewModel.codeMapNode = (0,_util_codeMapHelper__WEBPACK_IMPORTED_MODULE_5__.getCodeMapNodeFromPath)(path, nodeType, this.codeMapPreRenderService.getRenderMap());
|
|
224814
224999
|
this._viewModel.nodePath = path;
|
|
224815
225000
|
this._viewModel.lastPartOfNodePath = `${path.lastIndexOf("/") === 0 ? "" : "..."}${path.slice(path.lastIndexOf("/"))}`;
|
|
224816
|
-
const focusedNodePath = this.storeService.getState().dynamicSettings.focusedNodePath;
|
|
224817
|
-
this._viewModel.isNodeFocused = path === focusedNodePath;
|
|
224818
|
-
this._viewModel.isParentFocused = path.startsWith(focusedNodePath) && path !== focusedNodePath;
|
|
224819
225001
|
this._viewModel.showNodeContextMenu = true;
|
|
224820
225002
|
const {
|
|
224821
225003
|
x,
|
|
@@ -224829,10 +225011,9 @@ class NodeContextMenuController {
|
|
|
224829
225011
|
|
|
224830
225012
|
onHideNodeContextMenu() {
|
|
224831
225013
|
this._viewModel.showNodeContextMenu = false;
|
|
224832
|
-
|
|
224833
|
-
|
|
224834
|
-
|
|
224835
|
-
this.storeService.dispatch((0,_state_store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_4__.focusNode)(this._viewModel.codeMapNode.path));
|
|
225014
|
+
document.body.removeEventListener("click", this.onBodyLeftClickHideNodeContextMenu, true);
|
|
225015
|
+
document.body.removeEventListener("mousedown", this.onBodyRightClickHideNodeContextMenu, true);
|
|
225016
|
+
document.getElementById("codeMap").removeEventListener("wheel", this.onMapWheelHideNodeContextMenu, true);
|
|
224836
225017
|
}
|
|
224837
225018
|
|
|
224838
225019
|
flattenNode() {
|
|
@@ -224864,7 +225045,7 @@ class NodeContextMenuController {
|
|
|
224864
225045
|
};
|
|
224865
225046
|
|
|
224866
225047
|
if (this.blacklistService.resultsInEmptyMap([blacklistItem])) {
|
|
224867
|
-
this.dialogService.showErrorDialog(
|
|
225048
|
+
this.dialogService.showErrorDialog(_util_fileValidator__WEBPACK_IMPORTED_MODULE_6__.ERROR_MESSAGES.blacklistError, "Blacklist Error");
|
|
224868
225049
|
} else {
|
|
224869
225050
|
this.storeService.dispatch((0,_state_store_fileSettings_blacklist_blacklist_actions__WEBPACK_IMPORTED_MODULE_3__.addBlacklistItem)(blacklistItem));
|
|
224870
225051
|
}
|
|
@@ -224889,7 +225070,7 @@ class NodeContextMenuController {
|
|
|
224889
225070
|
}
|
|
224890
225071
|
|
|
224891
225072
|
unmarkFolder() {
|
|
224892
|
-
this.
|
|
225073
|
+
this.storeService.dispatch((0,_state_store_fileSettings_markedPackages_markedPackages_actions__WEBPACK_IMPORTED_MODULE_8__.unmarkPackage)(this._viewModel.codeMapNode));
|
|
224893
225074
|
}
|
|
224894
225075
|
|
|
224895
225076
|
calculatePosition(mouseX, mouseY) {
|
|
@@ -224932,7 +225113,10 @@ class NodeContextMenuController {
|
|
|
224932
225113
|
}
|
|
224933
225114
|
|
|
224934
225115
|
packageMatchesColorOfParentMP(color) {
|
|
224935
|
-
const
|
|
225116
|
+
const {
|
|
225117
|
+
markedPackages
|
|
225118
|
+
} = this.storeService.getState().fileSettings;
|
|
225119
|
+
const index = (0,_state_store_fileSettings_markedPackages_util_findIndexOfMarkedPackageOrParent__WEBPACK_IMPORTED_MODULE_7__.findIndexOfMarkedPackageOrParent)(markedPackages, this._viewModel.codeMapNode.path);
|
|
224936
225120
|
|
|
224937
225121
|
if (index === -1) {
|
|
224938
225122
|
return false;
|
|
@@ -224956,23 +225140,6 @@ class NodeContextMenuController {
|
|
|
224956
225140
|
return false;
|
|
224957
225141
|
}
|
|
224958
225142
|
|
|
224959
|
-
isNodeOrParentFocused() {
|
|
224960
|
-
var _a;
|
|
224961
|
-
|
|
224962
|
-
const {
|
|
224963
|
-
focusedNodePath
|
|
224964
|
-
} = this.storeService.getState().dynamicSettings;
|
|
224965
|
-
return Boolean(focusedNodePath && ((_a = this._viewModel.codeMapNode) === null || _a === void 0 ? void 0 : _a.path.startsWith(focusedNodePath)));
|
|
224966
|
-
}
|
|
224967
|
-
|
|
224968
|
-
isNodeFocused() {
|
|
224969
|
-
if (this._viewModel.codeMapNode) {
|
|
224970
|
-
return this._viewModel.codeMapNode.path === this.storeService.getState().dynamicSettings.focusedNodePath;
|
|
224971
|
-
}
|
|
224972
|
-
|
|
224973
|
-
return false;
|
|
224974
|
-
}
|
|
224975
|
-
|
|
224976
225143
|
nodeIsFolder() {
|
|
224977
225144
|
var _a, _b;
|
|
224978
225145
|
|
|
@@ -225008,7 +225175,7 @@ class NodeContextMenuController {
|
|
|
225008
225175
|
}
|
|
225009
225176
|
|
|
225010
225177
|
}
|
|
225011
|
-
NodeContextMenuController.$inject = ["$element", "$window", "$rootScope", "storeService", "
|
|
225178
|
+
NodeContextMenuController.$inject = ["$element", "$window", "$rootScope", "storeService", "codeMapPreRenderService", "threeSceneService", "dialogService", "blacklistService"];
|
|
225012
225179
|
NodeContextMenuController.SHOW_NODE_CONTEXT_MENU_EVENT = "show-node-context-menu";
|
|
225013
225180
|
NodeContextMenuController.HIDE_NODE_CONTEXT_MENU_EVENT = "hide-node-context-menu";
|
|
225014
225181
|
const nodeContextMenuComponent = {
|
|
@@ -225031,17 +225198,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
225031
225198
|
/* harmony import */ var _ui_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ui/ui */ "./app/codeCharta/ui/ui.ts");
|
|
225032
225199
|
/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");
|
|
225033
225200
|
/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_2__);
|
|
225034
|
-
/* harmony import */ var
|
|
225201
|
+
/* harmony import */ var _angular_upgrade_static__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/upgrade/static */ "./node_modules/@angular/upgrade/fesm2015/static.js");
|
|
225035
225202
|
/* harmony import */ var _nodeContextMenu_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nodeContextMenu.component */ "./app/codeCharta/ui/nodeContextMenu/nodeContextMenu.component.ts");
|
|
225036
225203
|
/* harmony import */ var _markFolderColorPicker_markFolderColorPicker_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./markFolderColorPicker/markFolderColorPicker.component */ "./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.ts");
|
|
225204
|
+
/* harmony import */ var _focusButtons_focusButtons_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./focusButtons/focusButtons.component */ "./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.ts");
|
|
225205
|
+
|
|
225037
225206
|
|
|
225038
225207
|
|
|
225039
225208
|
|
|
225040
225209
|
|
|
225041
225210
|
|
|
225042
225211
|
|
|
225043
|
-
angular__WEBPACK_IMPORTED_MODULE_2___default().module("app.codeCharta.ui.nodeContextMenu", ["app.codeCharta.state", "app.codeCharta.ui"]).component(_nodeContextMenu_component__WEBPACK_IMPORTED_MODULE_3__.nodeContextMenuComponent.selector, _nodeContextMenu_component__WEBPACK_IMPORTED_MODULE_3__.nodeContextMenuComponent).directive("ccMarkFolderColorPicker", (0,
|
|
225212
|
+
angular__WEBPACK_IMPORTED_MODULE_2___default().module("app.codeCharta.ui.nodeContextMenu", ["app.codeCharta.state", "app.codeCharta.ui"]).component(_nodeContextMenu_component__WEBPACK_IMPORTED_MODULE_3__.nodeContextMenuComponent.selector, _nodeContextMenu_component__WEBPACK_IMPORTED_MODULE_3__.nodeContextMenuComponent).directive("ccMarkFolderColorPicker", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_6__.downgradeComponent)({
|
|
225044
225213
|
component: _markFolderColorPicker_markFolderColorPicker_component__WEBPACK_IMPORTED_MODULE_4__.MarkFolderColorPickerComponent
|
|
225214
|
+
})).directive("ccFocusButtons", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_6__.downgradeComponent)({
|
|
225215
|
+
component: _focusButtons_focusButtons_component__WEBPACK_IMPORTED_MODULE_5__.FocusButtonsComponent
|
|
225045
225216
|
}));
|
|
225046
225217
|
|
|
225047
225218
|
/***/ }),
|
|
@@ -226565,52 +226736,51 @@ angular__WEBPACK_IMPORTED_MODULE_2___default().module("app.codeCharta.ui.toolBar
|
|
|
226565
226736
|
__webpack_require__.r(__webpack_exports__);
|
|
226566
226737
|
/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");
|
|
226567
226738
|
/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);
|
|
226568
|
-
/* harmony import */ var
|
|
226739
|
+
/* harmony import */ var _angular_upgrade_static__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! @angular/upgrade/static */ "./node_modules/@angular/upgrade/fesm2015/static.js");
|
|
226569
226740
|
/* harmony import */ var _artificialIntelligence_artificialIntelligence_module__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./artificialIntelligence/artificialIntelligence.module */ "./app/codeCharta/ui/artificialIntelligence/artificialIntelligence.module.ts");
|
|
226570
226741
|
/* harmony import */ var _customConfigs_customConfigs_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./customConfigs/customConfigs.module */ "./app/codeCharta/ui/customConfigs/customConfigs.module.ts");
|
|
226571
|
-
/* harmony import */ var
|
|
226572
|
-
/* harmony import */ var
|
|
226573
|
-
/* harmony import */ var
|
|
226574
|
-
/* harmony import */ var
|
|
226575
|
-
/* harmony import */ var
|
|
226576
|
-
/* harmony import */ var
|
|
226577
|
-
/* harmony import */ var
|
|
226578
|
-
/* harmony import */ var
|
|
226579
|
-
/* harmony import */ var
|
|
226580
|
-
/* harmony import */ var
|
|
226581
|
-
/* harmony import */ var
|
|
226582
|
-
/* harmony import */ var
|
|
226583
|
-
/* harmony import */ var
|
|
226584
|
-
/* harmony import */ var
|
|
226585
|
-
/* harmony import */ var
|
|
226586
|
-
/* harmony import */ var
|
|
226587
|
-
/* harmony import */ var
|
|
226588
|
-
/* harmony import */ var
|
|
226589
|
-
/* harmony import */ var
|
|
226590
|
-
/* harmony import */ var
|
|
226591
|
-
/* harmony import */ var
|
|
226592
|
-
/* harmony import */ var
|
|
226593
|
-
/* harmony import */ var
|
|
226594
|
-
/* harmony import */ var
|
|
226595
|
-
/* harmony import */ var
|
|
226596
|
-
/* harmony import */ var
|
|
226597
|
-
/* harmony import */ var
|
|
226598
|
-
/* harmony import */ var
|
|
226599
|
-
/* harmony import */ var
|
|
226600
|
-
/* harmony import */ var
|
|
226601
|
-
/* harmony import */ var
|
|
226602
|
-
/* harmony import */ var
|
|
226603
|
-
/* harmony import */ var
|
|
226604
|
-
/* harmony import */ var
|
|
226605
|
-
/* harmony import */ var
|
|
226606
|
-
/* harmony import */ var
|
|
226607
|
-
/* harmony import */ var
|
|
226608
|
-
/* harmony import */ var
|
|
226609
|
-
/* harmony import */ var
|
|
226610
|
-
/* harmony import */ var
|
|
226611
|
-
/* harmony import */ var
|
|
226612
|
-
/* harmony import */ var
|
|
226613
|
-
/* harmony import */ var _legendPanel_legendPanel_component__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./legendPanel/legendPanel.component */ "./app/codeCharta/ui/legendPanel/legendPanel.component.ts");
|
|
226742
|
+
/* harmony import */ var _metricValueHovered_metricValueHovered_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./metricValueHovered/metricValueHovered.module */ "./app/codeCharta/ui/metricValueHovered/metricValueHovered.module.ts");
|
|
226743
|
+
/* harmony import */ var _downloadButton_downloadButton_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./downloadButton/downloadButton.module */ "./app/codeCharta/ui/downloadButton/downloadButton.module.ts");
|
|
226744
|
+
/* harmony import */ var _screenshotButton_screenshotButton_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./screenshotButton/screenshotButton.module */ "./app/codeCharta/ui/screenshotButton/screenshotButton.module.ts");
|
|
226745
|
+
/* harmony import */ var _globalSettingsButton_globalSettingsButton_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./globalSettingsButton/globalSettingsButton.module */ "./app/codeCharta/ui/globalSettingsButton/globalSettingsButton.module.ts");
|
|
226746
|
+
/* harmony import */ var _nodePathPanel_nodePathPanel_module__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./nodePathPanel/nodePathPanel.module */ "./app/codeCharta/ui/nodePathPanel/nodePathPanel.module.ts");
|
|
226747
|
+
/* harmony import */ var _edgeSettingsPanel_edgeSettingsPanel_module__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./edgeSettingsPanel/edgeSettingsPanel.module */ "./app/codeCharta/ui/edgeSettingsPanel/edgeSettingsPanel.module.ts");
|
|
226748
|
+
/* harmony import */ var _edgeChooser_edgeChooser_module__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./edgeChooser/edgeChooser.module */ "./app/codeCharta/ui/edgeChooser/edgeChooser.module.ts");
|
|
226749
|
+
/* harmony import */ var _presentationModeButton_presentationModeButton_module__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./presentationModeButton/presentationModeButton.module */ "./app/codeCharta/ui/presentationModeButton/presentationModeButton.module.ts");
|
|
226750
|
+
/* harmony import */ var _centerMapButton_centerMapButton_module__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./centerMapButton/centerMapButton.module */ "./app/codeCharta/ui/centerMapButton/centerMapButton.module.ts");
|
|
226751
|
+
/* harmony import */ var _searchPanel_searchPanel_module__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./searchPanel/searchPanel.module */ "./app/codeCharta/ui/searchPanel/searchPanel.module.ts");
|
|
226752
|
+
/* harmony import */ var _searchPanelModeSelector_searchPanelModeSelector_module__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./searchPanelModeSelector/searchPanelModeSelector.module */ "./app/codeCharta/ui/searchPanelModeSelector/searchPanelModeSelector.module.ts");
|
|
226753
|
+
/* harmony import */ var _searchBar_searchBar_module__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./searchBar/searchBar.module */ "./app/codeCharta/ui/searchBar/searchBar.module.ts");
|
|
226754
|
+
/* harmony import */ var _areaSettingsPanel_areaSettingsPanel_module__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./areaSettingsPanel/areaSettingsPanel.module */ "./app/codeCharta/ui/areaSettingsPanel/areaSettingsPanel.module.ts");
|
|
226755
|
+
/* harmony import */ var _blacklistPanel_blacklistPanel_module__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./blacklistPanel/blacklistPanel.module */ "./app/codeCharta/ui/blacklistPanel/blacklistPanel.module.ts");
|
|
226756
|
+
/* harmony import */ var _codeMap_codeMap_module__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./codeMap/codeMap.module */ "./app/codeCharta/ui/codeMap/codeMap.module.ts");
|
|
226757
|
+
/* harmony import */ var _colorSettingsPanel_colorSettingsPanel_module__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./colorSettingsPanel/colorSettingsPanel.module */ "./app/codeCharta/ui/colorSettingsPanel/colorSettingsPanel.module.ts");
|
|
226758
|
+
/* harmony import */ var _dialog_dialog_module__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./dialog/dialog.module */ "./app/codeCharta/ui/dialog/dialog.module.ts");
|
|
226759
|
+
/* harmony import */ var _fileChooser_fileChooser_module__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./fileChooser/fileChooser.module */ "./app/codeCharta/ui/fileChooser/fileChooser.module.ts");
|
|
226760
|
+
/* harmony import */ var _fileExtensionBar_fileExtensionBar_module__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./fileExtensionBar/fileExtensionBar.module */ "./app/codeCharta/ui/fileExtensionBar/fileExtensionBar.module.ts");
|
|
226761
|
+
/* harmony import */ var _heightSettingsPanel_heightSettingsPanel_module__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./heightSettingsPanel/heightSettingsPanel.module */ "./app/codeCharta/ui/heightSettingsPanel/heightSettingsPanel.module.ts");
|
|
226762
|
+
/* harmony import */ var _loadingGif_loadingGif_module__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./loadingGif/loadingGif.module */ "./app/codeCharta/ui/loadingGif/loadingGif.module.ts");
|
|
226763
|
+
/* harmony import */ var _metricChooser_metricChooser_module__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./metricChooser/metricChooser.module */ "./app/codeCharta/ui/metricChooser/metricChooser.module.ts");
|
|
226764
|
+
/* harmony import */ var _metricType_metricType_module__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./metricType/metricType.module */ "./app/codeCharta/ui/metricType/metricType.module.ts");
|
|
226765
|
+
/* harmony import */ var _nodeContextMenu_nodeContextMenu_module__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./nodeContextMenu/nodeContextMenu.module */ "./app/codeCharta/ui/nodeContextMenu/nodeContextMenu.module.ts");
|
|
226766
|
+
/* harmony import */ var _rangeSlider_rangeSlider_module__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./rangeSlider/rangeSlider.module */ "./app/codeCharta/ui/rangeSlider/rangeSlider.module.ts");
|
|
226767
|
+
/* harmony import */ var _resetSettingsButton_resetSettingsButton_module__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./resetSettingsButton/resetSettingsButton.module */ "./app/codeCharta/ui/resetSettingsButton/resetSettingsButton.module.ts");
|
|
226768
|
+
/* harmony import */ var _filePanel_filePanel_module__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./filePanel/filePanel.module */ "./app/codeCharta/ui/filePanel/filePanel.module.ts");
|
|
226769
|
+
/* harmony import */ var _ribbonBar_ribbonBar_module__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./ribbonBar/ribbonBar.module */ "./app/codeCharta/ui/ribbonBar/ribbonBar.module.ts");
|
|
226770
|
+
/* harmony import */ var _scenarioDropDown_scenarioDropDown_module__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./scenarioDropDown/scenarioDropDown.module */ "./app/codeCharta/ui/scenarioDropDown/scenarioDropDown.module.ts");
|
|
226771
|
+
/* harmony import */ var _toolBar_toolBar_module__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./toolBar/toolBar.module */ "./app/codeCharta/ui/toolBar/toolBar.module.ts");
|
|
226772
|
+
/* harmony import */ var _viewCube_viewCube_module__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./viewCube/viewCube.module */ "./app/codeCharta/ui/viewCube/viewCube.module.ts");
|
|
226773
|
+
/* harmony import */ var _layoutSelection_layoutSelection_module__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./layoutSelection/layoutSelection.module */ "./app/codeCharta/ui/layoutSelection/layoutSelection.module.ts");
|
|
226774
|
+
/* harmony import */ var _maxTreeMapFiles_maxTreeMapFiles_module__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./maxTreeMapFiles/maxTreeMapFiles.module */ "./app/codeCharta/ui/maxTreeMapFiles/maxTreeMapFiles.module.ts");
|
|
226775
|
+
/* harmony import */ var _sharpnessModeSelector_sharpnessModeSelector_module__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./sharpnessModeSelector/sharpnessModeSelector.module */ "./app/codeCharta/ui/sharpnessModeSelector/sharpnessModeSelector.module.ts");
|
|
226776
|
+
/* harmony import */ var _attributeSideBar_metricDeltaSelected_metricDeltaSelected_component__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./attributeSideBar/metricDeltaSelected/metricDeltaSelected.component */ "./app/codeCharta/ui/attributeSideBar/metricDeltaSelected/metricDeltaSelected.component.ts");
|
|
226777
|
+
/* harmony import */ var _mapTreeView_mapTreeView_component__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./mapTreeView/mapTreeView.component */ "./app/codeCharta/ui/mapTreeView/mapTreeView.component.ts");
|
|
226778
|
+
/* harmony import */ var _sortingOption_sortingOption_component__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./sortingOption/sortingOption.component */ "./app/codeCharta/ui/sortingOption/sortingOption.component.ts");
|
|
226779
|
+
/* harmony import */ var _matchingFilesCounter_matchingFilesCounter_component__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./matchingFilesCounter/matchingFilesCounter.component */ "./app/codeCharta/ui/matchingFilesCounter/matchingFilesCounter.component.ts");
|
|
226780
|
+
/* harmony import */ var _sortingButton_sortingButton_component__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./sortingButton/sortingButton.component */ "./app/codeCharta/ui/sortingButton/sortingButton.component.ts");
|
|
226781
|
+
/* harmony import */ var _attributeSideBar_attributeTypeSelector_attributeTypeSelector_component__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./attributeSideBar/attributeTypeSelector/attributeTypeSelector.component */ "./app/codeCharta/ui/attributeSideBar/attributeTypeSelector/attributeTypeSelector.component.ts");
|
|
226782
|
+
/* harmony import */ var _export3DMapButton_export3DMapButton_component__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./export3DMapButton/export3DMapButton.component */ "./app/codeCharta/ui/export3DMapButton/export3DMapButton.component.ts");
|
|
226783
|
+
/* harmony import */ var _legendPanel_legendPanel_component__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./legendPanel/legendPanel.component */ "./app/codeCharta/ui/legendPanel/legendPanel.component.ts");
|
|
226614
226784
|
|
|
226615
226785
|
|
|
226616
226786
|
|
|
@@ -226657,124 +226827,26 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
226657
226827
|
|
|
226658
226828
|
|
|
226659
226829
|
|
|
226660
|
-
|
|
226661
|
-
|
|
226662
|
-
|
|
226663
|
-
|
|
226664
|
-
|
|
226665
|
-
|
|
226666
|
-
|
|
226667
|
-
|
|
226668
|
-
|
|
226669
|
-
|
|
226670
|
-
|
|
226671
|
-
|
|
226672
|
-
|
|
226673
|
-
|
|
226674
|
-
|
|
226675
|
-
|
|
226676
|
-
component: _legendPanel_legendPanel_component__WEBPACK_IMPORTED_MODULE_45__.LegendPanelComponent
|
|
226830
|
+
angular__WEBPACK_IMPORTED_MODULE_0___default().module("app.codeCharta.ui", ["app.codeCharta.ui.artificialIntelligence", "app.codeCharta.ui.customConfigs", "app.codeCharta.ui.metricValueHovered", "app.codeCharta.ui.downloadButton", "app.codeCharta.ui.screenshotButton", "app.codeCharta.ui.globalSettingsButton", "app.codeCharta.ui.nodePathPanel", "app.codeCharta.ui.edgeSettingsPanel", "app.codeCharta.ui.edgeChooser", "app.codeCharta.ui.presentationModeButton", "app.codeCharta.ui.centerMapButton", "app.codeCharta.ui.searchPanel", "app.codeCharta.ui.searchPanelModeSelector", "app.codeCharta.ui.searchBar", "app.codeCharta.ui.metricType", "app.codeCharta.ui.areaSettingsPanel", "app.codeCharta.ui.blacklistPanel", "app.codeCharta.ui.codeMap", "app.codeCharta.ui.colorSettingsPanel", "app.codeCharta.ui.dialog", "app.codeCharta.ui.fileChooser", "app.codeCharta.ui.fileExtensionBar", "app.codeCharta.ui.filePanel", "app.codeCharta.ui.heightSettingsPanel", "app.codeCharta.ui.loadingGif", "app.codeCharta.ui.metricChooser", "app.codeCharta.ui.metricType", "app.codeCharta.ui.nodeContextMenu", "app.codeCharta.ui.rangeSlider", "app.codeCharta.ui.resetSettingsButton", "app.codeCharta.ui.ribbonBar", "app.codeCharta.ui.scenarioDropDown", "app.codeCharta.ui.toolBar", "app.codeCharta.ui.viewCube", "app.codeCharta.ui.layoutSelection", "app.codeCharta.ui.sharpnessModeSelector", "app.codeCharta.ui.maxTreeMapFiles"]).directive("ccSortingButton", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_45__.downgradeComponent)({
|
|
226831
|
+
component: _sortingButton_sortingButton_component__WEBPACK_IMPORTED_MODULE_41__.SortingButtonComponent
|
|
226832
|
+
})).directive("ccSortingOption", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_45__.downgradeComponent)({
|
|
226833
|
+
component: _sortingOption_sortingOption_component__WEBPACK_IMPORTED_MODULE_39__.SortingOptionComponent
|
|
226834
|
+
})).directive("ccMetricDeltaSelected", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_45__.downgradeComponent)({
|
|
226835
|
+
component: _attributeSideBar_metricDeltaSelected_metricDeltaSelected_component__WEBPACK_IMPORTED_MODULE_37__.MetricDeltaSelectedComponent
|
|
226836
|
+
})).directive("ccMapTreeView", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_45__.downgradeComponent)({
|
|
226837
|
+
component: _mapTreeView_mapTreeView_component__WEBPACK_IMPORTED_MODULE_38__.MapTreeViewComponent
|
|
226838
|
+
})).directive("ccMatchingFilesCounter", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_45__.downgradeComponent)({
|
|
226839
|
+
component: _matchingFilesCounter_matchingFilesCounter_component__WEBPACK_IMPORTED_MODULE_40__.MatchingFilesCounterComponent
|
|
226840
|
+
})).directive("ccAttributeTypeSelector", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_45__.downgradeComponent)({
|
|
226841
|
+
component: _attributeSideBar_attributeTypeSelector_attributeTypeSelector_component__WEBPACK_IMPORTED_MODULE_42__.AttributeTypeSelectorComponent
|
|
226842
|
+
})).directive("ccExportThreedMapButton", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_45__.downgradeComponent)({
|
|
226843
|
+
component: _export3DMapButton_export3DMapButton_component__WEBPACK_IMPORTED_MODULE_43__.Export3DMapButtonComponent
|
|
226844
|
+
})).directive("ccLegendPanel", (0,_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_45__.downgradeComponent)({
|
|
226845
|
+
component: _legendPanel_legendPanel_component__WEBPACK_IMPORTED_MODULE_44__.LegendPanelComponent
|
|
226677
226846
|
}));
|
|
226678
226847
|
|
|
226679
226848
|
/***/ }),
|
|
226680
226849
|
|
|
226681
|
-
/***/ "./app/codeCharta/ui/unfocusButton/unfocusButton.component.ts":
|
|
226682
|
-
/*!********************************************************************!*\
|
|
226683
|
-
!*** ./app/codeCharta/ui/unfocusButton/unfocusButton.component.ts ***!
|
|
226684
|
-
\********************************************************************/
|
|
226685
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
226686
|
-
|
|
226687
|
-
"use strict";
|
|
226688
|
-
__webpack_require__.r(__webpack_exports__);
|
|
226689
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
226690
|
-
/* harmony export */ "UnfocusButtonController": () => (/* binding */ UnfocusButtonController),
|
|
226691
|
-
/* harmony export */ "unfocusButtonComponent": () => (/* binding */ unfocusButtonComponent)
|
|
226692
|
-
/* harmony export */ });
|
|
226693
|
-
/* harmony import */ var _unfocusButton_component_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./unfocusButton.component.scss */ "./app/codeCharta/ui/unfocusButton/unfocusButton.component.scss");
|
|
226694
|
-
/* harmony import */ var _state_store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions */ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.actions.ts");
|
|
226695
|
-
/* harmony import */ var _nodeContextMenu_nodeContextMenu_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../nodeContextMenu/nodeContextMenu.component */ "./app/codeCharta/ui/nodeContextMenu/nodeContextMenu.component.ts");
|
|
226696
|
-
/* harmony import */ var _state_store_appSettings_isLoadingFile_isLoadingFile_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../state/store/appSettings/isLoadingFile/isLoadingFile.service */ "./app/codeCharta/state/store/appSettings/isLoadingFile/isLoadingFile.service.ts");
|
|
226697
|
-
/* harmony import */ var _state_store_dynamicSettings_focusedNodePath_focusedNodePath_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../state/store/dynamicSettings/focusedNodePath/focusedNodePath.service */ "./app/codeCharta/state/store/dynamicSettings/focusedNodePath/focusedNodePath.service.ts");
|
|
226698
|
-
|
|
226699
|
-
|
|
226700
|
-
|
|
226701
|
-
|
|
226702
|
-
|
|
226703
|
-
class UnfocusButtonController {
|
|
226704
|
-
constructor($rootScope, storeService) {
|
|
226705
|
-
"ngInject";
|
|
226706
|
-
|
|
226707
|
-
this.$rootScope = $rootScope;
|
|
226708
|
-
this.storeService = storeService;
|
|
226709
|
-
this._viewModel = {
|
|
226710
|
-
isLoadingFile: false,
|
|
226711
|
-
isNodeFocused: false,
|
|
226712
|
-
isParentFocused: false,
|
|
226713
|
-
focusedNodes: []
|
|
226714
|
-
};
|
|
226715
|
-
_state_store_appSettings_isLoadingFile_isLoadingFile_service__WEBPACK_IMPORTED_MODULE_3__.IsLoadingFileService.subscribe(this.$rootScope, this);
|
|
226716
|
-
_state_store_dynamicSettings_focusedNodePath_focusedNodePath_service__WEBPACK_IMPORTED_MODULE_4__.FocusedNodePathService.subscribeToFocusNode(this.$rootScope, this);
|
|
226717
|
-
}
|
|
226718
|
-
|
|
226719
|
-
onFocusNode(focusedNodePath) {
|
|
226720
|
-
if (focusedNodePath && !this._viewModel.focusedNodes.includes(focusedNodePath)) {
|
|
226721
|
-
this._viewModel.focusedNodes.push(focusedNodePath);
|
|
226722
|
-
}
|
|
226723
|
-
}
|
|
226724
|
-
|
|
226725
|
-
removeFocusedNode(removeAll = false) {
|
|
226726
|
-
this.storeService.dispatch((0,_state_store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_1__.unfocusNode)());
|
|
226727
|
-
|
|
226728
|
-
if (!removeAll) {
|
|
226729
|
-
this._viewModel.focusedNodes.pop();
|
|
226730
|
-
|
|
226731
|
-
const lastFocusedNode = this._viewModel.focusedNodes[this._viewModel.focusedNodes.length - 1];
|
|
226732
|
-
this.storeService.dispatch((0,_state_store_dynamicSettings_focusedNodePath_focusedNodePath_actions__WEBPACK_IMPORTED_MODULE_1__.focusNode)(lastFocusedNode));
|
|
226733
|
-
} else {
|
|
226734
|
-
this._viewModel.focusedNodes = [];
|
|
226735
|
-
}
|
|
226736
|
-
|
|
226737
|
-
_nodeContextMenu_nodeContextMenu_component__WEBPACK_IMPORTED_MODULE_2__.NodeContextMenuController.broadcastHideEvent(this.$rootScope);
|
|
226738
|
-
}
|
|
226739
|
-
|
|
226740
|
-
onIsLoadingFileChanged(isLoadingFile) {
|
|
226741
|
-
this._viewModel.isLoadingFile = isLoadingFile;
|
|
226742
|
-
this._viewModel.focusedNodes = [];
|
|
226743
|
-
}
|
|
226744
|
-
|
|
226745
|
-
}
|
|
226746
|
-
UnfocusButtonController.$inject = ["$rootScope", "storeService"];
|
|
226747
|
-
const unfocusButtonComponent = {
|
|
226748
|
-
selector: "unfocusButtonComponent",
|
|
226749
|
-
template: __webpack_require__(/*! ./unfocusButton.component.html */ "./app/codeCharta/ui/unfocusButton/unfocusButton.component.html"),
|
|
226750
|
-
controller: UnfocusButtonController,
|
|
226751
|
-
bindings: {
|
|
226752
|
-
isNodeFocused: "<",
|
|
226753
|
-
isParentFocused: "<"
|
|
226754
|
-
}
|
|
226755
|
-
};
|
|
226756
|
-
|
|
226757
|
-
/***/ }),
|
|
226758
|
-
|
|
226759
|
-
/***/ "./app/codeCharta/ui/unfocusButton/unfocusButton.module.ts":
|
|
226760
|
-
/*!*****************************************************************!*\
|
|
226761
|
-
!*** ./app/codeCharta/ui/unfocusButton/unfocusButton.module.ts ***!
|
|
226762
|
-
\*****************************************************************/
|
|
226763
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
226764
|
-
|
|
226765
|
-
"use strict";
|
|
226766
|
-
__webpack_require__.r(__webpack_exports__);
|
|
226767
|
-
/* harmony import */ var _state_state_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../state/state.module */ "./app/codeCharta/state/state.module.ts");
|
|
226768
|
-
/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");
|
|
226769
|
-
/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_1__);
|
|
226770
|
-
/* harmony import */ var _unfocusButton_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unfocusButton.component */ "./app/codeCharta/ui/unfocusButton/unfocusButton.component.ts");
|
|
226771
|
-
|
|
226772
|
-
|
|
226773
|
-
|
|
226774
|
-
angular__WEBPACK_IMPORTED_MODULE_1___default().module("app.codeCharta.ui.unfocusButton", ["app.codeCharta.state"]).component(_unfocusButton_component__WEBPACK_IMPORTED_MODULE_2__.unfocusButtonComponent.selector, _unfocusButton_component__WEBPACK_IMPORTED_MODULE_2__.unfocusButtonComponent);
|
|
226775
|
-
|
|
226776
|
-
/***/ }),
|
|
226777
|
-
|
|
226778
226850
|
/***/ "./app/codeCharta/ui/viewCube/viewCube.component.ts":
|
|
226779
226851
|
/*!**********************************************************!*\
|
|
226780
226852
|
!*** ./app/codeCharta/ui/viewCube/viewCube.component.ts ***!
|
|
@@ -229152,7 +229224,7 @@ function isVisible(squaredNode, isNodeLeaf, state, flattened) {
|
|
|
229152
229224
|
}
|
|
229153
229225
|
|
|
229154
229226
|
if (state.dynamicSettings.focusedNodePath.length > 0) {
|
|
229155
|
-
return squaredNode.path.startsWith(state.dynamicSettings.focusedNodePath);
|
|
229227
|
+
return squaredNode.path.startsWith(state.dynamicSettings.focusedNodePath[0]);
|
|
229156
229228
|
}
|
|
229157
229229
|
|
|
229158
229230
|
return true;
|
|
@@ -229911,7 +229983,7 @@ function initializeDynamicSettings(target) {
|
|
|
229911
229983
|
colorMetric: "",
|
|
229912
229984
|
distributionMetric: "",
|
|
229913
229985
|
edgeMetric: "",
|
|
229914
|
-
focusedNodePath:
|
|
229986
|
+
focusedNodePath: [],
|
|
229915
229987
|
heightMetric: "",
|
|
229916
229988
|
margin: 0,
|
|
229917
229989
|
searchPattern: "",
|
|
@@ -230603,7 +230675,7 @@ class FileExtensionCalculator {
|
|
|
230603
230675
|
let hash = 0;
|
|
230604
230676
|
|
|
230605
230677
|
for (let index = 0; index < fileExtension.length; index++) {
|
|
230606
|
-
hash = fileExtension.
|
|
230678
|
+
hash = fileExtension.codePointAt(index) + ((hash << 5) - hash);
|
|
230607
230679
|
}
|
|
230608
230680
|
|
|
230609
230681
|
return hash;
|
|
@@ -237652,7 +237724,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
237652
237724
|
|
|
237653
237725
|
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
237654
237726
|
// Module
|
|
237655
|
-
___CSS_LOADER_EXPORT___.push([module.id, ".artificial-intelligence-component .suspicious-metrics-button,\n.artificial-intelligence-component .high-risk-profile-button {\n height: 22px;\n min-height: 0;\n line-height: 23px;\n min-width: 45px;\n margin: 0;\n padding: 0;\n font-size: 9pt;\n text-transform: none;\n background-color: rgba(230, 230, 230, 0.96);\n overflow: visible; }\n .artificial-intelligence-component .suspicious-metrics-button.plus,\n .artificial-intelligence-component .high-risk-profile-button.plus {\n min-width: 30px; }\n .artificial-intelligence-component .suspicious-metrics-button .ai-badge,\n .artificial-intelligence-component .high-risk-profile-button .ai-badge {\n position: absolute;\n top: 12px;\n padding: 4px 6px;\n border-radius: 50%;\n background: red;\n color: white;\n font-size: 10px;\n width: 18px;\n height: 18px;\n line-height: 10px; }\n .artificial-intelligence-component .suspicious-metrics-button:hover,\n .artificial-intelligence-component .high-risk-profile-button:hover {\n background-color: #c8c8c8; }\n\n.ai-drop-down {\n padding: 16px;\n width: fit-content; }\n .ai-drop-down md-menu-item {\n height: auto;\n min-height: auto; }\n .ai-drop-down md-menu-item:not(:last-child) {\n margin-bottom: 16px; }\n .ai-drop-down.metrics .title span {\n padding: 0;\n margin: 0;\n font-weight: bold; }\n .ai-drop-down.metrics .suspicious-metrics {\n margin: 0;\n padding: 0;\n list-style: none;\n width: max-content; }\n .ai-drop-down.metrics .suspicious-metric .metric-button {\n border-radius: 5px;\n background-color: rgba(230, 230, 230, 0.96);\n padding: 0 12px;\n text-transform: none;\n margin: 0; }\n
|
|
237727
|
+
___CSS_LOADER_EXPORT___.push([module.id, ".artificial-intelligence-component .suspicious-metrics-button,\n.artificial-intelligence-component .high-risk-profile-button {\n height: 22px;\n min-height: 0;\n line-height: 23px;\n min-width: 45px;\n margin: 0;\n padding: 0;\n font-size: 9pt;\n text-transform: none;\n background-color: rgba(230, 230, 230, 0.96);\n overflow: visible; }\n .artificial-intelligence-component .suspicious-metrics-button.plus,\n .artificial-intelligence-component .high-risk-profile-button.plus {\n min-width: 30px; }\n .artificial-intelligence-component .suspicious-metrics-button .ai-badge,\n .artificial-intelligence-component .high-risk-profile-button .ai-badge {\n position: absolute;\n top: 12px;\n padding: 4px 6px;\n border-radius: 50%;\n background: red;\n color: white;\n font-size: 10px;\n width: 18px;\n height: 18px;\n line-height: 10px; }\n .artificial-intelligence-component .suspicious-metrics-button:hover,\n .artificial-intelligence-component .high-risk-profile-button:hover {\n background-color: #c8c8c8; }\n\n.ai-drop-down {\n padding: 16px;\n width: fit-content; }\n .ai-drop-down md-menu-item {\n height: auto;\n min-height: auto; }\n .ai-drop-down md-menu-item:not(:last-child) {\n margin-bottom: 16px; }\n .ai-drop-down.metrics .title span {\n padding: 0;\n margin: 0;\n font-weight: bold; }\n .ai-drop-down.metrics .suspicious-metrics {\n margin: 0;\n padding: 0;\n list-style: none;\n width: max-content; }\n .ai-drop-down.metrics .suspicious-metric .metric-button {\n border-radius: 5px;\n background-color: rgba(230, 230, 230, 0.96);\n padding: 0 12px;\n text-transform: none;\n margin: 0; }\n .ai-drop-down.metrics .suspicious-metric .risk-button {\n border-radius: 0 5px 5px 0;\n background-color: rgba(230, 230, 230, 0.96);\n margin: 0;\n min-width: 36px;\n height: 36px;\n color: #9c0e6a; }\n .ai-drop-down.metrics .suspicious-metric .risk-button:hover,\n .ai-drop-down.metrics .suspicious-metric .metric-button:hover {\n background-color: #c8c8c8; }\n .ai-drop-down.metrics .suspicious-metric:not(:last-child) {\n margin-bottom: 12px; }\n .ai-drop-down.summary .title {\n flex-direction: column;\n gap: 6px;\n font-weight: bold; }\n .ai-drop-down.summary .title p {\n padding: 0;\n margin: 0; }\n .ai-drop-down.summary .risk-profiles .risk-profile {\n height: 36px;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0;\n overflow: hidden; }\n .ai-drop-down.summary .risk-profiles .risk-profile.low-risk, .ai-drop-down.summary .risk-profiles .risk-profile.moderate-risk, .ai-drop-down.summary .risk-profiles .risk-profile.high-risk, .ai-drop-down.summary .risk-profiles .risk-profile.very-high-risk {\n color: black; }\n .ai-drop-down.summary .risk-profiles .low-risk {\n background-color: #5cb34d; }\n .ai-drop-down.summary .risk-profiles .moderate-risk {\n background-color: #eef432; }\n .ai-drop-down.summary .risk-profiles .high-risk {\n background-color: #cc2900; }\n .ai-drop-down.summary .risk-profiles .very-high-risk {\n background-color: #9c0e6a; }\n", "",{"version":3,"sources":["webpack://./app/codeCharta/ui/artificialIntelligence/artificialIntelligence.component.scss"],"names":[],"mappings":"AAAA;;EAGE,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,eAAe;EACf,SAAS;EACT,UAAU;EACV,cAAc;EACd,oBAAoB;EACpB,2CAA2C;EAC3C,iBAAiB,EAAA;EAZnB;;IAeG,eAAe,EAAA;EAflB;;IAmBG,kBAAkB;IAClB,SAAS;IACT,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,eAAe;IACf,WAAW;IACX,YAAY;IACZ,iBAAiB,EAAA;EA5BpB;;IAgCG,yBAAyB,EAAA;;AAI5B;EACC,aAAa;EACb,kBAAkB,EAAA;EAFnB;IAKE,YAAY;IACZ,gBAAgB,EAAA;EANlB;IAUE,mBAAmB,EAAA;EAVrB;IAeG,UAAU;IACV,SAAS;IACT,iBAAiB,EAAA;EAjBpB;IAqBG,SAAS;IACT,UAAU;IACV,gBAAgB;IAChB,kBAAkB,EAAA;EAxBrB;IA6BI,kBAAkB;IAClB,2CAA2C;IAC3C,eAAe;IACf,oBAAoB;IACpB,SAAS,EAAA;EAjCb;IAqCI,0BAA0B;IAC1B,2CAA2C;IAC3C,SAAS;IACT,eAAe;IACf,YAAY;IACZ,cAAc,EAAA;EA1ClB;;IA+CI,yBAAyB,EAAA;EA/C7B;IAmDI,mBAAmB,EAAA;EAnDvB;IA0DG,sBAAsB;IACtB,QAAQ;IACR,iBAAiB,EAAA;IA5DpB;MA+DI,UAAU;MACV,SAAS,EAAA;EAhEb;IAsEI,YAAY;IACZ,kBAAkB;IAClB,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,UAAU;IACV,gBAAgB,EAAA;IA5EpB;MAkFK,YAAY,EAAA;EAlFjB;IAuFI,yBAAyB,EAAA;EAvF7B;IA2FI,yBAAyB,EAAA;EA3F7B;IA+FI,yBAAyB,EAAA;EA/F7B;IAmGI,yBAAyB,EAAA","sourcesContent":[".artificial-intelligence-component {\n\t.suspicious-metrics-button,\n\t.high-risk-profile-button {\n\t\theight: 22px;\n\t\tmin-height: 0;\n\t\tline-height: 23px;\n\t\tmin-width: 45px;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfont-size: 9pt;\n\t\ttext-transform: none;\n\t\tbackground-color: rgba(230, 230, 230, 0.96);\n\t\toverflow: visible;\n\n\t\t&.plus {\n\t\t\tmin-width: 30px;\n\t\t}\n\n\t\t.ai-badge {\n\t\t\tposition: absolute;\n\t\t\ttop: 12px;\n\t\t\tpadding: 4px 6px;\n\t\t\tborder-radius: 50%;\n\t\t\tbackground: red;\n\t\t\tcolor: white;\n\t\t\tfont-size: 10px;\n\t\t\twidth: 18px;\n\t\t\theight: 18px;\n\t\t\tline-height: 10px;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground-color: #c8c8c8;\n\t\t}\n\t}\n}\n.ai-drop-down {\n\tpadding: 16px;\n\twidth: fit-content;\n\n\tmd-menu-item {\n\t\theight: auto;\n\t\tmin-height: auto;\n\t}\n\n\tmd-menu-item:not(:last-child) {\n\t\tmargin-bottom: 16px;\n\t}\n\n\t&.metrics {\n\t\t.title span {\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t.suspicious-metrics {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tlist-style: none;\n\t\t\twidth: max-content;\n\t\t}\n\n\t\t.suspicious-metric {\n\t\t\t.metric-button {\n\t\t\t\tborder-radius: 5px;\n\t\t\t\tbackground-color: rgba(230, 230, 230, 0.96);\n\t\t\t\tpadding: 0 12px;\n\t\t\t\ttext-transform: none;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.risk-button {\n\t\t\t\tborder-radius: 0 5px 5px 0;\n\t\t\t\tbackground-color: rgba(230, 230, 230, 0.96);\n\t\t\t\tmargin: 0;\n\t\t\t\tmin-width: 36px;\n\t\t\t\theight: 36px;\n\t\t\t\tcolor: #9c0e6a;\n\t\t\t}\n\n\t\t\t.risk-button:hover,\n\t\t\t.metric-button:hover {\n\t\t\t\tbackground-color: #c8c8c8;\n\t\t\t}\n\n\t\t\t&:not(:last-child) {\n\t\t\t\tmargin-bottom: 12px;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.summary {\n\t\t.title {\n\t\t\tflex-direction: column;\n\t\t\tgap: 6px;\n\t\t\tfont-weight: bold;\n\n\t\t\tp {\n\t\t\t\tpadding: 0;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t}\n\n\t\t.risk-profiles {\n\t\t\t.risk-profile {\n\t\t\t\theight: 36px;\n\t\t\t\ttext-align: center;\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding: 0;\n\t\t\t\toverflow: hidden;\n\n\t\t\t\t&.low-risk,\n\t\t\t\t&.moderate-risk,\n\t\t\t\t&.high-risk,\n\t\t\t\t&.very-high-risk {\n\t\t\t\t\tcolor: black;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.low-risk {\n\t\t\t\tbackground-color: #5cb34d;\n\t\t\t}\n\n\t\t\t.moderate-risk {\n\t\t\t\tbackground-color: #eef432;\n\t\t\t}\n\n\t\t\t.high-risk {\n\t\t\t\tbackground-color: #cc2900;\n\t\t\t}\n\n\t\t\t.very-high-risk {\n\t\t\t\tbackground-color: #9c0e6a;\n\t\t\t}\n\t\t}\n\t}\n}\n"],"sourceRoot":""}]);
|
|
237656
237728
|
// Exports
|
|
237657
237729
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
237658
237730
|
|
|
@@ -237868,7 +237940,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
237868
237940
|
|
|
237869
237941
|
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
237870
237942
|
// Module
|
|
237871
|
-
___CSS_LOADER_EXPORT___.push([module.id, ".custom-configs {\n margin-left: 15%; }\n\n.custom-configs-component .custom-configs-button {\n height: 22px;\n min-height: 0;\n line-height: 23px;\n min-width: 45px;\n margin: 0;\n padding: 0;\n font-size: 9pt;\n text-transform: none;\n background-color: rgba(230, 230, 230, 0.96); }\n .custom-configs-component .custom-configs-button.plus {\n min-width: 30px; }\n .custom-configs-component .custom-configs-button:hover {\n background-color: #c8c8c8; }\n\n.custom-configs-drop-down {\n padding: 0; }\n .custom-configs-drop-down md-menu-item {\n height: auto;\n min-height: auto;\n display: block;\n align-content: unset;\n justify-content: unset;\n flex-direction: unset; }\n .custom-configs-drop-down md-menu-item .collapsable {\n margin: 0;\n padding: 0 0 0 10px;\n border-bottom: 1px solid grey; }\n .custom-configs-drop-down .custom-configs-item .button-hovering {\n height: 48px;\n text-align: left;\n background-color: unset;\n border-bottom: 1px solid grey; }\n .custom-configs-drop-down .custom-configs-item .button-hovering .collapse-trigger {\n display: inline-block;\n width: 91%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 48px; }\n .custom-configs-drop-down .custom-configs-item .button-hovering:hover:not([disabled]) {\n background-color: rgba(158, 158, 158, 0.2); }\n .custom-configs-drop-down .custom-configs-item i.fa {\n margin-left: 0.8rem; }\n .custom-configs-drop-down .custom-configs-item i.collapse-icon {\n font-size: 10px;\n line-height: 48px;\n vertical-align: top; }\n .custom-configs-drop-down .custom-configs-item .action-button {\n display: inline-block;\n margin-right: 1px;\n min-width: 12%;\n height: 48px;\n width: 12%;\n text-align: center;\n line-height: 48px;\n background-color: #00a091;\n color: #ffffff; }\n .custom-configs-drop-down .custom-configs-item .action-button i.fa {\n font-size: 12px;\n margin-left: 0; }\n .custom-configs-drop-down .custom-configs-item .action-button.remove {\n display: inline-flex;\n justify-content: center;\n color: #b30000;\n background-color: transparent; }\n .custom-configs-drop-down .custom-configs-item .action-button:disabled,\n .custom-configs-drop-down .custom-configs-item .action-button[disabled] {\n background-color: #e6e6e6;\n color: #949494; }\n .custom-configs-drop-down .custom-configs-item .custom-configs-dialog-name {\n display: inline-block;\n width: 60%;\n min-height: 48px; }\n .custom-configs-drop-down .custom-configs-item .collapsable .button-hovering {\n width: 80%;\n border: none;\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 48px;\n text-transform: unset; }\n .custom-configs-drop-down .custom-configs-item .collapsable .action-button {\n width: 13%; }\n", "",{"version":3,"sources":["webpack://./app/codeCharta/ui/customConfigs/customConfigs.component.scss"],"names":[],"mappings":"AAAA;EACC,gBAAgB,EAAA;;AAGjB;EAEE,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,eAAe;EACf,SAAS;EACT,UAAU;EACV,cAAc;EACd,oBAAoB;EACpB,2CAA2C,EAAA;EAV7C;IAaG,eAAe,EAAA;EAblB;IAiBG,yBAAyB,EAAA;;AAK5B;EACC,UAAU,EAAA;EADX;IAIE,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,qBAAqB,EAAA;IATvB;MAYG,SAAS;MACT,mBAAmB;MACnB,6BAA6B,EAAA;EAdhC;IAoBG,YAAY;IACZ,gBAAgB;IAChB,uBAAuB;IACvB,6BAA6B,EAAA;IAvBhC;MA0BI,qBAAqB;MACrB,UAAU;MACV,gBAAgB;MAChB,uBAAuB;MACvB,iBAAiB,EAAA;IA9BrB;MAkCI,0CAA0C,EAAA;EAlC9C;IAuCG,mBAAmB,EAAA;EAvCtB;IA0CG,eAAe;IACf,iBAAiB;IACjB,mBAAmB,EAAA;
|
|
237943
|
+
___CSS_LOADER_EXPORT___.push([module.id, ".custom-configs {\n margin-left: 15%; }\n\n.custom-configs-component .custom-configs-button {\n height: 22px;\n min-height: 0;\n line-height: 23px;\n min-width: 45px;\n margin: 0;\n padding: 0;\n font-size: 9pt;\n text-transform: none;\n background-color: rgba(230, 230, 230, 0.96); }\n .custom-configs-component .custom-configs-button.plus {\n min-width: 30px; }\n .custom-configs-component .custom-configs-button:hover {\n background-color: #c8c8c8; }\n\n.custom-configs-drop-down {\n padding: 0; }\n .custom-configs-drop-down md-menu-item {\n height: auto;\n min-height: auto;\n display: block;\n align-content: unset;\n justify-content: unset;\n flex-direction: unset; }\n .custom-configs-drop-down md-menu-item .collapsable {\n margin: 0;\n padding: 0 0 0 10px;\n border-bottom: 1px solid grey; }\n .custom-configs-drop-down .custom-configs-item .button-hovering {\n height: 48px;\n text-align: left;\n background-color: unset;\n border-bottom: 1px solid grey; }\n .custom-configs-drop-down .custom-configs-item .button-hovering .collapse-trigger {\n display: inline-block;\n width: 91%;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 48px; }\n .custom-configs-drop-down .custom-configs-item .button-hovering:hover:not([disabled]) {\n background-color: rgba(158, 158, 158, 0.2); }\n .custom-configs-drop-down .custom-configs-item i.fa {\n margin-left: 0.8rem; }\n .custom-configs-drop-down .custom-configs-item i.collapse-icon {\n font-size: 10px;\n line-height: 48px;\n vertical-align: top;\n color: black; }\n .custom-configs-drop-down .custom-configs-item .action-button {\n display: inline-block;\n margin-right: 1px;\n min-width: 12%;\n height: 48px;\n width: 12%;\n text-align: center;\n line-height: 48px;\n background-color: #00a091;\n color: #ffffff; }\n .custom-configs-drop-down .custom-configs-item .action-button i.fa {\n font-size: 12px;\n margin-left: 0; }\n .custom-configs-drop-down .custom-configs-item .action-button.remove {\n display: inline-flex;\n justify-content: center;\n color: #b30000;\n background-color: transparent; }\n .custom-configs-drop-down .custom-configs-item .action-button:disabled,\n .custom-configs-drop-down .custom-configs-item .action-button[disabled] {\n background-color: #e6e6e6;\n color: #949494; }\n .custom-configs-drop-down .custom-configs-item .custom-configs-dialog-name {\n display: inline-block;\n width: 60%;\n min-height: 48px; }\n .custom-configs-drop-down .custom-configs-item .collapsable .button-hovering {\n width: 80%;\n border: none;\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 48px;\n text-transform: unset; }\n .custom-configs-drop-down .custom-configs-item .collapsable .action-button {\n width: 13%; }\n", "",{"version":3,"sources":["webpack://./app/codeCharta/ui/customConfigs/customConfigs.component.scss"],"names":[],"mappings":"AAAA;EACC,gBAAgB,EAAA;;AAGjB;EAEE,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,eAAe;EACf,SAAS;EACT,UAAU;EACV,cAAc;EACd,oBAAoB;EACpB,2CAA2C,EAAA;EAV7C;IAaG,eAAe,EAAA;EAblB;IAiBG,yBAAyB,EAAA;;AAK5B;EACC,UAAU,EAAA;EADX;IAIE,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,qBAAqB,EAAA;IATvB;MAYG,SAAS;MACT,mBAAmB;MACnB,6BAA6B,EAAA;EAdhC;IAoBG,YAAY;IACZ,gBAAgB;IAChB,uBAAuB;IACvB,6BAA6B,EAAA;IAvBhC;MA0BI,qBAAqB;MACrB,UAAU;MACV,gBAAgB;MAChB,uBAAuB;MACvB,iBAAiB,EAAA;IA9BrB;MAkCI,0CAA0C,EAAA;EAlC9C;IAuCG,mBAAmB,EAAA;EAvCtB;IA0CG,eAAe;IACf,iBAAiB;IACjB,mBAAmB;IACnB,YAAY,EAAA;EA7Cf;IAiDG,qBAAqB;IACrB,iBAAiB;IACjB,cAAc;IACd,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,iBAAiB;IACjB,yBAAyB;IACzB,cAAc,EAAA;IAzDjB;MA4DI,eAAe;MACf,cAAc,EAAA;IA7DlB;MAiEI,oBAAoB;MACpB,uBAAuB;MACvB,cAAc;MACd,6BAA6B,EAAA;EApEjC;;IA0EG,yBAAyB;IACzB,cAAc,EAAA;EA3EjB;IA+EG,qBAAqB;IACrB,UAAU;IACV,gBAAgB,EAAA;EAjFnB;IAsFI,UAAU;IACV,YAAY;IACZ,qBAAqB;IACrB,gBAAgB;IAChB,uBAAuB;IACvB,iBAAiB;IACjB,qBAAqB,EAAA;EA5FzB;IA+FI,UAAU,EAAA","sourcesContent":[".custom-configs {\n\tmargin-left: 15%;\n}\n\n.custom-configs-component {\n\t.custom-configs-button {\n\t\theight: 22px;\n\t\tmin-height: 0;\n\t\tline-height: 23px;\n\t\tmin-width: 45px;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfont-size: 9pt;\n\t\ttext-transform: none;\n\t\tbackground-color: rgba(230, 230, 230, 0.96);\n\n\t\t&.plus {\n\t\t\tmin-width: 30px;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground-color: #c8c8c8;\n\t\t}\n\t}\n}\n\n.custom-configs-drop-down {\n\tpadding: 0;\n\n\tmd-menu-item {\n\t\theight: auto;\n\t\tmin-height: auto;\n\t\tdisplay: block;\n\t\talign-content: unset;\n\t\tjustify-content: unset;\n\t\tflex-direction: unset;\n\n\t\t.collapsable {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0 0 0 10px;\n\t\t\tborder-bottom: 1px solid grey;\n\t\t}\n\t}\n\n\t.custom-configs-item {\n\t\t.button-hovering {\n\t\t\theight: 48px;\n\t\t\ttext-align: left;\n\t\t\tbackground-color: unset;\n\t\t\tborder-bottom: 1px solid grey;\n\n\t\t\t.collapse-trigger {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: 91%;\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\tline-height: 48px;\n\t\t\t}\n\n\t\t\t&:hover:not([disabled]) {\n\t\t\t\tbackground-color: rgba(158, 158, 158, 0.2);\n\t\t\t}\n\t\t}\n\n\t\ti.fa {\n\t\t\tmargin-left: 0.8rem;\n\t\t}\n\t\ti.collapse-icon {\n\t\t\tfont-size: 10px;\n\t\t\tline-height: 48px;\n\t\t\tvertical-align: top;\n\t\t\tcolor: black;\n\t\t}\n\n\t\t.action-button {\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-right: 1px;\n\t\t\tmin-width: 12%;\n\t\t\theight: 48px;\n\t\t\twidth: 12%;\n\t\t\ttext-align: center;\n\t\t\tline-height: 48px;\n\t\t\tbackground-color: #00a091;\n\t\t\tcolor: #ffffff;\n\n\t\t\ti.fa {\n\t\t\t\tfont-size: 12px;\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t&.remove {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tjustify-content: center;\n\t\t\t\tcolor: #b30000;\n\t\t\t\tbackground-color: transparent;\n\t\t\t}\n\t\t}\n\n\t\t.action-button:disabled,\n\t\t.action-button[disabled] {\n\t\t\tbackground-color: #e6e6e6;\n\t\t\tcolor: #949494;\n\t\t}\n\n\t\t.custom-configs-dialog-name {\n\t\t\tdisplay: inline-block;\n\t\t\twidth: 60%;\n\t\t\tmin-height: 48px;\n\t\t}\n\n\t\t.collapsable {\n\t\t\t.button-hovering {\n\t\t\t\twidth: 80%;\n\t\t\t\tborder: none;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\tline-height: 48px;\n\t\t\t\ttext-transform: unset;\n\t\t\t}\n\t\t\t.action-button {\n\t\t\t\twidth: 13%;\n\t\t\t}\n\t\t}\n\t}\n}\n"],"sourceRoot":""}]);
|
|
237872
237944
|
// Exports
|
|
237873
237945
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
237874
237946
|
|
|
@@ -238462,7 +238534,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
238462
238534
|
|
|
238463
238535
|
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
238464
238536
|
// Module
|
|
238465
|
-
___CSS_LOADER_EXPORT___.push([module.id, ".cdk-overlay-container {\n /* overwrite z-index of below #codemap-context-menu */\n z-index: 2000 !important; }\n\nnode-context-menu-component #codemap-context-menu {\n position: absolute;\n z-index: 2000; }\n\nnode-context-menu-component .button-group {\n display: inline-grid; }\n\nnode-context-menu-component .png-icon {\n margin: 5px auto auto;\n padding: 0;\n display: inline-block;\n background-repeat: no-repeat no-repeat;\n pointer-events: none; }\n\nnode-context-menu-component .md-button:not(.colorButton) {\n text-align: left;\n margin-top: 0;\n line-height: 30px;\n min-height: 30px; }\n node-context-menu-component .md-button:not(.colorButton) i {\n min-width: 15px; }\n node-context-menu-component .md-button:not(.colorButton):not(:last-child) {\n margin-bottom: 0; }\n\nnode-context-menu-component .colorButton {\n width: 32px !important;\n height: 32px !important;\n min-width: 32px !important;\n min-height: 32px !important; }\n node-context-menu-component .colorButton i {\n font-size: 25px;\n margin-left: 0;\n margin-top: 3px;\n color: red;\n text-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white; }\n", "",{"version":3,"sources":["webpack://./app/codeCharta/ui/nodeContextMenu/nodeContextMenu.component.scss"],"names":[],"mappings":"AAAA;EACC,qDAAA;EACA,wBAAwB,EAAA;;AAGzB;EAEE,kBAAkB;EAClB,aAAa,EAAA;;AAHf;EAOE,oBAAoB,EAAA;;AAPtB;EAWE,qBAAqB;EACrB,UAAU;EACV,qBAAqB;EACrB,sCAAsC;EACtC,oBAAoB,EAAA;;AAftB;
|
|
238537
|
+
___CSS_LOADER_EXPORT___.push([module.id, ".cdk-overlay-container {\n /* overwrite z-index of below #codemap-context-menu */\n z-index: 2000 !important; }\n\nnode-context-menu-component #codemap-context-menu {\n position: absolute;\n z-index: 2000; }\n\nnode-context-menu-component .button-group {\n display: inline-grid; }\n\nnode-context-menu-component .png-icon {\n margin: 5px auto auto;\n padding: 0;\n display: inline-block;\n background-repeat: no-repeat no-repeat;\n pointer-events: none; }\n\nnode-context-menu-component .md-button:not(.colorButton),\nnode-context-menu-component [mat-button] {\n width: 100%;\n text-align: left;\n margin-top: 0;\n line-height: 30px;\n min-height: 30px; }\n node-context-menu-component .md-button:not(.colorButton) i,\n node-context-menu-component [mat-button] i {\n min-width: 15px; }\n node-context-menu-component .md-button:not(.colorButton):not(:last-child),\n node-context-menu-component [mat-button]:not(:last-child) {\n margin-bottom: 0; }\n\nnode-context-menu-component .colorButton {\n width: 32px !important;\n height: 32px !important;\n min-width: 32px !important;\n min-height: 32px !important; }\n node-context-menu-component .colorButton i {\n font-size: 25px;\n margin-left: 0;\n margin-top: 3px;\n color: red;\n text-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white; }\n", "",{"version":3,"sources":["webpack://./app/codeCharta/ui/nodeContextMenu/nodeContextMenu.component.scss"],"names":[],"mappings":"AAAA;EACC,qDAAA;EACA,wBAAwB,EAAA;;AAGzB;EAEE,kBAAkB;EAClB,aAAa,EAAA;;AAHf;EAOE,oBAAoB,EAAA;;AAPtB;EAWE,qBAAqB;EACrB,UAAU;EACV,qBAAqB;EACrB,sCAAsC;EACtC,oBAAoB,EAAA;;AAftB;;EAmBE,WAAW;EACX,gBAAgB;EAChB,aAAa;EACb,iBAAiB;EACjB,gBAAgB,EAAA;EAvBlB;;IA0BG,eAAe,EAAA;EA1BlB;;IA8BG,gBAAgB,EAAA;;AA9BnB;EAmCE,sBAAsB;EACtB,uBAAuB;EACvB,0BAA0B;EAC1B,2BAA2B,EAAA;EAtC7B;IAyCG,eAAe;IACf,cAAc;IACd,eAAe;IACf,UAAU;IACV,iEAAiE,EAAA","sourcesContent":[".cdk-overlay-container {\n\t/* overwrite z-index of below #codemap-context-menu */\n\tz-index: 2000 !important;\n}\n\nnode-context-menu-component {\n\t#codemap-context-menu {\n\t\tposition: absolute;\n\t\tz-index: 2000;\n\t}\n\n\t.button-group {\n\t\tdisplay: inline-grid;\n\t}\n\n\t.png-icon {\n\t\tmargin: 5px auto auto;\n\t\tpadding: 0;\n\t\tdisplay: inline-block;\n\t\tbackground-repeat: no-repeat no-repeat;\n\t\tpointer-events: none;\n\t}\n\t.md-button:not(.colorButton),\n\t[mat-button] {\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t\tmargin-top: 0;\n\t\tline-height: 30px;\n\t\tmin-height: 30px;\n\n\t\ti {\n\t\t\tmin-width: 15px;\n\t\t}\n\n\t\t&:not(:last-child) {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\n\t.colorButton {\n\t\twidth: 32px !important;\n\t\theight: 32px !important;\n\t\tmin-width: 32px !important;\n\t\tmin-height: 32px !important;\n\n\t\ti {\n\t\t\tfont-size: 25px;\n\t\t\tmargin-left: 0;\n\t\t\tmargin-top: 3px;\n\t\t\tcolor: red;\n\t\t\ttext-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white;\n\t\t}\n\t}\n}\n"],"sourceRoot":""}]);
|
|
238466
238538
|
// Exports
|
|
238467
238539
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
238468
238540
|
|
|
@@ -238794,33 +238866,6 @@ ___CSS_LOADER_EXPORT___.push([module.id, "tool-bar-component .tool-bar {\n disp
|
|
|
238794
238866
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
238795
238867
|
|
|
238796
238868
|
|
|
238797
|
-
/***/ }),
|
|
238798
|
-
|
|
238799
|
-
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./app/codeCharta/ui/unfocusButton/unfocusButton.component.scss":
|
|
238800
|
-
/*!***************************************************************************************************************************************************!*\
|
|
238801
|
-
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./app/codeCharta/ui/unfocusButton/unfocusButton.component.scss ***!
|
|
238802
|
-
\***************************************************************************************************************************************************/
|
|
238803
|
-
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
238804
|
-
|
|
238805
|
-
"use strict";
|
|
238806
|
-
__webpack_require__.r(__webpack_exports__);
|
|
238807
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
238808
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
238809
|
-
/* harmony export */ });
|
|
238810
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
|
|
238811
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
238812
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
|
|
238813
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
238814
|
-
// Imports
|
|
238815
|
-
|
|
238816
|
-
|
|
238817
|
-
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
238818
|
-
// Module
|
|
238819
|
-
___CSS_LOADER_EXPORT___.push([module.id, "unfocus-button-component .md-button {\n margin-bottom: 0; }\n", "",{"version":3,"sources":["webpack://./app/codeCharta/ui/unfocusButton/unfocusButton.component.scss"],"names":[],"mappings":"AAAA;EAEE,gBAAgB,EAAA","sourcesContent":["unfocus-button-component {\n\t.md-button {\n\t\tmargin-bottom: 0;\n\t}\n}\n"],"sourceRoot":""}]);
|
|
238820
|
-
// Exports
|
|
238821
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
238822
|
-
|
|
238823
|
-
|
|
238824
238869
|
/***/ }),
|
|
238825
238870
|
|
|
238826
238871
|
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./app/codeCharta/ui/viewCube/viewCube.component.scss":
|
|
@@ -241774,7 +241819,7 @@ module.exports = code;
|
|
|
241774
241819
|
/***/ ((module) => {
|
|
241775
241820
|
|
|
241776
241821
|
// Module
|
|
241777
|
-
var code = "<div class=\"artificial-intelligence-component\">\n\t<md-menu>\n\t\t<md-button\n\t\t\tclass=\"suspicious-metrics-button\"\n\t\t\tng-click=\"$mdMenu.open($event);hideBadge = true;\"\n\t\t\ttitle=\"Open Suspicious Metrics Panel\"\n\t\t>\n\t\t\t<i class=\"fa fa-exclamation-triangle\"></i>\n\t\t\t<span\n\t\t\t\tclass=\"ai-badge\"\n\t\t\t\tng-show=\"\n\t\t\t\t\t!hideBadge &&\n\t\t\t\t\t($ctrl._viewModel.riskProfile !== undefined ||\n\t\t\t\t\t\t$ctrl._viewModel.suspiciousMetricSuggestionLinks.length ||\n\t\t\t\t\t\t$ctrl._viewModel.unsuspiciousMetrics.length)\n\t\t\t\t\"\n\t\t\t>\n\t\t\t\t{{ $ctrl._viewModel.suspiciousMetricSuggestionLinks.length }}\n\t\t\t</span>\n\t\t</md-button>\n\n\t\t<md-menu-content class=\"ai-drop-down metrics\">\n\t\t\t<md-menu-item class=\"title\" ng-show=\"$ctrl._viewModel.unsuspiciousMetrics.length\">\n\t\t\t\t<span ng-show=\"$ctrl._viewModel.analyzedProgrammingLanguage.length\">\n\t\t\t\t\tUnsuspicious Metrics in {{ $ctrl._viewModel.analyzedProgrammingLanguage }} code\n\t\t\t\t</span>\n\t\t\t\t<span ng-show=\"!$ctrl._viewModel.analyzedProgrammingLanguage.length\"> Unsuspicious Metrics </span>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-menu-item ng-show=\"$ctrl._viewModel.unsuspiciousMetrics.length\">\n\t\t\t\t<ul>\n\t\t\t\t\t<li ng-repeat=\"unsuspiciousMetric in $ctrl._viewModel.unsuspiciousMetrics\">{{ unsuspiciousMetric }}</li>\n\t\t\t\t</ul>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-menu-item class=\"title\" ng-show=\"$ctrl._viewModel.suspiciousMetricSuggestionLinks.length\">\n\t\t\t\t<span ng-show=\"$ctrl._viewModel.analyzedProgrammingLanguage.length\">\n\t\t\t\t\tSuspicious Metrics in {{ $ctrl._viewModel.analyzedProgrammingLanguage }} code\n\t\t\t\t</span>\n\t\t\t\t<span ng-show=\"!$ctrl._viewModel.analyzedProgrammingLanguage.length\"> Suspicious Metrics (click below to view) </span>\n\t\t\t</md-menu-item>\n\n\t\t\t<ul class=\"suspicious-metrics\">\n\t\t\t\t<li class=\"suspicious-metric\" ng-repeat=\"item in $ctrl._viewModel.suspiciousMetricSuggestionLinks\">\n\t\t\t\t\t<md-button\n\t\t\t\t\t\tclass=\"metric-button
|
|
241822
|
+
var code = "<div class=\"artificial-intelligence-component\">\n\t<md-menu>\n\t\t<md-button\n\t\t\tclass=\"suspicious-metrics-button\"\n\t\t\tng-click=\"$mdMenu.open($event);hideBadge = true;\"\n\t\t\ttitle=\"Open Suspicious Metrics Panel\"\n\t\t>\n\t\t\t<i class=\"fa fa-exclamation-triangle\"></i>\n\t\t\t<span\n\t\t\t\tclass=\"ai-badge\"\n\t\t\t\tng-show=\"\n\t\t\t\t\t!hideBadge &&\n\t\t\t\t\t($ctrl._viewModel.riskProfile !== undefined ||\n\t\t\t\t\t\t$ctrl._viewModel.suspiciousMetricSuggestionLinks.length ||\n\t\t\t\t\t\t$ctrl._viewModel.unsuspiciousMetrics.length)\n\t\t\t\t\"\n\t\t\t>\n\t\t\t\t{{ $ctrl._viewModel.suspiciousMetricSuggestionLinks.length }}\n\t\t\t</span>\n\t\t</md-button>\n\n\t\t<md-menu-content class=\"ai-drop-down metrics\">\n\t\t\t<md-menu-item class=\"title\" ng-show=\"$ctrl._viewModel.unsuspiciousMetrics.length\">\n\t\t\t\t<span ng-show=\"$ctrl._viewModel.analyzedProgrammingLanguage.length\">\n\t\t\t\t\tUnsuspicious Metrics in {{ $ctrl._viewModel.analyzedProgrammingLanguage }} code\n\t\t\t\t</span>\n\t\t\t\t<span ng-show=\"!$ctrl._viewModel.analyzedProgrammingLanguage.length\"> Unsuspicious Metrics </span>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-menu-item ng-show=\"$ctrl._viewModel.unsuspiciousMetrics.length\">\n\t\t\t\t<ul>\n\t\t\t\t\t<li ng-repeat=\"unsuspiciousMetric in $ctrl._viewModel.unsuspiciousMetrics\">{{ unsuspiciousMetric }}</li>\n\t\t\t\t</ul>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-menu-item class=\"title\" ng-show=\"$ctrl._viewModel.suspiciousMetricSuggestionLinks.length\">\n\t\t\t\t<span ng-show=\"$ctrl._viewModel.analyzedProgrammingLanguage.length\">\n\t\t\t\t\tSuspicious Metrics in {{ $ctrl._viewModel.analyzedProgrammingLanguage }} code\n\t\t\t\t</span>\n\t\t\t\t<span ng-show=\"!$ctrl._viewModel.analyzedProgrammingLanguage.length\"> Suspicious Metrics (click below to view) </span>\n\t\t\t</md-menu-item>\n\n\t\t\t<ul class=\"suspicious-metrics\">\n\t\t\t\t<li class=\"suspicious-metric\" ng-repeat=\"item in $ctrl._viewModel.suspiciousMetricSuggestionLinks\">\n\t\t\t\t\t<md-button\n\t\t\t\t\t\tclass=\"metric-button\"\n\t\t\t\t\t\tng-click=\"$ctrl.applySuspiciousMetric(item, false)\"\n\t\t\t\t\t\ttitle=\"Apply Map Configuration to show files with suspicious metric {{\n\t\t\t\t\t\t\titem.metric\n\t\t\t\t\t\t}} and high risk or very high risk depending on selection\"\n\t\t\t\t\t>\n\t\t\t\t\t\tSuspicious {{ item.metric.toUpperCase() }} Files\n\t\t\t\t\t</md-button>\n\n\t\t\t\t\t<md-button\n\t\t\t\t\t\tclass=\"risk-button\"\n\t\t\t\t\t\tng-click=\"$ctrl.applySuspiciousMetric(item, true)\"\n\t\t\t\t\t\tng-show=\"item.isOutlier\"\n\t\t\t\t\t\ttitle=\"Show very high risk files\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<i class=\"fa fa-exclamation-triangle\"></i>\n\t\t\t\t\t</md-button>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</md-menu-content>\n\t</md-menu>\n\n\t<md-menu>\n\t\t<md-button class=\"high-risk-profile-button\" ng-click=\"$mdMenu.open($event)\" title=\"Open High Risk Profile\">\n\t\t\t<i class=\"fa fa-bar-chart\"></i>\n\t\t</md-button>\n\n\t\t<md-menu-content class=\"ai-drop-down summary\">\n\t\t\t<md-menu-item class=\"title\">\n\t\t\t\t<p ng-show=\"$ctrl._viewModel.analyzedProgrammingLanguage.length\">\n\t\t\t\t\tRisk Profile for {{ $ctrl._viewModel.analyzedProgrammingLanguage }} code (most frequent programming language in project)\n\t\t\t\t</p>\n\t\t\t\t<p>Calculations are always based on mcc (cyclomatic complexity)</p>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-menu-item class=\"suspicious-metrics-summary\">\n\t\t\t\t<ul ng-show=\"$ctrl._viewModel.riskProfile !== undefined\">\n\t\t\t\t\t<li>{{ $ctrl._viewModel.riskProfile.lowRisk }}% of overall code is in files with low complexity</li>\n\t\t\t\t\t<li>{{ $ctrl._viewModel.riskProfile.moderateRisk }}% of overall code is in files with moderate complexity</li>\n\t\t\t\t\t<li>{{ $ctrl._viewModel.riskProfile.highRisk }}% of overall code is in files with high complexity</li>\n\t\t\t\t\t<li>{{ $ctrl._viewModel.riskProfile.veryHighRisk }}% of overall code is in files with extreme complexity</li>\n\t\t\t\t</ul>\n\t\t\t\t<span ng-show=\"$ctrl._viewModel.riskProfile === undefined\">\n\t\t\t\t\tCould not calculate Risk Profile. Metrics rloc and mcc not available.\n\t\t\t\t</span>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-menu-item class=\"risk-profiles\" ng-show=\"$ctrl._viewModel.riskProfile !== undefined\">\n\t\t\t\t<div\n\t\t\t\t\tng-if=\"$ctrl._viewModel.riskProfile.lowRisk > 0\"\n\t\t\t\t\ttitle=\"Low Risk ({{ $ctrl._viewModel.riskProfile.lowRisk }}% of code)\"\n\t\t\t\t\tclass=\"risk-profile low-risk\"\n\t\t\t\t\tstyle=\"width:{{ $ctrl._viewModel.riskProfile.lowRisk }}%;\n {{ $ctrl._viewModel.riskProfile.lowRisk < 5 ? 'color:rgba(0,0,0,0)' : '' }}\"\n\t\t\t\t>\n\t\t\t\t\t{{ $ctrl._viewModel.riskProfile.lowRisk }}%\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tng-if=\"$ctrl._viewModel.riskProfile.moderateRisk > 0\"\n\t\t\t\t\ttitle=\"Moderate Risk ({{ $ctrl._viewModel.riskProfile.moderateRisk }}% of code)\"\n\t\t\t\t\tclass=\"risk-profile moderate-risk\"\n\t\t\t\t\tstyle=\"width:{{ $ctrl._viewModel.riskProfile.moderateRisk }}%;\n {{ $ctrl._viewModel.riskProfile.moderateRisk < 5 ? 'color:rgba(0,0,0,0)' : '' }}\"\n\t\t\t\t>\n\t\t\t\t\t{{ $ctrl._viewModel.riskProfile.moderateRisk }}%\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tng-if=\"$ctrl._viewModel.riskProfile.highRisk > 0\"\n\t\t\t\t\ttitle=\"High Risk ({{ $ctrl._viewModel.riskProfile.highRisk }}% of code)\"\n\t\t\t\t\tclass=\"risk-profile high-risk\"\n\t\t\t\t\tstyle=\"width:{{ $ctrl._viewModel.riskProfile.highRisk }}%;\n {{ $ctrl._viewModel.riskProfile.highRisk < 5 ? 'color:rgba(0,0,0,0)' : '' }}\"\n\t\t\t\t>\n\t\t\t\t\t{{ $ctrl._viewModel.riskProfile.highRisk }}%\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tng-if=\"$ctrl._viewModel.riskProfile.veryHighRisk > 0\"\n\t\t\t\t\ttitle=\"Very High Risk ({{ $ctrl._viewModel.riskProfile.veryHighRisk }}% of code)\"\n\t\t\t\t\tclass=\"risk-profile very-high-risk\"\n\t\t\t\t\tstyle=\"width:{{ $ctrl._viewModel.riskProfile.veryHighRisk }}%;\n {{ $ctrl._viewModel.riskProfile.veryHighRisk < 5 ? 'color:rgba(0,0,0,0)' : '' }}\"\n\t\t\t\t>\n\t\t\t\t\t{{ $ctrl._viewModel.riskProfile.veryHighRisk }}%\n\t\t\t\t</div>\n\t\t\t</md-menu-item>\n\t\t</md-menu-content>\n\t</md-menu>\n</div>\n";
|
|
241778
241823
|
// Exports
|
|
241779
241824
|
module.exports = code;
|
|
241780
241825
|
|
|
@@ -241930,7 +241975,7 @@ module.exports = code;
|
|
|
241930
241975
|
/***/ ((module) => {
|
|
241931
241976
|
|
|
241932
241977
|
// Module
|
|
241933
|
-
var code = "<color-chrome\n\trole=\"colorpicker\"\n\t(click)=\"$event.stopPropagation()\"\n\t[disableAlpha]=\"true\"\n\t[color]=\"hexColor\"\n\t(onChangeComplete)=\"handleChangeComplete($event.color.hex)\"\n></color-chrome>\n";
|
|
241978
|
+
var code = "<ng-container\n\t[ngTemplateOutlet]=\"triggerTemplate\"\n\t[ngTemplateOutletContext]=\"{ isOpen: colorPickerMenuTrigger.menuOpen, isHovered: isHovered }\"\n>\n</ng-container>\n\n<span [matMenuTriggerFor]=\"menu\" #colorPickerMenuTrigger=\"matMenuTrigger\"></span>\n<mat-menu #menu=\"matMenu\" class=\"cc-color-picker-menu\" [xPosition]=\"openXPosition\" [hasBackdrop]=\"false\">\n\t<color-chrome\n\t\trole=\"colorpicker\"\n\t\t(click)=\"$event.stopPropagation()\"\n\t\t[disableAlpha]=\"true\"\n\t\t[color]=\"hexColor\"\n\t\t(onChangeComplete)=\"handleChangeComplete($event.color.hex)\"\n\t></color-chrome>\n</mat-menu>\n";
|
|
241934
241979
|
// Exports
|
|
241935
241980
|
module.exports = code;
|
|
241936
241981
|
|
|
@@ -241969,7 +242014,7 @@ module.exports = code;
|
|
|
241969
242014
|
/***/ ((module) => {
|
|
241970
242015
|
|
|
241971
242016
|
// Module
|
|
241972
|
-
var code = "<div class=\"custom-configs\">\n\t<md-menu class=\"custom-configs-component\">\n\t\t<md-button class=\"custom-configs-button\" ng-click=\"$ctrl.initView(); $mdMenu.open($event);\" title=\"Open your saved Custom Configs\">\n\t\t\t<i class=\"fa fa-cogs\"></i>\n\t\t</md-button>\n\n\t\t<md-menu-content class=\"custom-configs-drop-down\" width=\"7\">\n\t\t\t<md-menu-item class=\"custom-configs-item\">\n\t\t\t\t<md-button class=\"custom-configs-dialog-name\" ng-disabled=\"true\">Custom Configs</md-button>\n\n\t\t\t\t<md-button\n\t\t\t\t\tclass=\"action-button\"\n\t\t\t\t\tonclick=\"document.getElementById('input-file-id').click()\"\n\t\t\t\t\ttitle=\"Upload Custom Configs (.cc.config.json file).\"\n\t\t\t\t>\n\t\t\t\t\t<i class=\"fa fa-folder-open\" aria-hidden=\"true\"></i>\n\t\t\t\t</md-button>\n\t\t\t\t<md-button\n\t\t\t\t\tng-click=\"$ctrl.downloadPreloadedCustomConfigs()\"\n\t\t\t\t\tng-disabled=\"!$ctrl._viewModel.hasDownloadableConfigs\"\n\t\t\t\t\tclass=\"action-button\"\n\t\t\t\t\ttitle=\"Download Custom Configs related to currently uploaded maps, if any.\"\n\t\t\t\t>\n\t\t\t\t\t<i class=\"fa fa-download\" aria-hidden=\"true\"></i>\n\t\t\t\t</md-button>\n\t\t\t\t<md-button ng-click=\"$ctrl.showAddCustomConfigSettings()\" class=\"action-button\" title=\"Create new Custom Config\">\n\t\t\t\t\t<i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\n\t\t\t\t</md-button>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-divider></md-divider>\n\n\t\t\t<md-menu-item ng-if=\"!$ctrl._viewModel.dropDownCustomConfigItemGroups.length\" class=\"custom-configs-item\">\n\t\t\t\t<md-button disabled>It is time to add your first CustomConfig.</md-button>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-menu-item
|
|
242017
|
+
var code = "<div class=\"custom-configs\">\n\t<md-menu class=\"custom-configs-component\">\n\t\t<md-button class=\"custom-configs-button\" ng-click=\"$ctrl.initView(); $mdMenu.open($event);\" title=\"Open your saved Custom Configs\">\n\t\t\t<i class=\"fa fa-cogs\"></i>\n\t\t</md-button>\n\n\t\t<md-menu-content class=\"custom-configs-drop-down\" width=\"7\">\n\t\t\t<md-menu-item class=\"custom-configs-item\">\n\t\t\t\t<md-button class=\"custom-configs-dialog-name\" ng-disabled=\"true\">Custom Configs</md-button>\n\n\t\t\t\t<md-button\n\t\t\t\t\tclass=\"action-button\"\n\t\t\t\t\tonclick=\"document.getElementById('input-file-id').click()\"\n\t\t\t\t\ttitle=\"Upload Custom Configs (.cc.config.json file).\"\n\t\t\t\t>\n\t\t\t\t\t<i class=\"fa fa-folder-open\" aria-hidden=\"true\"></i>\n\t\t\t\t</md-button>\n\t\t\t\t<md-button\n\t\t\t\t\tng-click=\"$ctrl.downloadPreloadedCustomConfigs()\"\n\t\t\t\t\tng-disabled=\"!$ctrl._viewModel.hasDownloadableConfigs\"\n\t\t\t\t\tclass=\"action-button\"\n\t\t\t\t\ttitle=\"Download Custom Configs related to currently uploaded maps, if any.\"\n\t\t\t\t>\n\t\t\t\t\t<i class=\"fa fa-download\" aria-hidden=\"true\"></i>\n\t\t\t\t</md-button>\n\t\t\t\t<md-button ng-click=\"$ctrl.showAddCustomConfigSettings()\" class=\"action-button\" title=\"Create new Custom Config\">\n\t\t\t\t\t<i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\n\t\t\t\t</md-button>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-divider></md-divider>\n\n\t\t\t<md-menu-item ng-if=\"!$ctrl._viewModel.dropDownCustomConfigItemGroups.length\" class=\"custom-configs-item\">\n\t\t\t\t<md-button disabled>It is time to add your first CustomConfig.</md-button>\n\t\t\t</md-menu-item>\n\n\t\t\t<md-menu-item\n\t\t\t\tclass=\"custom-configs-item\"\n\t\t\t\tng-repeat=\"customConfigItemGroup in $ctrl._viewModel.dropDownCustomConfigItemGroups |\n limitTo: $ctrl._viewModel.visibleEntries\"\n\t\t\t>\n\t\t\t\t<md-button\n\t\t\t\t\tclass=\"button-hovering\"\n\t\t\t\t\tng-click=\"collapsed=!collapsed\"\n\t\t\t\t\tng-style=\"!customConfigItemGroup.hasApplicableItems && { color: 'rgba(0,0,0,0.3)' }\"\n\t\t\t\t\tmd-prevent-menu-close=\"md-prevent-menu-close\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"collapse-trigger\">\n\t\t\t\t\t\tCustom Configs in <strong>{{ customConfigItemGroup.mapSelectionMode | lowercase }}</strong> mode for\n\t\t\t\t\t\t<strong>{{ customConfigItemGroup.mapNames }}</strong>\n\t\t\t\t\t</span>\n\t\t\t\t\t<i ng-show=\"!collapsed\" class=\"collapse-icon fa fa-arrow-down\"></i>\n\t\t\t\t\t<i ng-show=\"collapsed\" class=\"collapse-icon fa fa-arrow-up\"></i>\n\t\t\t\t</md-button>\n\n\t\t\t\t<div class=\"collapsable\" ng-show=\"collapsed\">\n\t\t\t\t\t<div class=\"custom-configs-item\" ng-repeat=\"customConfig in customConfigItemGroup.customConfigItems\">\n\t\t\t\t\t\t<md-button\n\t\t\t\t\t\t\tclass=\"button-hovering\"\n\t\t\t\t\t\t\tng-click=\"$ctrl.applyCustomConfig(customConfig.id)\"\n\t\t\t\t\t\t\tng-disabled=\"!customConfig.isApplicable\"\n\t\t\t\t\t\t\ttitle=\"{{\n\t\t\t\t\t\t\t\tcustomConfig.isApplicable\n\t\t\t\t\t\t\t\t\t? 'Apply Custom Config'\n\t\t\t\t\t\t\t\t\t: 'This one is applicable for map(s) ' +\n\t\t\t\t\t\t\t\t\t customConfig.mapNames +\n\t\t\t\t\t\t\t\t\t ' in ' +\n\t\t\t\t\t\t\t\t\t customConfig.mapSelectionMode +\n\t\t\t\t\t\t\t\t\t ' mode only.'\n\t\t\t\t\t\t\t}}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ customConfig.name }}\n\t\t\t\t\t\t</md-button>\n\n\t\t\t\t\t\t<md-button\n\t\t\t\t\t\t\tng-click=\"$ctrl.removeCustomConfig(customConfig.id, $index, $parent.$index)\"\n\t\t\t\t\t\t\tmd-prevent-menu-close=\"md-prevent-menu-close\"\n\t\t\t\t\t\t\tclass=\"action-button remove button-hovering\"\n\t\t\t\t\t\t\ttitle=\"Remove Custom Config\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<i class=\"fa fa-minus-square\"></i>\n\t\t\t\t\t\t</md-button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</md-menu-item>\n\t\t\t<button\n\t\t\t\tng-show=\"$ctrl._viewModel.showNonApplicableButton\"\n\t\t\t\tng-click=\"$ctrl.toggleNonApplicableItems();\"\n\t\t\t\tmd-prevent-menu-close=\"md-prevent-menu-close\"\n\t\t\t>\n\t\t\t\t{{ $ctrl.isExpanded() ? \"Hide non-applicable CustomConfigs\" : \"Show non-applicable CustomConfigs\" }}\n\t\t\t\t<i ng-class=\"$ctrl.isExpanded() ? 'fa fa-angle-up' : 'fa fa-angle-down'\"></i>\n\t\t\t</button>\n\t\t</md-menu-content>\n\t</md-menu>\n\n\t<md-menu class=\"custom-configs-component\">\n\t\t<md-button\n\t\t\tclass=\"custom-configs-button plus\"\n\t\t\tng-click=\"$ctrl.showAddCustomConfigSettings();\"\n\t\t\ttitle=\"Quick save current view as a Custom Config\"\n\t\t>\n\t\t\t<i class=\"fa fa-plus\"></i>\n\t\t</md-button>\n\t\t<md-menu-content></md-menu-content>\n\t</md-menu>\n</div>\n";
|
|
241973
242018
|
// Exports
|
|
241974
242019
|
module.exports = code;
|
|
241975
242020
|
|
|
@@ -242164,7 +242209,7 @@ module.exports = code;
|
|
|
242164
242209
|
/***/ ((module) => {
|
|
242165
242210
|
|
|
242166
242211
|
// Module
|
|
242167
|
-
var code = "<
|
|
242212
|
+
var code = "<cc-color-picker\n\t[hexColor]=\"hexColor\"\n\t(onColorChange)=\"handleColorChange($event)\"\n\t[openXPosition]=\"'before'\"\n\t[triggerTemplate]=\"colorPickerTriggerTemplate\"\n></cc-color-picker>\n\n<ng-template #colorPickerTriggerTemplate let-isOpen=\"isOpen\" let-isHovered=\"isHovered\">\n\t<div class=\"cc-labelled-color-picker-container\">\n\t\t<div class=\"cc-color-swatch-container\">\n\t\t\t<span class=\"cc-color-swatch\" [style.background-color]=\"hexColor\"></span>\n\t\t\t<span\n\t\t\t\tclass=\"cc-color-brush fa fa-paint-brush\"\n\t\t\t\t[style.color]=\"hexColor | readableColorForBackground\"\n\t\t\t\t[style.opacity]=\"isHovered || isOpen ? '1' : '0'\"\n\t\t\t>\n\t\t\t</span>\n\t\t</div>\n\t\t<div>\n\t\t\t<span *ngFor=\"let label of labels\"> {{ label }} <br *ngIf=\"!last\" /></span>\n\t\t</div>\n\t</div>\n</ng-template>\n";
|
|
242168
242213
|
// Exports
|
|
242169
242214
|
module.exports = code;
|
|
242170
242215
|
|
|
@@ -242447,6 +242492,19 @@ module.exports = code;
|
|
|
242447
242492
|
|
|
242448
242493
|
/***/ }),
|
|
242449
242494
|
|
|
242495
|
+
/***/ "./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.html":
|
|
242496
|
+
/*!************************************************************************************!*\
|
|
242497
|
+
!*** ./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.html ***!
|
|
242498
|
+
\************************************************************************************/
|
|
242499
|
+
/***/ ((module) => {
|
|
242500
|
+
|
|
242501
|
+
// Module
|
|
242502
|
+
var code = "<ng-container *ngIf=\"currentFocusedNodePath$ | async | isNodeFocused: codeMapNode; let isNodeFocused\">\n\t<ng-container *ngIf=\"!isNodeFocused.isNodeFocused\">\n\t\t<button mat-button (click)=\"handleFocusNodeClicked()\" id=\"focus-button\" title=\"Only show selected nodes with children-nodes\">\n\t\t\t<i class=\"fa fa-bullseye\"></i> FOCUS\n\t\t</button>\n\t</ng-container>\n\n\t<ng-container *ngIf=\"isNodeFocused.isNodeFocused || isNodeFocused.isParentFocused\">\n\t\t<button mat-button aria-label=\"Remove Focus from node\" (click)=\"handleUnfocusNodeClicked()\" title=\"Show previous focused node\">\n\t\t\t<i class=\"fa fa-bullseye\"></i>\n\t\t\t{{ isNodeFocused.isParentFocused ? \"UNFOCUS PARENT\" : \"UNFOCUS\" }}\n\t\t</button>\n\t\t<button\n\t\t\tmat-button\n\t\t\t*ngIf=\"hasPreviousFocusedNodePath$ | async\"\n\t\t\taria-label=\"Remove Focus from all nodes\"\n\t\t\t(click)=\"handleUnfocusAllNodesClicked()\"\n\t\t\ttitle=\"Show complete map\"\n\t\t>\n\t\t\t<i class=\"fa fa-bullseye\"></i>\n\t\t\tUNFOCUS ALL\n\t\t</button>\n\t</ng-container>\n</ng-container>\n";
|
|
242503
|
+
// Exports
|
|
242504
|
+
module.exports = code;
|
|
242505
|
+
|
|
242506
|
+
/***/ }),
|
|
242507
|
+
|
|
242450
242508
|
/***/ "./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.html":
|
|
242451
242509
|
/*!******************************************************************************************************!*\
|
|
242452
242510
|
!*** ./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.html ***!
|
|
@@ -242454,7 +242512,7 @@ module.exports = code;
|
|
|
242454
242512
|
/***/ ((module) => {
|
|
242455
242513
|
|
|
242456
242514
|
// Module
|
|
242457
|
-
var code = "<
|
|
242515
|
+
var code = "<cc-color-picker\n\t[hexColor]=\"'#ff0000'\"\n\t(onColorChange)=\"markFolder($event)\"\n\t[triggerTemplate]=\"colorPickerTriggerTemplate\"\n></cc-color-picker>\n\n<ng-template #colorPickerTriggerTemplate>\n\t<div class=\"cc-color-picker-trigger fa fa-paint-brush\"></div>\n</ng-template>\n";
|
|
242458
242516
|
// Exports
|
|
242459
242517
|
module.exports = code;
|
|
242460
242518
|
|
|
@@ -242471,7 +242529,7 @@ var ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ = __webpack_require__(/*! ../../../
|
|
|
242471
242529
|
var ___HTML_LOADER_IMPORT_0___ = __webpack_require__(/*! ../../../assets/flatten.png */ "./app/assets/flatten.png");
|
|
242472
242530
|
// Module
|
|
242473
242531
|
var ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);
|
|
242474
|
-
var code = "<md-card id=\"codemap-context-menu\" ng-show=\"$ctrl._viewModel.showNodeContextMenu\">\n\t<div ng-if=\"$ctrl.nodeIsFolder()\">\n\t\t<div layout=\"row\" layout-align=\"center center\">\n\t\t\t<md-button\n\t\t\t\tng-repeat=\"color in $ctrl._viewModel.markingColors track by $index\"\n\t\t\t\tng-style=\"{ 'background-color': '{{ color }}' }\"\n\t\t\t\tng-disabled=\"primary === color && !isPrimary\"\n\t\t\t\tng-click=\"$ctrl.clickColor(color)\"\n\t\t\t\tclass=\"colorButton\"\n\t\t\t\ttitle=\"Colorize folder\"\n\t\t\t>\n\t\t\t\t<i class=\"fa fa-times\" ng-if=\"$ctrl.isNodeOrParentMarked(color)\"></i>\n\t\t\t</md-button>\n\n\t\t\t<cc-mark-folder-color-picker [mark-folder]=\"$ctrl.markFolder\"></cc-mark-folder-color-picker>\n\t\t</div>\n\t\t<md-divider></md-divider>\n\t</div>\n\n\t<div class=\"button-group\">\n\t\t<md-button ng-disabled=\"true\" title=\"{{ $ctrl._viewModel.nodePath }}\">\n\t\t\t{{ $ctrl._viewModel.lastPartOfNodePath }}\n\t\t</md-button>\n\
|
|
242532
|
+
var code = "<md-card id=\"codemap-context-menu\" ng-show=\"$ctrl._viewModel.showNodeContextMenu\">\n\t<div ng-if=\"$ctrl.nodeIsFolder()\">\n\t\t<div layout=\"row\" layout-align=\"center center\">\n\t\t\t<md-button\n\t\t\t\tng-repeat=\"color in $ctrl._viewModel.markingColors track by $index\"\n\t\t\t\tng-style=\"{ 'background-color': '{{ color }}' }\"\n\t\t\t\tng-disabled=\"primary === color && !isPrimary\"\n\t\t\t\tng-click=\"$ctrl.clickColor(color)\"\n\t\t\t\tclass=\"colorButton\"\n\t\t\t\ttitle=\"Colorize folder\"\n\t\t\t>\n\t\t\t\t<i class=\"fa fa-times\" ng-if=\"$ctrl.isNodeOrParentMarked(color)\"></i>\n\t\t\t</md-button>\n\n\t\t\t<cc-mark-folder-color-picker [mark-folder]=\"$ctrl.markFolder\"></cc-mark-folder-color-picker>\n\t\t</div>\n\t\t<md-divider></md-divider>\n\t</div>\n\n\t<div class=\"button-group\">\n\t\t<md-button ng-disabled=\"true\" title=\"{{ $ctrl._viewModel.nodePath }}\">\n\t\t\t{{ $ctrl._viewModel.lastPartOfNodePath }}\n\t\t</md-button>\n\n\t\t<cc-focus-buttons [code-map-node]=\"$ctrl._viewModel.codeMapNode\"></cc-focus-buttons>\n\t\t<md-button\n\t\t\tng-if=\"!$ctrl._viewModel.codeMapNode.isFlattened\"\n\t\t\tng-click=\"$ctrl.flattenNode()\"\n\t\t\tid=\"flatten-button\"\n\t\t\ttitle=\"Flatten node and children-nodes, but keep an empty space\"\n\t\t>\n\t\t\t<img alt=\"flattenIcon\" class=\"png-icon\" src=\"" + ___HTML_LOADER_REPLACEMENT_0___ + "\" style=\"width: 17px; height: 17px\" />\n\t\t\tFlatten\n\t\t</md-button>\n\t\t<md-button\n\t\t\tng-if=\"$ctrl._viewModel.codeMapNode.isFlattened\"\n\t\t\tng-click=\"$ctrl.showFlattenedNode()\"\n\t\t\ttitle=\"Show node and children-nodes\"\n\t\t\t><img alt=\"flattenIcon\" class=\"png-icon\" src=\"" + ___HTML_LOADER_REPLACEMENT_0___ + "\" style=\"width: 17px; height: 17px\" /> Show</md-button\n\t\t>\n\t\t<md-button\n\t\t\tng-if=\"!$ctrl.isNodeConstantlyHighlighted()\"\n\t\t\ttitle=\"Highlight node constantly\"\n\t\t\tng-click=\"$ctrl.addNodeToConstantHighlight()\"\n\t\t\t><i class=\"fa fa-cubes\"></i> Keep Highlight</md-button\n\t\t>\n\t\t<md-button\n\t\t\tng-if=\"$ctrl.isNodeConstantlyHighlighted()\"\n\t\t\ttitle=\"Remove constant highlight\"\n\t\t\tng-click=\"$ctrl.removeNodeFromConstantHighlight()\"\n\t\t\t><i class=\"fa fa-cubes\"></i> Remove Highlight</md-button\n\t\t>\n\n\t\t<md-button ng-click=\"$ctrl.excludeNode()\" id=\"exclude-button\" title=\"Exclude node and children-nodes and reorder the CodeMap\"\n\t\t\t><i class=\"fa fa-ban\"></i> Exclude</md-button\n\t\t>\n\t</div>\n</md-card>\n";
|
|
242475
242533
|
// Exports
|
|
242476
242534
|
module.exports = code;
|
|
242477
242535
|
|
|
@@ -242659,19 +242717,6 @@ module.exports = code;
|
|
|
242659
242717
|
|
|
242660
242718
|
/***/ }),
|
|
242661
242719
|
|
|
242662
|
-
/***/ "./app/codeCharta/ui/unfocusButton/unfocusButton.component.html":
|
|
242663
|
-
/*!**********************************************************************!*\
|
|
242664
|
-
!*** ./app/codeCharta/ui/unfocusButton/unfocusButton.component.html ***!
|
|
242665
|
-
\**********************************************************************/
|
|
242666
|
-
/***/ ((module) => {
|
|
242667
|
-
|
|
242668
|
-
// Module
|
|
242669
|
-
var code = "<div layout=\"column\">\n\t<md-button aria-label=\"Remove Focus from node\" ng-click=\"$ctrl.removeFocusedNode()\" title=\"Show previous focused node\"\n\t\t><i class=\"fa fa-bullseye\"></i>\n\t\t<span ng-show=\"$ctrl.isParentFocused\">Unfocus Parent</span>\n\t\t<span ng-show=\"$ctrl.isNodeFocused\">Unfocus</span>\n\t</md-button>\n\t<md-button\n\t\taria-label=\"Remove Focus from all nodes\"\n\t\tng-click=\"$ctrl.removeFocusedNode(true)\"\n\t\ttitle=\"Show complete map\"\n\t\tng-show=\"$ctrl._viewModel.focusedNodes.length > 1\"\n\t\t><i class=\"fa fa-bullseye\"></i>\n\t\t<span>Unfocus All</span>\n\t</md-button>\n</div>\n";
|
|
242670
|
-
// Exports
|
|
242671
|
-
module.exports = code;
|
|
242672
|
-
|
|
242673
|
-
/***/ }),
|
|
242674
|
-
|
|
242675
242720
|
/***/ "./app/codeCharta/ui/viewCube/viewCube.component.html":
|
|
242676
242721
|
/*!************************************************************!*\
|
|
242677
242722
|
!*** ./app/codeCharta/ui/viewCube/viewCube.component.html ***!
|
|
@@ -242692,7 +242737,7 @@ module.exports = code;
|
|
|
242692
242737
|
/***/ ((module) => {
|
|
242693
242738
|
|
|
242694
242739
|
// Module
|
|
242695
|
-
var code = "<h1>Change Log</h1>\n<p>All notable changes to this project will be documented in this file.</p>\n<p>The format is based on <a href=\"http://keepachangelog.com/\">Keep a Changelog</a>\nand this project adheres to <a href=\"http://semver.org/\">Semantic Versioning</a></p>\n<h2>[unreleased] (Added 🚀 | Changed | Removed 🗑 | Fixed 🐞 | Chore 👨💻 👩💻)</h2>\n<h2>[1.86.0] - 2021-12-20</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Add 3D export feature for 3D printing <a href=\"https://github.com/MaibornWolff/codecharta/pull/2561\">#2561</a>. \n \n</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Replace all color pickers in the context of ongoing Angular migration <a href=\"https://github.com/MaibornWolff/codecharta/pull/2560\">#2560</a>.</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix showing names of custom configs properly <a href=\"https://github.com/MaibornWolff/codecharta/pull/2557\">#2557</a></li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Migrate legend panel to Angular <a href=\"https://github.com/MaibornWolff/codecharta/pull/2560\">#2560</a>.</li>\n</ul>\n<h2>[1.85.0] - 2021-12-13</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix delta values of secondary metrics not shown in delta mode within attribute side bar <a href=\"https://github.com/MaibornWolff/codecharta/issues/2539\">#2539</a>.</li>\n<li>Use icon tag instead of font awesome icon <a href=\"https://github.com/MaibornWolff/codecharta/pull/2537\">#2537</a>.</li>\n<li>Rename text for placeholder of metric chooser <a href=\"https://github.com/MaibornWolff/codecharta/pull/2547\">#2547</a></li>\n<li>Fix attribute type selector of primary edge metric not shown <a href=\"https://github.com/MaibornWolff/codecharta/issues/2528\">#2528</a>.</li>\n<li>Identical files and files with identical file names but different hashes can be loaded <a href=\"https://github.com/MaibornWolff/codecharta/pull/2548\">#2548</a></li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Remove <code>secondaryMetrics</code> from store and remove <code>secondaryMetrics.service</code> as the data can be derived from selected node <a href=\"https://github.com/MaibornWolff/codecharta/pull/2527\">#2527</a>.</li>\n<li>Migrate <code>attribute-side-bar-component</code> to Angular <a href=\"https://github.com/MaibornWolff/codecharta/pull/2527\">#2527</a>.</li>\n<li>Switch from Webpack 4 Loaders to Asset Module to load icons properly with css-loader 6.x <a href=\"https://github.com/MaibornWolff/codecharta/pull/2542\">#2542</a>.</li>\n</ul>\n<h3>Removed 🗑</h3>\n<ul>\n<li>Remove notification dialog when deleting a custom config <a href=\"https://github.com/MaibornWolff/codecharta/pull/2553\">#2553</a></li>\n</ul>\n<h2>[1.84.1] - 2021-11-29</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix compressed files not being loaded (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2525\">#2524</a>)</li>\n</ul>\n<h2>[1.84.0] - 2021-11-22</h2>\n<h3>Changed</h3>\n<ul>\n<li>Improved the UI and usability of the Suspicious Metrics Feature (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2494\">#2376</a>) \n<ul>\n<li>The Metrics and the Analysis are now split in two menus \n</li>\n<li>The Suspicious Metrics are now sorted with the Very High Risk on top \n</li>\n<li>The bar in the analysis shows the percentages \n</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix showing labels when weighted gradient on yellow buildings in color metric options are enabled (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2511\">#2511</a>)</li>\n<li>Fix rounding of the sum of percentages in risk profile (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2516\">#2393</a>)</li>\n<li>Fix legend panel not having a background (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2510\">#2422</a>)</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Remove <code>nodeSearch.service.ts</code> and <code>searchedNodePaths</code> from store as they can be derived from <code>searchPattern</code> (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2495\">#2495</a>).</li>\n<li>Refactor where metric data are calculated (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2514\">#2514</a>).</li>\n<li>Migrate <code>attribute-type-selector-component</code> to Angular (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2519\">#2519</a>).</li>\n</ul>\n<h2>[1.83.1] - 2021-11-10</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix loading files from URL in Web Demo (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2494\">#2494</a>)</li>\n</ul>\n<h2>[1.83.0] - 2021-11-09</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix unwanted calculations of suspicious metrics when experimental features are disabled (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2471\">#2471</a>)</li>\n<li>Fix UI issues in the configuration panel (<a href=\"https://github.com/maibornwolff/codecharta/issues/2322\">#2322</a>)</li>\n<li>Fix tooltip of sorting order button in map tree view showing wrong sorting order (<a href=\"https://github.com/maibornwolff/codecharta/issues/2473\">#2473</a>)</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Calculate MD5 checksum when generating .cc.json files (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2450\">#2411</a>)</li>\n</ul>\n<h2>[1.82.0] - 2021-10-18</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix what's new section including the last opened version (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2453\">#2447</a>)</li>\n<li>Fix unfocus button text not showing correctly (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2439\">#2439</a>)</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Folders in the Folder structure view of the top left come now always before any files, regardless of the sort order.</li>\n</ul>\n<h2>[1.81.0] - 2021-10-11</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix color picker not being usable (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2439\">#2439</a>)</li>\n<li>Fix Changelog inconsistencies (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2425\">#2425</a>) \n</li>\n<li>Fix memory and performance issues related to drawing labels on floors/folders (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2348\">#2348</a>).</li>\n<li>Hides legend block if label description is not available and adds new metric descriptions (<a href=\"https://github.com/maibornwolff/codecharta/issues/2377\">#2377</a>).</li>\n</ul>\n<h2>[1.80.0] - 2021-10-04</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Adds feature to display building colors as a gradients (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2327\">#2327</a>).\n<ul>\n<li>\"Weighted Gradient\" only mixes colors in a small interval around the preset values.</li>\n<li>\"True Gradient\" mixes colors from the 0 to the highest value, the two preset color range values determine the balance.</li>\n<li>\"Absolute\" represents the old behaviour without gradients. \n</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix broken file/node search #2389</li>\n<li>Fix changelog inconsistencies (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2425\">#2425</a>)</li>\n</ul>\n<h2>[1.79.0] - 2021-09-20</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Add metric descriptions to the frontend and show a translation next to the entry (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2330\">#2330</a>) \n</li>\n<li>An option has been added to the global settings to enable copying screenshots to clipboard instead of saving them in a file (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2326\">#2326</a>) \n</li>\n<li>Add changelog guidelines (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2358\">#2358</a>)</li>\n<li>A changelog dialog with the latest additions to CodeCharta appears on version update (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2342\">#1315</a>) \n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix broken method call in screenshot feature.</li>\n<li>Improve changelog entries.</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Changing the background color and remove \"outgoing\" and \"incoming\" edges from the legend, if not applicable (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2330\">#2330</a>)</li>\n<li>Improve the user experience for the AI Feature \"Suspicious Metrics and Risk Profiles\" and enable it for any programming language (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2362\">#2362</a>) \n</li>\n</ul>\n<h2>[1.78.0] - 2021-09-06</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>A changelog dialog with the latest additions to CodeCharta appears on version update (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1315\">#1315</a>)</li>\n<li>Add documentation for SCMLogParserV2 (<a href=\"https://github.com/maibornwolff/codecharta/issues/1349\">#1349</a>)</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Empty temporary label during hovering (<a href=\"https://github.com/maibornwolff/codecharta/issues/2328\">#2328</a>)</li>\n<li>Show the screenshot hotkey in the screenshot title (<a href=\"https://github.com/maibornwolff/codecharta/issues/2323\">#2323</a>)</li>\n<li>Improved rendering performance (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2345\">#2345</a>)</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Update GH-Pages and visualization dependencies (<a href=\"https://github.com/maibornwolff/codecharta/issues/2356\">#2356</a>)</li>\n</ul>\n<h2>[1.77.0] - 2021-07-30</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>The \"Color Metric Options\" panel and \"Legend\" panel display the maximum value of the selected metric instead of infinite. (<a href=\"https://github.com/maibornwolff/codecharta/issues/1520\">#1520</a>)</li>\n<li>Mark color-section as unimportant in delta mode (<a href=\"https://github.com/maibornwolff/codecharta/issues/769\">#769</a>)</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Small ui improvements added. (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1881\">#1881</a>)</li>\n<li>Numbers/Percentages always show in the distribution bar(<a href=\"https://github.com/MaibornWolff/codecharta/issues/1540\">#1540</a>)\n<ul>\n<li>Toggle between percentage and absolute numbers by clicking anywhere on the (expanded) distribution bar.</li>\n<li>The old expanded distribution bar is now accessible through a button.</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>It is no longer possible to exclude all files on the map (<a href=\"https://github.com/MaibornWolff/codecharta/issues/901\">#901</a>)</li>\n</ul>\n<h2>[1.76.0] - 2021-07-13</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Custom metric scenarios which include the 'Color-Metric' (rloc) will now also save any changes made to the color scheme.</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Performance improvements when loading new files. (<a href=\"https://github.com/maibornwolff/codecharta/issues/1312\">#1312</a>)</li>\n</ul>\n<h2>[1.75.0] - 2021-07-05</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Imported files are now compressed by default. Use the -nc parameter to uncompress the files. (<a href=\"https://github.com/maibornwolff/codecharta/issues/1702\">#1702</a>)</li>\n<li>Export the current view as a png image by using \"Ctrl+Alt+S\" or clicking the corresponding button (<a href=\"https://github.com/MaibornWolff/codecharta/issues/674\">#674</a>)</li>\n<li>Show only labels of buildings according to a chosen color (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1347\">#1347</a>)</li>\n<li>New buttons to reset the color hex values and color metric thresholds separately (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1613\">#1613</a>) \n</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Metric aggregations now work as intended and are available from the sidebar when selecting folders (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1953\">#1953</a>)</li>\n<li>Opening new files does no longer remove old ones.\n<ul>\n<li>Already loaded files can be individually removed.</li>\n<li>The 'Multiple' view will select the latest files. \n</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>It is now possible to rotate the map by rotating the view cube (<a href=\"https://github.com/MaibornWolff/codecharta/issues/353\">#353</a>)</li>\n</ul>\n<h2>[1.74.0] - 2021-05-31</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>SonarImport: SonarQube 8.8 support. Older versions are still supported.</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Only show labels for building included in the search</li>\n<li>Color slider not initialized correctly (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1592\">#1592</a>)</li>\n</ul>\n<h2>[1.73.0] - 2021-05-10</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Improve descriptions (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1879\">#1879</a>)\n\n<img src=\"https://user-images.githubusercontent.com/57844849/115393175-b2897b00-a1e1-11eb-8601-d2128f3469a3.png\" alt=\"option dialog\"></li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Excluding in delta mode is broken (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1578\">#1578</a>)\n(Inclusion and exclusion of files using wildcard searches in the flatten and exclude operations)</li>\n<li>Fix labels and lines missing a connection in some cases(<a href=\"https://github.com/MaibornWolff/codecharta/issues/1716\">#1716</a>)</li>\n<li>Ribbons resizing when expanding (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1952\">#1952</a>)</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Fix breaking changes with newest three-js version(<a href=\"https://github.com/MaibornWolff/codecharta/issues/1877\">#1877</a>)</li>\n</ul>\n<h2>[1.72.0] - 2021-04-22</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Hints for Global Settings (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1715\">#1715</a>)</li>\n<li>Indicate total nodes and excluded / flattened nodes in file explorer (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1880\">#1880</a>)</li>\n<li>Add path to node context menu (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1667\">#1667</a>)</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Made the header semi responsive (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1037\">#1037</a>)</li>\n</ul>\n<h2>[1.71.2] - 2021-03-16</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>DevOps pipeline changes</li>\n<li>Fixed web visualization in github</li>\n</ul>\n<h2>[1.71.1] - 2021-03-16</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>DevOps pipeline changes</li>\n</ul>\n<h2>[1.71.0] - 2021-03-16</h2>\n<h3>Changed</h3>\n<ul>\n<li>Disable unready AI function</li>\n<li>Fix linter errors</li>\n<li>Fix editorconfig</li>\n</ul>\n<h2>[1.70.2] - 2021-03-12</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>DevOps pipeline changes</li>\n<li>Project naming for Docker deployment</li>\n</ul>\n<h2>[1.70.1] - 2021-03-12</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>DevOps pipeline changes</li>\n</ul>\n<h2>[1.70.0] - 2021-03-09</h2>\n<h3>Changed</h3>\n<ul>\n<li>Render on demand (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1728\">#1728</a>)</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Memory leaks</li>\n</ul>\n<h2>[1.69.0] - 2021-02-23</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Added WebGL FXAA antialias & PixelRatio Options in order to achieve better resolution on high dpi displays(https://github.com/MaibornWolff/codecharta/pull/1551).\n<img src=\"https://user-images.githubusercontent.com/74670211/106582136-f4404900-6543-11eb-8f5b-5e1ec47457c7.png\" alt=\"option dialog\">\nThere are 4 available modes:\n<ul>\n<li><strong>standard mode</strong>: the pixel density is only applied to the small cube with standard browser aliasing</li>\n<li><strong>pixel ratio without aliasing</strong>: no antialiasing is used</li>\n<li><strong>pixel ration with FXAA</strong>: Nvidia FXAA antialiasing shader is used as an alisaing technique. this has better perfromance the standard browser aliasing aliasing</li>\n<li><strong>pixel ration with MSAA</strong>: this is the best aliasing quality, slower then FXAA.</li>\n</ul>\n</li>\n<li>Added GPU Stats (only in dev mode)</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Unfocus now respects the focus depth (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1099\">#1099</a>)</li>\n<li>Track anonymous usage data also for older CodeCharta API versions and fix some minor bugs.</li>\n</ul>\n<h2>[1.68.0] - 2021-02-08</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>A new experimental feature has been added to track anonymous metadata of a currently loaded map.\n<ul>\n<li>Neither the map name nor file names will be tracked but anonymous metric values and statistics like (average, min, max).</li>\n<li>The tracked data will not be sent to a server yet. Instead, it can be downloaded as a json file in the Global Settings for now.</li>\n<li>It is planned to send the anonymous data to a server in the future, so that we can collect tracking data automatically.</li>\n<li><img src=\"https://user-images.githubusercontent.com/26900540/106896300-ac5f2480-66f1-11eb-8096-246d1733c0ee.png\" alt=\"example of new feature\"></li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Errors occurred in delta mode if names of root folders were different</li>\n<li>Switching maps in delta mode now shows the differences between the maps (<a href=\"https://github.com/maibornwolff/codecharta/issues/1606\">#1606</a>)</li>\n<li>Label over hovered building not shown for height Metric value of zero (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1623\">#1623</a>)</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>CodeChartaStorage class has been introduced to dynamically store values either on disk (standalone version) or in the localStorage (web version). This is the first step to solve <a href=\"https://github.com/MaibornWolff/codecharta/issues/684\">#684</a>.</li>\n</ul>\n<h2>[1.67.0] - 2021-01-26</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>\n<p>Allow opening files from local drive by double clicking on the buildings or clicking on their names (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1314\">#1314</a>)</p>\n<ul>\n<li>Only available in the standalone version!</li>\n<li>files are opened in associated third-party applications</li>\n<li>web-links are opened in a browser window</li>\n</ul>\n</li>\n<li>\n<p>Allow customized color in the node context menu (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1556\">#1556</a>).</p>\n<p><a href=\"https://user-images.githubusercontent.com/3596742/104302048-a007f300-54c8-11eb-86c1-287483884783.png\">!example of new feature #1556</a></p>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>fixed wrong max tree map visibility (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1624\">#1624</a>)</li>\n<li>fixed incorrect label placement on delta maps that share no common nodes (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1686\">#1686</a>)</li>\n</ul>\n<h2>[1.66.0] - 2021-01-18</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Allow color of buildings to be customizable in the ribbon bar and in the legend. Colors of edges are now customizable as well (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1533\">#1533</a>)\n<img src=\"https://user-images.githubusercontent.com/3596742/103547861-3c1c7380-4ea5-11eb-8df2-541caf65b9df.png\" alt=\"example of new feature\"></li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Global settings not reverting to default ones (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1632\">#1632</a>)</li>\n<li>Maximum treemap files shown in squarified node (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1624\">#1624</a>)</li>\n<li>Wrong folder names and colors in legend when using the highlight folder feature (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1555\">#1555</a>)</li>\n<li>Temporary labels are placed at the wrong height for scaled buildings (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1618\">#1618</a>)</li>\n<li>Visible labels will disappear or placed lower for scaled buildings (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1619\">#1619</a>)</li>\n<li>Unnecessary break line for secondary metrics (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1093\">#1093</a>)</li>\n</ul>\n<h2>[1.65.0] - 2020-12-23</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Highlight label while hovering over building, draw a temporary label for hovered buildings that have none (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1529\">#1529</a>)</li>\n<li>Integrated streetlayout (<a href=\"https://github.com/MaibornWolff/codecharta/issues/904\">#904</a>)\n<img src=\"https://user-images.githubusercontent.com/63230711/78872405-87eed900-7a49-11ea-984a-c0ef738779b9.png\" alt=\"cc_street_ccv\">\nIn street layout file nodes are displayed as buildings and directories are displayed as streets. A street layout has the advantage of a more apparent directory structure and stable positioning of nodes after metric changes.\ntwo different Street layout are integrated : - StreetLayout : as described above. - TMStreet : a combination of street layout and squarified layout.</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>The button to see excluded buildings is now merged into the flattened button. Excluded and flattened buildings can now be seen by opening the building with the eye slash icon (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1543\">#1543</a>)</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Height scaling not applied to buildings (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1595\">#1595</a>))</li>\n<li>Fixed multiple label positioning/scaling bugs</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>e2e flaky test (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1322\">#1322</a>)</li>\n</ul>\n<h2>[1.64.0] - 2020-12-15</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>\n<p>Download and upload Custom Configurations is now possible (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1472\">#1472</a>)</p>\n<ul>\n<li>Open the Custom Configs menu in the toolbar on top of the map</li>\n<li>Next to the <code>plus</code> Button you can see two new buttons: Upload and download.\n<ul>\n<li>Download: If you already have added Custom Configs you can download them by clicking the download button.\n<ul>\n<li>Custom Configs which are applicable for the currently selected map(s) will be downloaded as <code>.cc.config.json</code> files.</li>\n</ul>\n</li>\n<li>Upload: Click the upload button and specify your Custom Config file (<code><file-name>.cc.config.json</code>)\n<ul>\n<li>Already existing Custom Configs will be skipped.</li>\n<li>Different Custom Configs with same names will be renamed.</li>\n<li>Another way to upload your Custom Configs is to upload a <code>.cc.json</code> file together with one or multiple <code>.cc.config.json</code> files using the default <code>Load .cc.json map</code> button in the upper left corner.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>The Configs are stored to the local storage of your browser.\n<ul>\n<li>If a limit of <code>768KB</code> is exceeded you will see a warning when trying to add a new Custom Config.</li>\n<li>You can click the displayed \"download and purge\" button to download/backup at least 6 months old Configs and then purge them from the local storage to make space for new ones.</li>\n<li>If we cannot purge any Configs, you might have to do that by your own by deleting specific Configs manually.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Increase possible margin size (<a href=\"https://github.com/MaibornWolff/codecharta/pull/1490\">#1490</a>)\n<ul>\n<li>change displayed margin value from % to pixel</li>\n<li>change dynamic margin value to a default margin value that should fit the map</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Re-enabled color selection for folders and on hover (<a href=\"https://github.com/MaibornWolff/codecharta/pull/1544\">#1544</a>)</li>\n<li>Labels do not take delta height into account (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1523\">#1523</a>)</li>\n<li>The calculation of the map resolution scale factor was wrong (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1491\">#1491</a>)\n<ul>\n<li>The factor is used to decrease the map resolution especially for big maps to avoid performance issues.</li>\n<li>Now only the selected maps will be considered for the calculation. Unselected maps will be skipped.</li>\n</ul>\n</li>\n</ul>\n<h2>[1.63.0] - 2020-11-30</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Add the folder name onto the floor on the first 3 layers to get a better overview of the map (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1491\">#1491</a>)</li>\n<li>UX Improvements related to labels allowing for user interaction #1404\n<ul>\n<li>Labels can be hovered, hovering their corresponding node</li>\n<li>Selecting a label will select the corresponding node</li>\n<li>Hovering a label will remove its transparency and move towards the user:\n<ul>\n<li>If other labels obstruct the hovered label it will move to the front</li>\n</ul>\n</li>\n<li>Increased the transparency of other labels; this makes it easier to distinguish the hovered label</li>\n<li>Increase the amount of labels to 250.</li>\n</ul>\n</li>\n<li>Show file count of folders in Attribute-Side-Bar (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1255\">#1255</a>):\n<img src=\"https://user-images.githubusercontent.com/3596742/100371884-be915800-3008-11eb-89f5-ed57c62680cc.png\" alt=\"img showing file count of folder\"></li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Buildings are flattened when delta is active #824.</li>\n<li>Selected Building now stays highlighted when map is rotated #1498</li>\n</ul>\n<h2>[1.62.0] - 2020-11-12</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>\n<p>A new option in the Global Settings allows to enable/disable experimental features #1318</p>\n<ul>\n<li>Click on the settings button in the upper right corner to open the Global Settings dialog.</li>\n<li>Activate/Deactivate the new option \"Enable Experimental Features\"</li>\n<li>The features will be shown/hidden accordingly</li>\n</ul>\n</li>\n<li>\n<p>\"CustomViews\", the first experimental feature has been added #1318</p>\n<ul>\n<li>It must be enabled by activating the new option in the Global Settings dialog as mentioned before.</li>\n<li>You can save your current map configurations to replay/restore them later.</li>\n<li>A saved CustomView can only be applied for it's original map.</li>\n<li>This will enable you to be more efficient in analizing projects by switching between different CustomViews.</li>\n</ul>\n</li>\n<li>\n<p>NodeContextMenu now contains option to keep buildings highlighted #1323</p>\n</li>\n<li>\n<p>Fixed Folder algorithm supports nested (parent-child) Fixed Folders #1431</p>\n<ol>\n<li>Define children of a Fixed Folder also as Fixed Folders by adding the <code>fixedPosition</code> attribute manually in <code>.cc.json</code>.</li>\n<li>All children of a parent Fixed Folder must be fixed.</li>\n<li>Read the how-to guide for further information: https://maibornwolff.github.io/codecharta/how-to/fixate_folders_with_a_custom_cc_json/</li>\n</ol>\n</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>\n<p>Improved search</p>\n<ol>\n<li>Not providing any star in the search bar from now on expects the input to\nbe a wildcard search. Thus, files are going to match paths that have\nleading or following characters. E.g., <code>oo</code> is going to match\n<code>/root/foobar</code>.</li>\n<li>To use the explicit former search mode, wrap the search entry in quotes as\nin: <code>\"oo\"</code>. This would only match filenames that are exactly <code>oo</code>.</li>\n<li>The search field accepts multiple search entries at once, separated by\ncommata. <code>foo,bar</code> is going to search for both <code>*foo*</code> and <code>*bar*</code> and\nmarks all matched files accordingly.</li>\n<li>It is possible to invert the search with a leading exclamation mark as in\n<code>!foobar</code>. That will match any file that does not match <code>*foobar*</code>. It is\nonly possible to invert the complete input, not individual search entries.</li>\n<li>Whitespace handling changed to ignore leading whitespace.</li>\n</ol>\n</li>\n<li>\n<p>Distribution metric #1188</p>\n<ol>\n<li>set rloc to default distribution metric, showing language percentages for real lines of code, if available. Else set to unary to show language distribution over files</li>\n</ol>\n</li>\n<li>\n<p>Improved file sorting in the file overview of the search bar</p>\n<ul>\n<li>Numbers are sorted naturally</li>\n<li>Characters are compared with their base character (e.g., <code>a</code> is now next to <code>á</code>).</li>\n</ul>\n</li>\n<li>\n<p>Label metric not shown by default anymore</p>\n</li>\n</ul>\n<h2>[1.61.0] - 2020-10-30</h2>\n<h3>Changed</h3>\n<ul>\n<li>Disable highlighting buildings during map movement #1432</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>File tree/flattened/excluded overlay visualization is buggy #1269</li>\n<li>EdgePreview on Map broken when selecting zero #1276</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Schedules and merge retries of dependabot dependency updates changed</li>\n</ul>\n<h2>[1.60.2] - 2020-10-24</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Mouse cursor flickering #1170</li>\n<li>Fix flipping map when clicking any option in the toolbar #1410</li>\n<li>Fix edge metric not working correctly</li>\n</ul>\n<h2>[1.60.1] - 2020-10-20</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Issue with first start without an internet connection not working#1266</li>\n<li>Issue with ribbon bar sizes for opened cards #1035</li>\n</ul>\n<h2>[1.60.0] - 2020-10-16</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Parsing feedback with progressbar and probable ETA for parsers and SonarImporter #847</li>\n<li>Mark node names and make the names clickable for nodes that have a link to them #1313</li>\n<li>Indicate the metric name next to a shown value in a new line on labels #1035</li>\n<li>Checkboxes to display metric names and values and to display node names on labels #1035</li>\n<li>Mark node names and make the names clickable for nodes that have a link to them #1313</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Label design #1035</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>First start without an internet connection of standalone not working #1266</li>\n<li>Comparing a map in delta mode shows the correct differences</li>\n<li>This mainly applies to maps compared with itself while it also fixes some other minor miscalculations</li>\n<li>File extensions detection is improved</li>\n<li>Zooming in and out the map will now close the node context menu #1324\n<ul>\n<li>Improved and simplified event handling in NodeContextMenu component</li>\n</ul>\n</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Improved performance of multiple operations (e.g., delta mode).</li>\n</ul>\n<h2>[1.59.0] - 2020-10-09</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>New EXPERIMENTAL SCMLogParser version</li>\n<li>Improved performance around 300% when parsing CodeCharta</li>\n<li>Improved memory usage</li>\n<li>Fixed issue with old parser creating incorrect nodes in CodeCharta #871</li>\n<li>ATTENTION: the parser is experimental, therefore some potential issues might remain, e.g. potentially an unhandled edge case when parsing node</li>\n<li>To use the new parser a reversed git log is needed, as well as a git file list, refer to <code>ccsh scmlogparserv2 -h</code> for additional information</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Color-Metric slider is set and activated in the map accordingly to the released sliderbutton #1319</li>\n<li>Deselcting a building will instantly dehighlight the buildings which were connected through edges #890</li>\n</ul>\n<h2>[1.58.1] - 2020-10-02</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Showing wrong edges when hovering a building after selecting one #1137</li>\n</ul>\n<h2>[1.58.0] - 2020-10-02</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Add active color metric to the top of the legend panel #1278</li>\n<li>SourceCodeParser: Java 14 Support #1277</li>\n</ul>\n<h2>[1.57.4] - 2020-09-25</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Metric-Settings-Panels closed when clicking an option inside the panel #1258</li>\n<li>Improve loading and rendering maps performance</li>\n</ul>\n<h2>[1.57.3] - 2020-09-18</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improve overall performance for loading and rendering maps</li>\n<li>Improve error messages when a file can't be loaded with the URL parameters</li>\n</ul>\n<h2>[1.57.2] - 2020-09-11</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>New API version 1.2 not set correctly in analysis</li>\n</ul>\n<h2>[1.57.1] - 2020-09-11</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Validation of unique filenames not checking for the complete path and instead throwing an error on duplicate filename</li>\n</ul>\n<h2>[1.57.0] - 2020-09-11</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li><code>fixedPosition</code> as a new property in the <code>cc.json</code> that allows to fixate folders in the map</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li><code>cc.json</code> version updated to <code>1.2</code></li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Compressed `cc.jsons (.gz) not marked as accepted when selecting a file in the file chooser</li>\n</ul>\n<h3>Docs 🔎</h3>\n<ul>\n<li><a href=\"https://maibornwolff.github.io//codecharta/how-to/fixate_folders_with_a_custom_cc_json/\">How-To: Fixate Folders in the <code>cc.json</code></a></li>\n<li>CC-Json-API changes</li>\n</ul>\n<h2>[1.56.0] - 2020-09-04</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improve performance when switching to multiple or delta mode when edges are available</li>\n<li>Scenario with EdgeMetric is only appliable when EdgeMetric is existing for the Map #1201</li>\n<li>Starting standalone version results in infinite loading loop #1202</li>\n<li>Expanded metric selection will close when clicking anywhere outside of that selection #1036</li>\n</ul>\n<h2>[1.55.0] - 2020-08-28</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Cursor indicator for different mouse actions #1042</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Edge-Metrics sorted by name now instead of number of incoming and outgoing edges</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Number of incoming and outgoing edges not visible when hovering over a node #1095</li>\n<li>Highlighting buildings in multiple mode now works #956</li>\n</ul>\n<h2>[1.54.0] - 2020-08-21</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Opening NodeContextMenu in the tree-view marks the node until it is closed #1068</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Missing Sonarcloud metrics in demo</li>\n</ul>\n<h3>Docs 🔎</h3>\n<ul>\n<li>Added note how to fix missing <code>sh</code> command issue when running integration tests on Windows</li>\n</ul>\n<h2>[1.53.0] - 2020-08-14</h2>\n<h3>Changed</h3>\n<ul>\n<li>NodeContextMenu will show up when releasing the right-mouse-button now #1027</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>NodeContextMenu showing up after moving the mouse while holding right-mouse-button #1027</li>\n</ul>\n<h2>[1.52.0] - 2020-08-07</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Support for Tokei 12 new JSON schema #1103</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Rename master branch to main for a more inclusive naming #1117</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>After loading an invalid file the filechooser pops up again, so that the user can choose a valid file #1021</li>\n<li>Quality gates on sonarcloud.io are red #879</li>\n</ul>\n<h3>Docs 🔎</h3>\n<ul>\n<li>Moved developer guides to our <a href=\"https://maibornwolff.github.io/codecharta/\">gh-pages</a> #986</li>\n</ul>\n<h2>[1.51.0] - 2020-07-24</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>File chooser now accept \".json\" files only to avoid accidentally loading incorrect files #1094</li>\n<li>Lots of tooltips #1030</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Blacklisting a building would sometimes not update the map #1098</li>\n<li>Changes made after opening the filechooser and closing it won't be applied #875</li>\n<li>Edge metric list not always updated correctly when loading a new file #1106</li>\n</ul>\n<h2>[1.50.0] - 2020-07-10</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Line between scenario indicator and remove button #1069</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Reduced transition time when opening or collapsing parts of the ribbon bar #1043</li>\n<li>Search Panel will open now when clicking in the search field and collapse when clicking somewhere else #1071</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Opening the same file again will now reload the file and reset the application #1032</li>\n<li>Improve render performance by persisting color conversions #1034</li>\n<li>Sorting in tree-view not being applied #1040</li>\n</ul>\n<h2>[1.49.1] - 2020-07-03</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improved performance significantly when switching between single, multiple and delta</li>\n<li>Color-Range-Slider sometimes misbehaved when loading a new map or excluding buildings #926</li>\n</ul>\n<h2>[1.49.0] - 2020-06-19</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Custom scenarios can be created and saved through the scenario menu #675</li>\n<li>Importer and parser documentation can now be found on the github Website #954</li>\n<li>Output of sourcemonitor can now be compressed with the compression flag</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>[Security] Bump angular from 1.7.9 to 1.8.0 in /visualization #995</li>\n</ul>\n<h2>[1.48.0] - 2020-06-12</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Support of compressed cc.json files. Files can be compressed in the analysis #848</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improved performance of several importers #846</li>\n</ul>\n<h2>[1.47.1] - 2020-05-08</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Attribute-Side-Bar being invisible</li>\n</ul>\n<h2>[1.47.0] - 2020-05-02</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>When hovering over a folder, all buildings inside it will be highlighted as well #694</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Rename the button Show-Complete-Map button to Unfocus #642</li>\n<li>Move the Unfocus button (visible when right-clicking a focused node) to the node-context-menu #948</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Generating a delta map with merged empty folders in between is now working correctly #730</li>\n<li>Reduced time when opening a new file #932</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>[Security] Bump jquery from 3.4.0 to 3.5.0 in /visualization #944</li>\n</ul>\n<h2>[1.46.1] - 2020-04-24</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Error dialogs in case of validation or api version issues #610</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improved overall rendering performance of larger maps by roughly 40% #836</li>\n</ul>\n<h2>[1.45.5] - 2020-04-17</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Median symbol for aggregated relative metrics #365</li>\n<li>AttributeTypes for tokeiImporter and SCMLogParser #365</li>\n<li>Ellipsis button in TreeView list when hovering a node to access context menu #780</li>\n<li>Show gray eye-icon next to the ellipsis-button to indicate a flattened node #780</li>\n<li>Attribute Type selector in the metric dropdowns for edges and nodes</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Metrics with AttributeType relative are now aggregated using the median #365</li>\n<li>Showing absolute number of files instead of relative number when hovering list item in TreeView #780</li>\n<li>Clicking a hovered list item inside the TreeView opens folders #780</li>\n<li>Color node name in gray when flattened #780</li>\n</ul>\n<h3>Removed 🗑</h3>\n<ul>\n<li>Eye-icon in TreeView list to flatten a node #780</li>\n<li>Option to focus a node when clicking the node name inside the TreeView #780</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Consistency of AttributeTypes representation #365</li>\n<li>Wrong file description for tokeiimporter</li>\n<li>Improved search performance #837</li>\n</ul>\n<h2>[1.44.0] - 2020-03-27</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Dialog to select between different sorting options #388</li>\n<li>Button to reverse the current selected sorting #388</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Show file selection in toolBar after excluding or hiding a node instead of an empty toolBar #896</li>\n</ul>\n<h2>[1.43.0] - 2020-03-20</h2>\n<h3>Changed</h3>\n<ul>\n<li>Selectable metrics will only contain metrics from the visible maps</li>\n<li>Closing the attribute-side-bar by clicking somewhere in the map will now be triggered on mouse up instead of mouse down</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Search-panel opening for a short duration when importing a new file</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Fix vulnerability with nokogiri <1.10.8</li>\n</ul>\n<h2>[1.42.3] - 2020-03-13</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Loading Gif not displayed when preparing to render a new map #857</li>\n<li>Selecting zero files in Multiple mode will not trigger the 3D CodeMap creation</li>\n<li>Metrics in the dropdown menu now show the correct max value for the visible maps #876</li>\n</ul>\n<h2>[1.42.2] - 2020-02-14</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Replaced non standard <code>[[</code> in sh scripts #849</li>\n<li>Improved performance for loading a new file #836</li>\n<li>Marked Packages are loaded from files #798</li>\n</ul>\n<h2>[1.42.1] - 2020-02-07</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>GC Overhead Limit (OutOfMemory Exception) during analysis of large SCMLogs fixed #845</li>\n</ul>\n<h2>[1.42.0] - 2020-01-31</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Support for camel and kebab-case for ccsh arguments #772</li>\n<li>RawTextParser for analysis #660</li>\n<li>IndentationLevel as metric for RawTextParser #660</li>\n<li>Show additional Pairing Rate of Selected Building, simultaneously to the currently hovered Buildings #736</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Options of the ccsh are now consistently in kebab-case #772</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Path prefix handling in tokeiimporter #841</li>\n</ul>\n<h2>[1.41.8] - 2020-01-17</h2>\n<h3>Removed 🗑</h3>\n<ul>\n<li>Project name parameters in the ccsh #773</li>\n</ul>\n<h2>[1.41.6] - 2020-01-10</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Deployment</li>\n</ul>\n<h2>[1.41.1] - 2020-01-10</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Performance of loading maps with edges improved #823</li>\n<li>Calculation of other Group for fileExtensionBar #768</li>\n<li>Remove focus of UI elements when they are not visible anymore</li>\n</ul>\n<h2>[1.41.0] - 2019-12-06</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Show the relative number of files a folder includes compared to the project in the TreeView #380</li>\n<li>Show the number of files a folder includes in the TreeView when hovering #380</li>\n<li>When the File Extension Bar is hovered, all buildings corresponding to that extension are highlighted #545</li>\n<li>Toggle between percentage and absolute values when clicking the file extension details section #545</li>\n<li>Sum hovered delta values for folders #781</li>\n</ul>\n<h2>[1.40.0] - 2019-11-22</h2>\n<h3>Changed</h3>\n<ul>\n<li>Replaced Blacklist Hide with Flatten option #691</li>\n<li>Flattened buildings are not hidden by default #691</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Bump @types/three from 0.89.12 to 0.103.2 in /visualization #453</li>\n<li>Bump angularjs-slider from 6.5.1 to 7.0.0 in /visualization #454</li>\n<li>Bump webpack from 3.12.0 to 4.41.2 in /visualization #436</li>\n<li>[Security] Bump angular from 1.7.7 to 1.7.9 in /visualization #800</li>\n</ul>\n<h2>[1.39.0] - 2019-11-15</h2>\n<h3>Added</h3>\n<ul>\n<li>Progress indicator for SonarImporter #544</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>New style for hovered metric values #696</li>\n<li>Redesigned slider labels in ribbonBar sections #696</li>\n<li>Shortened ribbonBar sections #696</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Missing pictures and broken links in docs #785</li>\n<li>SCMLogParser is now more resilient to unusual SVN commit messages #763</li>\n</ul>\n<h2>[1.38.1] - 2019-11-13</h2>\n<h3>Added</h3>\n<ul>\n<li>New github-pages https://maibornwolff.github.io/codecharta/</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Sum symbol for hovered metric values only shows for folders #775</li>\n</ul>\n<h2>[1.38.0] - 2019-11-08</h2>\n<h3>Added</h3>\n<ul>\n<li>Temporal coupling edges generated by SCMLogParser #622</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Downloaded files are no longer formatted #679</li>\n<li>Added highly and median coupled files metrics to non-churn metric list of SCMLogParser #622</li>\n<li>Moved nodePathPanel to toolBar and updated style #607</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Removed attributes from downloaded files that should not be there #679</li>\n</ul>\n<h2>[1.37.0] - 2019-10-25</h2>\n<h3>Added</h3>\n<ul>\n<li>Sidebar with information regarding the selected building #527</li>\n<li>Sidebar closes when selected buildings is excluded #748</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Animation to show or hide the legend panel #527</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Expandable detail panel in lower left corner #527</li>\n<li>Removed option to maximize/minimize detail panel #527</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Autofocus and label size for focused nodes #747</li>\n<li>Selected buildings stays selected when settings are changed #748</li>\n<li>IllegalStateException when scanning single file in SourceCodeParser #573</li>\n<li>SourceCodeParser places files in the project root correctly into the hierarchy #574</li>\n</ul>\n<h2>[1.36.0] - 2019-10-18</h2>\n<h3>Changed</h3>\n<ul>\n<li>Open and close the ribbonBar sections independently with an updated animation</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Camera is now resetted correctly, when unfocusing #634</li>\n<li>Inputs of Color Range Slider now waits a second before it commits its values #676</li>\n<li>Fixed root folder name in TreeView after new map after loading new map #649</li>\n<li>Increased size of ribbonBar for big screens #644</li>\n<li>File-Extension-Bar will not display excluded nodes anymore #725</li>\n<li>Sanitize input for shelljs #600</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump jacoco from 0.8.1 to 0.8.4 in /analysis</li>\n</ul>\n<h2>[1.35.0] - 2019-10-04</h2>\n<h3>Added</h3>\n<ul>\n<li>Checkbox in global Settings for disabling camera reset, when new map is loaded #685</li>\n<li>Pipe support for SourceCodeParser #716</li>\n<li>Pipe support for SCMLogParser #717</li>\n<li>Pipe support for SonarImporter #715</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Exclude and Hide options are disabled for empty and already existing search patterns #654</li>\n</ul>\n<h2>[1.34.0] - 2019-09-20</h2>\n<h3>Added</h3>\n<ul>\n<li>Tokei Importer #538</li>\n<li>Prominent Notice that we use Sonar-jar #713</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump kotlin-reflect from 1.3.41 to 1.3.50 in /analysis</li>\n<li>Bump json from 20180813 to 20190722 in /analysis</li>\n<li>Bump rxjava from 2.2.9 to 2.2.12 in /analysis</li>\n<li>Bump assertj-core from 3.12.2 to 3.13.2 in /analysis</li>\n<li>Bump sonar-java-plugin from 5.12.1.17771 to 5.14.0.18788 in /analysis</li>\n</ul>\n<h2>[1.33.0] - 2019-09-10</h2>\n<h3>Added</h3>\n<ul>\n<li>Edge Previews (Palm-Tree-Effect) #529</li>\n<li>Dropdown to select Edge Metric, including Edge Counter #529</li>\n<li>Edge Metric settings for Edge Height, Number of Previews & show only building with Edges #529</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Edge Visualization to better distinguish between incoming and outgoing edges #529</li>\n<li>Distribution metric is by default the same as area metric #689</li>\n<li>MapTreeView below searchBar opens the first level by default #690</li>\n<li>Focus metric search when opening metricChooser #693</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Edge Options in Context menu #529</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>SourceCodeParser now skips custom metrics for files, if the syntax tree cannot be created</li>\n<li>Nodes with color metric equals 0 are colored correct again #677</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>[Security] Bump mixin-deep from 1.3.1 to 1.3.2 in /visualization</li>\n</ul>\n<h2>[1.32.0] - 2019-08-09</h2>\n<h3>Added</h3>\n<ul>\n<li>Search for metrics and an indicator for the highest value in dropdown #575</li>\n<li>Button to enable PresentationMode that uses Flashlight-Hovering #576</li>\n<li>Clarifying information which file is which in the file bar when in delta mode #615</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Replaced Scenario dropdown with button on the left of the metric sections #628</li>\n</ul>\n<h2>[1.31.0] - 2019-08-02</h2>\n<h3>Added</h3>\n<ul>\n<li>New Metric in SourceCodeParser: Maximum-Nesting-Level #659</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Label hight adjustment now matches scaling of map #594</li>\n<li>SCMLogParser now guesses the input file encoding #614</li>\n</ul>\n<h2>[1.30.0] - 2019-07-26</h2>\n<h3>Added</h3>\n<ul>\n<li>New Search Bar #526</li>\n<li>Number of Renames Metric to SCMLogParser #621</li>\n<li>Age In Weeks Metric for SCMLogParser #620</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>ToolBar now shows partially cut-off controls if the window is too small #582</li>\n<li>Position of the legendPanel was moved to the bottom-right corner #633</li>\n<li>RibbonBar only opens the three metric section</li>\n<li>Moved Scenario-select to the right in order to use less space</li>\n<li>Moved loading-gif from ribbonBar to toolBar</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>RibbonBar toggle button</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>FileExtensionBar height to not show a bottom-margin in Chrome</li>\n<li>PointerEvents not being propagated when RibbonBar was extended</li>\n<li>Reduced memory usage of SCMLogParser to avoid OutOfMemory Exception #631</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>[Security] Bump lodash.mergewith from 4.6.1 to 4.6.2 in /visualization</li>\n<li>[Security] Bump lodash from 4.17.11 to 4.17.13 in /visualization</li>\n<li>[Security] Bump fstream from 1.0.11 to 1.0.12 in /visualization</li>\n</ul>\n<h2>[1.29.0] - 2019-07-12</h2>\n<h3>Changed</h3>\n<ul>\n<li>Moved Button to reset the map to the center next to the view-cube #606</li>\n<li>Moved FileExtensionBar #527</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Burger Menu / SideNav #526</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Colors in File-Extension-Bar will be displayed in MS Edge and Standlone now #584</li>\n</ul>\n<h2>[1.28.0] - 2019-06-28</h2>\n<h3>Added</h3>\n<ul>\n<li>Releasing will now remind the developer to manually add the release notes #533</li>\n<li>StructureModifier to remove and move nodes and set root of projects #547 / #181</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>More informative log messages regarding the success of project merging #547</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Release Notes are not generated and added automatically to a release #533</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Margin will now be set correctly depending on whether dynamicMargin is enabled or not #602</li>\n</ul>\n<h2>[1.27.0] - 2019-06-25</h2>\n<h3>Added</h3>\n<ul>\n<li>Automatically generates release notes from changelog and appends it to release #533</li>\n<li>Adds global settings-menu with settings from options panel and weblinks #528</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Moved File Settings from Ribbon Bar to new File Setting Bar #525</li>\n<li>Rename sample file codemap-nodes #587</li>\n<li>Hide checkbox to select white-positive-buildings in delta state #345</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Removes Options panel from sidebar #528</li>\n<li>Removes Weblinks panel from sidebar #528</li>\n<li>Removed URL-parameter info from sidebar #525</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Unary Metric will no longer be auto-selected when a new map is loaded #579</li>\n</ul>\n<h2>[1.26.0] - 2019-06-14</h2>\n<h3>Added</h3>\n<ul>\n<li>FileExtensionBar to show file-distribution of chosen metric #495</li>\n<li>sum icon is now displayed on the left of the metric value #364</li>\n<li>Added Pop-up dialog before downloading file to set filename and see what data will be stored #523</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fix set default ColorRange when resetting color section #560</li>\n</ul>\n<h2>[1.25.1] - 2019-05-30</h2>\n<h3>Added</h3>\n<ul>\n<li>SVN log parser keeps track of renaming of files for metric calculation #542</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Entries with renaming information in SVN logs are attributed to correct file #542</li>\n<li>Unary metric will no longer be removed from the MetricChooser-Dropdown when a folder was excluded or hidden #548</li>\n<li>Changing margin and then file or mode will no longer freeze the application #524</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>[Security] Bump tar from 2.2.1 to 2.2.2 in /visualization</li>\n</ul>\n<h2>[1.25.0] - 2019-05-17</h2>\n<h3>Added</h3>\n<ul>\n<li>Added SonarJava to Source code parser #343</li>\n<li>Added exclude and defaultExclude options to SourceCodeParser #508</li>\n<li>Show loading-gif in ribbonBar when rerendering map</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Using Sonar Plugins for Source code parser, giving the Sonar Metrics #343</li>\n<li>Use debounced settings update instead of throttled</li>\n<li>Filename of downloaded file now contains time #484</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixed issue with too long line in ccsh.bat #506</li>\n<li>Prevent downloaded files from having multiple Timestamps #484</li>\n<li>Do not show loadingGif when cancelling the fileChooser #498</li>\n<li>Excluding a building now updates the maximum value of colorRange #355</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump angular-material from 1.1.9 to 1.1.14 in /visualization</li>\n<li>[Security] Bump jquery from 3.3.1 to 3.4.0 in /visualization</li>\n</ul>\n<h2>[1.24.0] - 2019-04-23</h2>\n<h3>Removed</h3>\n<ul>\n<li>Settings as URL parameters #470</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixed issue with trailing slash in URL parameter of SonarImporter #356</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump d3 from 4.13.0 to 5.9.2 in /visualization</li>\n<li>Bump sinon from 4.5.0 to 7.3.1 in /visualization</li>\n</ul>\n<h2>[1.23.0] - 2019-03-22</h2>\n<h3>Added</h3>\n<ul>\n<li>Project Name can be specified for merge filter #394</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Throw a MergeException if project names do not match in MergeFilter #394</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Excluded buildings are no longer used for aggregated metric calculation #352</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump browser-sync-webpack-plugin from 1.2.0 to 2.2.2 in /visualization</li>\n<li>Bump @types/node from 8.10.19 to 11.11.3 in /visualization</li>\n<li>Bump html-webpack-plugin from 2.30.1 to 3.2.0 in /visualization</li>\n<li>Bump load-grunt-tasks from 3.5.2 to 4.0.0 in /visualization #444</li>\n<li>Bump ajv from 5.5.2 to 6.10.0 in /visualization #447</li>\n<li>Bump resolve-url-loader from 2.3.0 to 3.0.1 in /visualization #448</li>\n</ul>\n<h2>[1.22.0] - 2019-03-15</h2>\n<h3>Added</h3>\n<ul>\n<li>Added buttons to select all/none/inversion of revisions/maps in multiple mode #391</li>\n<li>Merge filter can merge all files of folders #392</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixed bug that code map was not re-loaded when changing from multiple to single revision mode #396</li>\n<li>Fixed missing apiVersion in aggregated map #398</li>\n<li>Input Fields of color sliders adjust width according to content #409</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump nouislider from 11.1.0 to 13.1.1 in /visualization</li>\n<li>Bump typescript from 2.7.2 to 3.3.3333 in /visualization</li>\n<li>Bump @types/d3 from 4.13.0 to 5.7.1 in /visualization</li>\n</ul>\n<h2>[1.21.2] - 2019-02-26</h2>\n<h3>Added</h3>\n<ul>\n<li>When entering Multiple Mode, all Maps/revisions are preselected</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixing non-existent metric aggregation on root-level when using multiple Files</li>\n</ul>\n<h2>[1.21.1] - 2019-02-22</h2>\n<h3>Added</h3>\n<ul>\n<li>Hovering a node in the map also hovers it in the tree view #351</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixing sync between treeview hovering and map hovering #351</li>\n<li>Folders can no longer be colored in the CodeMap or TreeView #359</li>\n</ul>\n<h2>[1.21.0] - 2019-02-16</h2>\n<h3>Added</h3>\n<ul>\n<li>Color searched node names green in TreeView #225</li>\n<li>Add option buttons (three dots) in TreeViewSearch to <code>Hide</code> or <code>Exclude</code> matching nodes #298</li>\n<li>Show blacklist entry counter in blacklistPanel header #298</li>\n<li>Option checkbox 'Hide Flattened Buildings' #225</li>\n<li>Hide/Flatten non-searched buildings #225</li>\n<li>Hide/Flatten all buildings, if searchPattern can't find any matching nodes #225</li>\n<li>Show maxValue of each metric in metricChooser select list #204</li>\n<li>Colored color-slider inside the RibbonBar #318</li>\n<li>Option to color positive buildings white #311</li>\n<li>Clicking the ribbonBar section-titles toggles the ribbonBar #324</li>\n<li>View-Cube displayed in top right corner #274</li>\n<li>Adding prettier formatter</li>\n<li>Adapt colorRange when changing colorMetric #330</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Update TreeView filter with search field #225</li>\n<li>Use 'gitignore' style matching in TreeViewSearch #225</li>\n<li>Reorder <code>Focus</code>, <code>Hide</code> and <code>Exclude</code> buttons in nodeContextMenu #298</li>\n<li>Reorder sidebarPanels (BlacklistPanel beneath TreeViewSearchPanel) #298</li>\n<li>Use <code>fa-ban</code>-icon as symbols for blacklistPanel (instead of <code>fa-list</code>) #298</li>\n<li>Use <code>fa-ban</code>-icon as symbols for blacklistType <code>Exclude</code> (instead of <code>fa-times</code>) #298</li>\n<li>Label size keeps readable for large maps or a high distance between camera and map #237</li>\n<li>updated dependencies to fix vulnerabilities</li>\n<li>Scenarios only update settings which exist in Scenario and not all #224</li>\n<li>MergeFilter to merge unique blacklist entries #275</li>\n<li>MergeFilter to only merge unique attributeType entries #275</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Remove invertHeight checkbox in delta-view #306</li>\n<li>Remove option to add blacklist entries from inside the blacklistPanel #298</li>\n<li>Remove statistic functions in Experimental panel #308</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>CodeMap does not move anymore when navigating in text-fields #307</li>\n<li>Merge blacklist in multipleFile view and convert paths #275</li>\n<li>Show logo in NW.js standalone application #233</li>\n</ul>\n<h2>[1.20.1] - 2018-12-19</h2>\n<p>Fixed release issues.</p>\n<h2>[1.20.0] - 2018-12-19</h2>\n<h3>Added</h3>\n<ul>\n<li>button to unfocus node</li>\n<li>NodeContextMenu: Option to only hide dependent edges</li>\n<li>plop support</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Renaming 'isolate node' to 'focus node'</li>\n<li>Focusing a node does not remove the blacklist items of type Hide</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>NodeContextMenu: Option to 'show all' nodes, which used to unhide all nodes</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Reshow hidden nodes from Treeview or Blacklist</li>\n</ul>\n<h2>[1.19.0] - 2018-11-02</h2>\n<h3>Added</h3>\n<ul>\n<li>Deleted files in delta view use their previous area value in order to be visible #254</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Buildings in the delta view are not colored correctly #253</li>\n<li>Reset Button in RibbonBar to reset 'Invert Colors' #255</li>\n<li>Remove lag of 'Invert Color' checkboxes, when selecting single/delta mode #255</li>\n</ul>\n<h2>[1.18.1] - 2018-10-31</h2>\n<p>Fixed release issues</p>\n<h2>[1.18.0] - 2018-10-29</h2>\n<h3>Added</h3>\n<ul>\n<li>Integration with Jasome through JasomeImporter #245</li>\n<li>URL parameter 'mode' with the values Single, Multiple or Delta</li>\n<li>Blacklist to persist excluded or hidden nodes #205</li>\n<li>Option to exclude nodes in nodeContextMenu #205</li>\n<li>BlacklistPanel in SettingsSidebar to manage blacklist #205</li>\n<li>Save-Button to download current CodeMap #205</li>\n<li>Publishing visualization on Docker Hub #252</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>No longer fat jar of every subcomponent of analysis, baked into ccsh</li>\n<li>Changed simple syserr write to logger call for analysis #243</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>URL parameter 'delta' does not exist anymore</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Show delta of CodeMap when URL parameter mode=delta is set</li>\n</ul>\n<h2>[1.17.0] - 2018-09-28</h2>\n<h3>Changed</h3>\n<ul>\n<li>Invert delta colors moved from color to heigh metric column in ribbon bar #220</li>\n<li>Delta value now as kindOfMap shown #220</li>\n<li>Aggreate maps as multiple rename #220</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Single/delta buttons now correctly activated when delta in ulr shown #220</li>\n</ul>\n<h2>[1.17.0] - 2018-09-21</h2>\n<h3>Added</h3>\n<ul>\n<li>CodeMaatImport for temporal coupling dependencies #172</li>\n<li>EdgeFilter to aggregate edge-attributes as node-attributes #222</li>\n<li>Option to show and hide dependent edges from node-context-menu #218</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>MergeFilter merges edges #172</li>\n</ul>\n<h2>[1.16.2] - 2018-09-10</h2>\n<h3>Fixed</h3>\n<ul>\n<li>missing event in firefox #232</li>\n</ul>\n<h2>[1.16.1] - 2018-08-31</h2>\n<h3>Added</h3>\n<ul>\n<li>gitlab + dotnet manual</li>\n</ul>\n<h2>[1.16.0] - 2018-08-31</h2>\n<h3>Added</h3>\n<ul>\n<li>add the option to add multiple files via url parameter (e.g. ?file=a&file=b...)</li>\n</ul>\n<h2>[1.15.1] - 2018-08-13</h2>\n<p>Fixed release issues</p>\n<h2>[1.15.0] - 2018-08-13</h2>\n<h3>Added</h3>\n<ul>\n<li>e2e tests are running in CI Environment (headless)</li>\n<li>pupeteer as e2e test framework</li>\n<li>Show names of marked packages in legend</li>\n<li>Added a source code importer that can analyse rloc,mcc for java source code</li>\n<li>keep settings when the user changes a file</li>\n<li>Added option to set white background</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>cypress</li>\n</ul>\n<h2>[1.14.2] - 2018-07-16</h2>\n<h3>Changed</h3>\n<ul>\n<li>Changed folder detail metrics from mean to sum</li>\n</ul>\n<h2>[1.14.1] - 2018-07-13</h2>\n<p>Fixed release issues</p>\n<h2>[1.14.0] - 2018-07-13</h2>\n<h3>Added</h3>\n<ul>\n<li>Added UnderstandImporter to Analysis</li>\n<li>Packages can be highlighted in different colors #152</li>\n<li>Adding a context menu with highlighting colors and convenience methods for the tree view and 3D view #155</li>\n<li>Folders and files to highlight can be described in the cc.json #165</li>\n<li>Dynamic/automatic margin computing de/activated by tick</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Details panel: using the sum of the childrens metrics instead of the mean value</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Display buttons do not trigger map changes #185</li>\n<li>Flickering surfaces when zooming out</li>\n</ul>\n<h2>[1.13.0] - 2018-06-08</h2>\n<h3>Added</h3>\n<ul>\n<li>Layout switcher #141</li>\n<li>Added CrococosmoImporter to Analysis</li>\n<li>Added type, dirs, name to CSVExporter</li>\n<li>Invert height of building checkbox</li>\n<li>Aggregate multiple maps in visualization #110</li>\n<li>Auto Focus selected map part</li>\n<li>Timmer added to applySettings in SettingsService</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Crococosmo xml files will now generate a cc.json file for each version</li>\n<li>Suppressing ARIA warnings</li>\n<li>Simplified gradle structure of analysis part</li>\n<li>Deltas added in the metric quick access panel #138</li>\n<li>Ticks and ResetValue Buttons call to onSettingsChange to avoid applySettings timer</li>\n<li>compacting empty middle packages #150</li>\n<li>Detail panel minimized by default</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>filter by regex shows parent nodes #116</li>\n<li>typo in scss file</li>\n</ul>\n<h2>[1.12.0] - 2018-04-27</h2>\n<h3>Added</h3>\n<ul>\n<li>horizontal quick access metric chooser</li>\n<li>Link behind filepath in detailPanel #84</li>\n<li>Double click event-handler on Buildings #84</li>\n<li>Detail Panel can be minimized and maximized</li>\n<li>Settings option to minimize Detail Panel</li>\n<li>cypress as an e2e test runner</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>metric details from legend</li>\n<li>metric chooser from settings panel</li>\n</ul>\n<h2>[1.11.2] - 2018-04-13</h2>\n<h3>Fixed</h3>\n<ul>\n<li>a sonar importer bug which prevented the importer to fetch the last page #122</li>\n</ul>\n<h2>[1.11.1] - 2018-04-11</h2>\n<p>Fixed release issues</p>\n<h2>[1.11.0] - 2018-04-11</h2>\n<h3>Added</h3>\n<ul>\n<li>SASS support</li>\n<li>simple regex filter</li>\n<li>Reset Button</li>\n<li>Dialog Service replaces console log calls and window.alert calls</li>\n<li>linking tree view and map hover</li>\n<li>auto fit scene button</li>\n<li>anugularJS material</li>\n<li>Scenarios are now filtered by compatibility for the given map</li>\n<li>Link in visualization #84</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>materialize-css</li>\n<li>grunt</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>less flickering and artifacts</li>\n</ul>\n<h2>[1.10.0] - 2018-03-22</h2>\n<h3>Changed</h3>\n<ul>\n<li>Clean up UI #86</li>\n<li>Updated analysis dependencies</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Delta View shows Deltas of itself as non-trivial if nodes have same name #89: Compare deltas by path not name</li>\n<li>Delta calculation performance boost #91</li>\n<li>Problems when intermediate nodes missed metrics #92</li>\n<li>removed unnecessary calculations</li>\n<li>removed bug in SonarImporter that slowed up performance and missed out multiple metrics</li>\n<li>minor bugs</li>\n</ul>\n<h2>[1.9.3] - 2018-02-23</h2>\n<h3>Changed</h3>\n<ul>\n<li>sorting treeview by folders and names</li>\n</ul>\n<h2>[1.9.2] - 2018-02-20</h2>\n<h3>Added</h3>\n<ul>\n<li>added preliminary CSVExporter for visualisation data</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>padding rendering</li>\n<li>minimal building height is 1 to prevent clipping issues</li>\n<li>fallback values for visualization when no metric is available (area = 1, height = 1, color = grey). Data in data structure will not be changed.</li>\n</ul>\n<h2>[1.9.1] - 2018-02-20</h2>\n<h3>Fixed</h3>\n<ul>\n<li>detail panel bug fix</li>\n</ul>\n<h2>[1.9.0] - 2018-02-20</h2>\n<h3>Changed</h3>\n<ul>\n<li>moved to unscoped npm packages</li>\n</ul>\n<h2>[1.8.2] - 2018-02-20</h2>\n<h3>Changed</h3>\n<ul>\n<li>detail panel background is white now. better visibility</li>\n</ul>\n<h2>[1.8.1] - 2018-02-20</h2>\n<h3>Changed</h3>\n<ul>\n<li>revision chooser moved to settings panel and uses now understandable dropdowns instead of links. Part of the #82 proposals</li>\n</ul>\n<h2>[1.8.0] - 2018-02-20</h2>\n<h3>Added</h3>\n<ul>\n<li>Experimental dependency support</li>\n<li>loading indicator</li>\n<li>file path to detail panel</li>\n<li>collapsible tree view and visibility/isolation per node toggles</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>added a ray-aabb intersection test before precise testing. Less time is spent in intersection methods.</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>fixed a minor bug</li>\n<li>canvas mouse event listener are now limited to the canvas dom element. UI events will not trigger the canvas listeners anymore</li>\n<li>canvas mouse events distinguish now between click and drag. Dragging does not reset selection anymore</li>\n<li>slider input #64</li>\n<li>rz slider initialization bug</li>\n<li>increasing test coverage</li>\n<li>deltas where calculated on map loading even though, they were disabled</li>\n</ul>\n<h2>[1.7.2] - 2018-02-02</h2>\n<h3>Fixed</h3>\n<ul>\n<li>url to homepage</li>\n<li>analysis package</li>\n</ul>\n<h2>[1.7.1] - 2018-02-02</h2>\n<p>Fixed release issues</p>\n<h2>[1.7.0] - 2018-02-02</h2>\n<h3>Changed</h3>\n<ul>\n<li>npm pachage scoped to @maibornwolff</li>\n<li>Defined further scenarios via json file</li>\n<li>Added description for metrics and scenarios</li>\n<li>using fixed point values in detail panel (ui) to truncate infinite or long decimals</li>\n<li>folders now use the mean attributes of their buildings(leaves)</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Bugfix: detail panel should be cleared before setting new details else old values may survive</li>\n</ul>\n<h2>[1.6.7] - 2018-02-01</h2>\n<p>Fixed release issues</p>\n<h2>[1.6.6] - 2018-02-01</h2>\n<h3>Added</h3>\n<ul>\n<li>added anonymous git log generator anongit</li>\n<li>browser demo shows codecharta-visualization sonar analysis</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>rewrote command line interface</li>\n<li>linking ccsh to bin/ccsh will be deleted later</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>No underscore for scenarios in tooltips #71</li>\n</ul>\n<h2>[1.6.5] - 2018-01-30</h2>\n<p>Fixed release issues</p>\n<h2>[1.6.4] - 2018-01-30</h2>\n<h3>Fixed</h3>\n<ul>\n<li>fixed broken SonarImporter due to jdk9 migration</li>\n</ul>\n<h2>[1.6.3] - 2018-01-26</h2>\n<h3>Added</h3>\n<ul>\n<li>added npm publish for analysis</li>\n<li>simple release script for automatic changelog updates, commits, tags, version bumps</li>\n</ul>\n<h2>[1.6.2] - 2018-01-25</h2>\n<h3>Added</h3>\n<ul>\n<li>added support for git log --raw and git log --numstat --raw</li>\n<li>added support for git log --numstat and codechurn</li>\n<li>added support for renames in SCMLogParser for git log --name-status</li>\n<li>added support for renames in SCMLogParser for git log --numstat, git log --raw and git log --numstat --raw</li>\n<li>added new SCM experimental metrics range_of_weeks_with_commits and successive_weeks_of_commits</li>\n<li>the file origin of a node is displayed in the details now</li>\n<li>sonarqube analysis on CI build</li>\n<li>npm publish support in visualization</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Deltas are no longer experimental</li>\n<li>two selected delta maps now merge their nodes correctly. The map where\na node was missing get's a copy of this node with metrics=0.\nFile additions/deletions are therefore only visible when areaMetric is\nunary and deltas are activated.</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>delta display bug for heights</li>\n<li>going back from delta view now correctly removes deltas from node data</li>\n<li>Delta shown although not in delta mode #60</li>\n<li>Allow inversion of delta colors #57</li>\n<li>npm binary error</li>\n</ul>\n<h2>[1.5.2] - 2018-01-04</h2>\n<h3>Changed</h3>\n<ul>\n<li>scaling slider now has steps of 0.1. This allows the user to select precise values like 2.0</li>\n<li>updated jdk to jdk9</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Opening the same file a second time does not work #53</li>\n<li>added missing require declaration</li>\n<li>added glsl loader in testing environment</li>\n<li>Native Application support is bugged while building in Travis CI #48</li>\n</ul>\n<h2>[1.5.1] - 2017-11-14</h2>\n<h3>Added</h3>\n<ul>\n<li>command line parameter to toggle \"authors\" attribute in SCMLogParser</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>when passing a file through the \"file\" parameter in the URL, the map now renders correctly</li>\n</ul>\n<h2>[1.5.0] - 2017-10-24</h2>\n<h3>Added</h3>\n<ul>\n<li>experimental delta functionality</li>\n<li>loading multiple maps</li>\n<li>experimental margin slider</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>faster rendering</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>nwjs packages and native apps due to a bug</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>using color metric instead of height metric for color range slider ceil</li>\n</ul>\n<h2>[1.4.0] - 2017-09-14</h2>\n<h3>Added</h3>\n<ul>\n<li>Typescript support</li>\n<li>Browsersync</li>\n<li>added advanced merging strategy \"leaf\" in MergeFilter</li>\n<li>advanced merging with restructuring</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Browserify replaced with Webpack</li>\n<li>Better debugging</li>\n<li>Karma instead of Mocha</li>\n</ul>\n<h2>[1.3.2] - 2017-08-18</h2>\n<h3>Added</h3>\n<ul>\n<li>add slider controls for color thresholds #19</li>\n<li>Added additional structuring in SonarImporter for multi-module projects</li>\n<li>button to generate current url parameters</li>\n<li>camera position is now a setting (e.g. in scenarios or url parameters)</li>\n<li>margin slider: make it easier to find out to which package/folder a class belongs #20</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>better url parameter resolution (nested parameters are handled correctly)</li>\n<li>changed hover color. Allows better distinction between hover and select</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>obsolete helper grid</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>changing display or color settings resets scaling #18</li>\n<li>scenario description #32</li>\n<li>Scaling should not scale the labels #35</li>\n</ul>\n<h2>[1.3.1] - 2017-07-05</h2>\n<h3>Fixed</h3>\n<ul>\n<li>Prevented override of URL-parameters by default scenario</li>\n</ul>\n<h2>[1.3.0] - 2017-07-05</h2>\n<h3>Added</h3>\n<ul>\n<li>Adding simple merge functionality for multiple json files</li>\n<li>Added CSVImporter</li>\n<li>Added Translation for SonarQube metrics</li>\n<li>Added descriptions for metrics</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Changed uppercase metrics, e.g. RLOC, to lowercase metrics</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Simple cc.json does not display anything #17</li>\n</ul>\n<h2>[1.2.0] - 2017-06-19</h2>\n<h3>Added</h3>\n<ul>\n<li>Adding Labels and UI</li>\n<li>Support for links to source page of SonarQube in sonarimporter</li>\n<li>Added SCMLogParser</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>GitHub Issue: legend is wrong #21</li>\n</ul>\n<h2>[1.1.5] - 2017-05-31</h2>\n<h3>Fixed</h3>\n<ul>\n<li>Wrong version numbers in analysis part</li>\n</ul>\n<h2>[1.1.4] - 2017-05-26</h2>\n<h3>Added</h3>\n<ul>\n<li>Scenarios and default scenario</li>\n<li>Translation API for Metrics</li>\n<li>Metric tooltips in dropdown</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>GitHub Issue: Sonarimporter crashes with null pointer exception when there is a component without path. #13</li>\n</ul>\n<h2>[1.1.3] - 2017-05-01</h2>\n<h3>Added</h3>\n<ul>\n<li>Support for SonarQube Measures-API</li>\n<li>Error logging for sonarqube errors</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Standard Sonar metric is now complexity,ncloc,functions,duplicated_lines,classes,blocker_violations,generated_lines,bugs,commented_out_code_lines,lines,violations,comment_lines,duplicated_blocks</li>\n</ul>\n<h2>[1.1.2] - 2017-04-28</h2>\n<h3>Added</h3>\n<ul>\n<li>Translation API for Metrics</li>\n</ul>\n<h2>[1.1.1] - 2017-04-07</h2>\n<h3>Fixed</h3>\n<ul>\n<li>GitHub Issue: Flickering surfaces #3</li>\n<li>GitHub Issue: Unable to install due to readlink error on macOS #4</li>\n</ul>\n<h2>[1.1.0] - 2017-03-27</h2>\n<h3>Added</h3>\n<ul>\n<li>SourceMonitorImporter for importing projects from SourceMonitor.</li>\n</ul>\n<h2>[1.0.0] - 2017-03-17</h2>\n<h3>Added</h3>\n<ul>\n<li>SonarImporter for importing projects from SonarQube.</li>\n<li>ValidationTool for validating an existing json file.</li>\n</ul>\n";
|
|
242740
|
+
var code = "<h1>Change Log</h1>\n<p>All notable changes to this project will be documented in this file.</p>\n<p>The format is based on <a href=\"http://keepachangelog.com/\">Keep a Changelog</a>\nand this project adheres to <a href=\"http://semver.org/\">Semantic Versioning</a></p>\n<h2>[unreleased] (Added 🚀 | Changed | Removed 🗑 | Fixed 🐞 | Chore 👨💻 👩💻)</h2>\n<h2>[1.87.0] - 2022-01-11</h2>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Migrate <code>unfocus-button-component</code> to Angular.</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Remove suspicious metrics from custom map configurations <a href=\"https://github.com/MaibornWolff/codecharta/pull/2564\">#2564</a>.</li>\n<li>Add 'show/hide non-applicable CustomConfigs' button to Custom Configs menu <a href=\"https://github.com/MaibornWolff/codecharta/pull/2591\">#2591</a>.</li>\n</ul>\n<h2>[1.86.0] - 2021-12-20</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Add 3D export feature for 3D printing <a href=\"https://github.com/MaibornWolff/codecharta/pull/2561\">#2561</a>. \n \n</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Replace all color pickers in the context of ongoing Angular migration <a href=\"https://github.com/MaibornWolff/codecharta/pull/2560\">#2560</a>.</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix showing names of custom configs properly <a href=\"https://github.com/MaibornWolff/codecharta/pull/2557\">#2557</a>.</li>\n<li>Fix minor memory leak in context menu for code map buildings <a href=\"https://github.com/MaibornWolff/codecharta/issues/2565\">#2565</a>.</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Migrate legend panel to Angular <a href=\"https://github.com/MaibornWolff/codecharta/pull/2560\">#2560</a>.</li>\n</ul>\n<h2>[1.85.0] - 2021-12-13</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix delta values of secondary metrics not shown in delta mode within attribute side bar <a href=\"https://github.com/MaibornWolff/codecharta/issues/2539\">#2539</a>.</li>\n<li>Use icon tag instead of font awesome icon <a href=\"https://github.com/MaibornWolff/codecharta/pull/2537\">#2537</a>.</li>\n<li>Rename text for placeholder of metric chooser <a href=\"https://github.com/MaibornWolff/codecharta/pull/2547\">#2547</a></li>\n<li>Fix attribute type selector of primary edge metric not shown <a href=\"https://github.com/MaibornWolff/codecharta/issues/2528\">#2528</a>.</li>\n<li>Identical files and files with identical file names but different hashes can be loaded <a href=\"https://github.com/MaibornWolff/codecharta/pull/2548\">#2548</a></li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Remove <code>secondaryMetrics</code> from store and remove <code>secondaryMetrics.service</code> as the data can be derived from selected node <a href=\"https://github.com/MaibornWolff/codecharta/pull/2527\">#2527</a>.</li>\n<li>Migrate <code>attribute-side-bar-component</code> to Angular <a href=\"https://github.com/MaibornWolff/codecharta/pull/2527\">#2527</a>.</li>\n<li>Switch from Webpack 4 Loaders to Asset Module to load icons properly with css-loader 6.x <a href=\"https://github.com/MaibornWolff/codecharta/pull/2542\">#2542</a>.</li>\n</ul>\n<h3>Removed 🗑</h3>\n<ul>\n<li>Remove notification dialog when deleting a custom config <a href=\"https://github.com/MaibornWolff/codecharta/pull/2553\">#2553</a></li>\n</ul>\n<h2>[1.84.1] - 2021-11-29</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix compressed files not being loaded (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2525\">#2524</a>)</li>\n</ul>\n<h2>[1.84.0] - 2021-11-22</h2>\n<h3>Changed</h3>\n<ul>\n<li>Improved the UI and usability of the Suspicious Metrics Feature (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2494\">#2376</a>) \n<ul>\n<li>The Metrics and the Analysis are now split in two menus \n</li>\n<li>The Suspicious Metrics are now sorted with the Very High Risk on top \n</li>\n<li>The bar in the analysis shows the percentages \n</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix showing labels when weighted gradient on yellow buildings in color metric options are enabled (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2511\">#2511</a>)</li>\n<li>Fix rounding of the sum of percentages in risk profile (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2516\">#2393</a>)</li>\n<li>Fix legend panel not having a background (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2510\">#2422</a>)</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Remove <code>nodeSearch.service.ts</code> and <code>searchedNodePaths</code> from store as they can be derived from <code>searchPattern</code> (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2495\">#2495</a>).</li>\n<li>Refactor where metric data are calculated (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2514\">#2514</a>).</li>\n<li>Migrate <code>attribute-type-selector-component</code> to Angular (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2519\">#2519</a>).</li>\n</ul>\n<h2>[1.83.1] - 2021-11-10</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix loading files from URL in Web Demo (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2494\">#2494</a>)</li>\n</ul>\n<h2>[1.83.0] - 2021-11-09</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix unwanted calculations of suspicious metrics when experimental features are disabled (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2471\">#2471</a>)</li>\n<li>Fix UI issues in the configuration panel (<a href=\"https://github.com/maibornwolff/codecharta/issues/2322\">#2322</a>)</li>\n<li>Fix tooltip of sorting order button in map tree view showing wrong sorting order (<a href=\"https://github.com/maibornwolff/codecharta/issues/2473\">#2473</a>)</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Calculate MD5 checksum when generating .cc.json files (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2450\">#2411</a>)</li>\n</ul>\n<h2>[1.82.0] - 2021-10-18</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix what's new section including the last opened version (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2453\">#2447</a>)</li>\n<li>Fix unfocus button text not showing correctly (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2439\">#2439</a>)</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Folders in the Folder structure view of the top left come now always before any files, regardless of the sort order.</li>\n</ul>\n<h2>[1.81.0] - 2021-10-11</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix color picker not being usable (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2439\">#2439</a>)</li>\n<li>Fix Changelog inconsistencies (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2425\">#2425</a>) \n</li>\n<li>Fix memory and performance issues related to drawing labels on floors/folders (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2348\">#2348</a>).</li>\n<li>Hides legend block if label description is not available and adds new metric descriptions (<a href=\"https://github.com/maibornwolff/codecharta/issues/2377\">#2377</a>).</li>\n</ul>\n<h2>[1.80.0] - 2021-10-04</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Adds feature to display building colors as a gradients (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2327\">#2327</a>).\n<ul>\n<li>\"Weighted Gradient\" only mixes colors in a small interval around the preset values.</li>\n<li>\"True Gradient\" mixes colors from the 0 to the highest value, the two preset color range values determine the balance.</li>\n<li>\"Absolute\" represents the old behaviour without gradients. \n</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix broken file/node search #2389</li>\n<li>Fix changelog inconsistencies (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2425\">#2425</a>)</li>\n</ul>\n<h2>[1.79.0] - 2021-09-20</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Add metric descriptions to the frontend and show a translation next to the entry (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2330\">#2330</a>) \n</li>\n<li>An option has been added to the global settings to enable copying screenshots to clipboard instead of saving them in a file (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2326\">#2326</a>) \n</li>\n<li>Add changelog guidelines (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2358\">#2358</a>)</li>\n<li>A changelog dialog with the latest additions to CodeCharta appears on version update (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2342\">#1315</a>) \n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Fix broken method call in screenshot feature.</li>\n<li>Improve changelog entries.</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Changing the background color and remove \"outgoing\" and \"incoming\" edges from the legend, if not applicable (<a href=\"https://github.com/MaibornWolff/codecharta/issues/2330\">#2330</a>)</li>\n<li>Improve the user experience for the AI Feature \"Suspicious Metrics and Risk Profiles\" and enable it for any programming language (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2362\">#2362</a>) \n</li>\n</ul>\n<h2>[1.78.0] - 2021-09-06</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>A changelog dialog with the latest additions to CodeCharta appears on version update (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1315\">#1315</a>)</li>\n<li>Add documentation for SCMLogParserV2 (<a href=\"https://github.com/maibornwolff/codecharta/issues/1349\">#1349</a>)</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Empty temporary label during hovering (<a href=\"https://github.com/maibornwolff/codecharta/issues/2328\">#2328</a>)</li>\n<li>Show the screenshot hotkey in the screenshot title (<a href=\"https://github.com/maibornwolff/codecharta/issues/2323\">#2323</a>)</li>\n<li>Improved rendering performance (<a href=\"https://github.com/MaibornWolff/codecharta/pull/2345\">#2345</a>)</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Update GH-Pages and visualization dependencies (<a href=\"https://github.com/maibornwolff/codecharta/issues/2356\">#2356</a>)</li>\n</ul>\n<h2>[1.77.0] - 2021-07-30</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>The \"Color Metric Options\" panel and \"Legend\" panel display the maximum value of the selected metric instead of infinite. (<a href=\"https://github.com/maibornwolff/codecharta/issues/1520\">#1520</a>)</li>\n<li>Mark color-section as unimportant in delta mode (<a href=\"https://github.com/maibornwolff/codecharta/issues/769\">#769</a>)</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Small ui improvements added. (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1881\">#1881</a>)</li>\n<li>Numbers/Percentages always show in the distribution bar(<a href=\"https://github.com/MaibornWolff/codecharta/issues/1540\">#1540</a>)\n<ul>\n<li>Toggle between percentage and absolute numbers by clicking anywhere on the (expanded) distribution bar.</li>\n<li>The old expanded distribution bar is now accessible through a button.</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>It is no longer possible to exclude all files on the map (<a href=\"https://github.com/MaibornWolff/codecharta/issues/901\">#901</a>)</li>\n</ul>\n<h2>[1.76.0] - 2021-07-13</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Custom metric scenarios which include the 'Color-Metric' (rloc) will now also save any changes made to the color scheme.</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Performance improvements when loading new files. (<a href=\"https://github.com/maibornwolff/codecharta/issues/1312\">#1312</a>)</li>\n</ul>\n<h2>[1.75.0] - 2021-07-05</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Imported files are now compressed by default. Use the -nc parameter to uncompress the files. (<a href=\"https://github.com/maibornwolff/codecharta/issues/1702\">#1702</a>)</li>\n<li>Export the current view as a png image by using \"Ctrl+Alt+S\" or clicking the corresponding button (<a href=\"https://github.com/MaibornWolff/codecharta/issues/674\">#674</a>)</li>\n<li>Show only labels of buildings according to a chosen color (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1347\">#1347</a>)</li>\n<li>New buttons to reset the color hex values and color metric thresholds separately (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1613\">#1613</a>) \n</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Metric aggregations now work as intended and are available from the sidebar when selecting folders (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1953\">#1953</a>)</li>\n<li>Opening new files does no longer remove old ones.\n<ul>\n<li>Already loaded files can be individually removed.</li>\n<li>The 'Multiple' view will select the latest files. \n</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>It is now possible to rotate the map by rotating the view cube (<a href=\"https://github.com/MaibornWolff/codecharta/issues/353\">#353</a>)</li>\n</ul>\n<h2>[1.74.0] - 2021-05-31</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>SonarImport: SonarQube 8.8 support. Older versions are still supported.</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Only show labels for building included in the search</li>\n<li>Color slider not initialized correctly (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1592\">#1592</a>)</li>\n</ul>\n<h2>[1.73.0] - 2021-05-10</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Improve descriptions (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1879\">#1879</a>)\n\n<img src=\"https://user-images.githubusercontent.com/57844849/115393175-b2897b00-a1e1-11eb-8601-d2128f3469a3.png\" alt=\"option dialog\"></li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Excluding in delta mode is broken (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1578\">#1578</a>)\n(Inclusion and exclusion of files using wildcard searches in the flatten and exclude operations)</li>\n<li>Fix labels and lines missing a connection in some cases(<a href=\"https://github.com/MaibornWolff/codecharta/issues/1716\">#1716</a>)</li>\n<li>Ribbons resizing when expanding (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1952\">#1952</a>)</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Fix breaking changes with newest three-js version(<a href=\"https://github.com/MaibornWolff/codecharta/issues/1877\">#1877</a>)</li>\n</ul>\n<h2>[1.72.0] - 2021-04-22</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Hints for Global Settings (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1715\">#1715</a>)</li>\n<li>Indicate total nodes and excluded / flattened nodes in file explorer (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1880\">#1880</a>)</li>\n<li>Add path to node context menu (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1667\">#1667</a>)</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Made the header semi responsive (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1037\">#1037</a>)</li>\n</ul>\n<h2>[1.71.2] - 2021-03-16</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>DevOps pipeline changes</li>\n<li>Fixed web visualization in github</li>\n</ul>\n<h2>[1.71.1] - 2021-03-16</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>DevOps pipeline changes</li>\n</ul>\n<h2>[1.71.0] - 2021-03-16</h2>\n<h3>Changed</h3>\n<ul>\n<li>Disable unready AI function</li>\n<li>Fix linter errors</li>\n<li>Fix editorconfig</li>\n</ul>\n<h2>[1.70.2] - 2021-03-12</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>DevOps pipeline changes</li>\n<li>Project naming for Docker deployment</li>\n</ul>\n<h2>[1.70.1] - 2021-03-12</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>DevOps pipeline changes</li>\n</ul>\n<h2>[1.70.0] - 2021-03-09</h2>\n<h3>Changed</h3>\n<ul>\n<li>Render on demand (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1728\">#1728</a>)</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Memory leaks</li>\n</ul>\n<h2>[1.69.0] - 2021-02-23</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Added WebGL FXAA antialias & PixelRatio Options in order to achieve better resolution on high dpi displays(https://github.com/MaibornWolff/codecharta/pull/1551).\n<img src=\"https://user-images.githubusercontent.com/74670211/106582136-f4404900-6543-11eb-8f5b-5e1ec47457c7.png\" alt=\"option dialog\">\nThere are 4 available modes:\n<ul>\n<li><strong>standard mode</strong>: the pixel density is only applied to the small cube with standard browser aliasing</li>\n<li><strong>pixel ratio without aliasing</strong>: no antialiasing is used</li>\n<li><strong>pixel ration with FXAA</strong>: Nvidia FXAA antialiasing shader is used as an alisaing technique. this has better perfromance the standard browser aliasing aliasing</li>\n<li><strong>pixel ration with MSAA</strong>: this is the best aliasing quality, slower then FXAA.</li>\n</ul>\n</li>\n<li>Added GPU Stats (only in dev mode)</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Unfocus now respects the focus depth (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1099\">#1099</a>)</li>\n<li>Track anonymous usage data also for older CodeCharta API versions and fix some minor bugs.</li>\n</ul>\n<h2>[1.68.0] - 2021-02-08</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>A new experimental feature has been added to track anonymous metadata of a currently loaded map.\n<ul>\n<li>Neither the map name nor file names will be tracked but anonymous metric values and statistics like (average, min, max).</li>\n<li>The tracked data will not be sent to a server yet. Instead, it can be downloaded as a json file in the Global Settings for now.</li>\n<li>It is planned to send the anonymous data to a server in the future, so that we can collect tracking data automatically.</li>\n<li><img src=\"https://user-images.githubusercontent.com/26900540/106896300-ac5f2480-66f1-11eb-8096-246d1733c0ee.png\" alt=\"example of new feature\"></li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Errors occurred in delta mode if names of root folders were different</li>\n<li>Switching maps in delta mode now shows the differences between the maps (<a href=\"https://github.com/maibornwolff/codecharta/issues/1606\">#1606</a>)</li>\n<li>Label over hovered building not shown for height Metric value of zero (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1623\">#1623</a>)</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>CodeChartaStorage class has been introduced to dynamically store values either on disk (standalone version) or in the localStorage (web version). This is the first step to solve <a href=\"https://github.com/MaibornWolff/codecharta/issues/684\">#684</a>.</li>\n</ul>\n<h2>[1.67.0] - 2021-01-26</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>\n<p>Allow opening files from local drive by double clicking on the buildings or clicking on their names (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1314\">#1314</a>)</p>\n<ul>\n<li>Only available in the standalone version!</li>\n<li>files are opened in associated third-party applications</li>\n<li>web-links are opened in a browser window</li>\n</ul>\n</li>\n<li>\n<p>Allow customized color in the node context menu (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1556\">#1556</a>).</p>\n<p><a href=\"https://user-images.githubusercontent.com/3596742/104302048-a007f300-54c8-11eb-86c1-287483884783.png\">!example of new feature #1556</a></p>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>fixed wrong max tree map visibility (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1624\">#1624</a>)</li>\n<li>fixed incorrect label placement on delta maps that share no common nodes (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1686\">#1686</a>)</li>\n</ul>\n<h2>[1.66.0] - 2021-01-18</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Allow color of buildings to be customizable in the ribbon bar and in the legend. Colors of edges are now customizable as well (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1533\">#1533</a>)\n<img src=\"https://user-images.githubusercontent.com/3596742/103547861-3c1c7380-4ea5-11eb-8df2-541caf65b9df.png\" alt=\"example of new feature\"></li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Global settings not reverting to default ones (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1632\">#1632</a>)</li>\n<li>Maximum treemap files shown in squarified node (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1624\">#1624</a>)</li>\n<li>Wrong folder names and colors in legend when using the highlight folder feature (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1555\">#1555</a>)</li>\n<li>Temporary labels are placed at the wrong height for scaled buildings (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1618\">#1618</a>)</li>\n<li>Visible labels will disappear or placed lower for scaled buildings (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1619\">#1619</a>)</li>\n<li>Unnecessary break line for secondary metrics (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1093\">#1093</a>)</li>\n</ul>\n<h2>[1.65.0] - 2020-12-23</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Highlight label while hovering over building, draw a temporary label for hovered buildings that have none (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1529\">#1529</a>)</li>\n<li>Integrated streetlayout (<a href=\"https://github.com/MaibornWolff/codecharta/issues/904\">#904</a>)\n<img src=\"https://user-images.githubusercontent.com/63230711/78872405-87eed900-7a49-11ea-984a-c0ef738779b9.png\" alt=\"cc_street_ccv\">\nIn street layout file nodes are displayed as buildings and directories are displayed as streets. A street layout has the advantage of a more apparent directory structure and stable positioning of nodes after metric changes.\ntwo different Street layout are integrated : - StreetLayout : as described above. - TMStreet : a combination of street layout and squarified layout.</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>The button to see excluded buildings is now merged into the flattened button. Excluded and flattened buildings can now be seen by opening the building with the eye slash icon (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1543\">#1543</a>)</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Height scaling not applied to buildings (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1595\">#1595</a>))</li>\n<li>Fixed multiple label positioning/scaling bugs</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>e2e flaky test (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1322\">#1322</a>)</li>\n</ul>\n<h2>[1.64.0] - 2020-12-15</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>\n<p>Download and upload Custom Configurations is now possible (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1472\">#1472</a>)</p>\n<ul>\n<li>Open the Custom Configs menu in the toolbar on top of the map</li>\n<li>Next to the <code>plus</code> Button you can see two new buttons: Upload and download.\n<ul>\n<li>Download: If you already have added Custom Configs you can download them by clicking the download button.\n<ul>\n<li>Custom Configs which are applicable for the currently selected map(s) will be downloaded as <code>.cc.config.json</code> files.</li>\n</ul>\n</li>\n<li>Upload: Click the upload button and specify your Custom Config file (<code><file-name>.cc.config.json</code>)\n<ul>\n<li>Already existing Custom Configs will be skipped.</li>\n<li>Different Custom Configs with same names will be renamed.</li>\n<li>Another way to upload your Custom Configs is to upload a <code>.cc.json</code> file together with one or multiple <code>.cc.config.json</code> files using the default <code>Load .cc.json map</code> button in the upper left corner.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>The Configs are stored to the local storage of your browser.\n<ul>\n<li>If a limit of <code>768KB</code> is exceeded you will see a warning when trying to add a new Custom Config.</li>\n<li>You can click the displayed \"download and purge\" button to download/backup at least 6 months old Configs and then purge them from the local storage to make space for new ones.</li>\n<li>If we cannot purge any Configs, you might have to do that by your own by deleting specific Configs manually.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Increase possible margin size (<a href=\"https://github.com/MaibornWolff/codecharta/pull/1490\">#1490</a>)\n<ul>\n<li>change displayed margin value from % to pixel</li>\n<li>change dynamic margin value to a default margin value that should fit the map</li>\n</ul>\n</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Re-enabled color selection for folders and on hover (<a href=\"https://github.com/MaibornWolff/codecharta/pull/1544\">#1544</a>)</li>\n<li>Labels do not take delta height into account (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1523\">#1523</a>)</li>\n<li>The calculation of the map resolution scale factor was wrong (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1491\">#1491</a>)\n<ul>\n<li>The factor is used to decrease the map resolution especially for big maps to avoid performance issues.</li>\n<li>Now only the selected maps will be considered for the calculation. Unselected maps will be skipped.</li>\n</ul>\n</li>\n</ul>\n<h2>[1.63.0] - 2020-11-30</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Add the folder name onto the floor on the first 3 layers to get a better overview of the map (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1491\">#1491</a>)</li>\n<li>UX Improvements related to labels allowing for user interaction #1404\n<ul>\n<li>Labels can be hovered, hovering their corresponding node</li>\n<li>Selecting a label will select the corresponding node</li>\n<li>Hovering a label will remove its transparency and move towards the user:\n<ul>\n<li>If other labels obstruct the hovered label it will move to the front</li>\n</ul>\n</li>\n<li>Increased the transparency of other labels; this makes it easier to distinguish the hovered label</li>\n<li>Increase the amount of labels to 250.</li>\n</ul>\n</li>\n<li>Show file count of folders in Attribute-Side-Bar (<a href=\"https://github.com/MaibornWolff/codecharta/issues/1255\">#1255</a>):\n<img src=\"https://user-images.githubusercontent.com/3596742/100371884-be915800-3008-11eb-89f5-ed57c62680cc.png\" alt=\"img showing file count of folder\"></li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Buildings are flattened when delta is active #824.</li>\n<li>Selected Building now stays highlighted when map is rotated #1498</li>\n</ul>\n<h2>[1.62.0] - 2020-11-12</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>\n<p>A new option in the Global Settings allows to enable/disable experimental features #1318</p>\n<ul>\n<li>Click on the settings button in the upper right corner to open the Global Settings dialog.</li>\n<li>Activate/Deactivate the new option \"Enable Experimental Features\"</li>\n<li>The features will be shown/hidden accordingly</li>\n</ul>\n</li>\n<li>\n<p>\"CustomViews\", the first experimental feature has been added #1318</p>\n<ul>\n<li>It must be enabled by activating the new option in the Global Settings dialog as mentioned before.</li>\n<li>You can save your current map configurations to replay/restore them later.</li>\n<li>A saved CustomView can only be applied for it's original map.</li>\n<li>This will enable you to be more efficient in analizing projects by switching between different CustomViews.</li>\n</ul>\n</li>\n<li>\n<p>NodeContextMenu now contains option to keep buildings highlighted #1323</p>\n</li>\n<li>\n<p>Fixed Folder algorithm supports nested (parent-child) Fixed Folders #1431</p>\n<ol>\n<li>Define children of a Fixed Folder also as Fixed Folders by adding the <code>fixedPosition</code> attribute manually in <code>.cc.json</code>.</li>\n<li>All children of a parent Fixed Folder must be fixed.</li>\n<li>Read the how-to guide for further information: https://maibornwolff.github.io/codecharta/how-to/fixate_folders_with_a_custom_cc_json/</li>\n</ol>\n</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>\n<p>Improved search</p>\n<ol>\n<li>Not providing any star in the search bar from now on expects the input to\nbe a wildcard search. Thus, files are going to match paths that have\nleading or following characters. E.g., <code>oo</code> is going to match\n<code>/root/foobar</code>.</li>\n<li>To use the explicit former search mode, wrap the search entry in quotes as\nin: <code>\"oo\"</code>. This would only match filenames that are exactly <code>oo</code>.</li>\n<li>The search field accepts multiple search entries at once, separated by\ncommata. <code>foo,bar</code> is going to search for both <code>*foo*</code> and <code>*bar*</code> and\nmarks all matched files accordingly.</li>\n<li>It is possible to invert the search with a leading exclamation mark as in\n<code>!foobar</code>. That will match any file that does not match <code>*foobar*</code>. It is\nonly possible to invert the complete input, not individual search entries.</li>\n<li>Whitespace handling changed to ignore leading whitespace.</li>\n</ol>\n</li>\n<li>\n<p>Distribution metric #1188</p>\n<ol>\n<li>set rloc to default distribution metric, showing language percentages for real lines of code, if available. Else set to unary to show language distribution over files</li>\n</ol>\n</li>\n<li>\n<p>Improved file sorting in the file overview of the search bar</p>\n<ul>\n<li>Numbers are sorted naturally</li>\n<li>Characters are compared with their base character (e.g., <code>a</code> is now next to <code>á</code>).</li>\n</ul>\n</li>\n<li>\n<p>Label metric not shown by default anymore</p>\n</li>\n</ul>\n<h2>[1.61.0] - 2020-10-30</h2>\n<h3>Changed</h3>\n<ul>\n<li>Disable highlighting buildings during map movement #1432</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>File tree/flattened/excluded overlay visualization is buggy #1269</li>\n<li>EdgePreview on Map broken when selecting zero #1276</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Schedules and merge retries of dependabot dependency updates changed</li>\n</ul>\n<h2>[1.60.2] - 2020-10-24</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Mouse cursor flickering #1170</li>\n<li>Fix flipping map when clicking any option in the toolbar #1410</li>\n<li>Fix edge metric not working correctly</li>\n</ul>\n<h2>[1.60.1] - 2020-10-20</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Issue with first start without an internet connection not working#1266</li>\n<li>Issue with ribbon bar sizes for opened cards #1035</li>\n</ul>\n<h2>[1.60.0] - 2020-10-16</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Parsing feedback with progressbar and probable ETA for parsers and SonarImporter #847</li>\n<li>Mark node names and make the names clickable for nodes that have a link to them #1313</li>\n<li>Indicate the metric name next to a shown value in a new line on labels #1035</li>\n<li>Checkboxes to display metric names and values and to display node names on labels #1035</li>\n<li>Mark node names and make the names clickable for nodes that have a link to them #1313</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Label design #1035</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>First start without an internet connection of standalone not working #1266</li>\n<li>Comparing a map in delta mode shows the correct differences</li>\n<li>This mainly applies to maps compared with itself while it also fixes some other minor miscalculations</li>\n<li>File extensions detection is improved</li>\n<li>Zooming in and out the map will now close the node context menu #1324\n<ul>\n<li>Improved and simplified event handling in NodeContextMenu component</li>\n</ul>\n</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Improved performance of multiple operations (e.g., delta mode).</li>\n</ul>\n<h2>[1.59.0] - 2020-10-09</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>New EXPERIMENTAL SCMLogParser version</li>\n<li>Improved performance around 300% when parsing CodeCharta</li>\n<li>Improved memory usage</li>\n<li>Fixed issue with old parser creating incorrect nodes in CodeCharta #871</li>\n<li>ATTENTION: the parser is experimental, therefore some potential issues might remain, e.g. potentially an unhandled edge case when parsing node</li>\n<li>To use the new parser a reversed git log is needed, as well as a git file list, refer to <code>ccsh scmlogparserv2 -h</code> for additional information</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Color-Metric slider is set and activated in the map accordingly to the released sliderbutton #1319</li>\n<li>Deselcting a building will instantly dehighlight the buildings which were connected through edges #890</li>\n</ul>\n<h2>[1.58.1] - 2020-10-02</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Showing wrong edges when hovering a building after selecting one #1137</li>\n</ul>\n<h2>[1.58.0] - 2020-10-02</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Add active color metric to the top of the legend panel #1278</li>\n<li>SourceCodeParser: Java 14 Support #1277</li>\n</ul>\n<h2>[1.57.4] - 2020-09-25</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Metric-Settings-Panels closed when clicking an option inside the panel #1258</li>\n<li>Improve loading and rendering maps performance</li>\n</ul>\n<h2>[1.57.3] - 2020-09-18</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improve overall performance for loading and rendering maps</li>\n<li>Improve error messages when a file can't be loaded with the URL parameters</li>\n</ul>\n<h2>[1.57.2] - 2020-09-11</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>New API version 1.2 not set correctly in analysis</li>\n</ul>\n<h2>[1.57.1] - 2020-09-11</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Validation of unique filenames not checking for the complete path and instead throwing an error on duplicate filename</li>\n</ul>\n<h2>[1.57.0] - 2020-09-11</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li><code>fixedPosition</code> as a new property in the <code>cc.json</code> that allows to fixate folders in the map</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li><code>cc.json</code> version updated to <code>1.2</code></li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Compressed `cc.jsons (.gz) not marked as accepted when selecting a file in the file chooser</li>\n</ul>\n<h3>Docs 🔎</h3>\n<ul>\n<li><a href=\"https://maibornwolff.github.io//codecharta/how-to/fixate_folders_with_a_custom_cc_json/\">How-To: Fixate Folders in the <code>cc.json</code></a></li>\n<li>CC-Json-API changes</li>\n</ul>\n<h2>[1.56.0] - 2020-09-04</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improve performance when switching to multiple or delta mode when edges are available</li>\n<li>Scenario with EdgeMetric is only appliable when EdgeMetric is existing for the Map #1201</li>\n<li>Starting standalone version results in infinite loading loop #1202</li>\n<li>Expanded metric selection will close when clicking anywhere outside of that selection #1036</li>\n</ul>\n<h2>[1.55.0] - 2020-08-28</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Cursor indicator for different mouse actions #1042</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Edge-Metrics sorted by name now instead of number of incoming and outgoing edges</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Number of incoming and outgoing edges not visible when hovering over a node #1095</li>\n<li>Highlighting buildings in multiple mode now works #956</li>\n</ul>\n<h2>[1.54.0] - 2020-08-21</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Opening NodeContextMenu in the tree-view marks the node until it is closed #1068</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Missing Sonarcloud metrics in demo</li>\n</ul>\n<h3>Docs 🔎</h3>\n<ul>\n<li>Added note how to fix missing <code>sh</code> command issue when running integration tests on Windows</li>\n</ul>\n<h2>[1.53.0] - 2020-08-14</h2>\n<h3>Changed</h3>\n<ul>\n<li>NodeContextMenu will show up when releasing the right-mouse-button now #1027</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>NodeContextMenu showing up after moving the mouse while holding right-mouse-button #1027</li>\n</ul>\n<h2>[1.52.0] - 2020-08-07</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Support for Tokei 12 new JSON schema #1103</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Rename master branch to main for a more inclusive naming #1117</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>After loading an invalid file the filechooser pops up again, so that the user can choose a valid file #1021</li>\n<li>Quality gates on sonarcloud.io are red #879</li>\n</ul>\n<h3>Docs 🔎</h3>\n<ul>\n<li>Moved developer guides to our <a href=\"https://maibornwolff.github.io/codecharta/\">gh-pages</a> #986</li>\n</ul>\n<h2>[1.51.0] - 2020-07-24</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>File chooser now accept \".json\" files only to avoid accidentally loading incorrect files #1094</li>\n<li>Lots of tooltips #1030</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Blacklisting a building would sometimes not update the map #1098</li>\n<li>Changes made after opening the filechooser and closing it won't be applied #875</li>\n<li>Edge metric list not always updated correctly when loading a new file #1106</li>\n</ul>\n<h2>[1.50.0] - 2020-07-10</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Line between scenario indicator and remove button #1069</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Reduced transition time when opening or collapsing parts of the ribbon bar #1043</li>\n<li>Search Panel will open now when clicking in the search field and collapse when clicking somewhere else #1071</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Opening the same file again will now reload the file and reset the application #1032</li>\n<li>Improve render performance by persisting color conversions #1034</li>\n<li>Sorting in tree-view not being applied #1040</li>\n</ul>\n<h2>[1.49.1] - 2020-07-03</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improved performance significantly when switching between single, multiple and delta</li>\n<li>Color-Range-Slider sometimes misbehaved when loading a new map or excluding buildings #926</li>\n</ul>\n<h2>[1.49.0] - 2020-06-19</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Custom scenarios can be created and saved through the scenario menu #675</li>\n<li>Importer and parser documentation can now be found on the github Website #954</li>\n<li>Output of sourcemonitor can now be compressed with the compression flag</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>[Security] Bump angular from 1.7.9 to 1.8.0 in /visualization #995</li>\n</ul>\n<h2>[1.48.0] - 2020-06-12</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Support of compressed cc.json files. Files can be compressed in the analysis #848</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improved performance of several importers #846</li>\n</ul>\n<h2>[1.47.1] - 2020-05-08</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Attribute-Side-Bar being invisible</li>\n</ul>\n<h2>[1.47.0] - 2020-05-02</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>When hovering over a folder, all buildings inside it will be highlighted as well #694</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Rename the button Show-Complete-Map button to Unfocus #642</li>\n<li>Move the Unfocus button (visible when right-clicking a focused node) to the node-context-menu #948</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Generating a delta map with merged empty folders in between is now working correctly #730</li>\n<li>Reduced time when opening a new file #932</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>[Security] Bump jquery from 3.4.0 to 3.5.0 in /visualization #944</li>\n</ul>\n<h2>[1.46.1] - 2020-04-24</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Error dialogs in case of validation or api version issues #610</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Improved overall rendering performance of larger maps by roughly 40% #836</li>\n</ul>\n<h2>[1.45.5] - 2020-04-17</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Median symbol for aggregated relative metrics #365</li>\n<li>AttributeTypes for tokeiImporter and SCMLogParser #365</li>\n<li>Ellipsis button in TreeView list when hovering a node to access context menu #780</li>\n<li>Show gray eye-icon next to the ellipsis-button to indicate a flattened node #780</li>\n<li>Attribute Type selector in the metric dropdowns for edges and nodes</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Metrics with AttributeType relative are now aggregated using the median #365</li>\n<li>Showing absolute number of files instead of relative number when hovering list item in TreeView #780</li>\n<li>Clicking a hovered list item inside the TreeView opens folders #780</li>\n<li>Color node name in gray when flattened #780</li>\n</ul>\n<h3>Removed 🗑</h3>\n<ul>\n<li>Eye-icon in TreeView list to flatten a node #780</li>\n<li>Option to focus a node when clicking the node name inside the TreeView #780</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Consistency of AttributeTypes representation #365</li>\n<li>Wrong file description for tokeiimporter</li>\n<li>Improved search performance #837</li>\n</ul>\n<h2>[1.44.0] - 2020-03-27</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Dialog to select between different sorting options #388</li>\n<li>Button to reverse the current selected sorting #388</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Show file selection in toolBar after excluding or hiding a node instead of an empty toolBar #896</li>\n</ul>\n<h2>[1.43.0] - 2020-03-20</h2>\n<h3>Changed</h3>\n<ul>\n<li>Selectable metrics will only contain metrics from the visible maps</li>\n<li>Closing the attribute-side-bar by clicking somewhere in the map will now be triggered on mouse up instead of mouse down</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Search-panel opening for a short duration when importing a new file</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Fix vulnerability with nokogiri <1.10.8</li>\n</ul>\n<h2>[1.42.3] - 2020-03-13</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Loading Gif not displayed when preparing to render a new map #857</li>\n<li>Selecting zero files in Multiple mode will not trigger the 3D CodeMap creation</li>\n<li>Metrics in the dropdown menu now show the correct max value for the visible maps #876</li>\n</ul>\n<h2>[1.42.2] - 2020-02-14</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Replaced non standard <code>[[</code> in sh scripts #849</li>\n<li>Improved performance for loading a new file #836</li>\n<li>Marked Packages are loaded from files #798</li>\n</ul>\n<h2>[1.42.1] - 2020-02-07</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>GC Overhead Limit (OutOfMemory Exception) during analysis of large SCMLogs fixed #845</li>\n</ul>\n<h2>[1.42.0] - 2020-01-31</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Support for camel and kebab-case for ccsh arguments #772</li>\n<li>RawTextParser for analysis #660</li>\n<li>IndentationLevel as metric for RawTextParser #660</li>\n<li>Show additional Pairing Rate of Selected Building, simultaneously to the currently hovered Buildings #736</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Options of the ccsh are now consistently in kebab-case #772</li>\n</ul>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Path prefix handling in tokeiimporter #841</li>\n</ul>\n<h2>[1.41.8] - 2020-01-17</h2>\n<h3>Removed 🗑</h3>\n<ul>\n<li>Project name parameters in the ccsh #773</li>\n</ul>\n<h2>[1.41.6] - 2020-01-10</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Deployment</li>\n</ul>\n<h2>[1.41.1] - 2020-01-10</h2>\n<h3>Fixed 🐞</h3>\n<ul>\n<li>Performance of loading maps with edges improved #823</li>\n<li>Calculation of other Group for fileExtensionBar #768</li>\n<li>Remove focus of UI elements when they are not visible anymore</li>\n</ul>\n<h2>[1.41.0] - 2019-12-06</h2>\n<h3>Added 🚀</h3>\n<ul>\n<li>Show the relative number of files a folder includes compared to the project in the TreeView #380</li>\n<li>Show the number of files a folder includes in the TreeView when hovering #380</li>\n<li>When the File Extension Bar is hovered, all buildings corresponding to that extension are highlighted #545</li>\n<li>Toggle between percentage and absolute values when clicking the file extension details section #545</li>\n<li>Sum hovered delta values for folders #781</li>\n</ul>\n<h2>[1.40.0] - 2019-11-22</h2>\n<h3>Changed</h3>\n<ul>\n<li>Replaced Blacklist Hide with Flatten option #691</li>\n<li>Flattened buildings are not hidden by default #691</li>\n</ul>\n<h3>Chore 👨💻 👩💻</h3>\n<ul>\n<li>Bump @types/three from 0.89.12 to 0.103.2 in /visualization #453</li>\n<li>Bump angularjs-slider from 6.5.1 to 7.0.0 in /visualization #454</li>\n<li>Bump webpack from 3.12.0 to 4.41.2 in /visualization #436</li>\n<li>[Security] Bump angular from 1.7.7 to 1.7.9 in /visualization #800</li>\n</ul>\n<h2>[1.39.0] - 2019-11-15</h2>\n<h3>Added</h3>\n<ul>\n<li>Progress indicator for SonarImporter #544</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>New style for hovered metric values #696</li>\n<li>Redesigned slider labels in ribbonBar sections #696</li>\n<li>Shortened ribbonBar sections #696</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Missing pictures and broken links in docs #785</li>\n<li>SCMLogParser is now more resilient to unusual SVN commit messages #763</li>\n</ul>\n<h2>[1.38.1] - 2019-11-13</h2>\n<h3>Added</h3>\n<ul>\n<li>New github-pages https://maibornwolff.github.io/codecharta/</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Sum symbol for hovered metric values only shows for folders #775</li>\n</ul>\n<h2>[1.38.0] - 2019-11-08</h2>\n<h3>Added</h3>\n<ul>\n<li>Temporal coupling edges generated by SCMLogParser #622</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Downloaded files are no longer formatted #679</li>\n<li>Added highly and median coupled files metrics to non-churn metric list of SCMLogParser #622</li>\n<li>Moved nodePathPanel to toolBar and updated style #607</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Removed attributes from downloaded files that should not be there #679</li>\n</ul>\n<h2>[1.37.0] - 2019-10-25</h2>\n<h3>Added</h3>\n<ul>\n<li>Sidebar with information regarding the selected building #527</li>\n<li>Sidebar closes when selected buildings is excluded #748</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Animation to show or hide the legend panel #527</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Expandable detail panel in lower left corner #527</li>\n<li>Removed option to maximize/minimize detail panel #527</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Autofocus and label size for focused nodes #747</li>\n<li>Selected buildings stays selected when settings are changed #748</li>\n<li>IllegalStateException when scanning single file in SourceCodeParser #573</li>\n<li>SourceCodeParser places files in the project root correctly into the hierarchy #574</li>\n</ul>\n<h2>[1.36.0] - 2019-10-18</h2>\n<h3>Changed</h3>\n<ul>\n<li>Open and close the ribbonBar sections independently with an updated animation</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Camera is now resetted correctly, when unfocusing #634</li>\n<li>Inputs of Color Range Slider now waits a second before it commits its values #676</li>\n<li>Fixed root folder name in TreeView after new map after loading new map #649</li>\n<li>Increased size of ribbonBar for big screens #644</li>\n<li>File-Extension-Bar will not display excluded nodes anymore #725</li>\n<li>Sanitize input for shelljs #600</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump jacoco from 0.8.1 to 0.8.4 in /analysis</li>\n</ul>\n<h2>[1.35.0] - 2019-10-04</h2>\n<h3>Added</h3>\n<ul>\n<li>Checkbox in global Settings for disabling camera reset, when new map is loaded #685</li>\n<li>Pipe support for SourceCodeParser #716</li>\n<li>Pipe support for SCMLogParser #717</li>\n<li>Pipe support for SonarImporter #715</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Exclude and Hide options are disabled for empty and already existing search patterns #654</li>\n</ul>\n<h2>[1.34.0] - 2019-09-20</h2>\n<h3>Added</h3>\n<ul>\n<li>Tokei Importer #538</li>\n<li>Prominent Notice that we use Sonar-jar #713</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump kotlin-reflect from 1.3.41 to 1.3.50 in /analysis</li>\n<li>Bump json from 20180813 to 20190722 in /analysis</li>\n<li>Bump rxjava from 2.2.9 to 2.2.12 in /analysis</li>\n<li>Bump assertj-core from 3.12.2 to 3.13.2 in /analysis</li>\n<li>Bump sonar-java-plugin from 5.12.1.17771 to 5.14.0.18788 in /analysis</li>\n</ul>\n<h2>[1.33.0] - 2019-09-10</h2>\n<h3>Added</h3>\n<ul>\n<li>Edge Previews (Palm-Tree-Effect) #529</li>\n<li>Dropdown to select Edge Metric, including Edge Counter #529</li>\n<li>Edge Metric settings for Edge Height, Number of Previews & show only building with Edges #529</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Edge Visualization to better distinguish between incoming and outgoing edges #529</li>\n<li>Distribution metric is by default the same as area metric #689</li>\n<li>MapTreeView below searchBar opens the first level by default #690</li>\n<li>Focus metric search when opening metricChooser #693</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Edge Options in Context menu #529</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>SourceCodeParser now skips custom metrics for files, if the syntax tree cannot be created</li>\n<li>Nodes with color metric equals 0 are colored correct again #677</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>[Security] Bump mixin-deep from 1.3.1 to 1.3.2 in /visualization</li>\n</ul>\n<h2>[1.32.0] - 2019-08-09</h2>\n<h3>Added</h3>\n<ul>\n<li>Search for metrics and an indicator for the highest value in dropdown #575</li>\n<li>Button to enable PresentationMode that uses Flashlight-Hovering #576</li>\n<li>Clarifying information which file is which in the file bar when in delta mode #615</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Replaced Scenario dropdown with button on the left of the metric sections #628</li>\n</ul>\n<h2>[1.31.0] - 2019-08-02</h2>\n<h3>Added</h3>\n<ul>\n<li>New Metric in SourceCodeParser: Maximum-Nesting-Level #659</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Label hight adjustment now matches scaling of map #594</li>\n<li>SCMLogParser now guesses the input file encoding #614</li>\n</ul>\n<h2>[1.30.0] - 2019-07-26</h2>\n<h3>Added</h3>\n<ul>\n<li>New Search Bar #526</li>\n<li>Number of Renames Metric to SCMLogParser #621</li>\n<li>Age In Weeks Metric for SCMLogParser #620</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>ToolBar now shows partially cut-off controls if the window is too small #582</li>\n<li>Position of the legendPanel was moved to the bottom-right corner #633</li>\n<li>RibbonBar only opens the three metric section</li>\n<li>Moved Scenario-select to the right in order to use less space</li>\n<li>Moved loading-gif from ribbonBar to toolBar</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>RibbonBar toggle button</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>FileExtensionBar height to not show a bottom-margin in Chrome</li>\n<li>PointerEvents not being propagated when RibbonBar was extended</li>\n<li>Reduced memory usage of SCMLogParser to avoid OutOfMemory Exception #631</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>[Security] Bump lodash.mergewith from 4.6.1 to 4.6.2 in /visualization</li>\n<li>[Security] Bump lodash from 4.17.11 to 4.17.13 in /visualization</li>\n<li>[Security] Bump fstream from 1.0.11 to 1.0.12 in /visualization</li>\n</ul>\n<h2>[1.29.0] - 2019-07-12</h2>\n<h3>Changed</h3>\n<ul>\n<li>Moved Button to reset the map to the center next to the view-cube #606</li>\n<li>Moved FileExtensionBar #527</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Burger Menu / SideNav #526</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Colors in File-Extension-Bar will be displayed in MS Edge and Standlone now #584</li>\n</ul>\n<h2>[1.28.0] - 2019-06-28</h2>\n<h3>Added</h3>\n<ul>\n<li>Releasing will now remind the developer to manually add the release notes #533</li>\n<li>StructureModifier to remove and move nodes and set root of projects #547 / #181</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>More informative log messages regarding the success of project merging #547</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Release Notes are not generated and added automatically to a release #533</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Margin will now be set correctly depending on whether dynamicMargin is enabled or not #602</li>\n</ul>\n<h2>[1.27.0] - 2019-06-25</h2>\n<h3>Added</h3>\n<ul>\n<li>Automatically generates release notes from changelog and appends it to release #533</li>\n<li>Adds global settings-menu with settings from options panel and weblinks #528</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Moved File Settings from Ribbon Bar to new File Setting Bar #525</li>\n<li>Rename sample file codemap-nodes #587</li>\n<li>Hide checkbox to select white-positive-buildings in delta state #345</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Removes Options panel from sidebar #528</li>\n<li>Removes Weblinks panel from sidebar #528</li>\n<li>Removed URL-parameter info from sidebar #525</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Unary Metric will no longer be auto-selected when a new map is loaded #579</li>\n</ul>\n<h2>[1.26.0] - 2019-06-14</h2>\n<h3>Added</h3>\n<ul>\n<li>FileExtensionBar to show file-distribution of chosen metric #495</li>\n<li>sum icon is now displayed on the left of the metric value #364</li>\n<li>Added Pop-up dialog before downloading file to set filename and see what data will be stored #523</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fix set default ColorRange when resetting color section #560</li>\n</ul>\n<h2>[1.25.1] - 2019-05-30</h2>\n<h3>Added</h3>\n<ul>\n<li>SVN log parser keeps track of renaming of files for metric calculation #542</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Entries with renaming information in SVN logs are attributed to correct file #542</li>\n<li>Unary metric will no longer be removed from the MetricChooser-Dropdown when a folder was excluded or hidden #548</li>\n<li>Changing margin and then file or mode will no longer freeze the application #524</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>[Security] Bump tar from 2.2.1 to 2.2.2 in /visualization</li>\n</ul>\n<h2>[1.25.0] - 2019-05-17</h2>\n<h3>Added</h3>\n<ul>\n<li>Added SonarJava to Source code parser #343</li>\n<li>Added exclude and defaultExclude options to SourceCodeParser #508</li>\n<li>Show loading-gif in ribbonBar when rerendering map</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Using Sonar Plugins for Source code parser, giving the Sonar Metrics #343</li>\n<li>Use debounced settings update instead of throttled</li>\n<li>Filename of downloaded file now contains time #484</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixed issue with too long line in ccsh.bat #506</li>\n<li>Prevent downloaded files from having multiple Timestamps #484</li>\n<li>Do not show loadingGif when cancelling the fileChooser #498</li>\n<li>Excluding a building now updates the maximum value of colorRange #355</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump angular-material from 1.1.9 to 1.1.14 in /visualization</li>\n<li>[Security] Bump jquery from 3.3.1 to 3.4.0 in /visualization</li>\n</ul>\n<h2>[1.24.0] - 2019-04-23</h2>\n<h3>Removed</h3>\n<ul>\n<li>Settings as URL parameters #470</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixed issue with trailing slash in URL parameter of SonarImporter #356</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump d3 from 4.13.0 to 5.9.2 in /visualization</li>\n<li>Bump sinon from 4.5.0 to 7.3.1 in /visualization</li>\n</ul>\n<h2>[1.23.0] - 2019-03-22</h2>\n<h3>Added</h3>\n<ul>\n<li>Project Name can be specified for merge filter #394</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Throw a MergeException if project names do not match in MergeFilter #394</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Excluded buildings are no longer used for aggregated metric calculation #352</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump browser-sync-webpack-plugin from 1.2.0 to 2.2.2 in /visualization</li>\n<li>Bump @types/node from 8.10.19 to 11.11.3 in /visualization</li>\n<li>Bump html-webpack-plugin from 2.30.1 to 3.2.0 in /visualization</li>\n<li>Bump load-grunt-tasks from 3.5.2 to 4.0.0 in /visualization #444</li>\n<li>Bump ajv from 5.5.2 to 6.10.0 in /visualization #447</li>\n<li>Bump resolve-url-loader from 2.3.0 to 3.0.1 in /visualization #448</li>\n</ul>\n<h2>[1.22.0] - 2019-03-15</h2>\n<h3>Added</h3>\n<ul>\n<li>Added buttons to select all/none/inversion of revisions/maps in multiple mode #391</li>\n<li>Merge filter can merge all files of folders #392</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixed bug that code map was not re-loaded when changing from multiple to single revision mode #396</li>\n<li>Fixed missing apiVersion in aggregated map #398</li>\n<li>Input Fields of color sliders adjust width according to content #409</li>\n</ul>\n<h3>Chore</h3>\n<ul>\n<li>Bump nouislider from 11.1.0 to 13.1.1 in /visualization</li>\n<li>Bump typescript from 2.7.2 to 3.3.3333 in /visualization</li>\n<li>Bump @types/d3 from 4.13.0 to 5.7.1 in /visualization</li>\n</ul>\n<h2>[1.21.2] - 2019-02-26</h2>\n<h3>Added</h3>\n<ul>\n<li>When entering Multiple Mode, all Maps/revisions are preselected</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixing non-existent metric aggregation on root-level when using multiple Files</li>\n</ul>\n<h2>[1.21.1] - 2019-02-22</h2>\n<h3>Added</h3>\n<ul>\n<li>Hovering a node in the map also hovers it in the tree view #351</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Fixing sync between treeview hovering and map hovering #351</li>\n<li>Folders can no longer be colored in the CodeMap or TreeView #359</li>\n</ul>\n<h2>[1.21.0] - 2019-02-16</h2>\n<h3>Added</h3>\n<ul>\n<li>Color searched node names green in TreeView #225</li>\n<li>Add option buttons (three dots) in TreeViewSearch to <code>Hide</code> or <code>Exclude</code> matching nodes #298</li>\n<li>Show blacklist entry counter in blacklistPanel header #298</li>\n<li>Option checkbox 'Hide Flattened Buildings' #225</li>\n<li>Hide/Flatten non-searched buildings #225</li>\n<li>Hide/Flatten all buildings, if searchPattern can't find any matching nodes #225</li>\n<li>Show maxValue of each metric in metricChooser select list #204</li>\n<li>Colored color-slider inside the RibbonBar #318</li>\n<li>Option to color positive buildings white #311</li>\n<li>Clicking the ribbonBar section-titles toggles the ribbonBar #324</li>\n<li>View-Cube displayed in top right corner #274</li>\n<li>Adding prettier formatter</li>\n<li>Adapt colorRange when changing colorMetric #330</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Update TreeView filter with search field #225</li>\n<li>Use 'gitignore' style matching in TreeViewSearch #225</li>\n<li>Reorder <code>Focus</code>, <code>Hide</code> and <code>Exclude</code> buttons in nodeContextMenu #298</li>\n<li>Reorder sidebarPanels (BlacklistPanel beneath TreeViewSearchPanel) #298</li>\n<li>Use <code>fa-ban</code>-icon as symbols for blacklistPanel (instead of <code>fa-list</code>) #298</li>\n<li>Use <code>fa-ban</code>-icon as symbols for blacklistType <code>Exclude</code> (instead of <code>fa-times</code>) #298</li>\n<li>Label size keeps readable for large maps or a high distance between camera and map #237</li>\n<li>updated dependencies to fix vulnerabilities</li>\n<li>Scenarios only update settings which exist in Scenario and not all #224</li>\n<li>MergeFilter to merge unique blacklist entries #275</li>\n<li>MergeFilter to only merge unique attributeType entries #275</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>Remove invertHeight checkbox in delta-view #306</li>\n<li>Remove option to add blacklist entries from inside the blacklistPanel #298</li>\n<li>Remove statistic functions in Experimental panel #308</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>CodeMap does not move anymore when navigating in text-fields #307</li>\n<li>Merge blacklist in multipleFile view and convert paths #275</li>\n<li>Show logo in NW.js standalone application #233</li>\n</ul>\n<h2>[1.20.1] - 2018-12-19</h2>\n<p>Fixed release issues.</p>\n<h2>[1.20.0] - 2018-12-19</h2>\n<h3>Added</h3>\n<ul>\n<li>button to unfocus node</li>\n<li>NodeContextMenu: Option to only hide dependent edges</li>\n<li>plop support</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Renaming 'isolate node' to 'focus node'</li>\n<li>Focusing a node does not remove the blacklist items of type Hide</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>NodeContextMenu: Option to 'show all' nodes, which used to unhide all nodes</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Reshow hidden nodes from Treeview or Blacklist</li>\n</ul>\n<h2>[1.19.0] - 2018-11-02</h2>\n<h3>Added</h3>\n<ul>\n<li>Deleted files in delta view use their previous area value in order to be visible #254</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Buildings in the delta view are not colored correctly #253</li>\n<li>Reset Button in RibbonBar to reset 'Invert Colors' #255</li>\n<li>Remove lag of 'Invert Color' checkboxes, when selecting single/delta mode #255</li>\n</ul>\n<h2>[1.18.1] - 2018-10-31</h2>\n<p>Fixed release issues</p>\n<h2>[1.18.0] - 2018-10-29</h2>\n<h3>Added</h3>\n<ul>\n<li>Integration with Jasome through JasomeImporter #245</li>\n<li>URL parameter 'mode' with the values Single, Multiple or Delta</li>\n<li>Blacklist to persist excluded or hidden nodes #205</li>\n<li>Option to exclude nodes in nodeContextMenu #205</li>\n<li>BlacklistPanel in SettingsSidebar to manage blacklist #205</li>\n<li>Save-Button to download current CodeMap #205</li>\n<li>Publishing visualization on Docker Hub #252</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>No longer fat jar of every subcomponent of analysis, baked into ccsh</li>\n<li>Changed simple syserr write to logger call for analysis #243</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>URL parameter 'delta' does not exist anymore</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Show delta of CodeMap when URL parameter mode=delta is set</li>\n</ul>\n<h2>[1.17.0] - 2018-09-28</h2>\n<h3>Changed</h3>\n<ul>\n<li>Invert delta colors moved from color to heigh metric column in ribbon bar #220</li>\n<li>Delta value now as kindOfMap shown #220</li>\n<li>Aggreate maps as multiple rename #220</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Single/delta buttons now correctly activated when delta in ulr shown #220</li>\n</ul>\n<h2>[1.17.0] - 2018-09-21</h2>\n<h3>Added</h3>\n<ul>\n<li>CodeMaatImport for temporal coupling dependencies #172</li>\n<li>EdgeFilter to aggregate edge-attributes as node-attributes #222</li>\n<li>Option to show and hide dependent edges from node-context-menu #218</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>MergeFilter merges edges #172</li>\n</ul>\n<h2>[1.16.2] - 2018-09-10</h2>\n<h3>Fixed</h3>\n<ul>\n<li>missing event in firefox #232</li>\n</ul>\n<h2>[1.16.1] - 2018-08-31</h2>\n<h3>Added</h3>\n<ul>\n<li>gitlab + dotnet manual</li>\n</ul>\n<h2>[1.16.0] - 2018-08-31</h2>\n<h3>Added</h3>\n<ul>\n<li>add the option to add multiple files via url parameter (e.g. ?file=a&file=b...)</li>\n</ul>\n<h2>[1.15.1] - 2018-08-13</h2>\n<p>Fixed release issues</p>\n<h2>[1.15.0] - 2018-08-13</h2>\n<h3>Added</h3>\n<ul>\n<li>e2e tests are running in CI Environment (headless)</li>\n<li>pupeteer as e2e test framework</li>\n<li>Show names of marked packages in legend</li>\n<li>Added a source code importer that can analyse rloc,mcc for java source code</li>\n<li>keep settings when the user changes a file</li>\n<li>Added option to set white background</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>cypress</li>\n</ul>\n<h2>[1.14.2] - 2018-07-16</h2>\n<h3>Changed</h3>\n<ul>\n<li>Changed folder detail metrics from mean to sum</li>\n</ul>\n<h2>[1.14.1] - 2018-07-13</h2>\n<p>Fixed release issues</p>\n<h2>[1.14.0] - 2018-07-13</h2>\n<h3>Added</h3>\n<ul>\n<li>Added UnderstandImporter to Analysis</li>\n<li>Packages can be highlighted in different colors #152</li>\n<li>Adding a context menu with highlighting colors and convenience methods for the tree view and 3D view #155</li>\n<li>Folders and files to highlight can be described in the cc.json #165</li>\n<li>Dynamic/automatic margin computing de/activated by tick</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Details panel: using the sum of the childrens metrics instead of the mean value</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Display buttons do not trigger map changes #185</li>\n<li>Flickering surfaces when zooming out</li>\n</ul>\n<h2>[1.13.0] - 2018-06-08</h2>\n<h3>Added</h3>\n<ul>\n<li>Layout switcher #141</li>\n<li>Added CrococosmoImporter to Analysis</li>\n<li>Added type, dirs, name to CSVExporter</li>\n<li>Invert height of building checkbox</li>\n<li>Aggregate multiple maps in visualization #110</li>\n<li>Auto Focus selected map part</li>\n<li>Timmer added to applySettings in SettingsService</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Crococosmo xml files will now generate a cc.json file for each version</li>\n<li>Suppressing ARIA warnings</li>\n<li>Simplified gradle structure of analysis part</li>\n<li>Deltas added in the metric quick access panel #138</li>\n<li>Ticks and ResetValue Buttons call to onSettingsChange to avoid applySettings timer</li>\n<li>compacting empty middle packages #150</li>\n<li>Detail panel minimized by default</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>filter by regex shows parent nodes #116</li>\n<li>typo in scss file</li>\n</ul>\n<h2>[1.12.0] - 2018-04-27</h2>\n<h3>Added</h3>\n<ul>\n<li>horizontal quick access metric chooser</li>\n<li>Link behind filepath in detailPanel #84</li>\n<li>Double click event-handler on Buildings #84</li>\n<li>Detail Panel can be minimized and maximized</li>\n<li>Settings option to minimize Detail Panel</li>\n<li>cypress as an e2e test runner</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>metric details from legend</li>\n<li>metric chooser from settings panel</li>\n</ul>\n<h2>[1.11.2] - 2018-04-13</h2>\n<h3>Fixed</h3>\n<ul>\n<li>a sonar importer bug which prevented the importer to fetch the last page #122</li>\n</ul>\n<h2>[1.11.1] - 2018-04-11</h2>\n<p>Fixed release issues</p>\n<h2>[1.11.0] - 2018-04-11</h2>\n<h3>Added</h3>\n<ul>\n<li>SASS support</li>\n<li>simple regex filter</li>\n<li>Reset Button</li>\n<li>Dialog Service replaces console log calls and window.alert calls</li>\n<li>linking tree view and map hover</li>\n<li>auto fit scene button</li>\n<li>anugularJS material</li>\n<li>Scenarios are now filtered by compatibility for the given map</li>\n<li>Link in visualization #84</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>materialize-css</li>\n<li>grunt</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>less flickering and artifacts</li>\n</ul>\n<h2>[1.10.0] - 2018-03-22</h2>\n<h3>Changed</h3>\n<ul>\n<li>Clean up UI #86</li>\n<li>Updated analysis dependencies</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Delta View shows Deltas of itself as non-trivial if nodes have same name #89: Compare deltas by path not name</li>\n<li>Delta calculation performance boost #91</li>\n<li>Problems when intermediate nodes missed metrics #92</li>\n<li>removed unnecessary calculations</li>\n<li>removed bug in SonarImporter that slowed up performance and missed out multiple metrics</li>\n<li>minor bugs</li>\n</ul>\n<h2>[1.9.3] - 2018-02-23</h2>\n<h3>Changed</h3>\n<ul>\n<li>sorting treeview by folders and names</li>\n</ul>\n<h2>[1.9.2] - 2018-02-20</h2>\n<h3>Added</h3>\n<ul>\n<li>added preliminary CSVExporter for visualisation data</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>padding rendering</li>\n<li>minimal building height is 1 to prevent clipping issues</li>\n<li>fallback values for visualization when no metric is available (area = 1, height = 1, color = grey). Data in data structure will not be changed.</li>\n</ul>\n<h2>[1.9.1] - 2018-02-20</h2>\n<h3>Fixed</h3>\n<ul>\n<li>detail panel bug fix</li>\n</ul>\n<h2>[1.9.0] - 2018-02-20</h2>\n<h3>Changed</h3>\n<ul>\n<li>moved to unscoped npm packages</li>\n</ul>\n<h2>[1.8.2] - 2018-02-20</h2>\n<h3>Changed</h3>\n<ul>\n<li>detail panel background is white now. better visibility</li>\n</ul>\n<h2>[1.8.1] - 2018-02-20</h2>\n<h3>Changed</h3>\n<ul>\n<li>revision chooser moved to settings panel and uses now understandable dropdowns instead of links. Part of the #82 proposals</li>\n</ul>\n<h2>[1.8.0] - 2018-02-20</h2>\n<h3>Added</h3>\n<ul>\n<li>Experimental dependency support</li>\n<li>loading indicator</li>\n<li>file path to detail panel</li>\n<li>collapsible tree view and visibility/isolation per node toggles</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>added a ray-aabb intersection test before precise testing. Less time is spent in intersection methods.</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>fixed a minor bug</li>\n<li>canvas mouse event listener are now limited to the canvas dom element. UI events will not trigger the canvas listeners anymore</li>\n<li>canvas mouse events distinguish now between click and drag. Dragging does not reset selection anymore</li>\n<li>slider input #64</li>\n<li>rz slider initialization bug</li>\n<li>increasing test coverage</li>\n<li>deltas where calculated on map loading even though, they were disabled</li>\n</ul>\n<h2>[1.7.2] - 2018-02-02</h2>\n<h3>Fixed</h3>\n<ul>\n<li>url to homepage</li>\n<li>analysis package</li>\n</ul>\n<h2>[1.7.1] - 2018-02-02</h2>\n<p>Fixed release issues</p>\n<h2>[1.7.0] - 2018-02-02</h2>\n<h3>Changed</h3>\n<ul>\n<li>npm pachage scoped to @maibornwolff</li>\n<li>Defined further scenarios via json file</li>\n<li>Added description for metrics and scenarios</li>\n<li>using fixed point values in detail panel (ui) to truncate infinite or long decimals</li>\n<li>folders now use the mean attributes of their buildings(leaves)</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Bugfix: detail panel should be cleared before setting new details else old values may survive</li>\n</ul>\n<h2>[1.6.7] - 2018-02-01</h2>\n<p>Fixed release issues</p>\n<h2>[1.6.6] - 2018-02-01</h2>\n<h3>Added</h3>\n<ul>\n<li>added anonymous git log generator anongit</li>\n<li>browser demo shows codecharta-visualization sonar analysis</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>rewrote command line interface</li>\n<li>linking ccsh to bin/ccsh will be deleted later</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>No underscore for scenarios in tooltips #71</li>\n</ul>\n<h2>[1.6.5] - 2018-01-30</h2>\n<p>Fixed release issues</p>\n<h2>[1.6.4] - 2018-01-30</h2>\n<h3>Fixed</h3>\n<ul>\n<li>fixed broken SonarImporter due to jdk9 migration</li>\n</ul>\n<h2>[1.6.3] - 2018-01-26</h2>\n<h3>Added</h3>\n<ul>\n<li>added npm publish for analysis</li>\n<li>simple release script for automatic changelog updates, commits, tags, version bumps</li>\n</ul>\n<h2>[1.6.2] - 2018-01-25</h2>\n<h3>Added</h3>\n<ul>\n<li>added support for git log --raw and git log --numstat --raw</li>\n<li>added support for git log --numstat and codechurn</li>\n<li>added support for renames in SCMLogParser for git log --name-status</li>\n<li>added support for renames in SCMLogParser for git log --numstat, git log --raw and git log --numstat --raw</li>\n<li>added new SCM experimental metrics range_of_weeks_with_commits and successive_weeks_of_commits</li>\n<li>the file origin of a node is displayed in the details now</li>\n<li>sonarqube analysis on CI build</li>\n<li>npm publish support in visualization</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Deltas are no longer experimental</li>\n<li>two selected delta maps now merge their nodes correctly. The map where\na node was missing get's a copy of this node with metrics=0.\nFile additions/deletions are therefore only visible when areaMetric is\nunary and deltas are activated.</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>delta display bug for heights</li>\n<li>going back from delta view now correctly removes deltas from node data</li>\n<li>Delta shown although not in delta mode #60</li>\n<li>Allow inversion of delta colors #57</li>\n<li>npm binary error</li>\n</ul>\n<h2>[1.5.2] - 2018-01-04</h2>\n<h3>Changed</h3>\n<ul>\n<li>scaling slider now has steps of 0.1. This allows the user to select precise values like 2.0</li>\n<li>updated jdk to jdk9</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Opening the same file a second time does not work #53</li>\n<li>added missing require declaration</li>\n<li>added glsl loader in testing environment</li>\n<li>Native Application support is bugged while building in Travis CI #48</li>\n</ul>\n<h2>[1.5.1] - 2017-11-14</h2>\n<h3>Added</h3>\n<ul>\n<li>command line parameter to toggle \"authors\" attribute in SCMLogParser</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>when passing a file through the \"file\" parameter in the URL, the map now renders correctly</li>\n</ul>\n<h2>[1.5.0] - 2017-10-24</h2>\n<h3>Added</h3>\n<ul>\n<li>experimental delta functionality</li>\n<li>loading multiple maps</li>\n<li>experimental margin slider</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>faster rendering</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>nwjs packages and native apps due to a bug</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>using color metric instead of height metric for color range slider ceil</li>\n</ul>\n<h2>[1.4.0] - 2017-09-14</h2>\n<h3>Added</h3>\n<ul>\n<li>Typescript support</li>\n<li>Browsersync</li>\n<li>added advanced merging strategy \"leaf\" in MergeFilter</li>\n<li>advanced merging with restructuring</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Browserify replaced with Webpack</li>\n<li>Better debugging</li>\n<li>Karma instead of Mocha</li>\n</ul>\n<h2>[1.3.2] - 2017-08-18</h2>\n<h3>Added</h3>\n<ul>\n<li>add slider controls for color thresholds #19</li>\n<li>Added additional structuring in SonarImporter for multi-module projects</li>\n<li>button to generate current url parameters</li>\n<li>camera position is now a setting (e.g. in scenarios or url parameters)</li>\n<li>margin slider: make it easier to find out to which package/folder a class belongs #20</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>better url parameter resolution (nested parameters are handled correctly)</li>\n<li>changed hover color. Allows better distinction between hover and select</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li>obsolete helper grid</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>changing display or color settings resets scaling #18</li>\n<li>scenario description #32</li>\n<li>Scaling should not scale the labels #35</li>\n</ul>\n<h2>[1.3.1] - 2017-07-05</h2>\n<h3>Fixed</h3>\n<ul>\n<li>Prevented override of URL-parameters by default scenario</li>\n</ul>\n<h2>[1.3.0] - 2017-07-05</h2>\n<h3>Added</h3>\n<ul>\n<li>Adding simple merge functionality for multiple json files</li>\n<li>Added CSVImporter</li>\n<li>Added Translation for SonarQube metrics</li>\n<li>Added descriptions for metrics</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Changed uppercase metrics, e.g. RLOC, to lowercase metrics</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>Simple cc.json does not display anything #17</li>\n</ul>\n<h2>[1.2.0] - 2017-06-19</h2>\n<h3>Added</h3>\n<ul>\n<li>Adding Labels and UI</li>\n<li>Support for links to source page of SonarQube in sonarimporter</li>\n<li>Added SCMLogParser</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>GitHub Issue: legend is wrong #21</li>\n</ul>\n<h2>[1.1.5] - 2017-05-31</h2>\n<h3>Fixed</h3>\n<ul>\n<li>Wrong version numbers in analysis part</li>\n</ul>\n<h2>[1.1.4] - 2017-05-26</h2>\n<h3>Added</h3>\n<ul>\n<li>Scenarios and default scenario</li>\n<li>Translation API for Metrics</li>\n<li>Metric tooltips in dropdown</li>\n</ul>\n<h3>Fixed</h3>\n<ul>\n<li>GitHub Issue: Sonarimporter crashes with null pointer exception when there is a component without path. #13</li>\n</ul>\n<h2>[1.1.3] - 2017-05-01</h2>\n<h3>Added</h3>\n<ul>\n<li>Support for SonarQube Measures-API</li>\n<li>Error logging for sonarqube errors</li>\n</ul>\n<h3>Changed</h3>\n<ul>\n<li>Standard Sonar metric is now complexity,ncloc,functions,duplicated_lines,classes,blocker_violations,generated_lines,bugs,commented_out_code_lines,lines,violations,comment_lines,duplicated_blocks</li>\n</ul>\n<h2>[1.1.2] - 2017-04-28</h2>\n<h3>Added</h3>\n<ul>\n<li>Translation API for Metrics</li>\n</ul>\n<h2>[1.1.1] - 2017-04-07</h2>\n<h3>Fixed</h3>\n<ul>\n<li>GitHub Issue: Flickering surfaces #3</li>\n<li>GitHub Issue: Unable to install due to readlink error on macOS #4</li>\n</ul>\n<h2>[1.1.0] - 2017-03-27</h2>\n<h3>Added</h3>\n<ul>\n<li>SourceMonitorImporter for importing projects from SourceMonitor.</li>\n</ul>\n<h2>[1.0.0] - 2017-03-17</h2>\n<h3>Added</h3>\n<ul>\n<li>SonarImporter for importing projects from SonarQube.</li>\n<li>ValidationTool for validating an existing json file.</li>\n</ul>\n";
|
|
242696
242741
|
// Exports
|
|
242697
242742
|
module.exports = code;
|
|
242698
242743
|
|
|
@@ -242868,6 +242913,8 @@ const define = (object, key, value) =>
|
|
|
242868
242913
|
|
|
242869
242914
|
const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g
|
|
242870
242915
|
|
|
242916
|
+
const RETURN_FALSE = () => false
|
|
242917
|
+
|
|
242871
242918
|
// Sanitize the range of a regular expression
|
|
242872
242919
|
// The cases are complicated, see test cases for details
|
|
242873
242920
|
const sanitizeRange = range => range.replace(
|
|
@@ -243126,22 +243173,18 @@ const REPLACERS = [
|
|
|
243126
243173
|
const regexCache = Object.create(null)
|
|
243127
243174
|
|
|
243128
243175
|
// @param {pattern}
|
|
243129
|
-
const makeRegex = (pattern,
|
|
243130
|
-
|
|
243131
|
-
if (r) {
|
|
243132
|
-
return r
|
|
243133
|
-
}
|
|
243176
|
+
const makeRegex = (pattern, ignoreCase) => {
|
|
243177
|
+
let source = regexCache[pattern]
|
|
243134
243178
|
|
|
243135
|
-
|
|
243136
|
-
|
|
243137
|
-
|
|
243138
|
-
|
|
243139
|
-
|
|
243140
|
-
|
|
243141
|
-
|
|
243142
|
-
)
|
|
243179
|
+
if (!source) {
|
|
243180
|
+
source = REPLACERS.reduce(
|
|
243181
|
+
(prev, current) => prev.replace(current[0], current[1].bind(pattern)),
|
|
243182
|
+
pattern
|
|
243183
|
+
)
|
|
243184
|
+
regexCache[pattern] = source
|
|
243185
|
+
}
|
|
243143
243186
|
|
|
243144
|
-
return
|
|
243187
|
+
return ignoreCase
|
|
243145
243188
|
? new RegExp(source, 'i')
|
|
243146
243189
|
: new RegExp(source)
|
|
243147
243190
|
}
|
|
@@ -243172,7 +243215,7 @@ class IgnoreRule {
|
|
|
243172
243215
|
}
|
|
243173
243216
|
}
|
|
243174
243217
|
|
|
243175
|
-
const createRule = (pattern,
|
|
243218
|
+
const createRule = (pattern, ignoreCase) => {
|
|
243176
243219
|
const origin = pattern
|
|
243177
243220
|
let negative = false
|
|
243178
243221
|
|
|
@@ -243190,7 +243233,7 @@ const createRule = (pattern, ignorecase) => {
|
|
|
243190
243233
|
// > begin with a hash.
|
|
243191
243234
|
.replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#')
|
|
243192
243235
|
|
|
243193
|
-
const regex = makeRegex(pattern,
|
|
243236
|
+
const regex = makeRegex(pattern, ignoreCase)
|
|
243194
243237
|
|
|
243195
243238
|
return new IgnoreRule(
|
|
243196
243239
|
origin,
|
|
@@ -243236,11 +243279,15 @@ checkPath.convert = p => p
|
|
|
243236
243279
|
|
|
243237
243280
|
class Ignore {
|
|
243238
243281
|
constructor ({
|
|
243239
|
-
ignorecase = true
|
|
243282
|
+
ignorecase = true,
|
|
243283
|
+
ignoreCase = ignorecase,
|
|
243284
|
+
allowRelativePaths = false
|
|
243240
243285
|
} = {}) {
|
|
243241
|
-
this._rules = []
|
|
243242
|
-
this._ignorecase = ignorecase
|
|
243243
243286
|
define(this, KEY_IGNORE, true)
|
|
243287
|
+
|
|
243288
|
+
this._rules = []
|
|
243289
|
+
this._ignoreCase = ignoreCase
|
|
243290
|
+
this._allowRelativePaths = allowRelativePaths
|
|
243244
243291
|
this._initCache()
|
|
243245
243292
|
}
|
|
243246
243293
|
|
|
@@ -243258,7 +243305,7 @@ class Ignore {
|
|
|
243258
243305
|
}
|
|
243259
243306
|
|
|
243260
243307
|
if (checkPattern(pattern)) {
|
|
243261
|
-
const rule = createRule(pattern, this.
|
|
243308
|
+
const rule = createRule(pattern, this._ignoreCase)
|
|
243262
243309
|
this._added = true
|
|
243263
243310
|
this._rules.push(rule)
|
|
243264
243311
|
}
|
|
@@ -243337,7 +243384,13 @@ class Ignore {
|
|
|
243337
243384
|
// Supports nullable path
|
|
243338
243385
|
&& checkPath.convert(originalPath)
|
|
243339
243386
|
|
|
243340
|
-
checkPath(
|
|
243387
|
+
checkPath(
|
|
243388
|
+
path,
|
|
243389
|
+
originalPath,
|
|
243390
|
+
this._allowRelativePaths
|
|
243391
|
+
? RETURN_FALSE
|
|
243392
|
+
: throwError
|
|
243393
|
+
)
|
|
243341
243394
|
|
|
243342
243395
|
return this._t(path, cache, checkUnignored, slices)
|
|
243343
243396
|
}
|
|
@@ -243395,10 +243448,8 @@ class Ignore {
|
|
|
243395
243448
|
|
|
243396
243449
|
const factory = options => new Ignore(options)
|
|
243397
243450
|
|
|
243398
|
-
const returnFalse = () => false
|
|
243399
|
-
|
|
243400
243451
|
const isPathValid = path =>
|
|
243401
|
-
checkPath(path && checkPath.convert(path), path,
|
|
243452
|
+
checkPath(path && checkPath.convert(path), path, RETURN_FALSE)
|
|
243402
243453
|
|
|
243403
243454
|
factory.isPathValid = isPathValid
|
|
243404
243455
|
|
|
@@ -274911,7 +274962,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
274911
274962
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
274912
274963
|
/* harmony export */ "BehaviorSubject": () => (/* binding */ BehaviorSubject)
|
|
274913
274964
|
/* harmony export */ });
|
|
274914
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
274965
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
274915
274966
|
/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ "./node_modules/rxjs/dist/esm5/internal/Subject.js");
|
|
274916
274967
|
|
|
274917
274968
|
|
|
@@ -275049,16 +275100,20 @@ var Observable = (function () {
|
|
|
275049
275100
|
var _this = this;
|
|
275050
275101
|
promiseCtor = getPromiseCtor(promiseCtor);
|
|
275051
275102
|
return new promiseCtor(function (resolve, reject) {
|
|
275052
|
-
var
|
|
275053
|
-
|
|
275054
|
-
|
|
275055
|
-
|
|
275056
|
-
|
|
275057
|
-
|
|
275058
|
-
|
|
275059
|
-
|
|
275060
|
-
|
|
275061
|
-
|
|
275103
|
+
var subscriber = new _Subscriber__WEBPACK_IMPORTED_MODULE_0__.SafeSubscriber({
|
|
275104
|
+
next: function (value) {
|
|
275105
|
+
try {
|
|
275106
|
+
next(value);
|
|
275107
|
+
}
|
|
275108
|
+
catch (err) {
|
|
275109
|
+
reject(err);
|
|
275110
|
+
subscriber.unsubscribe();
|
|
275111
|
+
}
|
|
275112
|
+
},
|
|
275113
|
+
error: reject,
|
|
275114
|
+
complete: resolve,
|
|
275115
|
+
});
|
|
275116
|
+
_this.subscribe(subscriber);
|
|
275062
275117
|
});
|
|
275063
275118
|
};
|
|
275064
275119
|
Observable.prototype._subscribe = function (subscriber) {
|
|
@@ -275114,7 +275169,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
275114
275169
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
275115
275170
|
/* harmony export */ "ReplaySubject": () => (/* binding */ ReplaySubject)
|
|
275116
275171
|
/* harmony export */ });
|
|
275117
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
275172
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
275118
275173
|
/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subject */ "./node_modules/rxjs/dist/esm5/internal/Subject.js");
|
|
275119
275174
|
/* harmony import */ var _scheduler_dateTimestampProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scheduler/dateTimestampProvider */ "./node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js");
|
|
275120
275175
|
|
|
@@ -275221,7 +275276,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
275221
275276
|
/* harmony export */ "Subject": () => (/* binding */ Subject),
|
|
275222
275277
|
/* harmony export */ "AnonymousSubject": () => (/* binding */ AnonymousSubject)
|
|
275223
275278
|
/* harmony export */ });
|
|
275224
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
275279
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
275225
275280
|
/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Observable */ "./node_modules/rxjs/dist/esm5/internal/Observable.js");
|
|
275226
275281
|
/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ "./node_modules/rxjs/dist/esm5/internal/Subscription.js");
|
|
275227
275282
|
/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ "./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js");
|
|
@@ -275395,7 +275450,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
275395
275450
|
/* harmony export */ "SafeSubscriber": () => (/* binding */ SafeSubscriber),
|
|
275396
275451
|
/* harmony export */ "EMPTY_OBSERVER": () => (/* binding */ EMPTY_OBSERVER)
|
|
275397
275452
|
/* harmony export */ });
|
|
275398
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
275453
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
275399
275454
|
/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/isFunction */ "./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");
|
|
275400
275455
|
/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscription */ "./node_modules/rxjs/dist/esm5/internal/Subscription.js");
|
|
275401
275456
|
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./config */ "./node_modules/rxjs/dist/esm5/internal/config.js");
|
|
@@ -275568,7 +275623,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
275568
275623
|
/* harmony export */ "EMPTY_SUBSCRIPTION": () => (/* binding */ EMPTY_SUBSCRIPTION),
|
|
275569
275624
|
/* harmony export */ "isSubscription": () => (/* binding */ isSubscription)
|
|
275570
275625
|
/* harmony export */ });
|
|
275571
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
275626
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
275572
275627
|
/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/isFunction */ "./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");
|
|
275573
275628
|
/* harmony import */ var _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/UnsubscriptionError */ "./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js");
|
|
275574
275629
|
/* harmony import */ var _util_arrRemove__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/arrRemove */ "./node_modules/rxjs/dist/esm5/internal/util/arrRemove.js");
|
|
@@ -276012,7 +276067,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
276012
276067
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
276013
276068
|
/* harmony export */ "fromEvent": () => (/* binding */ fromEvent)
|
|
276014
276069
|
/* harmony export */ });
|
|
276015
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
276070
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
276016
276071
|
/* harmony import */ var _observable_innerFrom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/innerFrom */ "./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js");
|
|
276017
276072
|
/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/dist/esm5/internal/Observable.js");
|
|
276018
276073
|
/* harmony import */ var _operators_mergeMap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../operators/mergeMap */ "./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js");
|
|
@@ -276098,7 +276153,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
276098
276153
|
/* harmony export */ "fromAsyncIterable": () => (/* binding */ fromAsyncIterable),
|
|
276099
276154
|
/* harmony export */ "fromReadableStreamLike": () => (/* binding */ fromReadableStreamLike)
|
|
276100
276155
|
/* harmony export */ });
|
|
276101
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
276156
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
276102
276157
|
/* harmony import */ var _util_isArrayLike__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArrayLike */ "./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js");
|
|
276103
276158
|
/* harmony import */ var _util_isPromise__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isPromise */ "./node_modules/rxjs/dist/esm5/internal/util/isPromise.js");
|
|
276104
276159
|
/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/dist/esm5/internal/Observable.js");
|
|
@@ -276414,7 +276469,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
276414
276469
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
276415
276470
|
/* harmony export */ "OperatorSubscriber": () => (/* binding */ OperatorSubscriber)
|
|
276416
276471
|
/* harmony export */ });
|
|
276417
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
276472
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
276418
276473
|
/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/dist/esm5/internal/Subscriber.js");
|
|
276419
276474
|
|
|
276420
276475
|
|
|
@@ -277129,7 +277184,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
277129
277184
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
277130
277185
|
/* harmony export */ "share": () => (/* binding */ share)
|
|
277131
277186
|
/* harmony export */ });
|
|
277132
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
277187
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
277133
277188
|
/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/from */ "./node_modules/rxjs/dist/esm5/internal/observable/from.js");
|
|
277134
277189
|
/* harmony import */ var _operators_take__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../operators/take */ "./node_modules/rxjs/dist/esm5/internal/operators/take.js");
|
|
277135
277190
|
/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/dist/esm5/internal/Subject.js");
|
|
@@ -277793,7 +277848,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
277793
277848
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
277794
277849
|
/* harmony export */ "Action": () => (/* binding */ Action)
|
|
277795
277850
|
/* harmony export */ });
|
|
277796
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
277851
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
277797
277852
|
/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/dist/esm5/internal/Subscription.js");
|
|
277798
277853
|
|
|
277799
277854
|
|
|
@@ -277824,7 +277879,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
277824
277879
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
277825
277880
|
/* harmony export */ "AnimationFrameAction": () => (/* binding */ AnimationFrameAction)
|
|
277826
277881
|
/* harmony export */ });
|
|
277827
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
277882
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
277828
277883
|
/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncAction */ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js");
|
|
277829
277884
|
/* harmony import */ var _animationFrameProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./animationFrameProvider */ "./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrameProvider.js");
|
|
277830
277885
|
|
|
@@ -277851,7 +277906,7 @@ var AnimationFrameAction = (function (_super) {
|
|
|
277851
277906
|
if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {
|
|
277852
277907
|
return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
|
|
277853
277908
|
}
|
|
277854
|
-
if (scheduler.actions.
|
|
277909
|
+
if (!scheduler.actions.some(function (action) { return action.id === id; })) {
|
|
277855
277910
|
_animationFrameProvider__WEBPACK_IMPORTED_MODULE_1__.animationFrameProvider.cancelAnimationFrame(id);
|
|
277856
277911
|
scheduler._scheduled = undefined;
|
|
277857
277912
|
}
|
|
@@ -277875,7 +277930,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
277875
277930
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
277876
277931
|
/* harmony export */ "AnimationFrameScheduler": () => (/* binding */ AnimationFrameScheduler)
|
|
277877
277932
|
/* harmony export */ });
|
|
277878
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
277933
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
277879
277934
|
/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js");
|
|
277880
277935
|
|
|
277881
277936
|
|
|
@@ -277886,20 +277941,19 @@ var AnimationFrameScheduler = (function (_super) {
|
|
|
277886
277941
|
}
|
|
277887
277942
|
AnimationFrameScheduler.prototype.flush = function (action) {
|
|
277888
277943
|
this._active = true;
|
|
277944
|
+
var flushId = this._scheduled;
|
|
277889
277945
|
this._scheduled = undefined;
|
|
277890
277946
|
var actions = this.actions;
|
|
277891
277947
|
var error;
|
|
277892
|
-
var index = -1;
|
|
277893
277948
|
action = action || actions.shift();
|
|
277894
|
-
var count = actions.length;
|
|
277895
277949
|
do {
|
|
277896
277950
|
if ((error = action.execute(action.state, action.delay))) {
|
|
277897
277951
|
break;
|
|
277898
277952
|
}
|
|
277899
|
-
} while (
|
|
277953
|
+
} while ((action = actions[0]) && action.id === flushId && actions.shift());
|
|
277900
277954
|
this._active = false;
|
|
277901
277955
|
if (error) {
|
|
277902
|
-
while (
|
|
277956
|
+
while ((action = actions[0]) && action.id === flushId && actions.shift()) {
|
|
277903
277957
|
action.unsubscribe();
|
|
277904
277958
|
}
|
|
277905
277959
|
throw error;
|
|
@@ -277923,7 +277977,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
277923
277977
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
277924
277978
|
/* harmony export */ "AsapAction": () => (/* binding */ AsapAction)
|
|
277925
277979
|
/* harmony export */ });
|
|
277926
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
277980
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
277927
277981
|
/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncAction */ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js");
|
|
277928
277982
|
/* harmony import */ var _immediateProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./immediateProvider */ "./node_modules/rxjs/dist/esm5/internal/scheduler/immediateProvider.js");
|
|
277929
277983
|
|
|
@@ -277950,7 +278004,7 @@ var AsapAction = (function (_super) {
|
|
|
277950
278004
|
if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {
|
|
277951
278005
|
return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
|
|
277952
278006
|
}
|
|
277953
|
-
if (scheduler.actions.
|
|
278007
|
+
if (!scheduler.actions.some(function (action) { return action.id === id; })) {
|
|
277954
278008
|
_immediateProvider__WEBPACK_IMPORTED_MODULE_1__.immediateProvider.clearImmediate(id);
|
|
277955
278009
|
scheduler._scheduled = undefined;
|
|
277956
278010
|
}
|
|
@@ -277974,7 +278028,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
277974
278028
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
277975
278029
|
/* harmony export */ "AsapScheduler": () => (/* binding */ AsapScheduler)
|
|
277976
278030
|
/* harmony export */ });
|
|
277977
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
278031
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
277978
278032
|
/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js");
|
|
277979
278033
|
|
|
277980
278034
|
|
|
@@ -277985,20 +278039,19 @@ var AsapScheduler = (function (_super) {
|
|
|
277985
278039
|
}
|
|
277986
278040
|
AsapScheduler.prototype.flush = function (action) {
|
|
277987
278041
|
this._active = true;
|
|
278042
|
+
var flushId = this._scheduled;
|
|
277988
278043
|
this._scheduled = undefined;
|
|
277989
278044
|
var actions = this.actions;
|
|
277990
278045
|
var error;
|
|
277991
|
-
var index = -1;
|
|
277992
278046
|
action = action || actions.shift();
|
|
277993
|
-
var count = actions.length;
|
|
277994
278047
|
do {
|
|
277995
278048
|
if ((error = action.execute(action.state, action.delay))) {
|
|
277996
278049
|
break;
|
|
277997
278050
|
}
|
|
277998
|
-
} while (
|
|
278051
|
+
} while ((action = actions[0]) && action.id === flushId && actions.shift());
|
|
277999
278052
|
this._active = false;
|
|
278000
278053
|
if (error) {
|
|
278001
|
-
while (
|
|
278054
|
+
while ((action = actions[0]) && action.id === flushId && actions.shift()) {
|
|
278002
278055
|
action.unsubscribe();
|
|
278003
278056
|
}
|
|
278004
278057
|
throw error;
|
|
@@ -278022,7 +278075,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
278022
278075
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
278023
278076
|
/* harmony export */ "AsyncAction": () => (/* binding */ AsyncAction)
|
|
278024
278077
|
/* harmony export */ });
|
|
278025
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
278078
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
278026
278079
|
/* harmony import */ var _Action__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Action */ "./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js");
|
|
278027
278080
|
/* harmony import */ var _intervalProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./intervalProvider */ "./node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js");
|
|
278028
278081
|
/* harmony import */ var _util_arrRemove__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/arrRemove */ "./node_modules/rxjs/dist/esm5/internal/util/arrRemove.js");
|
|
@@ -278127,7 +278180,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
278127
278180
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
278128
278181
|
/* harmony export */ "AsyncScheduler": () => (/* binding */ AsyncScheduler)
|
|
278129
278182
|
/* harmony export */ });
|
|
278130
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
278183
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
278131
278184
|
/* harmony import */ var _Scheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Scheduler */ "./node_modules/rxjs/dist/esm5/internal/Scheduler.js");
|
|
278132
278185
|
|
|
278133
278186
|
|
|
@@ -278202,7 +278255,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
278202
278255
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
278203
278256
|
/* harmony export */ "animationFrameProvider": () => (/* binding */ animationFrameProvider)
|
|
278204
278257
|
/* harmony export */ });
|
|
278205
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
278258
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
278206
278259
|
/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/dist/esm5/internal/Subscription.js");
|
|
278207
278260
|
|
|
278208
278261
|
|
|
@@ -278319,7 +278372,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
278319
278372
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
278320
278373
|
/* harmony export */ "immediateProvider": () => (/* binding */ immediateProvider)
|
|
278321
278374
|
/* harmony export */ });
|
|
278322
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
278375
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
278323
278376
|
/* harmony import */ var _util_Immediate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/Immediate */ "./node_modules/rxjs/dist/esm5/internal/util/Immediate.js");
|
|
278324
278377
|
|
|
278325
278378
|
|
|
@@ -278354,7 +278407,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
278354
278407
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
278355
278408
|
/* harmony export */ "intervalProvider": () => (/* binding */ intervalProvider)
|
|
278356
278409
|
/* harmony export */ });
|
|
278357
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
278410
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
278358
278411
|
|
|
278359
278412
|
var intervalProvider = {
|
|
278360
278413
|
setInterval: function () {
|
|
@@ -278386,7 +278439,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
278386
278439
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
278387
278440
|
/* harmony export */ "timeoutProvider": () => (/* binding */ timeoutProvider)
|
|
278388
278441
|
/* harmony export */ });
|
|
278389
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
278442
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
278390
278443
|
|
|
278391
278444
|
var timeoutProvider = {
|
|
278392
278445
|
setTimeout: function () {
|
|
@@ -278939,7 +278992,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
278939
278992
|
/* harmony export */ "readableStreamLikeToAsyncGenerator": () => (/* binding */ readableStreamLikeToAsyncGenerator),
|
|
278940
278993
|
/* harmony export */ "isReadableStreamLike": () => (/* binding */ isReadableStreamLike)
|
|
278941
278994
|
/* harmony export */ });
|
|
278942
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
278995
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
278943
278996
|
/* harmony import */ var _isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction */ "./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");
|
|
278944
278997
|
|
|
278945
278998
|
|
|
@@ -279050,7 +279103,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
279050
279103
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
279051
279104
|
/* harmony export */ "mapOneOrManyArgs": () => (/* binding */ mapOneOrManyArgs)
|
|
279052
279105
|
/* harmony export */ });
|
|
279053
|
-
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/
|
|
279106
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
|
|
279054
279107
|
/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../operators/map */ "./node_modules/rxjs/dist/esm5/internal/operators/map.js");
|
|
279055
279108
|
|
|
279056
279109
|
|
|
@@ -279163,281 +279216,6 @@ function createInvalidObservableTypeError(input) {
|
|
|
279163
279216
|
}
|
|
279164
279217
|
//# sourceMappingURL=throwUnobservableError.js.map
|
|
279165
279218
|
|
|
279166
|
-
/***/ }),
|
|
279167
|
-
|
|
279168
|
-
/***/ "./node_modules/rxjs/node_modules/tslib/tslib.es6.js":
|
|
279169
|
-
/*!***********************************************************!*\
|
|
279170
|
-
!*** ./node_modules/rxjs/node_modules/tslib/tslib.es6.js ***!
|
|
279171
|
-
\***********************************************************/
|
|
279172
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
279173
|
-
|
|
279174
|
-
"use strict";
|
|
279175
|
-
__webpack_require__.r(__webpack_exports__);
|
|
279176
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
279177
|
-
/* harmony export */ "__extends": () => (/* binding */ __extends),
|
|
279178
|
-
/* harmony export */ "__assign": () => (/* binding */ __assign),
|
|
279179
|
-
/* harmony export */ "__rest": () => (/* binding */ __rest),
|
|
279180
|
-
/* harmony export */ "__decorate": () => (/* binding */ __decorate),
|
|
279181
|
-
/* harmony export */ "__param": () => (/* binding */ __param),
|
|
279182
|
-
/* harmony export */ "__metadata": () => (/* binding */ __metadata),
|
|
279183
|
-
/* harmony export */ "__awaiter": () => (/* binding */ __awaiter),
|
|
279184
|
-
/* harmony export */ "__generator": () => (/* binding */ __generator),
|
|
279185
|
-
/* harmony export */ "__createBinding": () => (/* binding */ __createBinding),
|
|
279186
|
-
/* harmony export */ "__exportStar": () => (/* binding */ __exportStar),
|
|
279187
|
-
/* harmony export */ "__values": () => (/* binding */ __values),
|
|
279188
|
-
/* harmony export */ "__read": () => (/* binding */ __read),
|
|
279189
|
-
/* harmony export */ "__spread": () => (/* binding */ __spread),
|
|
279190
|
-
/* harmony export */ "__spreadArrays": () => (/* binding */ __spreadArrays),
|
|
279191
|
-
/* harmony export */ "__spreadArray": () => (/* binding */ __spreadArray),
|
|
279192
|
-
/* harmony export */ "__await": () => (/* binding */ __await),
|
|
279193
|
-
/* harmony export */ "__asyncGenerator": () => (/* binding */ __asyncGenerator),
|
|
279194
|
-
/* harmony export */ "__asyncDelegator": () => (/* binding */ __asyncDelegator),
|
|
279195
|
-
/* harmony export */ "__asyncValues": () => (/* binding */ __asyncValues),
|
|
279196
|
-
/* harmony export */ "__makeTemplateObject": () => (/* binding */ __makeTemplateObject),
|
|
279197
|
-
/* harmony export */ "__importStar": () => (/* binding */ __importStar),
|
|
279198
|
-
/* harmony export */ "__importDefault": () => (/* binding */ __importDefault),
|
|
279199
|
-
/* harmony export */ "__classPrivateFieldGet": () => (/* binding */ __classPrivateFieldGet),
|
|
279200
|
-
/* harmony export */ "__classPrivateFieldSet": () => (/* binding */ __classPrivateFieldSet)
|
|
279201
|
-
/* harmony export */ });
|
|
279202
|
-
/*! *****************************************************************************
|
|
279203
|
-
Copyright (c) Microsoft Corporation.
|
|
279204
|
-
|
|
279205
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
279206
|
-
purpose with or without fee is hereby granted.
|
|
279207
|
-
|
|
279208
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
279209
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
279210
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
279211
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
279212
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
279213
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
279214
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
279215
|
-
***************************************************************************** */
|
|
279216
|
-
/* global Reflect, Promise */
|
|
279217
|
-
|
|
279218
|
-
var extendStatics = function(d, b) {
|
|
279219
|
-
extendStatics = Object.setPrototypeOf ||
|
|
279220
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
279221
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
279222
|
-
return extendStatics(d, b);
|
|
279223
|
-
};
|
|
279224
|
-
|
|
279225
|
-
function __extends(d, b) {
|
|
279226
|
-
if (typeof b !== "function" && b !== null)
|
|
279227
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
279228
|
-
extendStatics(d, b);
|
|
279229
|
-
function __() { this.constructor = d; }
|
|
279230
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
279231
|
-
}
|
|
279232
|
-
|
|
279233
|
-
var __assign = function() {
|
|
279234
|
-
__assign = Object.assign || function __assign(t) {
|
|
279235
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
279236
|
-
s = arguments[i];
|
|
279237
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
279238
|
-
}
|
|
279239
|
-
return t;
|
|
279240
|
-
}
|
|
279241
|
-
return __assign.apply(this, arguments);
|
|
279242
|
-
}
|
|
279243
|
-
|
|
279244
|
-
function __rest(s, e) {
|
|
279245
|
-
var t = {};
|
|
279246
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
279247
|
-
t[p] = s[p];
|
|
279248
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
279249
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
279250
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
279251
|
-
t[p[i]] = s[p[i]];
|
|
279252
|
-
}
|
|
279253
|
-
return t;
|
|
279254
|
-
}
|
|
279255
|
-
|
|
279256
|
-
function __decorate(decorators, target, key, desc) {
|
|
279257
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
279258
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
279259
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
279260
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
279261
|
-
}
|
|
279262
|
-
|
|
279263
|
-
function __param(paramIndex, decorator) {
|
|
279264
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
279265
|
-
}
|
|
279266
|
-
|
|
279267
|
-
function __metadata(metadataKey, metadataValue) {
|
|
279268
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
279269
|
-
}
|
|
279270
|
-
|
|
279271
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
279272
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
279273
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
279274
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
279275
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
279276
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
279277
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
279278
|
-
});
|
|
279279
|
-
}
|
|
279280
|
-
|
|
279281
|
-
function __generator(thisArg, body) {
|
|
279282
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
279283
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
279284
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
279285
|
-
function step(op) {
|
|
279286
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
279287
|
-
while (_) try {
|
|
279288
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
279289
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
279290
|
-
switch (op[0]) {
|
|
279291
|
-
case 0: case 1: t = op; break;
|
|
279292
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
279293
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
279294
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
279295
|
-
default:
|
|
279296
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
279297
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
279298
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
279299
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
279300
|
-
if (t[2]) _.ops.pop();
|
|
279301
|
-
_.trys.pop(); continue;
|
|
279302
|
-
}
|
|
279303
|
-
op = body.call(thisArg, _);
|
|
279304
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
279305
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
279306
|
-
}
|
|
279307
|
-
}
|
|
279308
|
-
|
|
279309
|
-
var __createBinding = Object.create ? (function(o, m, k, k2) {
|
|
279310
|
-
if (k2 === undefined) k2 = k;
|
|
279311
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
279312
|
-
}) : (function(o, m, k, k2) {
|
|
279313
|
-
if (k2 === undefined) k2 = k;
|
|
279314
|
-
o[k2] = m[k];
|
|
279315
|
-
});
|
|
279316
|
-
|
|
279317
|
-
function __exportStar(m, o) {
|
|
279318
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
|
|
279319
|
-
}
|
|
279320
|
-
|
|
279321
|
-
function __values(o) {
|
|
279322
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
279323
|
-
if (m) return m.call(o);
|
|
279324
|
-
if (o && typeof o.length === "number") return {
|
|
279325
|
-
next: function () {
|
|
279326
|
-
if (o && i >= o.length) o = void 0;
|
|
279327
|
-
return { value: o && o[i++], done: !o };
|
|
279328
|
-
}
|
|
279329
|
-
};
|
|
279330
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
279331
|
-
}
|
|
279332
|
-
|
|
279333
|
-
function __read(o, n) {
|
|
279334
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
279335
|
-
if (!m) return o;
|
|
279336
|
-
var i = m.call(o), r, ar = [], e;
|
|
279337
|
-
try {
|
|
279338
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
279339
|
-
}
|
|
279340
|
-
catch (error) { e = { error: error }; }
|
|
279341
|
-
finally {
|
|
279342
|
-
try {
|
|
279343
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
279344
|
-
}
|
|
279345
|
-
finally { if (e) throw e.error; }
|
|
279346
|
-
}
|
|
279347
|
-
return ar;
|
|
279348
|
-
}
|
|
279349
|
-
|
|
279350
|
-
/** @deprecated */
|
|
279351
|
-
function __spread() {
|
|
279352
|
-
for (var ar = [], i = 0; i < arguments.length; i++)
|
|
279353
|
-
ar = ar.concat(__read(arguments[i]));
|
|
279354
|
-
return ar;
|
|
279355
|
-
}
|
|
279356
|
-
|
|
279357
|
-
/** @deprecated */
|
|
279358
|
-
function __spreadArrays() {
|
|
279359
|
-
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
279360
|
-
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
279361
|
-
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
279362
|
-
r[k] = a[j];
|
|
279363
|
-
return r;
|
|
279364
|
-
}
|
|
279365
|
-
|
|
279366
|
-
function __spreadArray(to, from) {
|
|
279367
|
-
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
279368
|
-
to[j] = from[i];
|
|
279369
|
-
return to;
|
|
279370
|
-
}
|
|
279371
|
-
|
|
279372
|
-
function __await(v) {
|
|
279373
|
-
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
|
279374
|
-
}
|
|
279375
|
-
|
|
279376
|
-
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
279377
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
279378
|
-
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
279379
|
-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
279380
|
-
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
279381
|
-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
279382
|
-
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
279383
|
-
function fulfill(value) { resume("next", value); }
|
|
279384
|
-
function reject(value) { resume("throw", value); }
|
|
279385
|
-
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
279386
|
-
}
|
|
279387
|
-
|
|
279388
|
-
function __asyncDelegator(o) {
|
|
279389
|
-
var i, p;
|
|
279390
|
-
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
|
279391
|
-
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
|
|
279392
|
-
}
|
|
279393
|
-
|
|
279394
|
-
function __asyncValues(o) {
|
|
279395
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
279396
|
-
var m = o[Symbol.asyncIterator], i;
|
|
279397
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
279398
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
279399
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
279400
|
-
}
|
|
279401
|
-
|
|
279402
|
-
function __makeTemplateObject(cooked, raw) {
|
|
279403
|
-
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
279404
|
-
return cooked;
|
|
279405
|
-
};
|
|
279406
|
-
|
|
279407
|
-
var __setModuleDefault = Object.create ? (function(o, v) {
|
|
279408
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
279409
|
-
}) : function(o, v) {
|
|
279410
|
-
o["default"] = v;
|
|
279411
|
-
};
|
|
279412
|
-
|
|
279413
|
-
function __importStar(mod) {
|
|
279414
|
-
if (mod && mod.__esModule) return mod;
|
|
279415
|
-
var result = {};
|
|
279416
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
279417
|
-
__setModuleDefault(result, mod);
|
|
279418
|
-
return result;
|
|
279419
|
-
}
|
|
279420
|
-
|
|
279421
|
-
function __importDefault(mod) {
|
|
279422
|
-
return (mod && mod.__esModule) ? mod : { default: mod };
|
|
279423
|
-
}
|
|
279424
|
-
|
|
279425
|
-
function __classPrivateFieldGet(receiver, privateMap) {
|
|
279426
|
-
if (!privateMap.has(receiver)) {
|
|
279427
|
-
throw new TypeError("attempted to get private field on non-instance");
|
|
279428
|
-
}
|
|
279429
|
-
return privateMap.get(receiver);
|
|
279430
|
-
}
|
|
279431
|
-
|
|
279432
|
-
function __classPrivateFieldSet(receiver, privateMap, value) {
|
|
279433
|
-
if (!privateMap.has(receiver)) {
|
|
279434
|
-
throw new TypeError("attempted to set private field on non-instance");
|
|
279435
|
-
}
|
|
279436
|
-
privateMap.set(receiver, value);
|
|
279437
|
-
return value;
|
|
279438
|
-
}
|
|
279439
|
-
|
|
279440
|
-
|
|
279441
279219
|
/***/ }),
|
|
279442
279220
|
|
|
279443
279221
|
/***/ "./node_modules/stream-browserify/index.js":
|
|
@@ -281370,36 +281148,6 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
281370
281148
|
|
|
281371
281149
|
/***/ }),
|
|
281372
281150
|
|
|
281373
|
-
/***/ "./app/codeCharta/ui/unfocusButton/unfocusButton.component.scss":
|
|
281374
|
-
/*!**********************************************************************!*\
|
|
281375
|
-
!*** ./app/codeCharta/ui/unfocusButton/unfocusButton.component.scss ***!
|
|
281376
|
-
\**********************************************************************/
|
|
281377
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
281378
|
-
|
|
281379
|
-
"use strict";
|
|
281380
|
-
__webpack_require__.r(__webpack_exports__);
|
|
281381
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
281382
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
281383
|
-
/* harmony export */ });
|
|
281384
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
|
|
281385
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
281386
|
-
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_unfocusButton_component_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./unfocusButton.component.scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./app/codeCharta/ui/unfocusButton/unfocusButton.component.scss");
|
|
281387
|
-
|
|
281388
|
-
|
|
281389
|
-
|
|
281390
|
-
var options = {};
|
|
281391
|
-
|
|
281392
|
-
options.insert = "head";
|
|
281393
|
-
options.singleton = false;
|
|
281394
|
-
|
|
281395
|
-
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_unfocusButton_component_scss__WEBPACK_IMPORTED_MODULE_1__["default"], options);
|
|
281396
|
-
|
|
281397
|
-
|
|
281398
|
-
|
|
281399
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_unfocusButton_component_scss__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
|
|
281400
|
-
|
|
281401
|
-
/***/ }),
|
|
281402
|
-
|
|
281403
281151
|
/***/ "./app/codeCharta/ui/viewCube/viewCube.component.scss":
|
|
281404
281152
|
/*!************************************************************!*\
|
|
281405
281153
|
!*** ./app/codeCharta/ui/viewCube/viewCube.component.scss ***!
|
|
@@ -333455,6 +333203,283 @@ var CopyShader = {
|
|
|
333455
333203
|
|
|
333456
333204
|
|
|
333457
333205
|
|
|
333206
|
+
/***/ }),
|
|
333207
|
+
|
|
333208
|
+
/***/ "./node_modules/tslib/tslib.es6.js":
|
|
333209
|
+
/*!*****************************************!*\
|
|
333210
|
+
!*** ./node_modules/tslib/tslib.es6.js ***!
|
|
333211
|
+
\*****************************************/
|
|
333212
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
333213
|
+
|
|
333214
|
+
"use strict";
|
|
333215
|
+
__webpack_require__.r(__webpack_exports__);
|
|
333216
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
333217
|
+
/* harmony export */ "__extends": () => (/* binding */ __extends),
|
|
333218
|
+
/* harmony export */ "__assign": () => (/* binding */ __assign),
|
|
333219
|
+
/* harmony export */ "__rest": () => (/* binding */ __rest),
|
|
333220
|
+
/* harmony export */ "__decorate": () => (/* binding */ __decorate),
|
|
333221
|
+
/* harmony export */ "__param": () => (/* binding */ __param),
|
|
333222
|
+
/* harmony export */ "__metadata": () => (/* binding */ __metadata),
|
|
333223
|
+
/* harmony export */ "__awaiter": () => (/* binding */ __awaiter),
|
|
333224
|
+
/* harmony export */ "__generator": () => (/* binding */ __generator),
|
|
333225
|
+
/* harmony export */ "__createBinding": () => (/* binding */ __createBinding),
|
|
333226
|
+
/* harmony export */ "__exportStar": () => (/* binding */ __exportStar),
|
|
333227
|
+
/* harmony export */ "__values": () => (/* binding */ __values),
|
|
333228
|
+
/* harmony export */ "__read": () => (/* binding */ __read),
|
|
333229
|
+
/* harmony export */ "__spread": () => (/* binding */ __spread),
|
|
333230
|
+
/* harmony export */ "__spreadArrays": () => (/* binding */ __spreadArrays),
|
|
333231
|
+
/* harmony export */ "__spreadArray": () => (/* binding */ __spreadArray),
|
|
333232
|
+
/* harmony export */ "__await": () => (/* binding */ __await),
|
|
333233
|
+
/* harmony export */ "__asyncGenerator": () => (/* binding */ __asyncGenerator),
|
|
333234
|
+
/* harmony export */ "__asyncDelegator": () => (/* binding */ __asyncDelegator),
|
|
333235
|
+
/* harmony export */ "__asyncValues": () => (/* binding */ __asyncValues),
|
|
333236
|
+
/* harmony export */ "__makeTemplateObject": () => (/* binding */ __makeTemplateObject),
|
|
333237
|
+
/* harmony export */ "__importStar": () => (/* binding */ __importStar),
|
|
333238
|
+
/* harmony export */ "__importDefault": () => (/* binding */ __importDefault),
|
|
333239
|
+
/* harmony export */ "__classPrivateFieldGet": () => (/* binding */ __classPrivateFieldGet),
|
|
333240
|
+
/* harmony export */ "__classPrivateFieldSet": () => (/* binding */ __classPrivateFieldSet)
|
|
333241
|
+
/* harmony export */ });
|
|
333242
|
+
/*! *****************************************************************************
|
|
333243
|
+
Copyright (c) Microsoft Corporation.
|
|
333244
|
+
|
|
333245
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
333246
|
+
purpose with or without fee is hereby granted.
|
|
333247
|
+
|
|
333248
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
333249
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
333250
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
333251
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
333252
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
333253
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
333254
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
333255
|
+
***************************************************************************** */
|
|
333256
|
+
/* global Reflect, Promise */
|
|
333257
|
+
|
|
333258
|
+
var extendStatics = function(d, b) {
|
|
333259
|
+
extendStatics = Object.setPrototypeOf ||
|
|
333260
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
333261
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
333262
|
+
return extendStatics(d, b);
|
|
333263
|
+
};
|
|
333264
|
+
|
|
333265
|
+
function __extends(d, b) {
|
|
333266
|
+
if (typeof b !== "function" && b !== null)
|
|
333267
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
333268
|
+
extendStatics(d, b);
|
|
333269
|
+
function __() { this.constructor = d; }
|
|
333270
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
333271
|
+
}
|
|
333272
|
+
|
|
333273
|
+
var __assign = function() {
|
|
333274
|
+
__assign = Object.assign || function __assign(t) {
|
|
333275
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
333276
|
+
s = arguments[i];
|
|
333277
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
333278
|
+
}
|
|
333279
|
+
return t;
|
|
333280
|
+
}
|
|
333281
|
+
return __assign.apply(this, arguments);
|
|
333282
|
+
}
|
|
333283
|
+
|
|
333284
|
+
function __rest(s, e) {
|
|
333285
|
+
var t = {};
|
|
333286
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
333287
|
+
t[p] = s[p];
|
|
333288
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
333289
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
333290
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
333291
|
+
t[p[i]] = s[p[i]];
|
|
333292
|
+
}
|
|
333293
|
+
return t;
|
|
333294
|
+
}
|
|
333295
|
+
|
|
333296
|
+
function __decorate(decorators, target, key, desc) {
|
|
333297
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
333298
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
333299
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
333300
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
333301
|
+
}
|
|
333302
|
+
|
|
333303
|
+
function __param(paramIndex, decorator) {
|
|
333304
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
333305
|
+
}
|
|
333306
|
+
|
|
333307
|
+
function __metadata(metadataKey, metadataValue) {
|
|
333308
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
333309
|
+
}
|
|
333310
|
+
|
|
333311
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
333312
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
333313
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
333314
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
333315
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
333316
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
333317
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
333318
|
+
});
|
|
333319
|
+
}
|
|
333320
|
+
|
|
333321
|
+
function __generator(thisArg, body) {
|
|
333322
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
333323
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
333324
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
333325
|
+
function step(op) {
|
|
333326
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
333327
|
+
while (_) try {
|
|
333328
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
333329
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
333330
|
+
switch (op[0]) {
|
|
333331
|
+
case 0: case 1: t = op; break;
|
|
333332
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
333333
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
333334
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
333335
|
+
default:
|
|
333336
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
333337
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
333338
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
333339
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
333340
|
+
if (t[2]) _.ops.pop();
|
|
333341
|
+
_.trys.pop(); continue;
|
|
333342
|
+
}
|
|
333343
|
+
op = body.call(thisArg, _);
|
|
333344
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
333345
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
333346
|
+
}
|
|
333347
|
+
}
|
|
333348
|
+
|
|
333349
|
+
var __createBinding = Object.create ? (function(o, m, k, k2) {
|
|
333350
|
+
if (k2 === undefined) k2 = k;
|
|
333351
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
333352
|
+
}) : (function(o, m, k, k2) {
|
|
333353
|
+
if (k2 === undefined) k2 = k;
|
|
333354
|
+
o[k2] = m[k];
|
|
333355
|
+
});
|
|
333356
|
+
|
|
333357
|
+
function __exportStar(m, o) {
|
|
333358
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
|
|
333359
|
+
}
|
|
333360
|
+
|
|
333361
|
+
function __values(o) {
|
|
333362
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
333363
|
+
if (m) return m.call(o);
|
|
333364
|
+
if (o && typeof o.length === "number") return {
|
|
333365
|
+
next: function () {
|
|
333366
|
+
if (o && i >= o.length) o = void 0;
|
|
333367
|
+
return { value: o && o[i++], done: !o };
|
|
333368
|
+
}
|
|
333369
|
+
};
|
|
333370
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
333371
|
+
}
|
|
333372
|
+
|
|
333373
|
+
function __read(o, n) {
|
|
333374
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
333375
|
+
if (!m) return o;
|
|
333376
|
+
var i = m.call(o), r, ar = [], e;
|
|
333377
|
+
try {
|
|
333378
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
333379
|
+
}
|
|
333380
|
+
catch (error) { e = { error: error }; }
|
|
333381
|
+
finally {
|
|
333382
|
+
try {
|
|
333383
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
333384
|
+
}
|
|
333385
|
+
finally { if (e) throw e.error; }
|
|
333386
|
+
}
|
|
333387
|
+
return ar;
|
|
333388
|
+
}
|
|
333389
|
+
|
|
333390
|
+
/** @deprecated */
|
|
333391
|
+
function __spread() {
|
|
333392
|
+
for (var ar = [], i = 0; i < arguments.length; i++)
|
|
333393
|
+
ar = ar.concat(__read(arguments[i]));
|
|
333394
|
+
return ar;
|
|
333395
|
+
}
|
|
333396
|
+
|
|
333397
|
+
/** @deprecated */
|
|
333398
|
+
function __spreadArrays() {
|
|
333399
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
333400
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
333401
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
333402
|
+
r[k] = a[j];
|
|
333403
|
+
return r;
|
|
333404
|
+
}
|
|
333405
|
+
|
|
333406
|
+
function __spreadArray(to, from, pack) {
|
|
333407
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
333408
|
+
if (ar || !(i in from)) {
|
|
333409
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
333410
|
+
ar[i] = from[i];
|
|
333411
|
+
}
|
|
333412
|
+
}
|
|
333413
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
333414
|
+
}
|
|
333415
|
+
|
|
333416
|
+
function __await(v) {
|
|
333417
|
+
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
|
333418
|
+
}
|
|
333419
|
+
|
|
333420
|
+
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
333421
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
333422
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
333423
|
+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
333424
|
+
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
333425
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
333426
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
333427
|
+
function fulfill(value) { resume("next", value); }
|
|
333428
|
+
function reject(value) { resume("throw", value); }
|
|
333429
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
333430
|
+
}
|
|
333431
|
+
|
|
333432
|
+
function __asyncDelegator(o) {
|
|
333433
|
+
var i, p;
|
|
333434
|
+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
|
333435
|
+
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
|
|
333436
|
+
}
|
|
333437
|
+
|
|
333438
|
+
function __asyncValues(o) {
|
|
333439
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
333440
|
+
var m = o[Symbol.asyncIterator], i;
|
|
333441
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
333442
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
333443
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
333444
|
+
}
|
|
333445
|
+
|
|
333446
|
+
function __makeTemplateObject(cooked, raw) {
|
|
333447
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
333448
|
+
return cooked;
|
|
333449
|
+
};
|
|
333450
|
+
|
|
333451
|
+
var __setModuleDefault = Object.create ? (function(o, v) {
|
|
333452
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
333453
|
+
}) : function(o, v) {
|
|
333454
|
+
o["default"] = v;
|
|
333455
|
+
};
|
|
333456
|
+
|
|
333457
|
+
function __importStar(mod) {
|
|
333458
|
+
if (mod && mod.__esModule) return mod;
|
|
333459
|
+
var result = {};
|
|
333460
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
333461
|
+
__setModuleDefault(result, mod);
|
|
333462
|
+
return result;
|
|
333463
|
+
}
|
|
333464
|
+
|
|
333465
|
+
function __importDefault(mod) {
|
|
333466
|
+
return (mod && mod.__esModule) ? mod : { default: mod };
|
|
333467
|
+
}
|
|
333468
|
+
|
|
333469
|
+
function __classPrivateFieldGet(receiver, state, kind, f) {
|
|
333470
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
333471
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
333472
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
333473
|
+
}
|
|
333474
|
+
|
|
333475
|
+
function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
333476
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
333477
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
333478
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
333479
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
333480
|
+
}
|
|
333481
|
+
|
|
333482
|
+
|
|
333458
333483
|
/***/ }),
|
|
333459
333484
|
|
|
333460
333485
|
/***/ "./node_modules/uri-js/dist/es5/uri.all.js":
|
|
@@ -341903,7 +341928,7 @@ module.exports = JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#
|
|
|
341903
341928
|
/***/ ((module) => {
|
|
341904
341929
|
|
|
341905
341930
|
"use strict";
|
|
341906
|
-
module.exports = JSON.parse('{"author":"MaibornWolff GmbH <dist_intern_codecharta@maibornwolff.de>","homepage":"https://maibornwolff.github.io/codecharta/","bugs":{"url":"https://github.com/MaibornWolff/codecharta/issues","email":"dist_intern_codecharta@maibornwolff.de"},"repository":{"type":"git","url":"https://github.com/MaibornWolff/codecharta.git"},"name":"codecharta-visualization","version":"1.
|
|
341931
|
+
module.exports = JSON.parse('{"author":"MaibornWolff GmbH <dist_intern_codecharta@maibornwolff.de>","homepage":"https://maibornwolff.github.io/codecharta/","bugs":{"url":"https://github.com/MaibornWolff/codecharta/issues","email":"dist_intern_codecharta@maibornwolff.de"},"repository":{"type":"git","url":"https://github.com/MaibornWolff/codecharta.git"},"name":"codecharta-visualization","version":"1.87.0","engines":{"node":">=16"},"description":"MaibornWolff CodeCharta","files":["dist/webpack","app","conf","Dockerfile","LICENSE.md","package.json","package-lock.json","README.md","tsconfig.json","cli.js"],"codecharta":{"apiVersion":"1.3"},"window":{"icon":"app/icon.png","toolbar":true,"frame":true,"width":1024,"height":768},"main":"dist/webpack/index.html","build":{"nwVersion":"0.53.0","output":"./dist/packages/","outputPattern":"codecharta-visualization-${VERSION}-${PLATFORM}-${ARCH}","files":"./dist/webpack/**/*","packed":true,"targets":["zip"],"appId":"io.github.maibornwolff.codecharta","win":{"productName":"codecharta-visualization","companyName":"MaibornWolff GmbH","icon":"app/assets/icon.ico"},"mac":{"icon":"app/assets/icon.icns","displayName":"codecharta-visualization"}},"browserslist":["last 2 versions","not IE 11"],"scripts":{"start":"nw .","build":"webpack --config ./conf/webpack.config.js --env STANDALONE=true --env DEV=false","build:web":"webpack --config ./conf/webpack.config.js --env STANDALONE=false --env DEV=false","dev":"webpack serve --config ./conf/webpack.config.js --env STANDALONE=false --env DEV=true","test":"jest --config ./jest.config.json .*\\\\.spec\\\\.ts --env=jsdom","test:auto":"npm test -- --watch","test:autoNoCoverage":"npm run test:auto -- --coverage false","test:updateSnaps":"npm test -- --updateSnapshot","e2e":"cross-env TEST_TYPE=\\"e2e\\" jest --config ./jest.config.json .*\\\\.e2e\\\\.ts --coverage false","e2e:auto":"npm run e2e -- --watch","e2e:ci":"npm run e2e -- --runInBand","package":"node -e \'fs.rmSync(\\"dist/packages\\", { recursive: true, force: true })\' && build --concurrent --tasks win-x86,win-x64,linux-x86,linux-x64,mac-x64 --mirror https://dl.nwjs.io/ . && bestzip ./dist/packages/codecharta-visualization-$npm_package_version-web.zip ./dist/webpack","lint":"eslint \\"app/**/*.ts\\"","lint:fix":"npm run lint -- --fix","precommit":"lint-staged","schema:generate":"typescript-json-schema ./app/codeCharta/codeCharta.model.ts ExportCCFile --required --topRef --out app/codeCharta/util/generatedSchema.json"},"lint-staged":{"app/**/*.ts":"eslint --fix"},"bin":{"codecharta-visualization":"cli.js"},"license":"BSD-3-Clause","dependencies":{"@angular/animations":"^12.2.12","@angular/cdk":"^12.2.12","@angular/common":"^12.2.12","@angular/compiler":"^12.2.12","@angular/core":"^12.2.12","@angular/material":"^12.2.12","@angular/platform-browser":"^12.2.12","@angular/platform-browser-dynamic":"^12.2.12","@angular/upgrade":"^12.2.12","@types/webpack":"^5.28.0","ajv":"^6.12.6","angular":"^1.8.2","angular-animate":"^1.8.2","angular-aria":"^1.8.2","angular-material":"^1.2.2","angular-messages":"^1.8.2","angular-mocks":"^1.8.2","angular-sanitize":"^1.8.2","angularjs-nouislider":"^14.1.3","angularjs-slider":"^7.0.0","babel-plugin-transform-es2015-modules-commonjs":"^6.26.2","browserify-zlib":"^0.2.0","changelog-parser":"^2.8.0","color-convert":"^2.0.1","core-js":"^3.15.2","d3-hierarchy":"^2.0.0","font-awesome":"^4.7.0","hotkeys-js":"^3.8.2","ignore":"^5.1.8","klona":"^2.0.4","lodash.camelcase":"^4.3.0","lodash.debounce":"^4.0.8","lodash.isequal":"^4.5.0","lodash.throttle":"^4.1.1","material-icons":"^1.10.4","md5":"^2.3.0","ngx-color":"^7.3.3","nouislider":"^15.0.0","nw":"^0.58.0","open":"^8.0.6","percent-round":"^2.2.1","redux":"^4.0.5","remark":"^13.0.0","remark-html":"^13.0.1","remark-loader":"^4.0.0","rxjs":"^7.5.1","shelljs":"^0.8.4","three":"^0.126.1","three-orbit-controls":"^82.1.0","typescript-json-schema":"^0.52.0","zone.js":"^0.11.4"},"devDependencies":{"@babel/cli":"^7.13.14","@babel/core":"^7.13.15","@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@testing-library/angular":"^10.11.0","@testing-library/user-event":"^13.5.0","@types/angular":"^1.8.1","@types/angular-mocks":"^1.7.0","@types/color-convert":"^2.0.0","@types/d3-hierarchy":"^3.0.2","@types/expect-puppeteer":"^4.4.5","@types/jest":"^26.0.22","@types/jest-environment-puppeteer":"^4.4.1","@types/lodash":"^4.14.168","@types/node":"^16.0.0","@types/puppeteer":"^5.4.3","@types/three":"^0.126.0","@typescript-eslint/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"^5.0.0","babel-loader":"^8.2.2","babel-plugin-angularjs-annotate":"^0.10.0","bestzip":"^2.2.0","canvas":"^2.7.0","clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.0.0","eslint":"^8.0.0","eslint-config-prettier":"^8.2.0","eslint-plugin-unicorn":"^40.0.0","file-loader":"^6.2.0","html-loader":"^1.1.0","html-loader-jest":"^0.2.1","html-webpack-plugin":"^5.3.1","jest":"^26.6.3","jest-preset-angular":"^9.0.7","jest-puppeteer":"^6.0.0","jest-serializer-html":"^7.0.0","lint-staged":"^11.0.0","makeshift":"^1.1.0","node-polyfill-webpack-plugin":"^1.1.4","node-sass":"^6.0.1","nwjs-builder-phoenix":"^1.15.0","puppeteer":"^10.4.0","sass-loader":"^12.0.0","style-loader":"^2.0.0","ts-jest":"^26.5.5","ts-loader":"^9.0.0","typescript":"^4.3.5","webpack":"^5.33.2","webpack-cli":"^4.7.2","webpack-dev-server":"^3.11.2","webpack-glsl-loader":"^1.0.1"},"optionalDependencies":{"7zip-bin-linux":"^1.3.1","7zip-bin-mac":"^1.0.1","7zip-bin-win":"^2.2.0"}}');
|
|
341907
341932
|
|
|
341908
341933
|
/***/ })
|
|
341909
341934
|
|
|
@@ -342224,10 +342249,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
342224
342249
|
/* harmony import */ var _app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app */ "./app/app.ts");
|
|
342225
342250
|
/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zone.js */ "./node_modules/zone.js/fesm2015/zone.js");
|
|
342226
342251
|
/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(zone_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
342227
|
-
/* harmony import */ var
|
|
342228
|
-
/* harmony import */ var
|
|
342229
|
-
/* harmony import */ var
|
|
342230
|
-
/* harmony import */ var
|
|
342252
|
+
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
|
|
342253
|
+
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
|
|
342254
|
+
/* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @angular/platform-browser-dynamic */ "./node_modules/@angular/platform-browser-dynamic/fesm2015/platform-browser-dynamic.js");
|
|
342255
|
+
/* harmony import */ var _angular_upgrade_static__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @angular/upgrade/static */ "./node_modules/@angular/upgrade/fesm2015/static.js");
|
|
342231
342256
|
/* harmony import */ var _codeCharta_ui_mapTreeView_mapTreeView_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./codeCharta/ui/mapTreeView/mapTreeView.module */ "./app/codeCharta/ui/mapTreeView/mapTreeView.module.ts");
|
|
342232
342257
|
/* harmony import */ var _codeCharta_ui_mapTreeView_mapTreeView_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./codeCharta/ui/mapTreeView/mapTreeView.component */ "./app/codeCharta/ui/mapTreeView/mapTreeView.component.ts");
|
|
342233
342258
|
/* harmony import */ var _codeCharta_ui_matchingFilesCounter_matchingFilesCounter_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./codeCharta/ui/matchingFilesCounter/matchingFilesCounter.component */ "./app/codeCharta/ui/matchingFilesCounter/matchingFilesCounter.component.ts");
|
|
@@ -342243,6 +342268,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
342243
342268
|
/* harmony import */ var _codeCharta_ui_colorPickerForMapColor_colorPickerForMapColor_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./codeCharta/ui/colorPickerForMapColor/colorPickerForMapColor.component */ "./app/codeCharta/ui/colorPickerForMapColor/colorPickerForMapColor.component.ts");
|
|
342244
342269
|
/* harmony import */ var _codeCharta_ui_nodeContextMenu_markFolderColorPicker_markFolderColorPicker_module__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.module */ "./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.module.ts");
|
|
342245
342270
|
/* harmony import */ var _codeCharta_ui_nodeContextMenu_markFolderColorPicker_markFolderColorPicker_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component */ "./app/codeCharta/ui/nodeContextMenu/markFolderColorPicker/markFolderColorPicker.component.ts");
|
|
342271
|
+
/* harmony import */ var _codeCharta_ui_nodeContextMenu_focusButtons_focusButtons_module__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.module */ "./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.module.ts");
|
|
342272
|
+
/* harmony import */ var _codeCharta_ui_nodeContextMenu_focusButtons_focusButtons_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component */ "./app/codeCharta/ui/nodeContextMenu/focusButtons/focusButtons.component.ts");
|
|
342246
342273
|
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
342247
342274
|
var c = arguments.length,
|
|
342248
342275
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
@@ -342279,6 +342306,8 @@ var __param = undefined && undefined.__param || function (paramIndex, decorator)
|
|
|
342279
342306
|
|
|
342280
342307
|
|
|
342281
342308
|
|
|
342309
|
+
|
|
342310
|
+
|
|
342282
342311
|
|
|
342283
342312
|
|
|
342284
342313
|
|
|
@@ -342294,13 +342323,13 @@ let AppModule = class AppModule {
|
|
|
342294
342323
|
}
|
|
342295
342324
|
|
|
342296
342325
|
};
|
|
342297
|
-
AppModule = __decorate([(0,
|
|
342298
|
-
imports: [
|
|
342326
|
+
AppModule = __decorate([(0,_angular_core__WEBPACK_IMPORTED_MODULE_19__.NgModule)({
|
|
342327
|
+
imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_20__.BrowserModule, _angular_upgrade_static__WEBPACK_IMPORTED_MODULE_21__.UpgradeModule, _codeCharta_ui_mapTreeView_mapTreeView_module__WEBPACK_IMPORTED_MODULE_2__.MapTreeViewModule, _codeCharta_ui_matchingFilesCounter_matchingFilesCounter_module__WEBPACK_IMPORTED_MODULE_5__.MatchingFilesCounterModule, _codeCharta_ui_attributeSideBar_attributeSideBar_module__WEBPACK_IMPORTED_MODULE_6__.AttributeSideBarModule, _codeCharta_ui_export3DMapButton_export3DMapButton_module__WEBPACK_IMPORTED_MODULE_9__.Export3DMapButtonModule, _codeCharta_ui_legendPanel_legendPanel_module__WEBPACK_IMPORTED_MODULE_12__.LegendPanelModule, _codeCharta_ui_colorPickerForMapColor_colorPickerForMapColor_module__WEBPACK_IMPORTED_MODULE_13__.ColorPickerForMapColorModule, _codeCharta_ui_nodeContextMenu_markFolderColorPicker_markFolderColorPicker_module__WEBPACK_IMPORTED_MODULE_15__.MarkFolderColorPickerModule, _codeCharta_ui_nodeContextMenu_focusButtons_focusButtons_module__WEBPACK_IMPORTED_MODULE_17__.FocusButtonsModule],
|
|
342299
342328
|
declarations: [],
|
|
342300
|
-
entryComponents: [_codeCharta_ui_mapTreeView_mapTreeView_component__WEBPACK_IMPORTED_MODULE_3__.MapTreeViewComponent, _codeCharta_ui_matchingFilesCounter_matchingFilesCounter_component__WEBPACK_IMPORTED_MODULE_4__.MatchingFilesCounterComponent, _codeCharta_ui_attributeSideBar_attributeSideBar_component__WEBPACK_IMPORTED_MODULE_7__.AttributeSideBarComponent, _codeCharta_ui_export3DMapButton_export3DMapButton_component__WEBPACK_IMPORTED_MODULE_8__.Export3DMapButtonComponent, _codeCharta_ui_legendPanel_legendPanel_component__WEBPACK_IMPORTED_MODULE_11__.LegendPanelComponent, _codeCharta_ui_labelledColorPicker_labelledColorPicker_component__WEBPACK_IMPORTED_MODULE_10__.LabelledColorPickerComponent, _codeCharta_ui_colorPickerForMapColor_colorPickerForMapColor_component__WEBPACK_IMPORTED_MODULE_14__.ColorPickerForMapColorComponent, _codeCharta_ui_nodeContextMenu_markFolderColorPicker_markFolderColorPicker_component__WEBPACK_IMPORTED_MODULE_16__.MarkFolderColorPickerComponent]
|
|
342301
|
-
}), __param(0, (0,
|
|
342329
|
+
entryComponents: [_codeCharta_ui_mapTreeView_mapTreeView_component__WEBPACK_IMPORTED_MODULE_3__.MapTreeViewComponent, _codeCharta_ui_matchingFilesCounter_matchingFilesCounter_component__WEBPACK_IMPORTED_MODULE_4__.MatchingFilesCounterComponent, _codeCharta_ui_attributeSideBar_attributeSideBar_component__WEBPACK_IMPORTED_MODULE_7__.AttributeSideBarComponent, _codeCharta_ui_export3DMapButton_export3DMapButton_component__WEBPACK_IMPORTED_MODULE_8__.Export3DMapButtonComponent, _codeCharta_ui_legendPanel_legendPanel_component__WEBPACK_IMPORTED_MODULE_11__.LegendPanelComponent, _codeCharta_ui_labelledColorPicker_labelledColorPicker_component__WEBPACK_IMPORTED_MODULE_10__.LabelledColorPickerComponent, _codeCharta_ui_colorPickerForMapColor_colorPickerForMapColor_component__WEBPACK_IMPORTED_MODULE_14__.ColorPickerForMapColorComponent, _codeCharta_ui_nodeContextMenu_markFolderColorPicker_markFolderColorPicker_component__WEBPACK_IMPORTED_MODULE_16__.MarkFolderColorPickerComponent, _codeCharta_ui_nodeContextMenu_focusButtons_focusButtons_component__WEBPACK_IMPORTED_MODULE_18__.FocusButtonsComponent]
|
|
342330
|
+
}), __param(0, (0,_angular_core__WEBPACK_IMPORTED_MODULE_19__.Inject)(_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_21__.UpgradeModule)), __metadata("design:paramtypes", [_angular_upgrade_static__WEBPACK_IMPORTED_MODULE_21__.UpgradeModule])], AppModule);
|
|
342302
342331
|
|
|
342303
|
-
(0,
|
|
342332
|
+
(0,_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_22__.platformBrowserDynamic)().bootstrapModule(AppModule);
|
|
342304
342333
|
})();
|
|
342305
342334
|
|
|
342306
342335
|
/******/ })()
|