qms-angular 1.0.36 → 1.0.40
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/bundles/qms-angular.umd.js +7101 -221
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/components/breadcrumb/breadcrumb.js +29 -6
- package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +2 -2
- package/esm2015/lib/components/related/popup/related-popup.component.js +2 -2
- package/esm2015/lib/model/en.js +144 -1
- package/esm2015/lib/model/no.js +148 -5
- package/esm2015/lib/qms-ckeditor-components/common/bpmn/inspector.function.js +2147 -0
- package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +200 -0
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +6 -1
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.js +36 -0
- package/esm2015/lib/qms-ckeditor-components/common/constants/iconSvg.constants.js +8 -0
- package/esm2015/lib/qms-ckeditor-components/common/enums/flowchart-view-mode.enum.js +6 -0
- package/esm2015/lib/qms-ckeditor-components/common/enums/image-mode.enum.js +9 -0
- package/esm2015/lib/qms-ckeditor-components/common/enums/protocol-type.enum.js +11 -3
- package/esm2015/lib/qms-ckeditor-components/common/enums/related-to-item-type.js +11 -0
- package/esm2015/lib/qms-ckeditor-components/common/enums/target-type.enum.js +8 -1
- package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +6 -2
- package/esm2015/lib/qms-ckeditor-components/common/helper/guidHelper.js +14 -0
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-bpmn-template.model.js +9 -0
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-bpmn.model.js +9 -0
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model.js +1 -9
- package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +3 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +266 -0
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +67 -0
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +524 -0
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.lib.js +1948 -0
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.validator.js +7 -0
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +1 -1
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +5 -5
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +1 -1
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +1 -1
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +1 -1
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +1 -1
- package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-imagemap.model.js +22 -0
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +68 -5
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +16 -2
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.js +26 -0
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +1156 -0
- package/esm2015/public-api.js +14 -1
- package/esm2015/qms-angular.js +3 -1
- package/fesm2015/qms-angular.js +7017 -226
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/components/breadcrumb/breadcrumb.d.ts +6 -3
- package/lib/model/en.d.ts +143 -0
- package/lib/model/no.d.ts +143 -0
- package/lib/qms-ckeditor-components/common/bpmn/inspector.function.d.ts +1825 -0
- package/lib/qms-ckeditor-components/common/bpmn/toolbar.function.d.ts +163 -0
- package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +5 -0
- package/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.d.ts +34 -0
- package/lib/qms-ckeditor-components/common/constants/iconSvg.constants.d.ts +7 -0
- package/lib/qms-ckeditor-components/common/enums/flowchart-view-mode.enum.d.ts +4 -0
- package/lib/qms-ckeditor-components/common/enums/image-mode.enum.d.ts +7 -0
- package/lib/qms-ckeditor-components/common/enums/protocol-type.enum.d.ts +9 -2
- package/lib/qms-ckeditor-components/common/enums/related-to-item-type.d.ts +9 -0
- package/lib/qms-ckeditor-components/common/enums/target-type.enum.d.ts +6 -0
- package/lib/qms-ckeditor-components/common/helper/guidHelper.d.ts +6 -0
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-bpmn-template.model.d.ts +7 -0
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-bpmn.model.d.ts +7 -0
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +1 -0
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model.d.ts +7 -7
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +37 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.d.ts +23 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +123 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.lib.d.ts +542 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.validator.d.ts +2 -0
- package/lib/qms-ckeditor-components/models/qms-ckeditor-imagemap.model.d.ts +20 -0
- package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +7 -2
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.d.ts +10 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +33 -0
- package/lib.theme.scss +4 -1
- package/package.json +1 -1
- package/public-api.d.ts +12 -0
- package/qms-angular.d.ts +2 -0
- package/qms-angular.metadata.json +1 -1
- package/src/assets/images/panel-stencil-container-background-image.png +0 -0
- package/src/assets/jointjs/js/backbone/backbone.js +2096 -0
- package/src/assets/jointjs/js/client.js +17 -0
- package/src/assets/jointjs/js/example.js +42 -0
- package/src/assets/jointjs/js/gd.js +135 -0
- package/src/assets/jointjs/js/joint.format.raster.js +386 -0
- package/src/assets/jointjs/js/joint.format.svg.js +252 -0
- package/src/assets/jointjs/js/jquery/jquery.js +10872 -0
- package/src/assets/jointjs/js/lodash/LICENSE +47 -0
- package/src/assets/jointjs/js/lodash/README.md +39 -0
- package/src/assets/jointjs/js/lodash/_DataView.js +7 -0
- package/src/assets/jointjs/js/lodash/_Hash.js +32 -0
- package/src/assets/jointjs/js/lodash/_LazyWrapper.js +28 -0
- package/src/assets/jointjs/js/lodash/_ListCache.js +32 -0
- package/src/assets/jointjs/js/lodash/_LodashWrapper.js +22 -0
- package/src/assets/jointjs/js/lodash/_Map.js +7 -0
- package/src/assets/jointjs/js/lodash/_MapCache.js +32 -0
- package/src/assets/jointjs/js/lodash/_Promise.js +7 -0
- package/src/assets/jointjs/js/lodash/_Set.js +7 -0
- package/src/assets/jointjs/js/lodash/_SetCache.js +27 -0
- package/src/assets/jointjs/js/lodash/_Stack.js +27 -0
- package/src/assets/jointjs/js/lodash/_Symbol.js +6 -0
- package/src/assets/jointjs/js/lodash/_Uint8Array.js +6 -0
- package/src/assets/jointjs/js/lodash/_WeakMap.js +7 -0
- package/src/assets/jointjs/js/lodash/_apply.js +21 -0
- package/src/assets/jointjs/js/lodash/_arrayAggregator.js +22 -0
- package/src/assets/jointjs/js/lodash/_arrayEach.js +22 -0
- package/src/assets/jointjs/js/lodash/_arrayEachRight.js +21 -0
- package/src/assets/jointjs/js/lodash/_arrayEvery.js +23 -0
- package/src/assets/jointjs/js/lodash/_arrayFilter.js +25 -0
- package/src/assets/jointjs/js/lodash/_arrayIncludes.js +17 -0
- package/src/assets/jointjs/js/lodash/_arrayIncludesWith.js +22 -0
- package/src/assets/jointjs/js/lodash/_arrayLikeKeys.js +49 -0
- package/src/assets/jointjs/js/lodash/_arrayMap.js +21 -0
- package/src/assets/jointjs/js/lodash/_arrayPush.js +20 -0
- package/src/assets/jointjs/js/lodash/_arrayReduce.js +26 -0
- package/src/assets/jointjs/js/lodash/_arrayReduceRight.js +24 -0
- package/src/assets/jointjs/js/lodash/_arraySample.js +15 -0
- package/src/assets/jointjs/js/lodash/_arraySampleSize.js +17 -0
- package/src/assets/jointjs/js/lodash/_arrayShuffle.js +15 -0
- package/src/assets/jointjs/js/lodash/_arraySome.js +23 -0
- package/src/assets/jointjs/js/lodash/_asciiSize.js +12 -0
- package/src/assets/jointjs/js/lodash/_asciiToArray.js +12 -0
- package/src/assets/jointjs/js/lodash/_asciiWords.js +15 -0
- package/src/assets/jointjs/js/lodash/_assignMergeValue.js +20 -0
- package/src/assets/jointjs/js/lodash/_assignValue.js +28 -0
- package/src/assets/jointjs/js/lodash/_assocIndexOf.js +21 -0
- package/src/assets/jointjs/js/lodash/_baseAggregator.js +21 -0
- package/src/assets/jointjs/js/lodash/_baseAssign.js +17 -0
- package/src/assets/jointjs/js/lodash/_baseAssignIn.js +17 -0
- package/src/assets/jointjs/js/lodash/_baseAssignValue.js +25 -0
- package/src/assets/jointjs/js/lodash/_baseAt.js +23 -0
- package/src/assets/jointjs/js/lodash/_baseClamp.js +22 -0
- package/src/assets/jointjs/js/lodash/_baseClone.js +165 -0
- package/src/assets/jointjs/js/lodash/_baseConforms.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseConformsTo.js +27 -0
- package/src/assets/jointjs/js/lodash/_baseCreate.js +30 -0
- package/src/assets/jointjs/js/lodash/_baseDelay.js +21 -0
- package/src/assets/jointjs/js/lodash/_baseDifference.js +67 -0
- package/src/assets/jointjs/js/lodash/_baseEach.js +14 -0
- package/src/assets/jointjs/js/lodash/_baseEachRight.js +14 -0
- package/src/assets/jointjs/js/lodash/_baseEvery.js +21 -0
- package/src/assets/jointjs/js/lodash/_baseExtremum.js +32 -0
- package/src/assets/jointjs/js/lodash/_baseFill.js +32 -0
- package/src/assets/jointjs/js/lodash/_baseFilter.js +21 -0
- package/src/assets/jointjs/js/lodash/_baseFindIndex.js +24 -0
- package/src/assets/jointjs/js/lodash/_baseFindKey.js +23 -0
- package/src/assets/jointjs/js/lodash/_baseFlatten.js +38 -0
- package/src/assets/jointjs/js/lodash/_baseFor.js +16 -0
- package/src/assets/jointjs/js/lodash/_baseForOwn.js +16 -0
- package/src/assets/jointjs/js/lodash/_baseForOwnRight.js +16 -0
- package/src/assets/jointjs/js/lodash/_baseForRight.js +15 -0
- package/src/assets/jointjs/js/lodash/_baseFunctions.js +19 -0
- package/src/assets/jointjs/js/lodash/_baseGet.js +24 -0
- package/src/assets/jointjs/js/lodash/_baseGetAllKeys.js +20 -0
- package/src/assets/jointjs/js/lodash/_baseGetTag.js +28 -0
- package/src/assets/jointjs/js/lodash/_baseGt.js +14 -0
- package/src/assets/jointjs/js/lodash/_baseHas.js +19 -0
- package/src/assets/jointjs/js/lodash/_baseHasIn.js +13 -0
- package/src/assets/jointjs/js/lodash/_baseInRange.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseIndexOf.js +20 -0
- package/src/assets/jointjs/js/lodash/_baseIndexOfWith.js +23 -0
- package/src/assets/jointjs/js/lodash/_baseIntersection.js +74 -0
- package/src/assets/jointjs/js/lodash/_baseInverter.js +21 -0
- package/src/assets/jointjs/js/lodash/_baseInvoke.js +24 -0
- package/src/assets/jointjs/js/lodash/_baseIsArguments.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseIsArrayBuffer.js +17 -0
- package/src/assets/jointjs/js/lodash/_baseIsDate.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseIsEqual.js +28 -0
- package/src/assets/jointjs/js/lodash/_baseIsEqualDeep.js +83 -0
- package/src/assets/jointjs/js/lodash/_baseIsMap.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseIsMatch.js +62 -0
- package/src/assets/jointjs/js/lodash/_baseIsNaN.js +12 -0
- package/src/assets/jointjs/js/lodash/_baseIsNative.js +47 -0
- package/src/assets/jointjs/js/lodash/_baseIsRegExp.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseIsSet.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseIsTypedArray.js +60 -0
- package/src/assets/jointjs/js/lodash/_baseIteratee.js +31 -0
- package/src/assets/jointjs/js/lodash/_baseKeys.js +30 -0
- package/src/assets/jointjs/js/lodash/_baseKeysIn.js +33 -0
- package/src/assets/jointjs/js/lodash/_baseLodash.js +10 -0
- package/src/assets/jointjs/js/lodash/_baseLt.js +14 -0
- package/src/assets/jointjs/js/lodash/_baseMap.js +22 -0
- package/src/assets/jointjs/js/lodash/_baseMatches.js +22 -0
- package/src/assets/jointjs/js/lodash/_baseMatchesProperty.js +33 -0
- package/src/assets/jointjs/js/lodash/_baseMean.js +20 -0
- package/src/assets/jointjs/js/lodash/_baseMerge.js +42 -0
- package/src/assets/jointjs/js/lodash/_baseMergeDeep.js +94 -0
- package/src/assets/jointjs/js/lodash/_baseNth.js +20 -0
- package/src/assets/jointjs/js/lodash/_baseOrderBy.js +34 -0
- package/src/assets/jointjs/js/lodash/_basePick.js +19 -0
- package/src/assets/jointjs/js/lodash/_basePickBy.js +30 -0
- package/src/assets/jointjs/js/lodash/_baseProperty.js +14 -0
- package/src/assets/jointjs/js/lodash/_basePropertyDeep.js +16 -0
- package/src/assets/jointjs/js/lodash/_basePropertyOf.js +14 -0
- package/src/assets/jointjs/js/lodash/_basePullAll.js +51 -0
- package/src/assets/jointjs/js/lodash/_basePullAt.js +37 -0
- package/src/assets/jointjs/js/lodash/_baseRandom.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseRange.js +28 -0
- package/src/assets/jointjs/js/lodash/_baseReduce.js +23 -0
- package/src/assets/jointjs/js/lodash/_baseRepeat.js +35 -0
- package/src/assets/jointjs/js/lodash/_baseRest.js +17 -0
- package/src/assets/jointjs/js/lodash/_baseSample.js +15 -0
- package/src/assets/jointjs/js/lodash/_baseSampleSize.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseSet.js +47 -0
- package/src/assets/jointjs/js/lodash/_baseSetData.js +17 -0
- package/src/assets/jointjs/js/lodash/_baseSetToString.js +22 -0
- package/src/assets/jointjs/js/lodash/_baseShuffle.js +15 -0
- package/src/assets/jointjs/js/lodash/_baseSlice.js +31 -0
- package/src/assets/jointjs/js/lodash/_baseSome.js +22 -0
- package/src/assets/jointjs/js/lodash/_baseSortBy.js +21 -0
- package/src/assets/jointjs/js/lodash/_baseSortedIndex.js +42 -0
- package/src/assets/jointjs/js/lodash/_baseSortedIndexBy.js +64 -0
- package/src/assets/jointjs/js/lodash/_baseSortedUniq.js +30 -0
- package/src/assets/jointjs/js/lodash/_baseSum.js +24 -0
- package/src/assets/jointjs/js/lodash/_baseTimes.js +20 -0
- package/src/assets/jointjs/js/lodash/_baseToNumber.js +24 -0
- package/src/assets/jointjs/js/lodash/_baseToPairs.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseToString.js +37 -0
- package/src/assets/jointjs/js/lodash/_baseUnary.js +14 -0
- package/src/assets/jointjs/js/lodash/_baseUniq.js +72 -0
- package/src/assets/jointjs/js/lodash/_baseUnset.js +20 -0
- package/src/assets/jointjs/js/lodash/_baseUpdate.js +18 -0
- package/src/assets/jointjs/js/lodash/_baseValues.js +19 -0
- package/src/assets/jointjs/js/lodash/_baseWhile.js +26 -0
- package/src/assets/jointjs/js/lodash/_baseWrapperValue.js +25 -0
- package/src/assets/jointjs/js/lodash/_baseXor.js +36 -0
- package/src/assets/jointjs/js/lodash/_baseZipObject.js +23 -0
- package/src/assets/jointjs/js/lodash/_cacheHas.js +13 -0
- package/src/assets/jointjs/js/lodash/_castArrayLikeObject.js +14 -0
- package/src/assets/jointjs/js/lodash/_castFunction.js +14 -0
- package/src/assets/jointjs/js/lodash/_castPath.js +21 -0
- package/src/assets/jointjs/js/lodash/_castRest.js +14 -0
- package/src/assets/jointjs/js/lodash/_castSlice.js +18 -0
- package/src/assets/jointjs/js/lodash/_charsEndIndex.js +19 -0
- package/src/assets/jointjs/js/lodash/_charsStartIndex.js +20 -0
- package/src/assets/jointjs/js/lodash/_cloneArrayBuffer.js +16 -0
- package/src/assets/jointjs/js/lodash/_cloneBuffer.js +35 -0
- package/src/assets/jointjs/js/lodash/_cloneDataView.js +16 -0
- package/src/assets/jointjs/js/lodash/_cloneRegExp.js +17 -0
- package/src/assets/jointjs/js/lodash/_cloneSymbol.js +18 -0
- package/src/assets/jointjs/js/lodash/_cloneTypedArray.js +16 -0
- package/src/assets/jointjs/js/lodash/_compareAscending.js +41 -0
- package/src/assets/jointjs/js/lodash/_compareMultiple.js +44 -0
- package/src/assets/jointjs/js/lodash/_composeArgs.js +39 -0
- package/src/assets/jointjs/js/lodash/_composeArgsRight.js +41 -0
- package/src/assets/jointjs/js/lodash/_copyArray.js +20 -0
- package/src/assets/jointjs/js/lodash/_copyObject.js +40 -0
- package/src/assets/jointjs/js/lodash/_copySymbols.js +16 -0
- package/src/assets/jointjs/js/lodash/_copySymbolsIn.js +16 -0
- package/src/assets/jointjs/js/lodash/_coreJsData.js +6 -0
- package/src/assets/jointjs/js/lodash/_countHolders.js +21 -0
- package/src/assets/jointjs/js/lodash/_createAggregator.js +23 -0
- package/src/assets/jointjs/js/lodash/_createAssigner.js +37 -0
- package/src/assets/jointjs/js/lodash/_createBaseEach.js +32 -0
- package/src/assets/jointjs/js/lodash/_createBaseFor.js +25 -0
- package/src/assets/jointjs/js/lodash/_createBind.js +28 -0
- package/src/assets/jointjs/js/lodash/_createCaseFirst.js +33 -0
- package/src/assets/jointjs/js/lodash/_createCompounder.js +24 -0
- package/src/assets/jointjs/js/lodash/_createCtor.js +37 -0
- package/src/assets/jointjs/js/lodash/_createCurry.js +46 -0
- package/src/assets/jointjs/js/lodash/_createFind.js +25 -0
- package/src/assets/jointjs/js/lodash/_createFlow.js +78 -0
- package/src/assets/jointjs/js/lodash/_createHybrid.js +92 -0
- package/src/assets/jointjs/js/lodash/_createInverter.js +17 -0
- package/src/assets/jointjs/js/lodash/_createMathOperation.js +38 -0
- package/src/assets/jointjs/js/lodash/_createOver.js +27 -0
- package/src/assets/jointjs/js/lodash/_createPadding.js +33 -0
- package/src/assets/jointjs/js/lodash/_createPartial.js +43 -0
- package/src/assets/jointjs/js/lodash/_createRange.js +30 -0
- package/src/assets/jointjs/js/lodash/_createRecurry.js +56 -0
- package/src/assets/jointjs/js/lodash/_createRelationalOperation.js +20 -0
- package/src/assets/jointjs/js/lodash/_createRound.js +35 -0
- package/src/assets/jointjs/js/lodash/_createSet.js +19 -0
- package/src/assets/jointjs/js/lodash/_createToPairs.js +30 -0
- package/src/assets/jointjs/js/lodash/_createWrap.js +106 -0
- package/src/assets/jointjs/js/lodash/_customDefaultsAssignIn.js +29 -0
- package/src/assets/jointjs/js/lodash/_customDefaultsMerge.js +28 -0
- package/src/assets/jointjs/js/lodash/_customOmitClone.js +16 -0
- package/src/assets/jointjs/js/lodash/_deburrLetter.js +71 -0
- package/src/assets/jointjs/js/lodash/_defineProperty.js +11 -0
- package/src/assets/jointjs/js/lodash/_equalArrays.js +83 -0
- package/src/assets/jointjs/js/lodash/_equalByTag.js +112 -0
- package/src/assets/jointjs/js/lodash/_equalObjects.js +89 -0
- package/src/assets/jointjs/js/lodash/_escapeHtmlChar.js +21 -0
- package/src/assets/jointjs/js/lodash/_escapeStringChar.js +22 -0
- package/src/assets/jointjs/js/lodash/_flatRest.js +16 -0
- package/src/assets/jointjs/js/lodash/_freeGlobal.js +4 -0
- package/src/assets/jointjs/js/lodash/_getAllKeys.js +16 -0
- package/src/assets/jointjs/js/lodash/_getAllKeysIn.js +17 -0
- package/src/assets/jointjs/js/lodash/_getData.js +15 -0
- package/src/assets/jointjs/js/lodash/_getFuncName.js +31 -0
- package/src/assets/jointjs/js/lodash/_getHolder.js +13 -0
- package/src/assets/jointjs/js/lodash/_getMapData.js +18 -0
- package/src/assets/jointjs/js/lodash/_getMatchData.js +24 -0
- package/src/assets/jointjs/js/lodash/_getNative.js +17 -0
- package/src/assets/jointjs/js/lodash/_getPrototype.js +6 -0
- package/src/assets/jointjs/js/lodash/_getRawTag.js +46 -0
- package/src/assets/jointjs/js/lodash/_getSymbols.js +30 -0
- package/src/assets/jointjs/js/lodash/_getSymbolsIn.js +25 -0
- package/src/assets/jointjs/js/lodash/_getTag.js +58 -0
- package/src/assets/jointjs/js/lodash/_getValue.js +13 -0
- package/src/assets/jointjs/js/lodash/_getView.js +33 -0
- package/src/assets/jointjs/js/lodash/_getWrapDetails.js +17 -0
- package/src/assets/jointjs/js/lodash/_hasPath.js +39 -0
- package/src/assets/jointjs/js/lodash/_hasUnicode.js +26 -0
- package/src/assets/jointjs/js/lodash/_hasUnicodeWord.js +15 -0
- package/src/assets/jointjs/js/lodash/_hashClear.js +15 -0
- package/src/assets/jointjs/js/lodash/_hashDelete.js +17 -0
- package/src/assets/jointjs/js/lodash/_hashGet.js +30 -0
- package/src/assets/jointjs/js/lodash/_hashHas.js +23 -0
- package/src/assets/jointjs/js/lodash/_hashSet.js +23 -0
- package/src/assets/jointjs/js/lodash/_initCloneArray.js +26 -0
- package/src/assets/jointjs/js/lodash/_initCloneByTag.js +77 -0
- package/src/assets/jointjs/js/lodash/_initCloneObject.js +18 -0
- package/src/assets/jointjs/js/lodash/_insertWrapDetails.js +23 -0
- package/src/assets/jointjs/js/lodash/_isFlattenable.js +20 -0
- package/src/assets/jointjs/js/lodash/_isIndex.js +25 -0
- package/src/assets/jointjs/js/lodash/_isIterateeCall.js +30 -0
- package/src/assets/jointjs/js/lodash/_isKey.js +29 -0
- package/src/assets/jointjs/js/lodash/_isKeyable.js +15 -0
- package/src/assets/jointjs/js/lodash/_isLaziable.js +28 -0
- package/src/assets/jointjs/js/lodash/_isMaskable.js +14 -0
- package/src/assets/jointjs/js/lodash/_isMasked.js +20 -0
- package/src/assets/jointjs/js/lodash/_isPrototype.js +18 -0
- package/src/assets/jointjs/js/lodash/_isStrictComparable.js +15 -0
- package/src/assets/jointjs/js/lodash/_iteratorToArray.js +18 -0
- package/src/assets/jointjs/js/lodash/_lazyClone.js +23 -0
- package/src/assets/jointjs/js/lodash/_lazyReverse.js +23 -0
- package/src/assets/jointjs/js/lodash/_lazyValue.js +69 -0
- package/src/assets/jointjs/js/lodash/_listCacheClear.js +13 -0
- package/src/assets/jointjs/js/lodash/_listCacheDelete.js +35 -0
- package/src/assets/jointjs/js/lodash/_listCacheGet.js +19 -0
- package/src/assets/jointjs/js/lodash/_listCacheHas.js +16 -0
- package/src/assets/jointjs/js/lodash/_listCacheSet.js +26 -0
- package/src/assets/jointjs/js/lodash/_mapCacheClear.js +21 -0
- package/src/assets/jointjs/js/lodash/_mapCacheDelete.js +18 -0
- package/src/assets/jointjs/js/lodash/_mapCacheGet.js +16 -0
- package/src/assets/jointjs/js/lodash/_mapCacheHas.js +16 -0
- package/src/assets/jointjs/js/lodash/_mapCacheSet.js +22 -0
- package/src/assets/jointjs/js/lodash/_mapToArray.js +18 -0
- package/src/assets/jointjs/js/lodash/_matchesStrictComparable.js +20 -0
- package/src/assets/jointjs/js/lodash/_memoizeCapped.js +26 -0
- package/src/assets/jointjs/js/lodash/_mergeData.js +90 -0
- package/src/assets/jointjs/js/lodash/_metaMap.js +6 -0
- package/src/assets/jointjs/js/lodash/_nativeCreate.js +6 -0
- package/src/assets/jointjs/js/lodash/_nativeKeys.js +6 -0
- package/src/assets/jointjs/js/lodash/_nativeKeysIn.js +20 -0
- package/src/assets/jointjs/js/lodash/_nodeUtil.js +30 -0
- package/src/assets/jointjs/js/lodash/_objectToString.js +22 -0
- package/src/assets/jointjs/js/lodash/_overArg.js +15 -0
- package/src/assets/jointjs/js/lodash/_overRest.js +36 -0
- package/src/assets/jointjs/js/lodash/_parent.js +16 -0
- package/src/assets/jointjs/js/lodash/_reEscape.js +4 -0
- package/src/assets/jointjs/js/lodash/_reEvaluate.js +4 -0
- package/src/assets/jointjs/js/lodash/_reInterpolate.js +4 -0
- package/src/assets/jointjs/js/lodash/_realNames.js +4 -0
- package/src/assets/jointjs/js/lodash/_reorder.js +29 -0
- package/src/assets/jointjs/js/lodash/_replaceHolders.js +29 -0
- package/src/assets/jointjs/js/lodash/_root.js +9 -0
- package/src/assets/jointjs/js/lodash/_safeGet.js +21 -0
- package/src/assets/jointjs/js/lodash/_setCacheAdd.js +19 -0
- package/src/assets/jointjs/js/lodash/_setCacheHas.js +14 -0
- package/src/assets/jointjs/js/lodash/_setData.js +20 -0
- package/src/assets/jointjs/js/lodash/_setToArray.js +18 -0
- package/src/assets/jointjs/js/lodash/_setToPairs.js +18 -0
- package/src/assets/jointjs/js/lodash/_setToString.js +14 -0
- package/src/assets/jointjs/js/lodash/_setWrapToString.js +21 -0
- package/src/assets/jointjs/js/lodash/_shortOut.js +37 -0
- package/src/assets/jointjs/js/lodash/_shuffleSelf.js +28 -0
- package/src/assets/jointjs/js/lodash/_stackClear.js +15 -0
- package/src/assets/jointjs/js/lodash/_stackDelete.js +18 -0
- package/src/assets/jointjs/js/lodash/_stackGet.js +14 -0
- package/src/assets/jointjs/js/lodash/_stackHas.js +14 -0
- package/src/assets/jointjs/js/lodash/_stackSet.js +34 -0
- package/src/assets/jointjs/js/lodash/_strictIndexOf.js +23 -0
- package/src/assets/jointjs/js/lodash/_strictLastIndexOf.js +21 -0
- package/src/assets/jointjs/js/lodash/_stringSize.js +18 -0
- package/src/assets/jointjs/js/lodash/_stringToArray.js +18 -0
- package/src/assets/jointjs/js/lodash/_stringToPath.js +27 -0
- package/src/assets/jointjs/js/lodash/_toKey.js +21 -0
- package/src/assets/jointjs/js/lodash/_toSource.js +26 -0
- package/src/assets/jointjs/js/lodash/_unescapeHtmlChar.js +21 -0
- package/src/assets/jointjs/js/lodash/_unicodeSize.js +44 -0
- package/src/assets/jointjs/js/lodash/_unicodeToArray.js +40 -0
- package/src/assets/jointjs/js/lodash/_unicodeWords.js +69 -0
- package/src/assets/jointjs/js/lodash/_updateWrapDetails.js +46 -0
- package/src/assets/jointjs/js/lodash/_wrapperClone.js +23 -0
- package/src/assets/jointjs/js/lodash/add.js +22 -0
- package/src/assets/jointjs/js/lodash/after.js +42 -0
- package/src/assets/jointjs/js/lodash/array.js +67 -0
- package/src/assets/jointjs/js/lodash/ary.js +29 -0
- package/src/assets/jointjs/js/lodash/assign.js +58 -0
- package/src/assets/jointjs/js/lodash/assignIn.js +40 -0
- package/src/assets/jointjs/js/lodash/assignInWith.js +38 -0
- package/src/assets/jointjs/js/lodash/assignWith.js +37 -0
- package/src/assets/jointjs/js/lodash/at.js +23 -0
- package/src/assets/jointjs/js/lodash/attempt.js +35 -0
- package/src/assets/jointjs/js/lodash/before.js +40 -0
- package/src/assets/jointjs/js/lodash/bind.js +57 -0
- package/src/assets/jointjs/js/lodash/bindAll.js +41 -0
- package/src/assets/jointjs/js/lodash/bindKey.js +68 -0
- package/src/assets/jointjs/js/lodash/camelCase.js +29 -0
- package/src/assets/jointjs/js/lodash/capitalize.js +23 -0
- package/src/assets/jointjs/js/lodash/castArray.js +44 -0
- package/src/assets/jointjs/js/lodash/ceil.js +26 -0
- package/src/assets/jointjs/js/lodash/chain.js +38 -0
- package/src/assets/jointjs/js/lodash/chunk.js +50 -0
- package/src/assets/jointjs/js/lodash/clamp.js +39 -0
- package/src/assets/jointjs/js/lodash/clone.js +36 -0
- package/src/assets/jointjs/js/lodash/cloneDeep.js +29 -0
- package/src/assets/jointjs/js/lodash/cloneDeepWith.js +40 -0
- package/src/assets/jointjs/js/lodash/cloneWith.js +42 -0
- package/src/assets/jointjs/js/lodash/collection.js +30 -0
- package/src/assets/jointjs/js/lodash/commit.js +33 -0
- package/src/assets/jointjs/js/lodash/compact.js +31 -0
- package/src/assets/jointjs/js/lodash/concat.js +43 -0
- package/src/assets/jointjs/js/lodash/cond.js +60 -0
- package/src/assets/jointjs/js/lodash/conforms.js +35 -0
- package/src/assets/jointjs/js/lodash/conformsTo.js +32 -0
- package/src/assets/jointjs/js/lodash/constant.js +26 -0
- package/src/assets/jointjs/js/lodash/core.js +3854 -0
- package/src/assets/jointjs/js/lodash/core.min.js +29 -0
- package/src/assets/jointjs/js/lodash/countBy.js +40 -0
- package/src/assets/jointjs/js/lodash/create.js +43 -0
- package/src/assets/jointjs/js/lodash/curry.js +57 -0
- package/src/assets/jointjs/js/lodash/curryRight.js +54 -0
- package/src/assets/jointjs/js/lodash/date.js +3 -0
- package/src/assets/jointjs/js/lodash/debounce.js +191 -0
- package/src/assets/jointjs/js/lodash/deburr.js +45 -0
- package/src/assets/jointjs/js/lodash/defaultTo.js +25 -0
- package/src/assets/jointjs/js/lodash/defaults.js +64 -0
- package/src/assets/jointjs/js/lodash/defaultsDeep.js +30 -0
- package/src/assets/jointjs/js/lodash/defer.js +26 -0
- package/src/assets/jointjs/js/lodash/delay.js +28 -0
- package/src/assets/jointjs/js/lodash/difference.js +33 -0
- package/src/assets/jointjs/js/lodash/differenceBy.js +44 -0
- package/src/assets/jointjs/js/lodash/differenceWith.js +40 -0
- package/src/assets/jointjs/js/lodash/divide.js +22 -0
- package/src/assets/jointjs/js/lodash/drop.js +38 -0
- package/src/assets/jointjs/js/lodash/dropRight.js +39 -0
- package/src/assets/jointjs/js/lodash/dropRightWhile.js +45 -0
- package/src/assets/jointjs/js/lodash/dropWhile.js +45 -0
- package/src/assets/jointjs/js/lodash/each.js +1 -0
- package/src/assets/jointjs/js/lodash/eachRight.js +1 -0
- package/src/assets/jointjs/js/lodash/endsWith.js +43 -0
- package/src/assets/jointjs/js/lodash/entries.js +1 -0
- package/src/assets/jointjs/js/lodash/entriesIn.js +1 -0
- package/src/assets/jointjs/js/lodash/eq.js +37 -0
- package/src/assets/jointjs/js/lodash/escape.js +43 -0
- package/src/assets/jointjs/js/lodash/escapeRegExp.js +32 -0
- package/src/assets/jointjs/js/lodash/every.js +56 -0
- package/src/assets/jointjs/js/lodash/extend.js +1 -0
- package/src/assets/jointjs/js/lodash/extendWith.js +1 -0
- package/src/assets/jointjs/js/lodash/fill.js +45 -0
- package/src/assets/jointjs/js/lodash/filter.js +48 -0
- package/src/assets/jointjs/js/lodash/find.js +42 -0
- package/src/assets/jointjs/js/lodash/findIndex.js +55 -0
- package/src/assets/jointjs/js/lodash/findKey.js +44 -0
- package/src/assets/jointjs/js/lodash/findLast.js +25 -0
- package/src/assets/jointjs/js/lodash/findLastIndex.js +59 -0
- package/src/assets/jointjs/js/lodash/findLastKey.js +44 -0
- package/src/assets/jointjs/js/lodash/first.js +1 -0
- package/src/assets/jointjs/js/lodash/flatMap.js +29 -0
- package/src/assets/jointjs/js/lodash/flatMapDeep.js +31 -0
- package/src/assets/jointjs/js/lodash/flatMapDepth.js +31 -0
- package/src/assets/jointjs/js/lodash/flatten.js +22 -0
- package/src/assets/jointjs/js/lodash/flattenDeep.js +25 -0
- package/src/assets/jointjs/js/lodash/flattenDepth.js +33 -0
- package/src/assets/jointjs/js/lodash/flip.js +28 -0
- package/src/assets/jointjs/js/lodash/floor.js +26 -0
- package/src/assets/jointjs/js/lodash/flow.js +27 -0
- package/src/assets/jointjs/js/lodash/flowRight.js +26 -0
- package/src/assets/jointjs/js/lodash/forEach.js +41 -0
- package/src/assets/jointjs/js/lodash/forEachRight.js +31 -0
- package/src/assets/jointjs/js/lodash/forIn.js +39 -0
- package/src/assets/jointjs/js/lodash/forInRight.js +37 -0
- package/src/assets/jointjs/js/lodash/forOwn.js +36 -0
- package/src/assets/jointjs/js/lodash/forOwnRight.js +34 -0
- package/src/assets/jointjs/js/lodash/fp/F.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/T.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/__.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/_baseConvert.js +569 -0
- package/src/assets/jointjs/js/lodash/fp/_convertBrowser.js +18 -0
- package/src/assets/jointjs/js/lodash/fp/_falseOptions.js +7 -0
- package/src/assets/jointjs/js/lodash/fp/_mapping.js +358 -0
- package/src/assets/jointjs/js/lodash/fp/_util.js +16 -0
- package/src/assets/jointjs/js/lodash/fp/add.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/after.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/all.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/allPass.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/always.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/any.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/anyPass.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/apply.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/array.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/ary.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/assign.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/assignAll.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/assignAllWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/assignIn.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/assignInAll.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/assignInAllWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/assignInWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/assignWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/assoc.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/assocPath.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/at.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/attempt.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/before.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/bind.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/bindAll.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/bindKey.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/camelCase.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/capitalize.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/castArray.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/ceil.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/chain.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/chunk.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/clamp.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/clone.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/cloneDeep.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/cloneDeepWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/cloneWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/collection.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/commit.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/compact.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/complement.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/compose.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/concat.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/cond.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/conforms.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/conformsTo.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/constant.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/contains.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/convert.js +18 -0
- package/src/assets/jointjs/js/lodash/fp/countBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/create.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/curry.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/curryN.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/curryRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/curryRightN.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/date.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/debounce.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/deburr.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/defaultTo.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/defaults.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/defaultsAll.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/defaultsDeep.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/defaultsDeepAll.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/defer.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/delay.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/difference.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/differenceBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/differenceWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/dissoc.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/dissocPath.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/divide.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/drop.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/dropLast.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/dropLastWhile.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/dropRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/dropRightWhile.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/dropWhile.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/each.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/eachRight.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/endsWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/entries.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/entriesIn.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/eq.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/equals.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/escape.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/escapeRegExp.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/every.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/extend.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/extendAll.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/extendAllWith.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/extendWith.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/fill.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/filter.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/find.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/findFrom.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/findIndex.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/findIndexFrom.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/findKey.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/findLast.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/findLastFrom.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/findLastIndex.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/findLastIndexFrom.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/findLastKey.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/first.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/flatMap.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/flatMapDeep.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/flatMapDepth.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/flatten.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/flattenDeep.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/flattenDepth.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/flip.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/floor.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/flow.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/flowRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/forEach.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/forEachRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/forIn.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/forInRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/forOwn.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/forOwnRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/fromPairs.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/function.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/functions.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/functionsIn.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/get.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/getOr.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/groupBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/gt.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/gte.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/has.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/hasIn.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/head.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/identical.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/identity.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/inRange.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/includes.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/includesFrom.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/indexBy.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/indexOf.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/indexOfFrom.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/init.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/initial.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/intersection.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/intersectionBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/intersectionWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/invert.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/invertBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/invertObj.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/invoke.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/invokeArgs.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/invokeArgsMap.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/invokeMap.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isArguments.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isArray.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isArrayBuffer.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isArrayLike.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isArrayLikeObject.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isBoolean.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isBuffer.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isDate.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isElement.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isEmpty.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isEqual.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isEqualWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isError.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isFinite.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isFunction.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isInteger.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isLength.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isMap.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isMatch.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isMatchWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isNaN.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isNative.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isNil.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isNull.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isNumber.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isObject.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isObjectLike.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isPlainObject.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isRegExp.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isSafeInteger.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isSet.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isString.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isSymbol.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isTypedArray.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isUndefined.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isWeakMap.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/isWeakSet.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/iteratee.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/join.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/juxt.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/kebabCase.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/keyBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/keys.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/keysIn.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/lang.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/last.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/lastIndexOf.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/lastIndexOfFrom.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/lowerCase.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/lowerFirst.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/lt.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/lte.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/map.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/mapKeys.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/mapValues.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/matches.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/matchesProperty.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/math.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/max.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/maxBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/mean.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/meanBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/memoize.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/merge.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/mergeAll.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/mergeAllWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/mergeWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/method.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/methodOf.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/min.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/minBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/mixin.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/multiply.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/nAry.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/negate.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/next.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/noop.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/now.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/nth.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/nthArg.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/number.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/object.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/omit.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/omitAll.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/omitBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/once.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/orderBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/over.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/overArgs.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/overEvery.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/overSome.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/pad.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/padChars.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/padCharsEnd.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/padCharsStart.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/padEnd.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/padStart.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/parseInt.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/partial.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/partialRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/partition.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/path.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/pathEq.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/pathOr.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/paths.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/pick.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/pickAll.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/pickBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/pipe.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/placeholder.js +6 -0
- package/src/assets/jointjs/js/lodash/fp/plant.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/pluck.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/prop.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/propEq.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/propOr.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/property.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/propertyOf.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/props.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/pull.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/pullAll.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/pullAllBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/pullAllWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/pullAt.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/random.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/range.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/rangeRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/rangeStep.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/rangeStepRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/rearg.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/reduce.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/reduceRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/reject.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/remove.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/repeat.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/replace.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/rest.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/restFrom.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/result.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/reverse.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/round.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sample.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sampleSize.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/seq.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/set.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/setWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/shuffle.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/size.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/slice.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/snakeCase.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/some.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sortBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sortedIndex.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sortedIndexBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sortedIndexOf.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sortedLastIndex.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sortedLastIndexBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sortedLastIndexOf.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sortedUniq.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sortedUniqBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/split.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/spread.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/spreadFrom.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/startCase.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/startsWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/string.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/stubArray.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/stubFalse.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/stubObject.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/stubString.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/stubTrue.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/subtract.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sum.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/sumBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/symmetricDifference.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/symmetricDifferenceBy.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/symmetricDifferenceWith.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/tail.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/take.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/takeLast.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/takeLastWhile.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/takeRight.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/takeRightWhile.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/takeWhile.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/tap.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/template.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/templateSettings.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/throttle.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/thru.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/times.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toArray.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toFinite.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toInteger.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toIterator.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toJSON.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toLength.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toLower.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toNumber.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toPairs.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toPairsIn.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toPath.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toPlainObject.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toSafeInteger.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toString.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/toUpper.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/transform.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/trim.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/trimChars.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/trimCharsEnd.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/trimCharsStart.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/trimEnd.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/trimStart.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/truncate.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/unapply.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/unary.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/unescape.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/union.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/unionBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/unionWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/uniq.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/uniqBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/uniqWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/uniqueId.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/unnest.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/unset.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/unzip.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/unzipWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/update.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/updateWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/upperCase.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/upperFirst.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/useWith.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/util.js +2 -0
- package/src/assets/jointjs/js/lodash/fp/value.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/valueOf.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/values.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/valuesIn.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/where.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/whereEq.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/without.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/words.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/wrap.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/wrapperAt.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/wrapperChain.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/wrapperLodash.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/wrapperReverse.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/wrapperValue.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/xor.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/xorBy.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/xorWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/zip.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/zipAll.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/zipObj.js +1 -0
- package/src/assets/jointjs/js/lodash/fp/zipObject.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/zipObjectDeep.js +5 -0
- package/src/assets/jointjs/js/lodash/fp/zipWith.js +5 -0
- package/src/assets/jointjs/js/lodash/fp.js +2 -0
- package/src/assets/jointjs/js/lodash/fromPairs.js +28 -0
- package/src/assets/jointjs/js/lodash/function.js +25 -0
- package/src/assets/jointjs/js/lodash/functions.js +31 -0
- package/src/assets/jointjs/js/lodash/functionsIn.js +31 -0
- package/src/assets/jointjs/js/lodash/get.js +33 -0
- package/src/assets/jointjs/js/lodash/groupBy.js +41 -0
- package/src/assets/jointjs/js/lodash/gt.js +29 -0
- package/src/assets/jointjs/js/lodash/gte.js +30 -0
- package/src/assets/jointjs/js/lodash/has.js +35 -0
- package/src/assets/jointjs/js/lodash/hasIn.js +34 -0
- package/src/assets/jointjs/js/lodash/head.js +23 -0
- package/src/assets/jointjs/js/lodash/identity.js +21 -0
- package/src/assets/jointjs/js/lodash/inRange.js +55 -0
- package/src/assets/jointjs/js/lodash/includes.js +53 -0
- package/src/assets/jointjs/js/lodash/index.js +1 -0
- package/src/assets/jointjs/js/lodash/indexOf.js +42 -0
- package/src/assets/jointjs/js/lodash/initial.js +22 -0
- package/src/assets/jointjs/js/lodash/intersection.js +30 -0
- package/src/assets/jointjs/js/lodash/intersectionBy.js +45 -0
- package/src/assets/jointjs/js/lodash/intersectionWith.js +41 -0
- package/src/assets/jointjs/js/lodash/invert.js +42 -0
- package/src/assets/jointjs/js/lodash/invertBy.js +56 -0
- package/src/assets/jointjs/js/lodash/invoke.js +24 -0
- package/src/assets/jointjs/js/lodash/invokeMap.js +41 -0
- package/src/assets/jointjs/js/lodash/isArguments.js +36 -0
- package/src/assets/jointjs/js/lodash/isArray.js +26 -0
- package/src/assets/jointjs/js/lodash/isArrayBuffer.js +27 -0
- package/src/assets/jointjs/js/lodash/isArrayLike.js +33 -0
- package/src/assets/jointjs/js/lodash/isArrayLikeObject.js +33 -0
- package/src/assets/jointjs/js/lodash/isBoolean.js +29 -0
- package/src/assets/jointjs/js/lodash/isBuffer.js +38 -0
- package/src/assets/jointjs/js/lodash/isDate.js +27 -0
- package/src/assets/jointjs/js/lodash/isElement.js +25 -0
- package/src/assets/jointjs/js/lodash/isEmpty.js +77 -0
- package/src/assets/jointjs/js/lodash/isEqual.js +35 -0
- package/src/assets/jointjs/js/lodash/isEqualWith.js +41 -0
- package/src/assets/jointjs/js/lodash/isError.js +36 -0
- package/src/assets/jointjs/js/lodash/isFinite.js +36 -0
- package/src/assets/jointjs/js/lodash/isFunction.js +37 -0
- package/src/assets/jointjs/js/lodash/isInteger.js +33 -0
- package/src/assets/jointjs/js/lodash/isLength.js +35 -0
- package/src/assets/jointjs/js/lodash/isMap.js +27 -0
- package/src/assets/jointjs/js/lodash/isMatch.js +36 -0
- package/src/assets/jointjs/js/lodash/isMatchWith.js +41 -0
- package/src/assets/jointjs/js/lodash/isNaN.js +38 -0
- package/src/assets/jointjs/js/lodash/isNative.js +40 -0
- package/src/assets/jointjs/js/lodash/isNil.js +25 -0
- package/src/assets/jointjs/js/lodash/isNull.js +22 -0
- package/src/assets/jointjs/js/lodash/isNumber.js +38 -0
- package/src/assets/jointjs/js/lodash/isObject.js +31 -0
- package/src/assets/jointjs/js/lodash/isObjectLike.js +29 -0
- package/src/assets/jointjs/js/lodash/isPlainObject.js +62 -0
- package/src/assets/jointjs/js/lodash/isRegExp.js +27 -0
- package/src/assets/jointjs/js/lodash/isSafeInteger.js +37 -0
- package/src/assets/jointjs/js/lodash/isSet.js +27 -0
- package/src/assets/jointjs/js/lodash/isString.js +30 -0
- package/src/assets/jointjs/js/lodash/isSymbol.js +29 -0
- package/src/assets/jointjs/js/lodash/isTypedArray.js +27 -0
- package/src/assets/jointjs/js/lodash/isUndefined.js +22 -0
- package/src/assets/jointjs/js/lodash/isWeakMap.js +28 -0
- package/src/assets/jointjs/js/lodash/isWeakSet.js +28 -0
- package/src/assets/jointjs/js/lodash/iteratee.js +53 -0
- package/src/assets/jointjs/js/lodash/join.js +26 -0
- package/src/assets/jointjs/js/lodash/kebabCase.js +28 -0
- package/src/assets/jointjs/js/lodash/keyBy.js +36 -0
- package/src/assets/jointjs/js/lodash/keys.js +37 -0
- package/src/assets/jointjs/js/lodash/keysIn.js +32 -0
- package/src/assets/jointjs/js/lodash/lang.js +58 -0
- package/src/assets/jointjs/js/lodash/last.js +20 -0
- package/src/assets/jointjs/js/lodash/lastIndexOf.js +46 -0
- package/src/assets/jointjs/js/lodash/lodash.js +17112 -0
- package/src/assets/jointjs/js/lodash/lodash.min.js +137 -0
- package/src/assets/jointjs/js/lodash/lowerCase.js +27 -0
- package/src/assets/jointjs/js/lodash/lowerFirst.js +22 -0
- package/src/assets/jointjs/js/lodash/lt.js +29 -0
- package/src/assets/jointjs/js/lodash/lte.js +30 -0
- package/src/assets/jointjs/js/lodash/map.js +53 -0
- package/src/assets/jointjs/js/lodash/mapKeys.js +36 -0
- package/src/assets/jointjs/js/lodash/mapValues.js +43 -0
- package/src/assets/jointjs/js/lodash/matches.js +39 -0
- package/src/assets/jointjs/js/lodash/matchesProperty.js +37 -0
- package/src/assets/jointjs/js/lodash/math.js +17 -0
- package/src/assets/jointjs/js/lodash/max.js +29 -0
- package/src/assets/jointjs/js/lodash/maxBy.js +34 -0
- package/src/assets/jointjs/js/lodash/mean.js +22 -0
- package/src/assets/jointjs/js/lodash/meanBy.js +31 -0
- package/src/assets/jointjs/js/lodash/memoize.js +73 -0
- package/src/assets/jointjs/js/lodash/merge.js +39 -0
- package/src/assets/jointjs/js/lodash/mergeWith.js +39 -0
- package/src/assets/jointjs/js/lodash/method.js +34 -0
- package/src/assets/jointjs/js/lodash/methodOf.js +33 -0
- package/src/assets/jointjs/js/lodash/min.js +29 -0
- package/src/assets/jointjs/js/lodash/minBy.js +34 -0
- package/src/assets/jointjs/js/lodash/mixin.js +74 -0
- package/src/assets/jointjs/js/lodash/multiply.js +22 -0
- package/src/assets/jointjs/js/lodash/negate.js +40 -0
- package/src/assets/jointjs/js/lodash/next.js +35 -0
- package/src/assets/jointjs/js/lodash/noop.js +17 -0
- package/src/assets/jointjs/js/lodash/now.js +23 -0
- package/src/assets/jointjs/js/lodash/nth.js +29 -0
- package/src/assets/jointjs/js/lodash/nthArg.js +32 -0
- package/src/assets/jointjs/js/lodash/number.js +5 -0
- package/src/assets/jointjs/js/lodash/object.js +49 -0
- package/src/assets/jointjs/js/lodash/omit.js +57 -0
- package/src/assets/jointjs/js/lodash/omitBy.js +29 -0
- package/src/assets/jointjs/js/lodash/once.js +25 -0
- package/src/assets/jointjs/js/lodash/orderBy.js +47 -0
- package/src/assets/jointjs/js/lodash/org.js +39 -0
- package/src/assets/jointjs/js/lodash/over.js +24 -0
- package/src/assets/jointjs/js/lodash/overArgs.js +61 -0
- package/src/assets/jointjs/js/lodash/overEvery.js +30 -0
- package/src/assets/jointjs/js/lodash/overSome.js +30 -0
- package/src/assets/jointjs/js/lodash/package.json +1 -0
- package/src/assets/jointjs/js/lodash/pad.js +49 -0
- package/src/assets/jointjs/js/lodash/padEnd.js +39 -0
- package/src/assets/jointjs/js/lodash/padStart.js +39 -0
- package/src/assets/jointjs/js/lodash/parseInt.js +43 -0
- package/src/assets/jointjs/js/lodash/partial.js +50 -0
- package/src/assets/jointjs/js/lodash/partialRight.js +49 -0
- package/src/assets/jointjs/js/lodash/partition.js +43 -0
- package/src/assets/jointjs/js/lodash/pick.js +25 -0
- package/src/assets/jointjs/js/lodash/pickBy.js +37 -0
- package/src/assets/jointjs/js/lodash/plant.js +48 -0
- package/src/assets/jointjs/js/lodash/property.js +32 -0
- package/src/assets/jointjs/js/lodash/propertyOf.js +30 -0
- package/src/assets/jointjs/js/lodash/pull.js +29 -0
- package/src/assets/jointjs/js/lodash/pullAll.js +29 -0
- package/src/assets/jointjs/js/lodash/pullAllBy.js +33 -0
- package/src/assets/jointjs/js/lodash/pullAllWith.js +32 -0
- package/src/assets/jointjs/js/lodash/pullAt.js +43 -0
- package/src/assets/jointjs/js/lodash/random.js +82 -0
- package/src/assets/jointjs/js/lodash/range.js +46 -0
- package/src/assets/jointjs/js/lodash/rangeRight.js +41 -0
- package/src/assets/jointjs/js/lodash/rearg.js +33 -0
- package/src/assets/jointjs/js/lodash/reduce.js +51 -0
- package/src/assets/jointjs/js/lodash/reduceRight.js +36 -0
- package/src/assets/jointjs/js/lodash/reject.js +46 -0
- package/src/assets/jointjs/js/lodash/remove.js +53 -0
- package/src/assets/jointjs/js/lodash/repeat.js +37 -0
- package/src/assets/jointjs/js/lodash/replace.js +29 -0
- package/src/assets/jointjs/js/lodash/rest.js +40 -0
- package/src/assets/jointjs/js/lodash/result.js +56 -0
- package/src/assets/jointjs/js/lodash/reverse.js +34 -0
- package/src/assets/jointjs/js/lodash/round.js +26 -0
- package/src/assets/jointjs/js/lodash/sample.js +24 -0
- package/src/assets/jointjs/js/lodash/sampleSize.js +37 -0
- package/src/assets/jointjs/js/lodash/seq.js +16 -0
- package/src/assets/jointjs/js/lodash/set.js +35 -0
- package/src/assets/jointjs/js/lodash/setWith.js +32 -0
- package/src/assets/jointjs/js/lodash/shuffle.js +25 -0
- package/src/assets/jointjs/js/lodash/size.js +46 -0
- package/src/assets/jointjs/js/lodash/slice.js +37 -0
- package/src/assets/jointjs/js/lodash/snakeCase.js +28 -0
- package/src/assets/jointjs/js/lodash/some.js +51 -0
- package/src/assets/jointjs/js/lodash/sortBy.js +48 -0
- package/src/assets/jointjs/js/lodash/sortedIndex.js +24 -0
- package/src/assets/jointjs/js/lodash/sortedIndexBy.js +33 -0
- package/src/assets/jointjs/js/lodash/sortedIndexOf.js +31 -0
- package/src/assets/jointjs/js/lodash/sortedLastIndex.js +25 -0
- package/src/assets/jointjs/js/lodash/sortedLastIndexBy.js +33 -0
- package/src/assets/jointjs/js/lodash/sortedLastIndexOf.js +31 -0
- package/src/assets/jointjs/js/lodash/sortedUniq.js +24 -0
- package/src/assets/jointjs/js/lodash/sortedUniqBy.js +26 -0
- package/src/assets/jointjs/js/lodash/split.js +52 -0
- package/src/assets/jointjs/js/lodash/spread.js +63 -0
- package/src/assets/jointjs/js/lodash/startCase.js +29 -0
- package/src/assets/jointjs/js/lodash/startsWith.js +39 -0
- package/src/assets/jointjs/js/lodash/string.js +33 -0
- package/src/assets/jointjs/js/lodash/stubArray.js +23 -0
- package/src/assets/jointjs/js/lodash/stubFalse.js +18 -0
- package/src/assets/jointjs/js/lodash/stubObject.js +23 -0
- package/src/assets/jointjs/js/lodash/stubString.js +18 -0
- package/src/assets/jointjs/js/lodash/stubTrue.js +18 -0
- package/src/assets/jointjs/js/lodash/subtract.js +22 -0
- package/src/assets/jointjs/js/lodash/sum.js +24 -0
- package/src/assets/jointjs/js/lodash/sumBy.js +33 -0
- package/src/assets/jointjs/js/lodash/tag.js +43 -0
- package/src/assets/jointjs/js/lodash/tail.js +22 -0
- package/src/assets/jointjs/js/lodash/take.js +37 -0
- package/src/assets/jointjs/js/lodash/takeRight.js +39 -0
- package/src/assets/jointjs/js/lodash/takeRightWhile.js +45 -0
- package/src/assets/jointjs/js/lodash/takeWhile.js +45 -0
- package/src/assets/jointjs/js/lodash/tap.js +29 -0
- package/src/assets/jointjs/js/lodash/template.js +253 -0
- package/src/assets/jointjs/js/lodash/templateSettings.js +67 -0
- package/src/assets/jointjs/js/lodash/throttle.js +69 -0
- package/src/assets/jointjs/js/lodash/thru.js +28 -0
- package/src/assets/jointjs/js/lodash/times.js +51 -0
- package/src/assets/jointjs/js/lodash/toArray.js +58 -0
- package/src/assets/jointjs/js/lodash/toFinite.js +42 -0
- package/src/assets/jointjs/js/lodash/toInteger.js +36 -0
- package/src/assets/jointjs/js/lodash/toIterator.js +23 -0
- package/src/assets/jointjs/js/lodash/toJSON.js +1 -0
- package/src/assets/jointjs/js/lodash/toLength.js +38 -0
- package/src/assets/jointjs/js/lodash/toLower.js +28 -0
- package/src/assets/jointjs/js/lodash/toNumber.js +66 -0
- package/src/assets/jointjs/js/lodash/toPairs.js +30 -0
- package/src/assets/jointjs/js/lodash/toPairsIn.js +30 -0
- package/src/assets/jointjs/js/lodash/toPath.js +33 -0
- package/src/assets/jointjs/js/lodash/toPlainObject.js +32 -0
- package/src/assets/jointjs/js/lodash/toSafeInteger.js +37 -0
- package/src/assets/jointjs/js/lodash/toString.js +28 -0
- package/src/assets/jointjs/js/lodash/toUpper.js +28 -0
- package/src/assets/jointjs/js/lodash/transform.js +65 -0
- package/src/assets/jointjs/js/lodash/trim.js +49 -0
- package/src/assets/jointjs/js/lodash/trimEnd.js +43 -0
- package/src/assets/jointjs/js/lodash/trimStart.js +43 -0
- package/src/assets/jointjs/js/lodash/truncate.js +111 -0
- package/src/assets/jointjs/js/lodash/unary.js +22 -0
- package/src/assets/jointjs/js/lodash/unescape.js +34 -0
- package/src/assets/jointjs/js/lodash/union.js +26 -0
- package/src/assets/jointjs/js/lodash/unionBy.js +39 -0
- package/src/assets/jointjs/js/lodash/unionWith.js +34 -0
- package/src/assets/jointjs/js/lodash/uniq.js +25 -0
- package/src/assets/jointjs/js/lodash/uniqBy.js +31 -0
- package/src/assets/jointjs/js/lodash/uniqWith.js +28 -0
- package/src/assets/jointjs/js/lodash/uniqueId.js +28 -0
- package/src/assets/jointjs/js/lodash/unset.js +34 -0
- package/src/assets/jointjs/js/lodash/unzip.js +45 -0
- package/src/assets/jointjs/js/lodash/unzipWith.js +39 -0
- package/src/assets/jointjs/js/lodash/update.js +35 -0
- package/src/assets/jointjs/js/lodash/updateWith.js +33 -0
- package/src/assets/jointjs/js/lodash/upperCase.js +27 -0
- package/src/assets/jointjs/js/lodash/upperFirst.js +22 -0
- package/src/assets/jointjs/js/lodash/util.js +34 -0
- package/src/assets/jointjs/js/lodash/value.js +1 -0
- package/src/assets/jointjs/js/lodash/valueOf.js +1 -0
- package/src/assets/jointjs/js/lodash/values.js +34 -0
- package/src/assets/jointjs/js/lodash/valuesIn.js +32 -0
- package/src/assets/jointjs/js/lodash/without.js +31 -0
- package/src/assets/jointjs/js/lodash/words.js +35 -0
- package/src/assets/jointjs/js/lodash/wrap.js +30 -0
- package/src/assets/jointjs/js/lodash/wrapperAt.js +48 -0
- package/src/assets/jointjs/js/lodash/wrapperChain.js +34 -0
- package/src/assets/jointjs/js/lodash/wrapperLodash.js +147 -0
- package/src/assets/jointjs/js/lodash/wrapperReverse.js +44 -0
- package/src/assets/jointjs/js/lodash/wrapperValue.js +21 -0
- package/src/assets/jointjs/js/lodash/xor.js +28 -0
- package/src/assets/jointjs/js/lodash/xorBy.js +39 -0
- package/src/assets/jointjs/js/lodash/xorWith.js +34 -0
- package/src/assets/jointjs/js/lodash/zip.js +22 -0
- package/src/assets/jointjs/js/lodash/zipObject.js +24 -0
- package/src/assets/jointjs/js/lodash/zipObjectDeep.js +23 -0
- package/src/assets/jointjs/js/lodash/zipWith.js +32 -0
- package/src/assets/jointjs/js/rappid.js +65022 -0
- package/src/assets/jointjs/scss/bpmn.scss +884 -0
- package/src/assets/jointjs/scss/rappid.scss +8879 -0
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +2 -2
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
- package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +7 -4
- package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +63 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +9 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +20 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/converters.js +378 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemap.js +14 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapediting.js +183 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapui.js +49 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/insertimagemapcommand.js +127 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/resizeimagemapcommand.js +82 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +234 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkediting.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkimage.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/ui/linkactionsview.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/ui/linkformview.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/inserttooltipcommand.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipediting.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/ui/actionsview.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/bpmn.svg +20 -0
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/imagemap.svg +56 -0
- package/src/assets/qms-ckeditor-plugin/src/themes/{tyles → styles}/anchor.css +0 -0
- package/src/assets/qms-ckeditor-plugin/src/themes/{tyles → styles}/link.css +0 -0
- package/src/assets/qms-ckeditor-plugin/src/themes/{tyles → styles}/linkactions.css +0 -0
- package/src/assets/qms-ckeditor-plugin/src/themes/{tyles → styles}/linkform.css +0 -0
- package/src/assets/qms-ckeditor-plugin/src/themes/{tyles → styles}/linkimage.css +0 -0
- package/src/assets/qms-ckeditor-plugin/src/themes/{tyles → styles}/tooltip.css +0 -0
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.scss +156 -0
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.scss +0 -0
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.scss +27 -0
- package/src/lib/qms-ckeditor-components/styles/_modules.scss +19 -1
- package/src/themes/_color.scss +8 -0
- package/src/themes/core/_colors.scss +2 -0
- package/src/themes/core/_side-sheet.scss +1 -0
- package/src/themes/core/_tab.scss +50 -49
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"qms-angular.js","sources":["../../../projects/qms-angular/src/lib/qms-angular.service.ts","../../../projects/qms-angular/src/lib/model/en.ts","../../../projects/qms-angular/src/lib/model/no.ts","../../../projects/qms-angular/src/lib/services/translation-registry.service.ts","../../../projects/qms-angular/src/lib/qms-angular.component.ts","../../../projects/qms-angular/src/lib/components/comment/comment.ts","../../../projects/qms-angular/src/lib/components/dialog/dialog.ts","../../../projects/qms-angular/src/lib/components/suffix-field/suffix-field.directive.ts","../../../projects/qms-angular/src/lib/components/test-only/test-only.component.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-chip-list.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-field.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-dropdown.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-trigger.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-field.directive.ts","../../../projects/qms-angular/src/lib/directives/chips/chip-body.directive.ts","../../../projects/qms-angular/src/lib/directives/chips/chip.directive.ts","../../../projects/qms-angular/src/lib/directives/dropdown-menu/dropdown-item.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-attachment-list.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-display.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple-display.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/qms-file-upload-attachment.model.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple-selector.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-selector.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload.directive.ts","../../../projects/qms-angular/src/lib/directives/form.directive.ts","../../../projects/qms-angular/src/lib/directives/margin.directive.ts","../../../projects/qms-angular/src/lib/directives/range-slider/range-slider-lockup.directive.ts","../../../projects/qms-angular/src/lib/directives/range-slider/range-slider.directive.ts","../../../projects/qms-angular/src/lib/directives/scroll-selected/scroll-to-selected.directive.ts","../../../projects/qms-angular/src/lib/directives/scrollbar/scrollbar.directive.ts","../../../projects/qms-angular/src/lib/directives/search-field.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-content.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-header-action.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-header.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-group-advanced.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-group.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-label.directive.ts","../../../projects/qms-angular/src/lib/directives/text-block/text-block-line.directive.ts","../../../projects/qms-angular/src/lib/directives/text-block/text-block.directive.ts","../../../projects/qms-angular/src/lib/directives/tooltip/tooltip-image.directive.ts","../../../projects/qms-angular/src/lib/components/tooltip/tooltip.ts","../../../projects/qms-angular/src/lib/directives/tooltip/tooltip-renderer.directive.ts","../../../projects/qms-angular/src/lib/components/button/button-toggle.ts","../../../projects/qms-angular/src/lib/components/button/color.ts","../../../projects/qms-angular/src/lib/components/button/button.ts","../../../projects/qms-angular/src/lib/components/button/button.module.ts","../../../projects/qms-angular/src/lib/material-module.ts","../../../projects/qms-angular/src/lib/pipe/dateFormat.pipe.ts","../../../projects/qms-angular/src/lib/shared.module.ts","../../../projects/qms-angular/src/lib/qms-angular.module.ts","../../../projects/qms-angular/src/lib/components/list/list.ts","../../../projects/qms-angular/src/lib/components/list/list.module.ts","../../../projects/qms-angular/src/lib/components/rich-text/rich-text.ts","../../../projects/qms-angular/src/lib/components/rich-text/rich-text.module.ts","../../../projects/qms-angular/src/lib/components/edit-file-name-dialog/edit-file-name-dialog.ts","../../../projects/qms-angular/src/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.ts","../../../projects/qms-angular/src/lib/components/upload-file-error-dialog/upload-file-error-dialog.ts","../../../projects/qms-angular/src/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.ts","../../../projects/qms-angular/src/lib/components/related/common/qms-icon.const.ts","../../../projects/qms-angular/src/lib/components/app-icon/icon-registry.service.ts","../../../projects/qms-angular/src/lib/components/app-icon/app-icon.module.ts","../../../projects/qms-angular/src/lib/common/qms-icon.const.ts","../../../projects/qms-angular/src/lib/components/related/common/item-icon-type.enum.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/breadcrumb-item.directive.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/enum/dropdown-node-width.enum.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/breadcrumb.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/breadcrumb-direction-icon.directive.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/breadcrumb.module.ts","../../../projects/qms-angular/src/lib/components/related/common/data-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/content/related-content.component.ts","../../../projects/qms-angular/src/lib/components/related/common/document-folder-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/list-other-related/list-related.component.ts","../../../projects/qms-angular/src/lib/components/related/common/module-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/common/related.const.ts","../../../projects/qms-angular/src/lib/components/related/model/popup-data.model.ts","../../../projects/qms-angular/src/lib/components/related/model/related-data.model.ts","../../../projects/qms-angular/src/lib/components/related/service/related-global.service.ts","../../../projects/qms-angular/src/lib/components/related/model/tree-node.model.ts","../../../projects/qms-angular/src/lib/components/related/common/tree.function.ts","../../../projects/qms-angular/src/lib/components/related/tree/tree.component.ts","../../../projects/qms-angular/src/lib/components/related/popup/related-popup.component.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-analysis.model.ts","../../../projects/qms-angular/src/lib/components/related/risk/analysis/analysis.component.ts","../../../projects/qms-angular/src/lib/components/related/common/action-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/risk/list/list.component.ts","../../../projects/qms-angular/src/lib/components/related/common/color.enum.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-result.model.ts","../../../projects/qms-angular/src/lib/components/related/risk/result/result.component.ts","../../../projects/qms-angular/src/lib/components/related/model/sidenav.model.ts","../../../projects/qms-angular/src/lib/components/related/sidenav/sidenav.component.ts","../../../projects/qms-angular/src/lib/components/related/related.module.ts","../../../projects/qms-angular/src/lib/components/related/model/tree.model.ts","../../../projects/qms-angular/src/lib/components/related/model/tree-config.model.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-danger.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor-base.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-dialog.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-parameter.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/module.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/link-anchor.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/link-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/protocol-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/target-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-relation.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-url.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/document-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-tree-node.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/functions/tree.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-injector.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/toast/qms-ckeditor-toast.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/models/qms-ckeditor-template.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/classes/uploadAdapter.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/functions/common.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/models/qms-ckeditor-tooltip.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor.module.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-link-anchor-document.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-link-attachment.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-tree.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.component.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.module.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.model.ts","../../../projects/qms-angular/src/lib/components/dialog/constant.ts","../../../projects/qms-angular/src/lib/components/tooltip/tooltip.module.ts","../../../projects/qms-angular/src/lib/components/banner/models/qms-banner.model.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner/qms-banner.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner/qms-banner.module.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-loading/qms-banner-loading.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-loading/qms-banner-loading.module.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.ts","../../../projects/qms-angular/src/lib/components/table/table-action.ts","../../../projects/qms-angular/src/lib/components/table/table.module.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/model/breadcrumb-node.model.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.model.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.component.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.module.ts","../../../projects/qms-angular/src/lib/components/snackbar/snackbar.ts","../../../projects/qms-angular/src/public-api.ts","../../../projects/qms-angular/src/qms-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QmsAngularService {\r\n\r\n constructor() { }\r\n}\r\n","export const en = {\r\n \"MY_COMPONENT\": \"My component\",\r\n \"SAVE_BUTTON\": \"Save\",\r\n \"CANCEL_BUTTON\": \"Cancel\",\r\n \"DELETE_MESSAGE_COMMENT\": \"This message has been deleted.\",\r\n \"REGRET\": \"Regret\",\r\n \"EDIT\": \"Edit\",\r\n \"DELETE\": \"Delete\",\r\n \"SAVE\": \"Save\",\r\n \"CANCEL\": \"Cancel\",\r\n \"EDIT_FILE_NAME\": \"Edit file name\",\r\n \"FILE_NAME\": \"File name\",\r\n \"UPLOAD_LEAVE_WARNING\": \"Files you're uploading may not be saved.\",\r\n \"SOME_FILES_WERE_NOT_ADDED\": \"Some files were not added\",\r\n \"YOU_CAN_ONLY_ADD\": \"You can only upload\",\r\n \"SELECT\": \"Select\",\r\n \"PROCESSES\": \"Processes\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"DEVIATION\": \"Categories\",\r\n \"CHECKLIST\": \"Checklists\",\r\n \"ASSESSMENT\": \"Assessments\",\r\n \"ADD\": \"Add\",\r\n \"SEARCH\": \"Search\",\r\n \"REGULAR_TITLE\": \"What do you want to include in the risk assessment(s)?\",\r\n \"CAPTION_TITLE\": \"In causal assessments, all causes related to the event are automatically added.\",\r\n \"CAUSAL_ANALYZES\": \"Selected Assessments\",\r\n \"FINISHED\": \"Finished\",\r\n \"PROCESS_ID\": \"Process ID\",\r\n \"DOCUMENT_ID\": \"Document ID\",\r\n \"PROCESS_AREA\": \"Process area\",\r\n \"FOLDER\": \"Folder\",\r\n \"DEVIATION_TYPE\": \"Deviation type\",\r\n \"CHECKLIST_CATEGORY\": \"Categories\",\r\n \"EVENT\": \"Event\",\r\n \"AREA_OF_IMPACT\": \"Consequence Area\",\r\n \"RESULT\": \"Result\",\r\n \"NOT_ACCEPTED\": \"Not accepted\",\r\n \"MUST_BE_EVALUATED\": \"Must be evaluated\",\r\n \"ACCEPTED\": \"Accepted\",\r\n \"ARCHIVED\": \"Archived\",\r\n \"CAUSE\": \"Cause\",\r\n \"ERROR\": {\r\n \"SELECT_DANGER\": \"You must select one or more events\"\r\n },\r\n \"MESSAGE\": {\r\n \"PROCESSES_IN\": \"Processes in\",\r\n \"DOCUMENTS_IN\": \"Documents in\"\r\n }\r\n ,\r\n \"QMSCKEDITOR\": {\r\n \"INSERT_TOOLTIP\": \"Insert a tooltip\",\r\n \"CONTENT\": \"Content\",\r\n \"TEMPLATE\": \"Template\",\r\n \"CONTENT_TEMPLATE\": \"Content Template\",\r\n \"CREATE_NEW_TEMPLATE\": \"Create new tempplate\",\r\n \"UPDATE_TEMPLATE\": \"Update tempplate\",\r\n \"TITLE\": \"Title\",\r\n \"DESCRIPTION\": \"Description\",\r\n \"SAVE\": \"Save\",\r\n \"CHOOSE_TEMPLATE\": \"Please select the template to open in the editor\",\r\n \"REPLACE_CONTENT\": \"Replace actual contents\",\r\n \"SAVED\": \"Saved\",\r\n \"SAVE_FAILED\": \"Save failed\",\r\n \"DELETE\": \"Delete\",\r\n \"DELETED\": \"Deleted\",\r\n \"DELETE_FAILED\": \"Delete failed\",\r\n \"DELETE_TEMPLATE\": \"Delete template\",\r\n \"CHANGE_TEMPLATE\": \"Change template\",\r\n \"CANCEL\": \"Cancel\",\r\n \"LINK\": \"Link\",\r\n \"LINK_TYPE\": \"Link type\",\r\n \"LINK_URL\": \"URL\",\r\n \"LINK_ANCHOR_IN_TEXT\": \"Link to anchor in the text\",\r\n \"LINK_EMAIL\": \"Email\",\r\n \"LINK_ANCHOR_DOCUMENT\": \"Anchor in other document\",\r\n \"TARGET\": \"Target\",\r\n \"TARTGET_NEW\": \"New Window (_blank)\",\r\n \"TARGET_TOPMOST\": \"Topmost Window (_top)\",\r\n \"TARGET_SAME\": \"Same Window (_self)\",\r\n \"TARGET_PARENT\": \"Parent Window (_parent)\",\r\n \"PROTOCOL\": \"Protocol\",\r\n \"PROTOCOL_HTTP\": \"http://\",\r\n \"PROTOCOL_HTTPS\": \"https://\",\r\n \"PROTOCOL_FTP\": \"ftp://\",\r\n \"PROTOCOL_NEW\": \"news://\",\r\n \"PROTOCOL_OTHER\": \"<other>\",\r\n \"ADVISORY_TITLE\": \"Advisory Title\",\r\n \"HANDBOOK\": \"eHandbook\",\r\n \"ATTACHMENT\": \"Attachment\",\r\n \"OK\": \"Ok\",\r\n \"URL_HEADER\": \"URL information\",\r\n \"ANCHOR_TEXT_HEADER\": \"Select an Anchor\",\r\n \"ANCHOR_BY_NAME\": \"Anchor by name\",\r\n \"EMAIL_HEADER\": \"Email information\",\r\n \"EMAIL_ADDRESS\": \"Address\",\r\n \"EMAIL_SUBJECT\": \"Subject\",\r\n \"EMAIL_BODY\": \"Body\",\r\n \"ANCHOR_ATTACHMENT\": \"Attachments\",\r\n \"ANCHOR_RELATED_DOCUMENT\": \"Related document\",\r\n \"ADD_DOCUMENT_PROCESS\": \"Add document/ process\",\r\n \"ADD_DOCUMENT\": \"Add document\",\r\n \"ADD\": \"Add\",\r\n \"PROCESSES\": \"Processes\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"UPDATE\": \"Update\",\r\n \"DOCUMENT\": \"Document\",\r\n \"CONFIRM\": \"Confirm\",\r\n \"SEARCH\": \"Search\",\r\n },\r\n \"QMSCKEDITOR_MESSAGE\": {\r\n \"CONFIRM_DELETE_TEMPLATE\": \"Are you sure you want to delete this template?\",\r\n \"CONFIRM_CHANGE_TEMPLATE\": \"Are you sure you want to apply this template to the editor?\"\r\n }\r\n}\r\n","export const no = {\r\n \"MY_COMPONENT\": \"Min komponent\",\r\n \"SAVE_BUTTON\": \"Lagre\",\r\n \"CANCEL_BUTTON\": \"Avbryt\",\r\n \"DELETE_MESSAGE_COMMENT\": \"Denne meldingen er slettet.\",\r\n \"REGRET\": \"Angre\",\r\n \"EDIT\": \"Rediger\",\r\n \"DELETE\": \"Slett\",\r\n \"SAVE\": \"Lagre\",\r\n \"CANCEL\": \"Avbryt\",\r\n \"EDIT_FILE_NAME\": \"Rediger filnavn\",\r\n \"FILE_NAME\": \"Filnavn\",\r\n \"UPLOAD_LEAVE_WARNING\": \"Filene du laster opp vil kanskje ikke bli lagret\",\r\n \"SOME_FILES_WERE_NOT_ADDED\": \"Noen filer ble ikke lagt til\",\r\n \"YOU_CAN_ONLY_ADD\": \"Du kan kun laste opp\",\r\n \"SELECT\": \"Velg\",\r\n \"PROCESSES\": \"Prosesser\",\r\n \"DOCUMENTS\": \"Dokumenter\",\r\n \"DEVIATION\": \"Kategorier\",\r\n \"CHECKLIST\": \"Sjekklister\",\r\n \"ASSESSMENT\": \"Analyser\",\r\n \"ADD\": \"Legg til\",\r\n \"SEARCH\": \"Søk\",\r\n \"REGULAR_TITLE\": \"Hva ønsker du å inkludere av hendeler i risikoanalysen(e)?\",\r\n \"CAPTION_TITLE\": \"I årsaksanalyser blir automatisk alle årsaker knyttet til hendelsen lagt til.\",\r\n \"CAUSAL_ANALYZES\": \"Valgte Analyser\",\r\n \"FINISHED\": \"Ferdig\",\r\n \"PROCESS_ID\": \"Prosess ID\",\r\n \"DOCUMENT_ID\": \"Dokument ID\",\r\n \"PROCESS_AREA\": \"Prosessområder\",\r\n \"FOLDER\": \"Mappe\",\r\n \"DEVIATION_TYPE\": \"Sakstype\",\r\n \"CHECKLIST_CATEGORY\": \"Kategorier\",\r\n \"EVENT\": \"Hendelse\",\r\n \"AREA_OF_IMPACT\": \"Konsekvensområde\",\r\n \"RESULT\": \"Resultat\",\r\n \"NOT_ACCEPTED\": \"Ikke akseptert\",\r\n \"MUST_BE_EVALUATED\": \"Må vurderes\",\r\n \"ACCEPTED\": \"Akseptert\",\r\n \"ARCHIVED\": \"Arkivert\",\r\n \"CAUSE\": \"Årsak\",\r\n \"ERROR\": {\r\n \"SELECT_DANGER\": \"Du må velge en eller flere hendelser\"\r\n },\r\n \"MESSAGE\": {\r\n \"PROCESSES_IN\": \"Prosesser i\",\r\n \"DOCUMENTS_IN\": \"Dokumenter i\"\r\n },\r\n \"QMSCKEDITOR\": {\r\n \"INSERT_TOOLTIP\": \"Sett inn et verktøytips\",\r\n \"CONTENT\": \"Innhold\",\r\n \"TEMPLATE\": \"Mal\",\r\n \"CONTENT_TEMPLATE\": \"Innholdsmal\",\r\n \"CREATE_NEW_TEMPLATE\": \"Lag ny mal\",\r\n \"UPDATE_TEMPLATE\": \"Oppdater mal\",\r\n \"TITLE\": \"Tittel\",\r\n \"DESCRIPTION\": \"Beskrivelse\",\r\n \"SAVE\": \"Lagre\",\r\n \"CHOOSE_TEMPLATE\": \"Velg malen du vil åpne i redigeringsprogrammet\",\r\n \"REPLACE_CONTENT\": \"Bytt ut faktisk innhold\",\r\n \"SAVED\": \"Lagret\",\r\n \"SAVE_FAILED\": \"Lagringen mislyktes\",\r\n \"DELETE\": \"Slett\",\r\n \"DELETED\": \"Slettet\",\r\n \"DELETE_FAILED\": \"Sletting mislyktes\",\r\n \"DELETE_TEMPLATE\": \"Slett mal\",\r\n \"CHANGE_TEMPLATE\": \"Endre mal\",\r\n \"CANCEL\": \"Avbryt\",\r\n \"LINK\": \"Link\",\r\n \"LINK_TYPE\": \"Koblingstype\",\r\n \"LINK_URL\": \"URL\",\r\n \"LINK_ANCHOR_IN_TEXT\": \"Lenke til anker i teksten\",\r\n \"LINK_EMAIL\": \"E-post\",\r\n \"LINK_ANCHOR_DOCUMENT\": \"Anker i annet dokument\",\r\n \"TARGET\": \"Target\",\r\n \"TARTGET_NEW\": \"Nytt vindu (_blank)\",\r\n \"TARGET_TOPMOST\": \"Det øverste vinduet (_top)\",\r\n \"TARGET_SAME\": \"Samme vindu (selv)\",\r\n \"TARGET_PARENT\": \"Overordnet vindu (_parent)\",\r\n \"PROTOCOL\": \"Protocol\",\r\n \"PROTOCOL_HTTP\": \"http: //\",\r\n \"PROTOCOL_HTTPS\": \"https: //\",\r\n \"PROTOCOL_FTP\": \"ftp: //\",\r\n \"PROTOCOL_NEW\": \"nyheter: //\",\r\n \"PROTOCOL_OTHER\": \"<other>\",\r\n \"ADVISORY_TITLE\": \"Rådgivende tittel\",\r\n \"HANDBOOK\": \"eHandbook\",\r\n \"ATTACHMENT\": \"Attachment\",\r\n \"OK\": \"OK\",\r\n \"URL_HEADER\": \"URL-informasjon\",\r\n \"ANCHOR_TEXT_HEADER\": \"Velg et anker\",\r\n \"ANCHOR_BY_NAME\": \"Anker ved navn\",\r\n \"EMAIL_HEADER\": \"E-postinformasjon\",\r\n \"EMAIL_ADDRESS\": \"Adresse\",\r\n \"EMAIL_SUBJECT\": \"Emne\",\r\n \"EMAIL_BODY\": \"Kropp\",\r\n \"ANCHOR_ATTACHMENT\": \"Vedlegg\",\r\n \"ANCHOR_RELATED_DOCUMENT\": \"Beslektet dokument\",\r\n \"ADD_DOCUMENT_PROCESS\": \"Legg til dokument / prosess\",\r\n \"ADD_DOCUMENT\": \"Legg til dokument\",\r\n \"ADD\": \"Legg til\",\r\n \"PROSESSER\": \"Prosesser\",\r\n \"DOCUMENTS\": \"Dokumenter\",\r\n \"UPDATE\": \"Oppdater\",\r\n \"DOCUMENT\": \"Dokument\",\r\n \"CONFIRM\": \"Bekreft\",\r\n \"SEARCH\": \"Søk\",\r\n },\r\n \"QMSCKEDITOR_MESSAGE\": {\r\n \"CONFIRM_DELETE_TEMPLATE\": \"Er du sikker på at du vil slette denne malen?\",\r\n \"CONFIRM_CHANGE_TEMPLATE\": \"Er du sikker på at du vil bruke denne malen på redaktøren?\"\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { en } from '../model/en';\r\nimport { no } from '../model/no';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslateLibraryService {\r\n\r\n getLanguageSubject$ = new BehaviorSubject<any>(null);\r\n private availableLanguages = { en, no };\r\n\r\n constructor() { }\r\n\r\n setLanguage(item: any) {\r\n this.getLanguageSubject$.next(item);\r\n }\r\n\r\n getObjectLang(lang) {\r\n let language = lang && lang.toLowerCase() || 'en';\r\n if (language !== 'en' && language !== 'no') {\r\n language = 'en';\r\n }\r\n return this.availableLanguages[language];\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateLibraryService } from './services/translation-registry.service';\r\n\r\n@Component({\r\n selector: 'lib-qms-angular',\r\n templateUrl: 'qms-angular.component.html',\r\n styles: []\r\n})\r\nexport class QmsAngularComponent implements OnInit {\r\n\r\n LANG: any;\r\n\r\n constructor(public trans: TranslateLibraryService) { }\r\n\r\n ngOnInit() {\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","// Import the core angular services.\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\nexport interface Logs {\r\n user: string,\r\n date: any,\r\n isDraft: boolean,\r\n isEdit: boolean,\r\n content: string,\r\n editedContent: string\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-comment',\r\n templateUrl: 'comment.html',\r\n styleUrls: ['comment.scss'],\r\n host: { 'class': 'qms-comment' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSComment implements OnInit, OnChanges {\r\n @Input() sourceLog: Logs[];\r\n @Output() updateLog = new EventEmitter();\r\n\r\n LANG: any;\r\n\r\n constructor(public trans: TranslateLibraryService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n for (const propName in changes) {\r\n const changedProp = changes[propName];\r\n const to = JSON.stringify(changedProp.currentValue);\r\n if (changedProp.isFirstChange()) {\r\n console.log('Initial value of');\r\n } else {\r\n const from = JSON.stringify(changedProp.previousValue);\r\n console.log('changed from');\r\n }\r\n }\r\n console.log('value changed', changes.sourceLog.currentValue);\r\n // this.sourceLog = changes.sourceLog.currentValue;\r\n }\r\n\r\n ngOnInit() {\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n console.log(this.LANG);\r\n\r\n }\r\n });\r\n }\r\n\r\n showContent(content) {\r\n return content.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\r\n }\r\n\r\n editContent(item) {\r\n item.editedContent = item.content;\r\n item.isEdit = true;\r\n }\r\n\r\n saveEditedContent(item) {\r\n item.content = item.editedContent;\r\n item.isEdit = false;\r\n this.updateLog.emit(item);\r\n }\r\n\r\n removeItem(item) {\r\n item.isDelete = true;\r\n this.updateLog.emit(item);\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, HostListener, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ConfirmDialog } from './constant';\r\n\r\n@Component({\r\n selector: 'qms-dialog-confirm',\r\n templateUrl: 'dialog-confirm.html',\r\n styleUrls: ['dialog.scss']\r\n})\r\nexport class QMSConfirmDialog implements OnInit, AfterViewInit {\r\n info: ConfirmDialog;\r\n\r\n @ViewChild('actionGroup') actionGroup: ElementRef;\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.orderActionButton();\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private _elRef: ElementRef,\r\n private dialogRef: MatDialogRef<QMSConfirmDialog>,\r\n @Inject(MAT_DIALOG_DATA) data) {\r\n\r\n this.info = { ...data };\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.orderActionButton();\r\n }\r\n\r\n orderActionButton() {\r\n const divHeight = this.actionGroup.nativeElement.offsetHeight;\r\n document.getElementById('action-btn').style.order = divHeight > 68 ? '1' : '2';\r\n }\r\n\r\n save() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-dialog-form',\r\n templateUrl: 'dialog-form.html',\r\n styleUrls: ['dialog.scss']\r\n})\r\nexport class QMSFormDialog implements OnInit {\r\n ngOnInit() {\r\n\r\n }\r\n}\r\n\r\n","import { AfterViewChecked, AfterViewInit, ContentChild, Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-suffix]',\r\n})\r\nexport class QMSSuffixDirective {\r\n constructor(private el: ElementRef) {\r\n el.nativeElement.classList.add('qms-suffix');\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mat-form-field[qms-suffix-field]',\r\n})\r\nexport class QMSSuffixFieldDirective implements AfterViewChecked {\r\n @ContentChild(QMSSuffixDirective, {static: false}) qmsSuffix: QMSSuffixDirective;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngAfterViewChecked(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-suffix-field');\r\n }\r\n }\r\n\r\n removeFocus = () => {\r\n this.ele.nativeElement.classList.remove('mat-focused');\r\n }\r\n}\r\n\r\n\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'qms-test-only',\r\n styleUrls: ['./test-only.component.scss'],\r\n templateUrl: './test-only.component.html'\r\n})\r\nexport class TestOnlyComponent {\r\n @Input() text: string = \"\";\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-input-chip-list]',\r\n})\r\nexport class QMSChipInputChipListDirective implements OnInit {\r\n @Input() maxRows: number;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-input-chip-list');\r\n if(this.maxRows && this.maxRows > 0){\r\n this.ele.nativeElement.classList.add(`qms-chip-input-max-${this.maxRows}`)\r\n }\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input]',\r\n})\r\nexport class QMSChipInputDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-dropdown]',\r\n})\r\nexport class QMSChipInputSelectDropWDownDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input-dropdown');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit } from \"@angular/core\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-select-trigger]',\r\n})\r\nexport class QMSChipInputSelectTriggerDirective implements OnInit {\r\n public eleSelect: ElementRef;\r\n public autocomplete: MatAutocompleteTrigger;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input');\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n click(){\r\n if(this.autocomplete){\r\n if(!this.autocomplete.panelOpen)\r\n this.autocomplete.openPanel();\r\n else\r\n this.autocomplete.closePanel();\r\n }\r\n \r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\nimport { QMSChipInputSelectTriggerDirective } from \"./chip-input-select-trigger.directive\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-select]',\r\n})\r\nexport class QMSChipInputSelectFieldDirective implements OnInit, AfterViewInit {\r\n @ContentChild(QMSChipInputSelectTriggerDirective, {static: false}) selectTrigger: QMSChipInputSelectTriggerDirective;\r\n @ContentChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngAfterViewInit(): void {\r\n if(this.selectTrigger){\r\n this.selectTrigger.autocomplete = this.autocomplete;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input-select');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-chip-body]',\r\n})\r\nexport class QMSChipBodyDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-body');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'mat-chip[qms-chip]',\r\n})\r\nexport class QMSInputChipDirective implements OnInit, OnChanges {\r\n\r\n @Input() selected: boolean;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.selected) {\r\n this.ele.nativeElement.classList.add('qms-chip-selected');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-chip-selected');\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip');\r\n if (this.selected) {\r\n this.ele.nativeElement.classList.add('qms-chip-selected');\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, Directive, ElementRef, HostListener, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-menu-item]',\r\n})\r\nexport class QMSDropdownMenuItem implements OnInit, AfterViewInit, OnChanges{\r\n @ContentChild(\"menuItemContent\", {static: false}) menuItemContent: ElementRef;\r\n @Input() selected: boolean;\r\n \r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(this.selected){\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item-selected');\r\n }\r\n else{\r\n this.ele.nativeElement.classList.remove('qms-dropdown-menu-item-selected');\r\n }\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n if(this.menuItemContent){\r\n if(this.menuItemContent.nativeElement){\r\n this.menuItemContent.nativeElement.classList.add('qms-dropdown-menu-item__content')\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item');\r\n if(this.selected){\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item-selected');\r\n }\r\n }\r\n }\r\n}","import { AfterContentChecked, ContentChild, Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-attachment-list]',\r\n})\r\n\r\nexport class QMSAttachmentListDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-attachment-list');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\nimport { QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-display]',\r\n})\r\nexport class QMSFileUploadDisplayDirective implements OnInit, OnChanges{\r\n public eleInput: ElementRef;\r\n public removeInvalid: () => void;\r\n public addInvalid: () => void;\r\n @Input() value;\r\n constructor(public ele: ElementRef, \r\n @Optional() private control: NgControl) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n if(this.control){\r\n this.control.control.setValue(this.value? this.value : '');\r\n this.control.control.updateValueAndValidity();\r\n if(this.control.control.valid && this.removeInvalid){\r\n this.removeInvalid();\r\n }\r\n if(this.control.control.invalid && this.addInvalid){\r\n this.addInvalid();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n Click() {\r\n this.eleInput.nativeElement.click();\r\n }\r\n}","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple-display]',\r\n})\r\nexport class QMSFileUploadMultipleDisplayDirective implements OnInit{\r\n public eleInput: ElementRef;\r\n @Input() acceptExtension: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n \r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n Click() {\r\n this.eleInput.nativeElement.click();\r\n }\r\n}","\r\nexport enum FileErrorType{\r\n noError,\r\n notSupportedExtension,\r\n exceedMaxSize,\r\n}\r\nexport class QMSFileAttachment {\r\n file: File;\r\n fileName: string;\r\n fileContent: string;\r\n fileContentBase64: string;\r\n extension: string;\r\n isSuccessful: boolean;\r\n typeError: FileErrorType;\r\n progress: number;\r\n}","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { QMSUploadFileErrorDialog } from \"../../components/upload-file-error-dialog/upload-file-error-dialog\";\r\nimport { FileErrorType, QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple-selector]',\r\n})\r\n\r\nexport class QMSFileUploadMultipleSelectorDirective implements OnInit, OnChanges {\r\n @Input() filesForInput: QMSFileAttachment[];\r\n @Output() filesForInputChange = new EventEmitter();\r\n @Input() acceptExtensions: string[];\r\n @Output('onFileUploaded') onFileUploaded: EventEmitter<any> = new EventEmitter();\r\n @Input() maxSize: number;\r\n invokeMyFunc(){\r\n if(this.onFileUploaded)\r\n this.onFileUploaded.emit();\r\n }\r\n\r\n constructor(public ele: ElementRef, public dialog: MatDialog) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(!this.filesForInput || this.filesForInput.length === 0){\r\n this.ele.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n @HostListener('change', ['$event']) OnChanges(event) {\r\n if(event.target && event.target.files){\r\n const listFiles: FileList = event.target.files;\r\n let listAttachments : QMSFileAttachment[] = [];\r\n for (let i = 0; i < listFiles.length; i++) {\r\n const file = event.target.files[i];\r\n let attachment = new QMSFileAttachment();\r\n attachment.fileName = file.name;\r\n attachment.extension = file.name.split('.').pop();\r\n attachment.file = file; \r\n attachment.isSuccessful = true;\r\n attachment.typeError = FileErrorType.noError;\r\n if(this.acceptExtensions){\r\n const check = this.acceptExtensions.filter(type => type.toLowerCase() === attachment.extension.toLowerCase())\r\n if(check.length === 0){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.notSupportedExtension;\r\n }\r\n }\r\n if(this.maxSize && file.size > this.maxSize){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.exceedMaxSize;\r\n }\r\n listAttachments.push(attachment);\r\n }\r\n this.filesForInputChange.emit(listAttachments);\r\n this.invokeMyFunc();\r\n }\r\n }\r\n}","import { AfterViewInit, ContentChild, Directive, ElementRef,\r\n HostListener, Input, OnChanges, OnInit } from \"@angular/core\";\r\nimport { QMSFileUploadMultipleDisplayDirective } from \"./file-upload-multiple-display.directive\";\r\nimport { QMSFileUploadMultipleSelectorDirective } from \"./file-upload-multiple-selector.directive\";\r\nimport { ComponentCanDeactivate } from \"./file-upload.directive\";\r\n\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple]',\r\n})\r\nexport class QMSFileUploadMultipleDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n @ContentChild(QMSFileUploadMultipleSelectorDirective, {static: false}) fileSelector: QMSFileUploadMultipleSelectorDirective;\r\n @ContentChild(QMSFileUploadMultipleDisplayDirective, {static: false}) fileDisplay: QMSFileUploadMultipleDisplayDirective;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-file-upload-loading');\r\n }\r\n \r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.fileSelector) {\r\n this.fileDisplay.eleInput = this.fileSelector.ele;\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-scrollable-attachment-list]',\r\n})\r\n\r\nexport class QMSScrolableAttachmentListDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-scrollable-attachment-list');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FileErrorType, QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n\r\nexport function requiredFileType( types: string[] ) {\r\n return function (control: FormControl) {\r\n const fileName = control.value;\r\n if ( fileName ) {\r\n const extension = fileName.split('.').pop();\r\n const check = types.filter(type => type.toLowerCase() === extension.toLowerCase())\r\n if(check.length === 0){\r\n return {\r\n requiredFileType: true\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nexport function notExceedSize( size: number ) {\r\n return function (control: FormControl) {\r\n const file = control.value;\r\n if ( file ) {\r\n \r\n if(file.size > size){\r\n return {\r\n notExceedSize: true\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-selector]',\r\n})\r\n\r\nexport class QMSFileUploadSelectorDirective implements OnInit, OnChanges {\r\n @Input() inputFile: any;\r\n @Output() inputFileChange = new EventEmitter();\r\n @Input() acceptExtensions: string[];\r\n @Output('onFileUploaded') onFileUploaded: EventEmitter<any> = new EventEmitter();\r\n @Input() maxSize: number;\r\n public isLoading: boolean;\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(!this.inputFile){\r\n this.ele.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n invokeMyFunc(){\r\n if(this.onFileUploaded)\r\n this.onFileUploaded.emit();\r\n }\r\n\r\n @HostListener('change', ['$event']) OnChanges(event) {\r\n if(event.target && event.target.files[0]){\r\n const file = event.target.files[0];\r\n let attachment = new QMSFileAttachment();\r\n attachment.fileName = file.name;\r\n attachment.extension = file.name.split('.').pop();\r\n attachment.file = file;\r\n attachment.isSuccessful = true;\r\n attachment.typeError = FileErrorType.noError;\r\n if(this.acceptExtensions){\r\n const check = this.acceptExtensions.filter(type => type.toLowerCase() === attachment.extension.toLowerCase())\r\n if(check.length === 0){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.notSupportedExtension;\r\n }\r\n }\r\n if(this.maxSize && file.size > this.maxSize){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.exceedMaxSize;\r\n }\r\n this.inputFileChange.emit(attachment);\r\n this.invokeMyFunc();\r\n }\r\n }\r\n}","import { AfterContentChecked, AfterViewInit, ContentChild, Directive, ElementRef,\r\n EventEmitter,\r\n HostListener, Injectable, Input, OnChanges, OnInit, Output, Renderer2, SimpleChanges } from \"@angular/core\";\r\nimport { CanDeactivate } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\nimport { QMSFileUploadDisplayDirective } from \"./file-upload-display.directive\";\r\nimport { QMSFileUploadSelectorDirective } from \"./file-upload-selector.directive\";\r\n\r\n\r\nexport interface ComponentCanDeactivate {\r\n canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\r\n}\r\n \r\n@Injectable()\r\nexport class QMSUploadingFileGuard implements CanDeactivate<ComponentCanDeactivate> {\r\n constructor(){}\r\n canDeactivate(component: ComponentCanDeactivate) {\r\n // if there are no pending changes, just allow deactivation; else confirm first\r\n return component.canDeactivate? component.canDeactivate(): true;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-file-upload]',\r\n})\r\nexport class QMSFileUploadDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n @ContentChild(QMSFileUploadSelectorDirective, {static: false}) fileSelector: QMSFileUploadSelectorDirective;\r\n @ContentChild(QMSFileUploadDisplayDirective, {static: false}) fileDisplay: QMSFileUploadDisplayDirective;\r\n\r\n constructor(private ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-file-upload-loading');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.fileSelector) {\r\n this.fileDisplay.eleInput = this.fileSelector.ele;\r\n this.fileDisplay.removeInvalid = this.removeInvalid;\r\n this.fileDisplay.addInvalid = this.addInvalid;\r\n this.fileSelector.isLoading = this.isLoading;\r\n }\r\n }\r\n\r\n removeInvalid = () => {\r\n this.ele.nativeElement.classList.remove('mat-form-field-invalid');\r\n }\r\n\r\n addInvalid = () => {\r\n this.ele.nativeElement.classList.add('mat-form-field-invalid');\r\n }\r\n}\r\n","import { AfterContentInit, Directive, ElementRef, Renderer2 } from \"@angular/core\";\r\n\r\n\r\n@Directive({\r\n selector: '[qms-form]',\r\n host: { 'class': 'qms-form' }\r\n})\r\nexport class QMSFormFieldDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-form-textarea]',\r\n host: { 'class': 'qms-form form-textarea' }\r\n})\r\nexport class QMSFormFieldTextareaDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-form-date]',\r\n host: { 'class': 'qms-form form-datepicker' }\r\n})\r\nexport class QMSFormFieldDatePickerDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n\r\n@Directive({\r\n selector: '[qms-group-options]',\r\n host: { 'class': 'qms-group-options' }\r\n})\r\nexport class QMSGroupOptionDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-group-options]',\r\n host: { 'class': 'qms-group-options' }\r\n})\r\n\r\nexport class AutocompleteOffDirective {\r\n constructor(private _el: ElementRef) {\r\n this._el.nativeElement.setAttribute('autocomplete', 'off');\r\n this._el.nativeElement.setAttribute('autocorrect', 'off');\r\n this._el.nativeElement.setAttribute('autocapitalize', 'none');\r\n this._el.nativeElement.setAttribute('spellcheck', 'false');\r\n }\r\n}","import { Directive, Input, ElementRef, OnInit, OnDestroy } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-margin]'\r\n})\r\n\r\nexport class MarginDirective implements OnInit {\r\n @Input() dim: string;\r\n @Input() value: string;\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dim ?\r\n this.el.nativeElement.style[`margin-${this.dim}`] = `${this.value}px` :\r\n this.value.includes('px')\r\n ? this.el.nativeElement.style[`margin`] = `${this.value}`\r\n : this.el.nativeElement.style[`margin`] = `${this.value}px`;\r\n }\r\n}","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'mat-slider[qms-range-slider-lockup]',\r\n})\r\nexport class QMSRangeSliderLockUpDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-range-slider-lockup');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'mat-slider[qms-range-slider]',\r\n})\r\nexport class QMSRangeSliderDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-range-slider');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\r\n@Directive({\r\n selector: '[scrollToSelected]'\r\n})\r\nexport class ScrollToSelectedDirective implements OnInit {\r\n @Input() scrollToClass: string;\r\n @HostListener('document:click', ['$event'])\r\n onClick(e) {\r\n const isStepElement = e.currentTarget.activeElement.classList.contains('mat-step-header');\r\n const isStepElementActive = e.currentTarget.activeElement.classList.contains('mat-primary');\r\n if (isStepElement && isStepElementActive) {\r\n this.rerenderView();\r\n }\r\n }\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n rerenderView() {\r\n if (this.el.nativeElement.classList.contains(this.scrollToClass)) {\r\n this.el.nativeElement.scrollIntoView(true, { behavior: 'smooth', block: 'start' });\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.rerenderView();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-scrollbar]',\r\n})\r\nexport class QMSScrollbarDirective implements OnInit {\r\n @Input() isNoneBackground: boolean;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-scrollbar');\r\n\r\n if (this.isNoneBackground) {\r\n this.ele.nativeElement.classList.add('none-scroll-bg');\r\n }\r\n }\r\n }\r\n}","import { AfterViewChecked, AfterViewInit, ContentChild, Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, \r\n OnDestroy,\r\n OnInit, Output, Renderer2, SimpleChanges, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[qms-input-clear]',\r\n})\r\nexport class QMSInputClearDirective {\r\n inputDemo;\r\n inputDemoChange;\r\n constructor(public el: ElementRef) {\r\n el.nativeElement.classList.add('qms-input-clear');\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mat-form-field[qms-search-field]',\r\n})\r\nexport class QMSSearchFieldDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n constructor(private ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-search-field-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-search-field-loading');\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-search-field');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-search-field-loading');\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-content]',\r\n})\r\nexport class QMSDrawerContentDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-content');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-header-action]',\r\n})\r\nexport class QMSDrawerHeaderActionDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-header__action');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-header]',\r\n})\r\nexport class QMSDrawerHeaderDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-header');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer]',\r\n})\r\nexport class QMSDrawerDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-group-advanced]',\r\n})\r\nexport class QMSTabGroupAdvancedDirective implements OnInit{\r\n @Input() color: string;\r\n @Input() type: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-group-advanced');\r\n if(this.color){\r\n this.ele.nativeElement.classList.add(this.color);\r\n }\r\n if(this.type==='fixed'){\r\n this.ele.nativeElement.classList.add('qms-tab-group-advanced-fixed');\r\n }\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-group]',\r\n})\r\nexport class QMSTabGroupDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-group');\r\n }\r\n \r\n }\r\n}","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-label]',\r\n})\r\nexport class QMSTabLabelDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-label');\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, Renderer2 } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-text-block-line]'\r\n})\r\nexport class QMSTextBlockLine {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n @Input('size') size: string;\r\n @Input('type') type: string;\r\n @Input('color') color: string;\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'caption-semibold') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption-semibold');\r\n }\r\n else if (this.type == 'caption'){\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption');\r\n }\r\n else if (this.type === 'body') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `content size-${this.size ? this.size : 'none'}`);\r\n } else {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `qms-text-block-line size-${this.size ? this.size : 'none'}`);\r\n }\r\n\r\n if (this.color) {\r\n this.renderer.addClass(this.elRef.nativeElement, this.color);\r\n }\r\n\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-text-block]',\r\n})\r\nexport class QMSTextBlockDirective implements OnInit {\r\n\r\n @Input('appearance') appearance: string;\r\n @Input('mode') mode: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-text-block');\r\n if(this.appearance == 'fill'){\r\n this.ele.nativeElement.classList.add('qms-text-block-filled')\r\n }\r\n if(this.mode === 'dark'){\r\n this.ele.nativeElement.classList.add('qms-text-block-dark')\r\n }\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tooltip-image]',\r\n})\r\nexport class QMSTooltipImageDirective implements OnInit {\r\n @Input('type') type: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tooltip-image');\r\n if (this.type) { \r\n this.ele.nativeElement.classList.add(this.type);\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, ContentChild, ElementRef, Input, OnInit, TemplateRef, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'qms-tooltip',\r\n templateUrl: './tooltip.html',\r\n styleUrls: ['./tooltip.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n })\r\nexport class QMSToolTipComponent implements OnInit, AfterViewInit {\r\n\r\n /**\r\n * This is simple text which is to be shown in the tooltip\r\n */\r\n @Input() text: string;\r\n @Input() mode: string;\r\n\r\n /**\r\n * This provides finer control on the content to be visible on the tooltip\r\n * This template will be injected in McToolTipRenderer directive in the consumer template\r\n * <ng-template #template>\r\n * content.....\r\n * </ng-template>\r\n */\r\n @Input() contentTemplate: TemplateRef<any>;\r\n @ViewChild('qmsTooltipContainer', {static: false}) qmsTooltipContainer: ElementRef;\r\n constructor(private ele: ElementRef) { }\r\n ngAfterViewInit(): void {\r\n if(this.mode == 'dark'){\r\n this.qmsTooltipContainer.nativeElement.classList.add('qms-tooltip-container-dark')\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n}","import { ConnectedPosition, ConnectionPositionPair, Overlay, OverlayPositionBuilder, OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { ComponentRef, Directive, ElementRef, HostListener, Input, TemplateRef } from \"@angular/core\";\r\nimport { QMSToolTipComponent } from \"../../components/tooltip/tooltip\";\r\n\r\n@Directive({\r\n selector: '[qms-tool-tip]'\r\n})\r\nexport class QMSToolTipRendererDirective {\r\n\r\n /**\r\n * This will be used to show tooltip or not\r\n * This can be used to show the tooltip conditionally\r\n */\r\n @Input() showToolTip: boolean = true;\r\n @Input() mode: string;\r\n //If this is specified then specified text will be showin in the tooltip\r\n @Input(`qms-tool-tip`) text: string;\r\n\r\n //If this is specified then specified template will be rendered in the tooltip\r\n @Input() contentTemplate: TemplateRef<any>;\r\n @Input() position: string;\r\n private _overlayRef: OverlayRef;\r\n\r\n constructor(private _overlay: Overlay,\r\n private _overlayPositionBuilder: OverlayPositionBuilder,\r\n private _elementRef: ElementRef) { }\r\n\r\n /**\r\n * Init life cycle event handler\r\n */\r\n ngOnInit() {\r\n let positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 5,\r\n }]);\r\n switch (this.position) {\r\n case 'left': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetY: 0,\r\n offsetX: -10,\r\n }]);\r\n break;\r\n }\r\n case 'right': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetY: 0,\r\n offsetX: 10,\r\n }]);\r\n break;\r\n }\r\n case 'top': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -10,\r\n offsetX: 0,\r\n }]);\r\n break;\r\n }\r\n case 'bottom': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 10,\r\n offsetX: 0\r\n }]);\r\n break;\r\n }\r\n }\r\n\r\n this._overlayRef = this._overlay.create({ positionStrategy });\r\n }\r\n\r\n /**\r\n * This method will be called whenever mouse enters in the Host element\r\n * i.e. where this directive is applied\r\n * This method will show the tooltip by instantiating the McToolTipComponent and attaching to the overlay\r\n */\r\n @HostListener('focus')\r\n @HostListener('mouseenter')\r\n show() {\r\n if (!this.showToolTip) {\r\n return;\r\n }\r\n //attach the component if it has not already attached to the overlay\r\n if ((this.text || this.contentTemplate) && this._overlayRef && !this._overlayRef.hasAttached()) {\r\n const tooltipRef: ComponentRef<QMSToolTipComponent>\r\n = this._overlayRef.attach(new ComponentPortal(QMSToolTipComponent));\r\n if(this.text)\r\n tooltipRef.instance.text = this.text;\r\n if (this.mode) {\r\n tooltipRef.instance.mode = this.mode;\r\n }\r\n tooltipRef.instance.contentTemplate = this.contentTemplate;\r\n }\r\n }\r\n\r\n /**\r\n * This method will be called when mouse goes out of the host element\r\n * i.e. where this directive is applied\r\n * This method will close the tooltip by detaching the overlay from the view\r\n */\r\n @HostListener('focusout')\r\n @HostListener('mouseleave')\r\n hide() {\r\n this.closeToolTip();\r\n }\r\n\r\n /**\r\n * Destroy lifecycle event handler\r\n * This method will make sure to close the tooltip\r\n * It will be needed in case when app is navigating to different page\r\n * and user is still seeing the tooltip; In that case we do not want to hang around the\r\n * tooltip after the page [on which tooltip visible] is destroyed\r\n */\r\n ngOnDestroy() {\r\n this.closeToolTip();\r\n }\r\n\r\n /**\r\n * This method will close the tooltip by detaching the component from the overlay\r\n */\r\n private closeToolTip() {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n }\r\n }\r\n}","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n AfterContentInit,\r\n Attribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n ViewChild,\r\n ViewEncapsulation,\r\n InjectionToken,\r\n Inject,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport {\r\n CanDisableRipple,\r\n mixinDisableRipple,\r\n} from '@angular/material/core';\r\n\r\n\r\n\r\nexport type ButtonToggleAppearance = 'standard' | 'active' | 'dark';\r\n\r\nexport interface ButtonToggleDefaultOptions {\r\n appearance?: ButtonToggleAppearance;\r\n}\r\n\r\n\r\nexport const BUTTON_TOGGLE_DEFAULT_OPTIONS =\r\n new InjectionToken<ButtonToggleDefaultOptions>('BUTTON_TOGGLE_DEFAULT_OPTIONS');\r\n\r\n\r\nexport const BUTTON_TOGGLE_GROUP =\r\n new InjectionToken<QMSButtonToggleGroup>('QMSButtonToggleGroup');\r\n\r\n\r\nexport const BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSButtonToggleGroup),\r\n multi: true\r\n};\r\n\r\n\r\nlet uniqueIdCounter = 0;\r\n\r\n\r\nexport class ButtonToggleChange {\r\n constructor(\r\n public source: QMSButtonToggle,\r\n public value: any) { }\r\n}\r\n\r\n\r\n@Directive({\r\n selector: 'qms-button-toggle-group',\r\n providers: [\r\n BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\r\n { provide: BUTTON_TOGGLE_GROUP, useExisting: QMSButtonToggleGroup },\r\n ],\r\n host: {\r\n 'role': 'group',\r\n 'class': 'qms-button-toggle-group',\r\n '[attr.aria-disabled]': 'disabled',\r\n '[class.qms-button-toggle-vertical]': 'vertical',\r\n '[class.qms-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\r\n '[class.qms-button-toggle-group-appearance-active]': 'appearance === \"active\"',\r\n '[class.qms-button-toggle-group-appearance-dark]': 'appearance === \"dark\"',\r\n },\r\n exportAs: 'qmsButtonToggleGroup',\r\n})\r\nexport class QMSButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\r\n private _vertical = false;\r\n private _disabled = false;\r\n private _selectionModel: SelectionModel<QMSButtonToggle>;\r\n\r\n private _rawValue: any;\r\n\r\n _controlValueAccessorChangeFn: (value: any) => void = () => { };\r\n\r\n _onTouched: () => any = () => { };\r\n\r\n @ContentChildren(forwardRef(() => QMSButtonToggle), {\r\n descendants: true\r\n }) _buttonToggles: QueryList<QMSButtonToggle>;\r\n\r\n\r\n @Input() appearance: ButtonToggleAppearance;\r\n\r\n @Input()\r\n get name(): string { return this._name; }\r\n set name(value: string) {\r\n this._name = value;\r\n\r\n if (this._buttonToggles) {\r\n this._buttonToggles.forEach(toggle => {\r\n toggle.name = this._name;\r\n toggle._markForCheck();\r\n });\r\n }\r\n }\r\n private _name = `qms-button-toggle-group-${uniqueIdCounter++}`;\r\n\r\n\r\n @Input()\r\n get vertical(): boolean { return this._vertical; }\r\n set vertical(value: boolean) {\r\n this._vertical = coerceBooleanProperty(value);\r\n }\r\n\r\n\r\n @Input()\r\n get value(): any {\r\n const selected = this._selectionModel ? this._selectionModel.selected : [];\r\n\r\n return selected[0] ? selected[0].value : undefined;\r\n }\r\n set value(newValue: any) {\r\n this._setSelectionByValue(newValue);\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n\r\n @Output() readonly valueChange = new EventEmitter<any>();\r\n\r\n\r\n get selected(): QMSButtonToggle | QMSButtonToggle[] {\r\n const selected = this._selectionModel ? this._selectionModel.selected : [];\r\n return (selected[0] || null);\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean { return this._disabled; }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n if (this._buttonToggles) {\r\n this._buttonToggles.forEach(toggle => toggle._markForCheck());\r\n }\r\n }\r\n\r\n @Output() readonly change: EventEmitter<ButtonToggleChange> =\r\n new EventEmitter<ButtonToggleChange>();\r\n\r\n constructor(\r\n private _changeDetector: ChangeDetectorRef,\r\n @Optional() @Inject(BUTTON_TOGGLE_DEFAULT_OPTIONS)\r\n defaultOptions?: ButtonToggleDefaultOptions) {\r\n\r\n this.appearance =\r\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\r\n }\r\n\r\n ngOnInit() {\r\n this._selectionModel = new SelectionModel<QMSButtonToggle>(false, undefined, false);\r\n }\r\n\r\n ngAfterContentInit() {\r\n this._selectionModel.select(...this._buttonToggles.filter(toggle => toggle.checked));\r\n }\r\n\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this._controlValueAccessorChangeFn = fn;\r\n }\r\n\r\n\r\n registerOnTouched(fn: any) {\r\n this._onTouched = fn;\r\n }\r\n\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n\r\n _emitChangeEvent(): void {\r\n const selected = this.selected;\r\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\r\n const event = new ButtonToggleChange(source!, this.value);\r\n this._controlValueAccessorChangeFn(event.value);\r\n this.change.emit(event);\r\n }\r\n\r\n _syncButtonToggle(toggle: QMSButtonToggle,\r\n select: boolean,\r\n isUserInput = false,\r\n deferEvents = false) {\r\n\r\n if (this.selected && !toggle.checked) {\r\n (this.selected as QMSButtonToggle).checked = false;\r\n }\r\n\r\n if (this._selectionModel) {\r\n if (select) {\r\n this._selectionModel.select(toggle);\r\n } else {\r\n this._selectionModel.deselect(toggle);\r\n }\r\n } else {\r\n deferEvents = true;\r\n }\r\n\r\n\r\n if (deferEvents) {\r\n Promise.resolve().then(() => this._updateModelValue(isUserInput));\r\n } else {\r\n this._updateModelValue(isUserInput);\r\n }\r\n }\r\n\r\n\r\n _isSelected(toggle: QMSButtonToggle) {\r\n return this._selectionModel && this._selectionModel.isSelected(toggle);\r\n }\r\n\r\n\r\n _isPrechecked(toggle: QMSButtonToggle) {\r\n if (typeof this._rawValue === 'undefined') {\r\n return false;\r\n }\r\n\r\n return toggle.value === this._rawValue;\r\n }\r\n\r\n\r\n private _setSelectionByValue(value: any | any[]) {\r\n this._rawValue = value;\r\n\r\n if (!this._buttonToggles) {\r\n return;\r\n }\r\n\r\n this._clearSelection();\r\n this._selectValue(value);\r\n }\r\n\r\n\r\n private _clearSelection() {\r\n this._selectionModel.clear();\r\n this._buttonToggles.forEach(toggle => toggle.checked = false);\r\n }\r\n\r\n\r\n private _selectValue(value: any) {\r\n const correspondingOption = this._buttonToggles.find(toggle => {\r\n return toggle.value != null && toggle.value === value;\r\n });\r\n\r\n if (correspondingOption) {\r\n correspondingOption.checked = true;\r\n this._selectionModel.select(correspondingOption);\r\n }\r\n }\r\n\r\n private _updateModelValue(isUserInput: boolean) {\r\n if (isUserInput) {\r\n this._emitChangeEvent();\r\n }\r\n\r\n\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_multiple: BooleanInput;\r\n static ngAcceptInputType_vertical: BooleanInput;\r\n}\r\n\r\n\r\nconst _ButtonToggleBase = mixinDisableRipple(class { });\r\n\r\n\r\n@Component({\r\n selector: 'qms-button-toggle',\r\n templateUrl: 'button-toggle.html',\r\n styleUrls: ['button-toggle.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'qmsButtonToggle',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: ['disableRipple'],\r\n host: {\r\n '[class.qms-button-toggle-standalone]': '!buttonToggleGroup',\r\n '[class.qms-button-toggle-checked]': 'checked',\r\n '[class.qms-button-toggle-disabled]': 'disabled',\r\n '[class.qms-button-toggle-appearance-standard]': 'appearance === \"standard\"',\r\n '[class.qms-button-toggle-appearance-active]': 'appearance === \"active\"',\r\n '[class.qms-button-toggle-appearance-dark]': 'appearance === \"dark\"',\r\n 'class': 'qms-button-toggle',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.id]': 'id',\r\n '[attr.name]': 'null',\r\n '(focus)': 'focus()',\r\n 'role': 'presentation',\r\n }\r\n})\r\nexport class QMSButtonToggle extends _ButtonToggleBase implements OnInit, AfterViewInit,\r\n CanDisableRipple, OnDestroy {\r\n\r\n private _checked = false;\r\n\r\n\r\n @Input('aria-label') ariaLabel: string;\r\n\r\n\r\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\r\n\r\n\r\n @ViewChild('button') _buttonElement: ElementRef<HTMLButtonElement>;\r\n\r\n\r\n buttonToggleGroup: QMSButtonToggleGroup;\r\n\r\n\r\n get buttonId(): string { return `${this.id}-button`; }\r\n\r\n\r\n @Input() id: string;\r\n\r\n\r\n @Input() name: string;\r\n\r\n\r\n @Input() value: any;\r\n\r\n\r\n @Input() tabIndex: number | null;\r\n\r\n\r\n @Input()\r\n get appearance(): ButtonToggleAppearance {\r\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\r\n }\r\n set appearance(value: ButtonToggleAppearance) {\r\n this._appearance = value;\r\n }\r\n private _appearance: ButtonToggleAppearance;\r\n\r\n\r\n @Input()\r\n get checked(): boolean {\r\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\r\n }\r\n set checked(value: boolean) {\r\n const newValue = coerceBooleanProperty(value);\r\n\r\n if (newValue !== this._checked) {\r\n this._checked = newValue;\r\n\r\n if (this.buttonToggleGroup) {\r\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\r\n }\r\n set disabled(value: boolean) { this._disabled = coerceBooleanProperty(value); }\r\n private _disabled: boolean = false;\r\n\r\n @Output() readonly change: EventEmitter<ButtonToggleChange> =\r\n new EventEmitter<ButtonToggleChange>();\r\n\r\n constructor(@Optional() @Inject(BUTTON_TOGGLE_GROUP) toggleGroup: QMSButtonToggleGroup,\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private _elementRef: ElementRef<HTMLElement>,\r\n private _focusMonitor: FocusMonitor,\r\n @Attribute('tabindex') defaultTabIndex: string,\r\n @Optional() @Inject(BUTTON_TOGGLE_DEFAULT_OPTIONS)\r\n defaultOptions?: ButtonToggleDefaultOptions) {\r\n super();\r\n\r\n const parsedTabIndex = Number(defaultTabIndex);\r\n this.tabIndex = (parsedTabIndex || parsedTabIndex === 0) ? parsedTabIndex : null;\r\n this.buttonToggleGroup = toggleGroup;\r\n this.appearance =\r\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\r\n }\r\n\r\n ngOnInit() {\r\n const group = this.buttonToggleGroup;\r\n this.id = this.id || `qms-button-toggle-${uniqueIdCounter++}`;\r\n\r\n this.name = group.name;\r\n\r\n if (group) {\r\n if (group._isPrechecked(this)) {\r\n this.checked = true;\r\n } else if (group._isSelected(this) !== this._checked) {\r\n group._syncButtonToggle(this, this._checked);\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n const group = this.buttonToggleGroup;\r\n\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n\r\n if (group && group._isSelected(this)) {\r\n group._syncButtonToggle(this, false, false, true);\r\n }\r\n }\r\n\r\n focus(options?: FocusOptions): void {\r\n this._buttonElement.nativeElement.focus(options);\r\n }\r\n\r\n _onButtonClick() {\r\n\r\n if (!this._checked) {\r\n this._checked = true;\r\n if (this.buttonToggleGroup) {\r\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\r\n this.buttonToggleGroup._onTouched();\r\n }\r\n }\r\n this.change.emit(new ButtonToggleChange(this, this.value));\r\n }\r\n\r\n\r\n _markForCheck() {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n static ngAcceptInputType_checked: BooleanInput;\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_vertical: BooleanInput;\r\n static ngAcceptInputType_disableRipple: BooleanInput;\r\n}","import { ElementRef } from '@angular/core';\r\n\r\nexport type Constructor<T> = new (...args: any[]) => T;\r\n\r\nexport type ThemePalette = 'primary' | 'secondary' | 'light' | 'dark' | undefined;\r\n\r\n/** @docs-private */\r\nexport interface CanColor {\r\n /** Theme color palette for the component. */\r\n color: ThemePalette;\r\n\r\n /** Default color to fall back to if no value is set. */\r\n defaultColor: ThemePalette | undefined;\r\n}\r\n\r\n/** @docs-private */\r\nexport type CanColorCtor = Constructor<CanColor>;\r\n\r\n/** @docs-private */\r\nexport interface HasElementRef {\r\n _elementRef: ElementRef;\r\n}\r\n\r\n///** Mixin to augment a directive with a `color` property. */\r\nexport function mixinColor<T extends Constructor<HasElementRef>>(base: T, defaultColor?: ThemePalette): CanColorCtor & T {\r\n return class extends base {\r\n private _color: ThemePalette;\r\n defaultColor = defaultColor;\r\n\r\n get color(): ThemePalette { return this._color; }\r\n set color(value: ThemePalette) {\r\n const colorPalette = value || this.defaultColor;\r\n if (colorPalette !== this._color) {\r\n if (this._color) {\r\n this._elementRef.nativeElement.classList.remove(`qms-${this._color}`);\r\n }\r\n if (colorPalette) {\r\n this._elementRef.nativeElement.classList.add(`qms-${colorPalette}`);\r\n }\r\n\r\n this._color = colorPalette;\r\n }\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n\r\n // Set the default color that can be specified from the mixin.\r\n this.color = defaultColor;\r\n }\r\n };\r\n}\r\n","import { FocusMonitor, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n Optional,\r\n Inject,\r\n Input,\r\n AfterViewInit,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport {\r\n CanColor,\r\n CanColorCtor,\r\n mixinColor,\r\n} from './color';\r\nimport {\r\n CanDisable,\r\n CanDisableCtor,\r\n mixinDisabled,\r\n} from '@angular/material/core';\r\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\r\n\r\nconst DEFAULT_ROUND_BUTTON_COLOR = 'primary';\r\n\r\n/**\r\n * List of classes to add to QMSButton instances based on host attributes to\r\n * style as different variants.\r\n */\r\nconst BUTTON_HOST_ATTRIBUTES = [\r\n 'qms-btn',\r\n 'qms-btn-lg',\r\n 'qms-btn-outlined',\r\n 'qms-btn-outlined-lg',\r\n 'qms-btn-text',\r\n 'qms-btn-text-lg',\r\n 'qms-btn-fab',\r\n 'qms-btn-fab-sm',\r\n 'qms-btn-fab-ext',\r\n 'qms-btn-fab-outlined',\r\n 'qms-btn-fab-outlined-sm',\r\n 'qms-btn-fab-outlined-ext'\r\n];\r\n\r\nclass QMSButtonBase {\r\n constructor(public _elementRef: ElementRef) { }\r\n}\r\n\r\nconst _QMSButtonMixinBase: CanDisableCtor & CanColorCtor &\r\n typeof QMSButtonBase = mixinColor(mixinDisabled(QMSButtonBase));\r\n\r\n\r\n/**\r\n * QMS design button.\r\n */\r\n@Component({\r\n selector: `button[qms-btn], button[qms-btn-lg], button[qms-btn-outlined],\r\n button[qms-btn-outlined-lg], button[qms-btn-text], button[qms-btn-text-lg],\r\n button[qms-btn-fab],button[qms-btn-fab-sm],button[qms-btn-fab-ext],\r\n button[qms-btn-fab-outlined],button[qms-btn-fab-outlined-sm],button[qms-btn-fab-outlined-ext]`,\r\n exportAs: 'qmsButton',\r\n host: {\r\n '[attr.disabled]': 'disabled || null',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled'\r\n },\r\n templateUrl: 'button.html',\r\n styleUrls: ['button.scss'],\r\n inputs: ['disabled', 'color'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSButton extends _QMSButtonMixinBase\r\n implements AfterViewInit, OnDestroy, CanDisable, CanColor, FocusableOption {\r\n\r\n constructor(elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string) {\r\n super(elementRef);\r\n\r\n for (const attr of BUTTON_HOST_ATTRIBUTES) {\r\n if (this._hasHostAttributes(attr)) {\r\n (this._getHostElement() as HTMLElement).classList.add(attr);\r\n }\r\n }\r\n\r\n elementRef.nativeElement.classList.add('qms-btn-base');\r\n }\r\n\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\r\n } else {\r\n this._getHostElement().focus(options);\r\n }\r\n }\r\n\r\n _getHostElement() {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n _hasHostAttributes(...attributes: string[]) {\r\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Material design anchor button.\r\n */\r\n@Component({\r\n selector: `a[qms-btn], a[qms-btn-lg], a[qms-btn-outlined],\r\n a[qms-btn-outlined-lg], a[qms-btn-text], a[qms-btn-text-lg],\r\n a[qms-btn-fab], a[qms-btn-fab-sm], a[qms-btn-fab-ext],\r\n a[qms-btn-fab-outlined],a[qms-btn-fab-outlined-sm],a[qms-btn-fab-outlined-ext]`,\r\n exportAs: 'qmsButton, qmsAnchor',\r\n host: {\r\n '[attr.tabindex]': 'disabled ? -1 : (tabIndex || 0)',\r\n '[attr.disabled]': 'disabled || null',\r\n '[attr.aria-disabled]': 'disabled.toString()',\r\n '(click)': '_haltDisabledEvents($event)',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled'\r\n },\r\n inputs: ['disabled', 'color'],\r\n templateUrl: 'button.html',\r\n styleUrls: ['button.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSAnchor extends QMSButton {\r\n @Input() tabIndex: number;\r\n\r\n constructor(\r\n focusMonitor: FocusMonitor,\r\n elementRef: ElementRef,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode: string) {\r\n super(elementRef, focusMonitor, animationMode);\r\n }\r\n\r\n _haltDisabledEvents(event: Event) {\r\n // A disabled button shouldn't apply any actions\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: `button[qms-btn-icon]`,\r\n exportAs: 'qmsButtonIcon',\r\n host: {\r\n 'class': 'qms-btn-icon',\r\n '[attr.disabled]': 'disabled || null',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled',\r\n '[class.active-icon]': 'type',\r\n },\r\n templateUrl: 'button-icon.html',\r\n styleUrls: ['button-icon.scss'],\r\n inputs: ['disabled', 'color', 'type'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSButtonIcon extends _QMSButtonMixinBase\r\n implements AfterViewInit, OnDestroy, CanDisable, CanColor, FocusableOption {\r\n\r\n @Input('type') type: string;\r\n\r\n constructor(elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n private renderer: Renderer2,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string) {\r\n super(elementRef);\r\n }\r\n\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\r\n } else {\r\n this._getHostElement().focus(options);\r\n }\r\n }\r\n\r\n _getHostElement() {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n _hasHostAttributes(...attributes: string[]) {\r\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n if (this.type) {\r\n this.renderer.addClass(this._elementRef.nativeElement, 'active-icon');\r\n }\r\n\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { QMSButtonToggle, QMSButtonToggleGroup } from './button-toggle';\r\nimport { QMSAnchor, QMSButton, QMSButtonIcon } from './button';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n QMSButton,\r\n QMSAnchor,\r\n QMSButtonIcon,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n QMSButtonToggle,\r\n QMSButtonToggleGroup\r\n ],\r\n declarations: [\r\n QMSButton,\r\n QMSAnchor,\r\n QMSButtonToggle,\r\n QMSButtonToggleGroup,\r\n QMSButtonIcon\r\n ],\r\n})\r\nexport class QMSButtonModule { }\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { QMSButtonModule } from './components/button/button.module';\r\n\r\n@NgModule({\r\n exports: [\r\n MatInputModule,\r\n MatCardModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n QMSButtonModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class SharedMaterialModule { }","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { TranslateLibraryService } from '../services/translation-registry.service';\r\n\r\n@Pipe({\r\n name: 'dateFormat'\r\n})\r\nexport class DateFormatPipe implements PipeTransform {\r\n\r\n constructor(private trans: TranslateLibraryService) {\r\n\r\n }\r\n\r\n transform(value: Date, args?: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n\r\n let valueFormat = '';\r\n let langCode = '';\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n langCode = res || 'en';\r\n });\r\n\r\n\r\n switch (langCode) {\r\n case 'en':\r\n valueFormat = 'MM/DD/YYYY hh:mm';\r\n break;\r\n case 'no':\r\n valueFormat = 'DD.MM.YYYY hh:mm';\r\n break;\r\n default:\r\n valueFormat = 'DD.MM.YYYY hh:mm';\r\n break;\r\n }\r\n\r\n return moment(value).format(valueFormat);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { QMSUploadingFileGuard } from './directives/file-upload/file-upload.directive';\r\nimport { TranslateLibraryService } from './services/translation-registry.service';\r\n\r\n\r\n@NgModule({})\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders<SharedModule> {\r\n return {\r\n ngModule: SharedModule,\r\n providers: [TranslateLibraryService, QMSUploadingFileGuard]\r\n };\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport { MAT_RADIO_DEFAULT_OPTIONS } from '@angular/material/radio';\r\nimport { QMSComment } from './components/comment/comment';\r\nimport { QMSConfirmDialog, QMSFormDialog } from './components/dialog/dialog';\r\nimport { QMSSuffixDirective, QMSSuffixFieldDirective } from './components/suffix-field/suffix-field.directive';\r\nimport { TestOnlyComponent } from './components/test-only/test-only.component';\r\nimport { QMSChipInputChipListDirective } from './directives/chip-input/chip-input-chip-list.directive';\r\nimport { QMSChipInputDirective } from './directives/chip-input/chip-input-field.directive';\r\nimport { QMSChipInputSelectDropWDownDirective } from './directives/chip-input/chip-input-select-dropdown.directive';\r\nimport { QMSChipInputSelectFieldDirective } from './directives/chip-input/chip-input-select-field.directive';\r\nimport { QMSChipInputSelectTriggerDirective } from './directives/chip-input/chip-input-select-trigger.directive';\r\nimport { QMSChipBodyDirective } from './directives/chips/chip-body.directive';\r\nimport { QMSInputChipDirective } from './directives/chips/chip.directive';\r\nimport { QMSDropdownMenuItem } from './directives/dropdown-menu/dropdown-item.directive';\r\nimport { QMSAttachmentListDirective } from './directives/file-upload/file-upload-attachment-list.directive';\r\nimport { QMSFileUploadDisplayDirective } from './directives/file-upload/file-upload-display.directive';\r\nimport { QMSFileUploadMultipleDisplayDirective } from './directives/file-upload/file-upload-multiple-display.directive';\r\nimport { QMSFileUploadMultipleSelectorDirective } from './directives/file-upload/file-upload-multiple-selector.directive';\r\nimport { QMSFileUploadMultipleDirective } from './directives/file-upload/file-upload-multiple.directive';\r\nimport { QMSScrolableAttachmentListDirective } from './directives/file-upload/file-upload-scrollable-attachment-list.directive';\r\nimport { QMSFileUploadSelectorDirective } from './directives/file-upload/file-upload-selector.directive';\r\nimport { QMSFileUploadDirective, QMSUploadingFileGuard } from './directives/file-upload/file-upload.directive';\r\nimport {\r\n AutocompleteOffDirective,\r\n QMSFormFieldDatePickerDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective\r\n} from './directives/form.directive';\r\nimport { MarginDirective } from './directives/margin.directive';\r\nimport { QMSRangeSliderLockUpDirective } from './directives/range-slider/range-slider-lockup.directive';\r\nimport { QMSRangeSliderDirective } from './directives/range-slider/range-slider.directive';\r\nimport { ScrollToSelectedDirective } from './directives/scroll-selected/scroll-to-selected.directive';\r\nimport { QMSScrollbarDirective } from './directives/scrollbar/scrollbar.directive';\r\nimport {\r\n QMSInputClearDirective,\r\n QMSSearchFieldDirective\r\n} from './directives/search-field.directive';\r\nimport { QMSDrawerContentDirective } from \"./directives/side-sheet/drawer-content.directive\";\r\nimport { QMSDrawerHeaderActionDirective } from \"./directives/side-sheet/drawer-header-action.directive\";\r\nimport { QMSDrawerHeaderDirective } from \"./directives/side-sheet/drawer-header.directive\";\r\nimport { QMSDrawerDirective } from \"./directives/side-sheet/drawer.directive\";\r\nimport { QMSTabGroupAdvancedDirective } from \"./directives/tab/tab-group-advanced.directive\";\r\nimport { QMSTabGroupDirective } from \"./directives/tab/tab-group.directive\";\r\nimport { QMSTabLabelDirective } from \"./directives/tab/tab-label.directive\";\r\nimport { QMSTextBlockLine } from \"./directives/text-block/text-block-line.directive\";\r\nimport { QMSTextBlockDirective } from \"./directives/text-block/text-block.directive\";\r\nimport { QMSTooltipImageDirective } from './directives/tooltip/tooltip-image.directive';\r\nimport { QMSToolTipRendererDirective } from \"./directives/tooltip/tooltip-renderer.directive\";\r\nimport { SharedMaterialModule } from './material-module';\r\nimport { DateFormatPipe } from './pipe/dateFormat.pipe';\r\nimport { QmsAngularComponent } from './qms-angular.component';\r\nimport { SharedModule } from './shared.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsAngularComponent,\r\n TestOnlyComponent,\r\n MarginDirective,\r\n QMSSearchFieldDirective,\r\n QMSInputClearDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective,\r\n QMSSuffixFieldDirective,\r\n QMSSuffixDirective,\r\n QMSFormFieldTextareaDirective,\r\n AutocompleteOffDirective,\r\n QMSComment,\r\n QMSConfirmDialog,\r\n QMSFormDialog,\r\n QMSFormFieldDatePickerDirective,\r\n QMSInputChipDirective,\r\n QMSChipBodyDirective,\r\n QMSFileUploadDirective,\r\n QMSFileUploadDisplayDirective,\r\n QMSFileUploadSelectorDirective,\r\n QMSAttachmentListDirective,\r\n QMSScrolableAttachmentListDirective,\r\n QMSFileUploadMultipleDirective,\r\n QMSFileUploadMultipleDisplayDirective,\r\n QMSFileUploadMultipleSelectorDirective,\r\n QMSRangeSliderDirective,\r\n QMSRangeSliderLockUpDirective,\r\n QMSDropdownMenuItem,\r\n QMSScrollbarDirective,\r\n QMSTextBlockDirective,\r\n QMSTextBlockLine,\r\n QMSDrawerDirective,\r\n QMSDrawerHeaderDirective,\r\n QMSDrawerContentDirective,\r\n QMSDrawerHeaderActionDirective,\r\n QMSToolTipRendererDirective,\r\n QMSTabLabelDirective,\r\n QMSTabGroupDirective,\r\n QMSTabGroupAdvancedDirective,\r\n DateFormatPipe,\r\n QMSChipInputDirective,\r\n QMSChipInputSelectFieldDirective,\r\n QMSChipInputSelectDropWDownDirective,\r\n QMSChipInputSelectTriggerDirective,\r\n QMSChipInputChipListDirective,\r\n ScrollToSelectedDirective,\r\n QMSTooltipImageDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule.forRoot(),\r\n SharedMaterialModule\r\n ],\r\n exports: [\r\n QmsAngularComponent,\r\n MarginDirective,\r\n TestOnlyComponent,\r\n QMSSearchFieldDirective,\r\n QMSInputClearDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective,\r\n QMSSuffixFieldDirective,\r\n QMSSuffixDirective,\r\n AutocompleteOffDirective,\r\n QMSComment,\r\n QMSConfirmDialog,\r\n QMSFormDialog,\r\n QMSInputChipDirective,\r\n QMSChipBodyDirective,\r\n QMSFormFieldDatePickerDirective,\r\n QMSFileUploadDirective,\r\n QMSFileUploadDisplayDirective,\r\n QMSFileUploadSelectorDirective,\r\n QMSAttachmentListDirective,\r\n QMSScrolableAttachmentListDirective,\r\n QMSFileUploadMultipleDirective,\r\n QMSFileUploadMultipleDisplayDirective,\r\n QMSFileUploadMultipleSelectorDirective,\r\n QMSRangeSliderDirective,\r\n QMSRangeSliderLockUpDirective,\r\n QMSDropdownMenuItem,\r\n QMSScrollbarDirective,\r\n QMSTextBlockDirective,\r\n QMSTextBlockLine,\r\n QMSDrawerDirective,\r\n QMSDrawerHeaderDirective,\r\n QMSDrawerContentDirective,\r\n QMSDrawerHeaderActionDirective,\r\n QMSToolTipRendererDirective,\r\n QMSTabLabelDirective,\r\n QMSTabGroupDirective,\r\n QMSTabGroupAdvancedDirective,\r\n DateFormatPipe,\r\n QMSChipInputDirective,\r\n QMSChipInputSelectFieldDirective,\r\n QMSChipInputSelectDropWDownDirective,\r\n QMSChipInputSelectTriggerDirective,\r\n QMSChipInputChipListDirective,\r\n ScrollToSelectedDirective,\r\n QMSTooltipImageDirective\r\n ],\r\n providers: [\r\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'fill' } },\r\n { provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: { color: 'none' } },\r\n QMSUploadingFileGuard\r\n ],\r\n // entryComponents: []\r\n})\r\nexport class QmsAngularModule { }\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit, ChangeDetectionStrategy, Component,\r\n ContentChildren, Directive, ElementRef, HostListener, Input, OnInit,\r\n QueryList, Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { setLines } from '@angular/material/core';\r\n\r\n\r\n@Directive({\r\n selector: '[leading-icon]',\r\n host: { 'class': 'leading-icon' }\r\n})\r\nexport class QMSListLeadingIcon { }\r\n\r\n@Directive({\r\n selector: '[qms-line]'\r\n})\r\nexport class QMSListLine {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n @Input('size') size: string;\r\n @Input('type') type: string;\r\n @Input('color') color: string;\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'caption') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption');\r\n }\r\n else if (this.type === 'subtitle') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `subtitle size-${this.size ? this.size : 'none'}`);\r\n } else {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `qms-line size-${this.size ? this.size : 'none'}`);\r\n }\r\n\r\n if (this.color) {\r\n this.renderer.addClass(this.elRef.nativeElement, this.color);\r\n }\r\n\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-list-header]',\r\n host: { 'class': 'qms-list-header' }\r\n})\r\nexport class QMSListHeader {\r\n\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-expansion]',\r\n host: { 'class': 'qms-expansion' }\r\n})\r\nexport class QMSListExpansion implements AfterContentInit {\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n // setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-expansion-header]',\r\n host: { 'class': 'qms-expansion-header' }\r\n})\r\nexport class QMSListExpansionHeader implements AfterContentInit {\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n @HostListener('click', ['$event']) onClick($event) {\r\n const qmsList = document.querySelectorAll('.qms-expansion-header');\r\n [].forEach.call(qmsList, (el) => {\r\n el.classList.remove('active-item');\r\n });\r\n this.renderer.addClass(this.elRef.nativeElement, 'active-item');\r\n }\r\n\r\n ngAfterContentInit() {\r\n setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'qms-list',\r\n templateUrl: 'list.html',\r\n styleUrls: ['list.scss'],\r\n host: { 'class': 'qms-list' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSList implements OnInit {\r\n\r\n constructor(private elRef: ElementRef) { }\r\n ngOnInit() { }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-list-item',\r\n templateUrl: 'list-item.html',\r\n styleUrls: ['list.scss'],\r\n host: {\r\n 'class': 'qms-list-item',\r\n '[class.qms-list-item-disabled]': 'disabled',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSListItem implements AfterViewInit {\r\n @Input('type') type: string;\r\n get disabled() { return this._disabled }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n }\r\n private _disabled = false;\r\n\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n constructor(private elRef: ElementRef<HTMLElement>, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n if (this.type) {\r\n // this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'qms-list-item image-item');\r\n this.renderer.addClass(this.elRef.nativeElement, 'image-item');\r\n this.renderer.addClass(this.elRef.nativeElement, this.type);\r\n }\r\n\r\n setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatExpansionModule, MAT_EXPANSION_PANEL_DEFAULT_OPTIONS } from '@angular/material/expansion';\r\n\r\nimport {\r\n QMSList, QMSListItem, QMSListLeadingIcon, QMSListLine,\r\n QMSListHeader, QMSListExpansion, QMSListExpansionHeader\r\n} from './list';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatListModule,\r\n MatExpansionModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatListModule,\r\n MatExpansionModule,\r\n QMSList,\r\n QMSListItem,\r\n QMSListLeadingIcon,\r\n QMSListLine,\r\n QMSListHeader,\r\n QMSListExpansion,\r\n QMSListExpansionHeader\r\n ],\r\n declarations: [\r\n QMSList,\r\n QMSListItem,\r\n QMSListLeadingIcon,\r\n QMSListLine,\r\n QMSListHeader,\r\n QMSListExpansion,\r\n QMSListExpansionHeader\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n useValue: {\r\n expandedHeight: '*',\r\n collapsedHeight: '*'\r\n }\r\n }\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSListModule { }\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewEncapsulation } from \"@angular/core\";\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\n@Component({\r\n selector: 'qms-rich-text',\r\n templateUrl: 'rich-text.html',\r\n styleUrls: ['rich-text.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSRichText),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QMSRichText),\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class QMSRichText implements OnInit, AfterViewInit, ControlValueAccessor, Validator {\r\n\r\n @Input('disabled') isDisabled: boolean;\r\n @Input('required') required: boolean = false;\r\n @Input('placeholder') placeholder: string;\r\n\r\n public _value: string;\r\n\r\n public Editor = [];\r\n\r\n public configEditor = {\r\n placeholder: 'Placeholder',\r\n toolbar: {\r\n items: [\r\n 'undo',\r\n 'redo',\r\n '|',\r\n 'alignment',\r\n '|',\r\n 'bold',\r\n 'italic',\r\n 'strikethrough',\r\n 'underline',\r\n '|',\r\n 'bulletedList',\r\n 'numberedList',\r\n '|',\r\n 'insertTable',\r\n \"blockQuote\",\r\n '|',\r\n 'heading'\r\n ]\r\n },\r\n alignment: {\r\n options: ['left', 'right', 'center', 'justify']\r\n },\r\n };\r\n\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n onChange: (_value: any) => void;\r\n onTouched: () => void;\r\n\r\n writeValue(obj: any): void {\r\n this._value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngAfterViewInit() {\r\n this.configEditor.placeholder = this.placeholder;\r\n\r\n if (this.isDisabled) {\r\n this.renderer.addClass(this.elRef.nativeElement, 'ck-disabled');\r\n }\r\n }\r\n\r\n public onChanged({ editor }) {\r\n const data = editor.getData();\r\n this.writeValue(data);\r\n this.onChange(data);\r\n }\r\n\r\n public onBlur({ editor }) {\r\n const data = editor.getData();\r\n this.writeValue(data);\r\n this.onChange(data);\r\n }\r\n\r\n validate(c: FormControl) {\r\n if (!this.required) {\r\n return null;\r\n }\r\n return (this._value && !this.required) ? null : {\r\n type: {\r\n valid: false,\r\n actual: c.value\r\n }\r\n };\r\n }\r\n\r\n public onReady(editor) {\r\n if (this._value) {\r\n editor.setData(this._value);\r\n }\r\n this.initEditor(editor);\r\n }\r\n\r\n private initEditor(editor) {\r\n editor.ui\r\n .getEditableElement()\r\n .parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n\r\n }\r\n\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { QMSRichText } from './rich-text';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSRichText,\r\n ],\r\n declarations: [\r\n QMSRichText,\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSRichTextModule { }\r\n","import { Component, ElementRef, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\n@Component({\r\n selector: 'qms-edit-file-name-dialog',\r\n templateUrl: 'edit-file-name-dialog.html',\r\n styleUrls: ['edit-file-name-dialog.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class QMSEditFileNameDialog {\r\n fileName: string;\r\n LANG: any;\r\n constructor(\r\n public dialogRef: MatDialogRef<QMSEditFileNameDialog>, \r\n public trans: TranslateLibraryService,\r\n @Inject(MAT_DIALOG_DATA) public data: string) {\r\n this.fileName = this.data;\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n cancel(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n saveChanges(): void {\r\n this.dialogRef.close(this.fileName);\r\n }\r\n\r\n clearInput(): void {\r\n this.fileName = '';\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { SharedModule } from \"../../shared.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSEditFileNameDialog } from \"./edit-file-name-dialog\";\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n FormsModule,\r\n SharedModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n QMSEditFileNameDialog\r\n ],\r\n declarations: [\r\n QMSEditFileNameDialog\r\n ],\r\n})\r\nexport class QMSEditFileNameDialogModule { }\r\n","import { Component, ElementRef, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\nexport class UploadErrorData {\r\n fileNames: string[];\r\n acceptedExtension: string[];\r\n}\r\n\r\n@Component({\r\n selector: 'qms-upload-file-error-dialog',\r\n templateUrl: 'upload-file-error-dialog.html',\r\n styleUrls: ['upload-file-error-dialog.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class QMSUploadFileErrorDialog {\r\n unsupportedFiles: string[];\r\n supportedExtensions: string[];\r\n LANG: any;\r\n constructor(\r\n public dialogRef: MatDialogRef<QMSUploadFileErrorDialog>, \r\n public trans: TranslateLibraryService,\r\n @Inject(MAT_DIALOG_DATA) public data: UploadErrorData) {\r\n this.unsupportedFiles = this.data.fileNames;\r\n this.supportedExtensions = this.data.acceptedExtension;\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n ok(): void {\r\n this.dialogRef.close(null);\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { SharedModule } from \"../../shared.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSUploadFileErrorDialog } from \"./upload-file-error-dialog\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n FormsModule,\r\n SharedModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n QMSUploadFileErrorDialog\r\n ],\r\n declarations: [\r\n QMSUploadFileErrorDialog\r\n ],\r\n})\r\nexport class QMSUploadFileErrorDialogModule { }","export const PROCESS_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 3V9H5V19H15V21H21V15H15V17H7V9H9V7H15V9H21V3H15V5H9V3H3ZM7 5V7H5V5H7ZM19 5V7H17V5H19ZM19 19V17H17V19H19Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const PROCESS_AREA_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M13 16.5V13H16.5V14.1667H20V13H23.5V16.5H20V15.3333H16.5V16.5H15.3333V21.1667H20V20H23.5V23.5H20V22.3333H14.1667V16.5H13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const PROCESS_AREA_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H13C11.8954 11 11 11.8954 11 13V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M13 16.5V13H16.5V14.1667H20V13H23.5V16.5H20V15.3333H16.5V16.5H15.3333V21.1667H20V20H23.5V23.5H20V22.3333H14.1667V16.5H13Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DOCUMENT_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 2H14L20 8V20C20 21.1 19.1 22 18 22H5.99C4.89 22 4 21.1 4 20L4.01 4C4.01 2.9 4.9 2 6 2ZM6 4V20H18V9H13V4H6Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEVIATION_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 21.5L12 2.5L23 21.5H1ZM19.53 19.5L12 6.49L4.47 19.5H19.53ZM11 16.5V18.5H13V16.5H11ZM11 10.5H13V14.5H11V10.5Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const CHECKLIST_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path d=\"M3 13H5V11H3V13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M3 17H5V15H3V17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M3 9H5V7H3V9Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 13H21V11H7V13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 17H21V15H7V17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 7V9H21V7H7Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const RISK_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 3V21H21V3H3ZM11 19H5V13H11V19ZM5 11H11V5H5V11ZM19 19H13V13H19V19ZM13 11H19V5H13V11Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const NORMAL_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V18C22 19.1 21.1 20 20 20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4ZM11.17 8L9.17 6H4V18H20V8H11.17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const NORMAL_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.59 4.59C10.21 4.21 9.7 4 9.17 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6H12L10.59 4.59Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const LOCAL_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V12H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const LOCAL_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V12H17C13.6863 12 11 14.6863 11 18V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const ENTERPRISE_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>\r\n`;\r\n\r\nexport const ENTERPRISE_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H17C13.6863 11 11 13.6863 11 17V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>`;\r\n\r\nexport const REGIONAL_FOLDER_OUTLINED_ICON = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H12V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.4999 13.0833C16.4037 13.0833 14.7083 14.7787 14.7083 16.8749C14.7083 19.1337 17.1024 22.2483 18.0883 23.4345C18.3049 23.6945 18.7003 23.6945 18.917 23.4345C19.8974 22.2483 22.2916 19.1337 22.2916 16.8749C22.2916 14.7787 20.5962 13.0833 18.4999 13.0833ZM18.4999 18.2291C17.7524 18.2291 17.1458 17.6224 17.1458 16.8749C17.1458 16.1274 17.7524 15.5208 18.4999 15.5208C19.2474 15.5208 19.8541 16.1274 19.8541 16.8749C19.8541 17.6224 19.2474 18.2291 18.4999 18.2291Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\n\r\nexport const REGIONAL_FOLDER_ICON = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H18C14.6863 11 12 13.6863 12 17V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.4999 13.0833C16.4037 13.0833 14.7083 14.7787 14.7083 16.8749C14.7083 19.1337 17.1024 22.2483 18.0883 23.4345C18.3049 23.6945 18.7003 23.6945 18.917 23.4345C19.8974 22.2483 22.2916 19.1337 22.2916 16.8749C22.2916 14.7787 20.5962 13.0833 18.4999 13.0833ZM18.4999 18.2291C17.7524 18.2291 17.1458 17.6224 17.1458 16.8749C17.1458 16.1274 17.7524 15.5208 18.4999 15.5208C19.2474 15.5208 19.8541 16.1274 19.8541 16.8749C19.8541 17.6224 19.2474 18.2291 18.4999 18.2291Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEPARTMENT_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V12H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEPARTMENT_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V12H17C13.6863 12 11 14.6863 11 18V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\n\r\n\r\nexport const KEYBOARD_UP_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"/></svg>\r\n`;\r\n\r\nexport const KEYBOARD_DOWN_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"/></svg>\r\n`;\r\n\r\n\r\nexport const DOCUMENT_LOCAL_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 2H6C4.9 2 4.01 2.9 4.01 4L4 20C4 21.1 4.89 22 5.99 22H11V20H6V4H13V9H18V12H20V8L14 2Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\nexport const DOCUMENT_DEPARTMENT_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 2H6C4.9 2 4.01 2.9 4.01 4L4 20C4 21.1 4.89 22 5.99 22H11V20H6V4H13V9H18V12H20V8L14 2Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\nexport const DOCUMENT_REGIONAL_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 2H6C4.9 2 4.01 2.9 4.01 4L4 20C4 21.1 4.89 22 5.99 22H11V20H6V4H13V9H18V12H20V8L14 2Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 13C16.065 13 14.5 14.565 14.5 16.5C14.5 18.585 16.71 21.46 17.62 22.555C17.82 22.795 18.185 22.795 18.385 22.555C19.29 21.46 21.5 18.585 21.5 16.5C21.5 14.565 19.935 13 18 13ZM18 17.75C17.31 17.75 16.75 17.19 16.75 16.5C16.75 15.81 17.31 15.25 18 15.25C18.69 15.25 19.25 15.81 19.25 16.5C19.25 17.19 18.69 17.75 18 17.75Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\nexport const DOCUMENT_ENTERPRISE_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 2H6C4.9 2 4.01 2.9 4.01 4L4 20C4 21.1 4.89 22 5.99 22H11V20H6V4H13V9H18V12H20V8L14 2Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>\r\n`;\r\n\r\n\r\n","import { AfterViewInit, Injectable, OnInit } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { CHECKLIST_ICON, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON } from \"../related/common/qms-icon.const\";\r\n\r\n@Injectable(\r\n {\r\n providedIn: 'root'\r\n }\r\n)\r\nexport class QMSIconRegistryService {\r\n registerProcessIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('process', _sanitizer.bypassSecurityTrustHtml(PROCESS_ICON));\r\n }\r\n \r\n registerProcessAreaIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('process_area', _sanitizer.bypassSecurityTrustHtml(PROCESS_AREA_ICON));\r\n _iconRegistry.addSvgIconLiteral('process_area_outlined', _sanitizer.bypassSecurityTrustHtml(PROCESS_AREA_OUTLINED_ICON));\r\n }\r\n\r\n registerDocumentIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('document', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_ICON));\r\n _iconRegistry.addSvgIconLiteral('document_local', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_LOCAL_ICON));\r\n _iconRegistry.addSvgIconLiteral('document_enterprise', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_ENTERPRISE_ICON));\r\n _iconRegistry.addSvgIconLiteral('document_department', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_DEPARTMENT_ICON));\r\n _iconRegistry.addSvgIconLiteral('document_regional', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_REGIONAL_ICON));\r\n }\r\n registerFolderIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('folder', _sanitizer.bypassSecurityTrustHtml(NORMAL_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('folder_outlined', _sanitizer.bypassSecurityTrustHtml(NORMAL_FOLDER_OUTLINED_ICON));\r\n\r\n _iconRegistry.addSvgIconLiteral('local_folder', _sanitizer.bypassSecurityTrustHtml(LOCAL_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('local_folder_outlined', _sanitizer.bypassSecurityTrustHtml(LOCAL_FOLDER_OUTLINED_ICON));\r\n\r\n _iconRegistry.addSvgIconLiteral('enterprise_folder', _sanitizer.bypassSecurityTrustHtml(ENTERPRISE_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('enterprise_folder_outlined', _sanitizer.bypassSecurityTrustHtml(ENTERPRISE_FOLDER_OUTLINED_ICON));\r\n\r\n _iconRegistry.addSvgIconLiteral('regional_folder', _sanitizer.bypassSecurityTrustHtml(REGIONAL_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('regional_folder_outlined', _sanitizer.bypassSecurityTrustHtml(REGIONAL_FOLDER_OUTLINED_ICON));\r\n\r\n _iconRegistry.addSvgIconLiteral('department_folder', _sanitizer.bypassSecurityTrustHtml(DEPARTMENT_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('department_folder_outlined', _sanitizer.bypassSecurityTrustHtml(DEPARTMENT_FOLDER_OUTLINED_ICON));\r\n }\r\n\r\n registerDeviationIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('deviation', _sanitizer.bypassSecurityTrustHtml(DEVIATION_ICON));\r\n }\r\n\r\n registerChecklistIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('checklist', _sanitizer.bypassSecurityTrustHtml(CHECKLIST_ICON));\r\n }\r\n\r\n registerRiskIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('risk', _sanitizer.bypassSecurityTrustHtml(RISK_ICON));\r\n }\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { QMSIconRegistryService } from \"./icon-registry.service\";\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule\r\n ],\r\n declarations: [\r\n ],\r\n providers: [QMSIconRegistryService]\r\n })\r\n export class QMSAppIconModule { }","export const BREADCRUMB_DROPDOWN_ICON = `<svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.3552 5.35508C11.9118 4.91175 11.3168 4.66675 10.6985 4.66675H4.66683C3.3835 4.66675 2.34516 5.71675 2.34516 7.00008L2.3335 21.0001C2.3335 22.2834 3.3835 23.3334 4.66683 23.3334H23.3335C24.6168 23.3334 25.6668 22.2834 25.6668 21.0001V9.33341C25.6668 8.05008 24.6168 7.00008 23.3335 7.00008H14.0002L12.3552 5.35508Z\" fill=\"#00324E\"/>\r\n<path d=\"M10.25 13.125L14 16.875L17.75 13.125H10.25Z\" fill=\"white\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;","export enum ItemIconType {\r\n none = 0,\r\n name = 1,\r\n path = 2,\r\n base64 = 3,\r\n svg = 4\r\n}\r\n","import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';\r\nimport { AfterViewInit, ContentChild, Directive, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output, Renderer2} from '@angular/core';\r\nimport { QMSToolTipRendererDirective } from '../../directives/tooltip/tooltip-renderer.directive';\r\n\r\n@Directive({\r\n selector: '[qms-breadcrumb-item]',\r\n})\r\nexport class QMSBreadcrumbItemDirective implements OnInit, AfterViewInit {\r\n @Input() isLastItem: boolean;\r\n @Input() showTooltip: boolean;\r\n @Output() showTooltipChange = new EventEmitter();\r\n @ContentChild(\"breadcrumbItemText\", {static: false}) breadcrumbItemText: ElementRef;\r\n constructor(public ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngAfterViewInit(): void {\r\n if(this.breadcrumbItemText){\r\n this.breadcrumbItemText.nativeElement.classList.add('qms-breadcrumb-item-text')\r\n if(this.breadcrumbItemText.nativeElement.innerText.length > 30){\r\n this.showTooltipChange.emit(true);\r\n }\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-breadcrumb-item');\r\n if(this.isLastItem){\r\n this.ele.nativeElement.classList.add('qms-breadcrumb-last-item')\r\n }\r\n }\r\n }\r\n}","export enum DropdownBreadCrumbNodeWidth{\r\n NORMAL = 66,\r\n TABLE = 44,\r\n}","import { AfterViewChecked, AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { BREADCRUMB_DROPDOWN_ICON } from \"../../common/qms-icon.const\";\r\nimport { ItemIconType } from \"../related/common/item-icon-type.enum\";\r\nimport { QMSBreadcrumbItemDirective } from \"./breadcrumb-item.directive\";\r\nimport { DropdownBreadCrumbNodeWidth } from \"./enum/dropdown-node-width.enum\";\r\nimport { BreadcrumbNode } from \"./model/breadcrumb-node.model\";\r\n\r\n@Component({\r\n selector: 'qms-breadcrumb',\r\n templateUrl: 'breadcrumb.html',\r\n styleUrls: ['breadcrumb.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\n\r\nexport class QMSBreadcrumb implements OnInit, AfterViewInit {\r\n @Input() nodes: BreadcrumbNode[];\r\n @Input() type: string;\r\n @Input() maxLine: number;\r\n @Input() numDisplayItem: number = 0;\r\n @Output() onItemClick: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChildren(QMSBreadcrumbItemDirective, {}) breadCrumbNodes: QueryList<QMSBreadcrumbItemDirective>;\r\n\r\n dropdownNodes: BreadcrumbNode[] = [];\r\n isOverflow = false;\r\n homeNode: BreadcrumbNode;\r\n previousNode: BreadcrumbNode;\r\n itemNodes: BreadcrumbNode[];\r\n itemSpace: number = DropdownBreadCrumbNodeWidth.NORMAL; // width of dropdown node in normal view\r\n itemIconType;\r\n isMobileType: boolean = false;\r\n\r\n constructor(private ele: ElementRef,\r\n private iconRegistry: MatIconRegistry,\r\n private sanitizer: DomSanitizer) {\r\n iconRegistry.addSvgIconLiteral('breadcrumb_dropdown', sanitizer.bypassSecurityTrustHtml(BREADCRUMB_DROPDOWN_ICON));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.isMobileType) {\r\n if (!this.maxLine || this.maxLine < 2) {\r\n this.checkOverflow(this.ele.nativeElement.offsetWidth);\r\n }\r\n else {\r\n this.checkOverflow(this.ele.nativeElement.offsetWidth * 1.7);\r\n }\r\n }\r\n if (+this.numDisplayItem > 0 && this.itemNodes.length >= 2) {\r\n this.dropdownNodes = [];\r\n this.dropdownNodes = this.itemNodes.slice(0, -this.numDisplayItem).reverse();\r\n this.itemNodes = [...[], ...this.itemNodes.slice(-this.numDisplayItem)];\r\n this.isOverflow = true;\r\n }\r\n }\r\n\r\n checkOverflow(width: number) {\r\n const nodeWidths = this.breadCrumbNodes.map(x => x.ele.nativeElement.offsetWidth);\r\n let currentWidth = 0;\r\n nodeWidths.forEach(width => {\r\n currentWidth += width;\r\n });\r\n this.isOverflow = width < currentWidth;\r\n if (this.isOverflow) {\r\n let screenWidth = width;\r\n if (this.type !== 'table') {\r\n this.dropdownNodes.push(this.homeNode);\r\n currentWidth -= nodeWidths[0];\r\n currentWidth += this.itemSpace;\r\n screenWidth -= this.itemSpace;\r\n }\r\n else {\r\n currentWidth += this.itemSpace;\r\n screenWidth -= nodeWidths[0];\r\n screenWidth -= this.itemSpace;\r\n }\r\n nodeWidths.shift();\r\n nodeWidths.forEach((eleWidth, index) => {\r\n if (currentWidth > screenWidth) {\r\n this.itemNodes[index].isShow = false;\r\n this.dropdownNodes.push(this.itemNodes[index]);\r\n currentWidth -= (eleWidth);\r\n }\r\n });\r\n this.dropdownNodes = this.dropdownNodes.reverse();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.itemIconType = ItemIconType;\r\n if (this.nodes && this.nodes.length > 0) {\r\n this.nodes.forEach(ele => {\r\n ele.isOverflow = ele.isOverflow ? ele.isOverflow : false;\r\n ele.isShow = true;\r\n ele.displayType = this.getItemIconType(ele);\r\n });\r\n if (this.type !== 'mobile') {\r\n this.homeNode = this.nodes[0];\r\n this.itemNodes = this.nodes.slice(1);\r\n }\r\n else {\r\n this.isMobileType = true;\r\n this.previousNode = this.nodes[this.nodes.length >= 2 ? this.nodes.length - 2 : 0];\r\n }\r\n }\r\n\r\n if (this.type === 'table') {\r\n this.ele.nativeElement.classList.add('qms-breadcrumb-table');\r\n this.itemSpace = DropdownBreadCrumbNodeWidth.TABLE; // width of dropdown node in table view\r\n }\r\n if (this.maxLine && this.maxLine > 1) {\r\n this.ele.nativeElement.classList.add('qms-breadcrumb__multi-line');\r\n }\r\n }\r\n\r\n getItemIconType(treeConfig: BreadcrumbNode) {\r\n if (treeConfig.itemIcon) return ItemIconType.name;\r\n if (treeConfig.itemIconPath) return ItemIconType.path;\r\n if (treeConfig.itemIconBase64) return ItemIconType.base64;\r\n if (treeConfig.itemIconSvg) return ItemIconType.svg;\r\n return ItemIconType.none;\r\n }\r\n\r\n getImagePath(node: BreadcrumbNode) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(node.itemIconBase64) as string;\r\n }\r\n\r\n onKeyPressed(event) {\r\n [...event.target.children].forEach(x => x.click());\r\n }\r\n\r\n onItemSelect(item: BreadcrumbNode) {\r\n if (this.onItemClick) {\r\n this.onItemClick.emit(item);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-breadcrumb-direction-icon]',\r\n})\r\nexport class QMSBreadcrumbDirectionIconDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-breadcrumb-direction-icon');\r\n }\r\n }\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatMenuModule } from \"@angular/material/menu\";\r\nimport { QMSToolTipRendererDirective } from \"../../directives/tooltip/tooltip-renderer.directive\";\r\nimport { QmsAngularModule } from \"../../qms-angular.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSBreadcrumb } from \"./breadcrumb\";\r\nimport { QMSBreadcrumbDirectionIconDirective } from \"./breadcrumb-direction-icon.directive\";\r\nimport { QMSBreadcrumbItemDirective } from \"./breadcrumb-item.directive\";\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n QmsAngularModule,\r\n QMSButtonModule,\r\n MatMenuModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSBreadcrumb,\r\n QMSBreadcrumbItemDirective,\r\n QMSBreadcrumbDirectionIconDirective,\r\n ],\r\n declarations: [\r\n QMSBreadcrumb,\r\n QMSBreadcrumbItemDirective,\r\n QMSBreadcrumbDirectionIconDirective,\r\n ],\r\n providers: []\r\n })\r\n export class QMSBreadcrumbModule { }","export enum DataType {\r\n process = 2,\r\n document = 1,\r\n area = 3,\r\n folder = 4,\r\n deviation = 5,\r\n checklist = 6,\r\n risk = 7,\r\n deviationType = 8,\r\n checklistCategory = 9,\r\n riskFolder = 10\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { DataType } from \"../common/data-type.enum\";\r\nimport { SelectedNode } from \"../model/selected-node.model\";\r\n\r\n@Component({\r\n selector: 'qms-related-content',\r\n templateUrl: './related-content.component.html',\r\n styleUrls: ['./related-content.component.scss']\r\n})\r\nexport class RelatedContentComponent implements OnInit {\r\n LANG: any;\r\n @Input() header: string;\r\n @Input() contents: Array<SelectedNode> = [];\r\n\r\n dataType = DataType;\r\n imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';\r\n\r\n ngOnInit(): void {\r\n this.LANG = '';\r\n }\r\n\r\n removeContent(content: SelectedNode) {\r\n const index = this.contents.findIndex(x => {\r\n return x.id === content.id;\r\n });\r\n if (index >= 0) {\r\n this.contents.splice(index, 1);\r\n }\r\n }\r\n}\r\n","export enum DocumentNodeType {\r\n Document = 1,\r\n LinkDocument = 2,\r\n FileDocument = 3,\r\n ShortcutDocument = 4,\r\n Folder = 5, // Level 2\r\n TopFolder = 6, // Level 1\r\n DepartmentFolder = 7,\r\n RegionalFolder = 8\r\n}","import { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSIconRegistryService } from \"../../app-icon/icon-registry.service\";\r\nimport { DataType } from \"../common/data-type.enum\";\r\nimport { DocumentNodeType } from \"../common/document-folder-type.enum\";\r\nimport { IRelated, RelatedData } from \"../model/related-data.model\";\r\n\r\n@Component({\r\n selector: 'qms-related-list',\r\n templateUrl: './list-related.component.html',\r\n styleUrls: ['./list-related.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RelatedListComponent implements OnInit, OnChanges {\r\n LANG: any;\r\n title: string;\r\n isNotEditedItem: boolean;\r\n relatedData: Array<IRelated> = [];\r\n dataType = DataType;\r\n // imageProcess = '../qms-angular/src/assets/images/union.svg';\r\n imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';\r\n\r\n @Input() data: RelatedData;\r\n @Input() showStatus: boolean;\r\n @Output() updateData: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onItemSelect: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(\r\n private domSanitizer: DomSanitizer,\r\n public translate: TranslateLibraryService,\r\n private iconRegistry: MatIconRegistry,\r\n private appIconService: QMSIconRegistryService\r\n ) {\r\n appIconService.registerProcessIcon(iconRegistry, domSanitizer);\r\n appIconService.registerProcessAreaIcon(iconRegistry, domSanitizer);\r\n appIconService.registerDocumentIcon(iconRegistry, domSanitizer);\r\n appIconService.registerFolderIcon(iconRegistry, domSanitizer);\r\n appIconService.registerDeviationIcon(iconRegistry, domSanitizer);\r\n appIconService.registerChecklistIcon(iconRegistry, domSanitizer);\r\n appIconService.registerRiskIcon(iconRegistry, domSanitizer);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && JSON.stringify(changes.data.currentValue) !== JSON.stringify(changes.data.previousValue)) {\r\n this.relatedData = [];\r\n this.title = changes.data.currentValue.title;\r\n this.isNotEditedItem = changes.data.currentValue['isNotEditedItem'] ?? false;\r\n this.relatedData = [...changes.data.currentValue.data];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.title = this.data.title;\r\n this.isNotEditedItem = this.data['isNotEditedItem'] ?? false;\r\n this.relatedData = this.data.data;\r\n\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n getImagePath() {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.imageProcess) as string;\r\n }\r\n\r\n removeItem(index: number) {\r\n this.updateData.emit(index);\r\n }\r\n\r\n onCloseClick(): void {\r\n\r\n }\r\n\r\n onItemClick(item: any): void {\r\n if (this.onItemSelect)\r\n this.onItemSelect.emit(item);\r\n }\r\n\r\n onItemBreadcrumbClick(event: any) {\r\n if (this.onItemSelect)\r\n this.onItemSelect.emit(event);\r\n }\r\n\r\n getItemStatus(item: any) {\r\n return (this.showStatus && item?.statusName) ? `, ${item?.statusName}` : '';\r\n }\r\n\r\n getNodeIcon(item) {\r\n switch (item.itemType) {\r\n case DataType.folder: {\r\n switch (item.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'department_folder_outlined';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'regional_folder_outlined';\r\n case DocumentNodeType.TopFolder:\r\n return 'enterprise_folder_outlined';\r\n case DocumentNodeType.Folder:\r\n return 'local_folder_outlined';\r\n default:\r\n return 'folder_outlined';\r\n }\r\n }\r\n case DataType.document: {\r\n switch (item.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'document_department';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'document_regional';\r\n case DocumentNodeType.TopFolder:\r\n return 'document_enterprise';\r\n case DocumentNodeType.Folder:\r\n return 'document_local';\r\n default:\r\n return 'document';\r\n }\r\n }\r\n case DataType.area:\r\n return 'process_area_outlined';\r\n case DataType.process:\r\n return 'process';\r\n case DataType.deviation:\r\n return 'deviation';\r\n case DataType.checklist:\r\n return 'checklist';\r\n case DataType.risk:\r\n return 'risk';\r\n default:\r\n return 'folder_outlined';\r\n }\r\n }\r\n\r\n canShowParent(item) {\r\n return item.itemType === this.dataType.deviation || item.itemType === this.dataType.checklist;\r\n }\r\n}\r\n","export enum ModuleType {\r\n documentProcess = 1,\r\n deviation = 2,\r\n checklist = 3,\r\n risk = 4\r\n}\r\n","export class RelatedConst {\r\n public static IS_DISPLAY_SEARCH_RESULT = 'IS_DISPLAY_SEARCH_RESULT';\r\n public static HIDE_SEARCH_RESULT = 'HIDE_SEARCH_RESULT';\r\n public static SHOW_SEARCH_RESULT = 'SHOW_SEARCH_RESULT';\r\n}\r\n","import { TreeConfig } from \"./tree-config.model\";\r\nimport { TreeModel } from \"./tree.model\";\r\nexport class PopupData {\r\n moduleId: number;\r\n moduleName: string;\r\n treeData1: Array<TreeModel>;\r\n treeData2: Array<TreeModel>;\r\n treeConfig1: TreeConfig;\r\n treeConfig2: TreeConfig;\r\n selectedNode?: Array<any>;\r\n disabledList?: Array<any>;\r\n disabledList2?: Array<any>;\r\n splitView?: boolean;\r\n maxSelectItemCount?: number;\r\n canOnlySelectItem?: boolean;\r\n\r\n constructor() {\r\n this.moduleId = 0;\r\n this.moduleName = '';\r\n this.treeData1 = [];\r\n this.treeData2 = [];\r\n this.selectedNode = [];\r\n this.disabledList = [];\r\n this.disabledList2 = [];\r\n this.splitView = false;\r\n }\r\n}\r\n","import { BreadcrumbNode } from \"../../breadcrumb/model/breadcrumb-node.model\";\r\n\r\nexport class RelatedItem {\r\n id: number;\r\n name: string;\r\n type: number;\r\n icon: string;\r\n text: string;\r\n breadcumbs: BreadcrumbNode[];\r\n}\r\n\r\nexport class IRelated {\r\n id: string;\r\n itemName: string;\r\n itemType: number;\r\n statusName: string;\r\n itemNumberId?: string;\r\n parentId: string;\r\n parentName: string;\r\n disabled?: boolean;\r\n levelType?: number;\r\n breadcumbs?: string[];\r\n}\r\n\r\nexport class RelatedData {\r\n title: string;\r\n data: Array<IRelated>;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.data = [];\r\n }\r\n}\r\n\r\n\r\nexport class SearchRelatedItemsToProcessAndDocument {\r\n processes: IRelated[];\r\n documents: IRelated[];\r\n processAreas: IRelated[];\r\n folders: IRelated[];\r\n}\r\n\r\nexport class SearchRelatedItemsToDeviation {\r\n categories: IRelated[];\r\n types: IRelated[];\r\n}\r\n\r\n\r\nexport class SearchRelatedItemsToChecklist {\r\n checklists: IRelated[];\r\n categories: IRelated[];\r\n}\r\n\r\nexport class SearchRelatedItemsToRisk {\r\n assessments: IRelated[];\r\n folders: IRelated[];\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { IRelated } from \"../model/related-data.model\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class QMSRelatedGlobalService {\r\n searchRelated = new BehaviorSubject<IRelated[]>([]);\r\n splitViewValue = new BehaviorSubject<IRelated[]>([]);\r\n\r\n constructor() { }\r\n\r\n setSearchRelated(result: IRelated[]) {\r\n this.searchRelated.next(result);\r\n }\r\n\r\n setSplitviewValue(result: IRelated[]){\r\n this.splitViewValue.next(result);\r\n }\r\n}\r\n ","export class TreeNode {\r\n children: TreeNode[];\r\n id: string;\r\n name: string;\r\n parentId?: string;\r\n levelType?: number;\r\n}\r\n","import { TreeNode } from '../model/tree-node.model';\r\nimport { TreeModel } from '../model/tree.model';\r\n\r\nlet objData = {};\r\nlet json = JSON;\r\nfunction buildArrayTree(obj: object, level: number): TreeNode[] {\r\n return Object.keys(obj).reduce<TreeNode[]>((accumulator, key) => {\r\n const value = obj[key];\r\n const node = new TreeNode();\r\n const keyObj = json.parse(key);\r\n node.id = keyObj[\"id\"];\r\n node.name = keyObj[\"name\"];\r\n node.parentId = keyObj[\"parentId\"];\r\n node.levelType = keyObj[\"levelType\"];\r\n\r\n if (value != null) {\r\n if (typeof value === 'object') {\r\n node.children = this.buildArrayTree(value, level + 1);\r\n } else {\r\n node.name = value;\r\n }\r\n }\r\n\r\n return accumulator.concat(node);\r\n }, []);\r\n}\r\n\r\nfunction buildObjectTree(arr: TreeModel[]): object {\r\n objData = {};\r\n let objTreeData;\r\n const root = arr.filter((x: { parentId: string }) => {\r\n return x.parentId === '';\r\n });\r\n root.forEach((item) => {\r\n objTreeData = this.findParent(item.rootId, arr);\r\n });\r\n return objTreeData;\r\n}\r\n\r\nfunction findParent(id: string, array: TreeModel[]) {\r\n const objParent = {};\r\n const parent = array.filter((x: { rootId: string }) => {\r\n return x.rootId === id;\r\n });\r\n\r\n parent.forEach((item) => {\r\n let parentKey = {\r\n id: item.childId,\r\n name: item.childName,\r\n parentId: item.rootId,\r\n levelType: item.levelType\r\n }\r\n objParent[json.stringify(parentKey)] = null;\r\n });\r\n\r\n // find child\r\n const child = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n if (child.length > 0) {\r\n this.findChild(id, objParent, array);\r\n }\r\n\r\n let key = {\r\n id: parent[0].rootId,\r\n name: parent[0].rootName,\r\n parentId: '',\r\n levelType: parent[0].levelType\r\n }\r\n // add node to tree\r\n objData[json.stringify(key)] = objParent;\r\n return objData;\r\n}\r\n\r\nfunction findChild(id: string, objParent: object, array: TreeModel[]) {\r\n const subNode = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n subNode.forEach((item) => {\r\n const processNode = {};\r\n let nodeKey = {\r\n id: item.childId,\r\n name: item.childName,\r\n parentId: item.rootId,\r\n levelType: item.levelType\r\n }\r\n processNode[json.stringify(nodeKey)] = null;\r\n this.findChild(item.rootId, processNode, array);\r\n\r\n let key = {\r\n id: item.rootId,\r\n name: item.subName,\r\n parentId: id,\r\n levelType: item.levelType\r\n }\r\n objParent[json.stringify(key)] = { ...objParent[json.stringify(key)], ...processNode };\r\n });\r\n}\r\n\r\nconst TreeFunctions = {\r\n buildArrayTree,\r\n buildObjectTree,\r\n findParent,\r\n findChild\r\n};\r\n\r\nexport default TreeFunctions;\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { QMSIconRegistryService } from '../../app-icon/icon-registry.service';\r\nimport { DataType } from '../common/data-type.enum';\r\nimport { DocumentNodeType } from '../common/document-folder-type.enum';\r\nimport { ItemIconType } from '../common/item-icon-type.enum';\r\nimport { CHECKLIST_ICON, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON } from '../common/qms-icon.const';\r\nimport { RelatedConst } from '../common/related.const';\r\nimport TreeFunctions from '../common/tree.function';\r\nimport { TreeConfig } from '../model/tree-config.model';\r\nimport { TreeModel } from '../model/tree.model';\r\n\r\ninterface TreeNode {\r\n id: string;\r\n name: string;\r\n children?: TreeNode[];\r\n parentId?: string;\r\n levelType?: number;\r\n}\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n parentId?: string;\r\n disabled: boolean;\r\n levelType?: number;\r\n}\r\n\r\ninterface ICheckedNode {\r\n id: string;\r\n checked: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-tree',\r\n templateUrl: './tree.component.html',\r\n styleUrls: ['./tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class TreeComponent implements OnInit, OnChanges {\r\n @Input() treeData: Array<TreeModel> = [];\r\n @Input() treeConfig: TreeConfig;\r\n @Input() selectedData: Array<TreeFlatNode> = [];\r\n @Input() selectedRiskData: any = [];\r\n @Input() disabledList: any = [];\r\n @Output() selectNodeEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n @Output() selectFolderEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n @Output() checkBoxEvent: EventEmitter<TreeFlatNode[]> = new EventEmitter();\r\n @Output() childCheckedEvent: EventEmitter<ICheckedNode> = new EventEmitter();\r\n @Output() nodeExpandEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n\r\n listParentObj = {};\r\n filterData: TreeModel[] = [];\r\n treeObject: object;\r\n arrIndex: string[] = [];\r\n checkedNodeList: Array<TreeFlatNode> = [];\r\n useExpandFeature = true;\r\n allowSelectFolder = false;\r\n areaOfCurrentProcess = '';\r\n showCheckBox = false;\r\n allowMultipleCheck = true;\r\n singleSelectedNode = false;\r\n onlyCheckBoxForChild = false;\r\n onlyFolder = false;\r\n itemIconType = ItemIconType;\r\n displayType = 1;\r\n openIcon = '';\r\n openIconColor = '#1954A9';\r\n closeIcon = '';\r\n closeIconColor = '#000000';\r\n itemIcon = '';\r\n itemIconSvg = '';\r\n itemIconPath = '';\r\n itemIconBase64 = '';\r\n moduleId: number;\r\n\r\n treeControl = new FlatTreeControl<TreeFlatNode>(\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n }\r\n );\r\n\r\n isChecked = false;\r\n checklistSelection: any;\r\n\r\n constructor(private cdRef: ChangeDetectorRef,\r\n private domSanitizer: DomSanitizer,\r\n private iconRegistry: MatIconRegistry,\r\n private appIconService: QMSIconRegistryService) {\r\n iconRegistry.addSvgIconLiteral('keyboard_up', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_UP_ICON));\r\n iconRegistry.addSvgIconLiteral('keyboard_down', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_DOWN_ICON));\r\n appIconService.registerProcessIcon(iconRegistry, domSanitizer);\r\n appIconService.registerProcessAreaIcon(iconRegistry, domSanitizer);\r\n appIconService.registerDocumentIcon(iconRegistry, domSanitizer);\r\n appIconService.registerFolderIcon(iconRegistry, domSanitizer);\r\n appIconService.registerDeviationIcon(iconRegistry, domSanitizer);\r\n appIconService.registerChecklistIcon(iconRegistry, domSanitizer);\r\n appIconService.registerRiskIcon(iconRegistry, domSanitizer);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.treeData && JSON.stringify(changes.treeData.currentValue) !== JSON.stringify(changes.treeData.previousValue)) {\r\n this.treeData = [...this.treeData, changes.treeData.currentValue];\r\n this.initTreeData();\r\n }\r\n\r\n if (changes.selectedData &&\r\n (changes.selectedData.currentValue.length > 0 ||\r\n JSON.stringify(changes.selectedData.currentValue) !==\r\n JSON.stringify(changes.selectedData.previousValue))) {\r\n this.checkSelected(changes.selectedData.currentValue);\r\n } else {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.checklistSelection.deselect(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initTreeData();\r\n }\r\n\r\n initTreeData() {\r\n this.treeData.forEach(item => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentObj[item.parentId] = 1;\r\n }\r\n if (item.childId && item.childId.length > 0) {\r\n this.listParentObj[item.rootId] = 1;\r\n }\r\n });\r\n\r\n if (this.treeConfig.showCheckBox) {\r\n this.filterData = this.treeData;\r\n }\r\n else {\r\n this.filterData = this.treeData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n }\r\n\r\n this.treeObject = TreeFunctions.buildObjectTree(this.filterData);\r\n this.dataSource.data = TreeFunctions.buildArrayTree(this.treeObject, 0).map(element => {\r\n const item = this.sortDataTree(element);\r\n element = null;\r\n element = { ...{}, ...item };\r\n return element;\r\n });\r\n\r\n this.useExpandFeature = !this.treeConfig.showCheckBox;\r\n this.allowSelectFolder = this.treeConfig.allowSelectFolder;\r\n this.areaOfCurrentProcess = this.treeConfig.areaOfCurrentProcess;\r\n this.showCheckBox = this.treeConfig.showCheckBox;\r\n this.onlyCheckBoxForChild = this.treeConfig.onlyCheckBoxForChild;\r\n this.moduleId = this.treeConfig.moduleId;\r\n this.openIcon = this.treeConfig.openIcon;\r\n this.openIconColor = this.treeConfig.openIconColor ? this.treeConfig.openIconColor : this.openIconColor;\r\n this.closeIcon = this.treeConfig.closeIcon;\r\n this.closeIconColor = this.treeConfig.closeIconColor ? this.treeConfig.closeIconColor : this.closeIconColor;\r\n this.itemIcon = this.treeConfig.itemIcon;\r\n this.itemIconSvg = this.treeConfig.itemIconSvg;\r\n this.itemIconPath = this.treeConfig.itemIconPath;\r\n this.itemIconBase64 = this.domSanitizer.bypassSecurityTrustResourceUrl(this.treeConfig.itemIconBase64) as string;\r\n this.allowMultipleCheck = this.treeConfig.allowMultipleCheck;\r\n this.singleSelectedNode = this.treeConfig.singleSelectedNode;\r\n this.onlyFolder = this.treeConfig.onlyFolder;\r\n this.checklistSelection = new SelectionModel<TreeFlatNode>(this.allowMultipleCheck); /* true: multiple */\r\n\r\n this.displayType = this.getItemIconType(this.treeConfig);\r\n\r\n // Expand child node tree\r\n if (this.treeConfig.expandAll) {\r\n this.treeControl.expandAll();\r\n }\r\n\r\n // Risk Tree\r\n if (this.selectedRiskData.length) {\r\n const selectedData = [];\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.selectedRiskData.forEach(x => {\r\n const index = selectedData.findIndex(el => el.id === x.rootId);\r\n if (x.rootId === this.treeControl.dataNodes[i].id && index < 0) {\r\n selectedData.push(this.treeControl.dataNodes[i]);\r\n }\r\n });\r\n }\r\n\r\n this.checkSelected(selectedData);\r\n this.checkBoxEvent.emit(selectedData);\r\n }\r\n\r\n // Disable List\r\n if (this.disabledList.length) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.disabledList.forEach(x => {\r\n if (x.id === this.treeControl.dataNodes[i].id\r\n && (!x.parentId || x.parentId === this.treeControl.dataNodes[i].parentId)) {\r\n this.treeControl.dataNodes[i].disabled = true;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n sortDataTree(obj) {\r\n if (obj.children) {\r\n let child = [];\r\n const leafNode = obj.children.filter(x => !x.children);\r\n const subFolderNode = obj.children.filter(x => x.children);\r\n // for(let index = subFolderNode.length - 1; index >= 0 ; index--){\r\n // let el = subFolderNode[index];\r\n // this.sortDataTree(el); \r\n // child.unshift(el); \r\n // }\r\n subFolderNode.forEach(element => {\r\n let el = element;\r\n this.sortDataTree(el);\r\n child.push(el);\r\n });\r\n\r\n leafNode.forEach(element => {\r\n let el = element;\r\n child.push(el);\r\n });\r\n obj.children = child;\r\n }\r\n return obj;\r\n }\r\n\r\n getImagePath() {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.treeConfig.itemIconBase64) as string;\r\n }\r\n\r\n checkSelected(itemSelected: TreeFlatNode[]) {\r\n setTimeout(() => {\r\n if (!this.treeControl['dataNodes']) return;\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n const tree = this.treeControl.dataNodes[i];\r\n this.checklistSelection.deselect(tree);\r\n\r\n for (let j = 0; j < itemSelected.length; j++) {\r\n const element = itemSelected[j];\r\n if (tree.id === element.id && (!element.parentId || tree.parentId === element.parentId) && !tree.disabled) {\r\n this.checklistSelection.select(tree);\r\n }\r\n }\r\n }\r\n }, 500);\r\n\r\n }\r\n\r\n checkSelectedSameNode(itemSelected: TreeFlatNode[], flag: boolean) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n const tree = this.treeControl.dataNodes[i];\r\n for (let j = 0; j < itemSelected.length; j++) {\r\n const element = itemSelected[j];\r\n if (element.id && tree.id === element.id\r\n && tree.parentId === element.parentId && !tree.disabled) {\r\n flag ? this.checklistSelection.select(tree) : this.checklistSelection.deselect(tree);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n private getItemIconType(treeConfig: TreeConfig) {\r\n if (treeConfig.itemIcon && treeConfig.itemIcon.length) return this.itemIconType.name;\r\n if (treeConfig.itemIconPath && treeConfig.itemIconPath.length) return this.itemIconType.path;\r\n if (treeConfig.itemIconBase64 && treeConfig.itemIconBase64.length) return this.itemIconType.base64;\r\n if (treeConfig.itemIconSvg && treeConfig.itemIconSvg.length) return this.itemIconType.svg;\r\n return this.itemIconType.none;\r\n }\r\n\r\n private transformer = (node: TreeNode, level: number) => {\r\n let checkHasChild = true;\r\n if (!node.children) {\r\n checkHasChild = false;\r\n } else if (!(!!node.children && node.children.length && node.children.length > 0)) {\r\n checkHasChild = false;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n else if (\r\n !!node.children &&\r\n node.children.length &&\r\n node.children.length === 1 &&\r\n !node.children[0].name.length &&\r\n node.id.toString() === this.areaOfCurrentProcess\r\n ) {\r\n checkHasChild = false;\r\n }\r\n\r\n if (!(this.listParentObj[node.id] === 1)) {\r\n checkHasChild = false;\r\n }\r\n\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n name: node.name,\r\n level,\r\n id: node.id,\r\n hasChild: checkHasChild,\r\n parentId: node.parentId,\r\n disabled: false,\r\n levelType: node.levelType\r\n };\r\n };\r\n\r\n treeFlattener = new MatTreeFlattener(\r\n this.transformer,\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n },\r\n (node) => {\r\n return node.children;\r\n }\r\n );\r\n\r\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n\r\n /** Whether all the descendants of the node are selected */\r\n descendantsAllSelected(node: TreeFlatNode): boolean {\r\n\r\n const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];\r\n\r\n if (!descendants.length) {\r\n return this.checklistSelection.isSelected(node);\r\n }\r\n const selected = this.checklistSelection.isSelected(node);\r\n\r\n const allSelected = descendants.every(child => this.checklistSelection.isSelected(child));\r\n if (!selected && allSelected) {\r\n this.checklistSelection.select(node);\r\n this.cdRef.markForCheck();\r\n }\r\n return allSelected;\r\n\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: TreeFlatNode): boolean {\r\n const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];\r\n\r\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\r\n return result && !this.descendantsAllSelected(node);\r\n }\r\n\r\n /** Toggle the to-do item selection. Select/deselect all the descendants node */\r\n todoItemSelectionToggle(node: TreeFlatNode): void {\r\n // tree have duplicate node\r\n if (this.treeConfig.canHaveDupId) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id\r\n && this.treeControl.dataNodes[i].parentId === node.parentId\r\n && !this.treeControl.dataNodes[i].disabled) {\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n } else {\r\n this.checklistSelection.toggle(node);\r\n }\r\n\r\n\r\n // process/ document single selected\r\n if (this.singleSelectedNode) {\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n\r\n } else {\r\n const descendants = this.treeControl.getDescendants(node).filter(item => !item.disabled);\r\n\r\n this.checkSelectedSameNode(descendants, this.descendantsAllSelected(node));\r\n\r\n !this.descendantsAllSelected(node)\r\n ? this.checklistSelection.select(...descendants)\r\n : this.checklistSelection.deselect(...descendants);\r\n\r\n this.cdRef.markForCheck();\r\n\r\n const allNodeIsParent = this.checklistSelection.selected.every(child => child.expandable);\r\n if (allNodeIsParent) {\r\n this.checklistSelection.selected.forEach(element => {\r\n this.checklistSelection.deselect(element);\r\n });\r\n }\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n\r\n }\r\n\r\n todoChildSelectionToggle(node: TreeFlatNode): void {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id\r\n && this.treeControl.dataNodes[i].parentId === node.parentId\r\n && !this.treeControl.dataNodes[i].disabled) {\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n // this.checklistSelection.toggle(node);\r\n this.cdRef.markForCheck();\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n\r\n }\r\n\r\n public todoItemSelectionById(ids: any[]): void {\r\n ids.forEach(\r\n id => {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === id\r\n && !this.treeControl.dataNodes[i].disabled) {\r\n if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n }\r\n )\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n public todoItemSelection(nodes: TreeNode[]): void {\r\n nodes.forEach(\r\n node => {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id &&\r\n this.treeControl.dataNodes[i].parentId === node.parentId &&\r\n !this.treeControl.dataNodes[i].disabled) {\r\n if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n }\r\n )\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n hasChild = (_: number, node: TreeFlatNode) => {\r\n return node.expandable;\r\n };\r\n\r\n selectNode(node: TreeFlatNode) {\r\n if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {\r\n window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');\r\n }\r\n\r\n this.selectNodeEvent.emit(node);\r\n }\r\n\r\n selectFolder(node: TreeFlatNode) {\r\n this.selectFolderEvent.emit(node);\r\n }\r\n\r\n onExpandNode(node: TreeFlatNode, isExpandNode?: boolean) {\r\n if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {\r\n window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');\r\n }\r\n // set useExpandFeature = true to improve performance of tree loading\r\n if (!isExpandNode || !this.useExpandFeature) {\r\n for (let i = 0; i < this.arrIndex.length; i++) {\r\n if (this.arrIndex[i] === node.id) {\r\n this.arrIndex.splice(i, 1);\r\n }\r\n }\r\n if(isExpandNode){\r\n this.nodeExpandEvent.emit(node);\r\n }\r\n return;\r\n }\r\n\r\n \r\n\r\n // get array index to expand node after refresh datasource\r\n let index = 0;\r\n let isChange = false;\r\n let isRemove = false;\r\n this.arrIndex.push(node.id);\r\n\r\n const childArray = this.treeData.filter((x) => {\r\n return x.parentId === node.id;\r\n });\r\n let rootId = '0';\r\n let parentElement: TreeNode;\r\n let childrenList: TreeNode[];\r\n if (childArray.length === 0) {\r\n return;\r\n }\r\n childArray.forEach((item) => {\r\n if (item.rootId === rootId) {\r\n return;\r\n }\r\n\r\n // get child node from original datasource\r\n const child = this.getChildNode(item.rootId, childArray);\r\n rootId = item.rootId;\r\n\r\n index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n // add child node to expand node\r\n parentElement = this.findParentNode(node.id, this.dataSource.data);\r\n if (parentElement) {\r\n // temporary remove all node without children => purpose to add node folder first\r\n if (!isRemove) {\r\n childrenList = [...parentElement.children];\r\n this.removeChildren(parentElement);\r\n isRemove = true;\r\n }\r\n // add node folder first\r\n parentElement.children.push(child);\r\n isChange = true;\r\n }\r\n });\r\n // add node without children again\r\n if (isRemove) {\r\n this.addChildren(parentElement, childrenList);\r\n }\r\n\r\n // refresh data and expand tree node from root node\r\n if (isChange) {\r\n this.refreshTreeData();\r\n this.arrIndex.forEach((item) => {\r\n index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);\r\n this.treeControl.expand(this.treeControl.dataNodes[index]);\r\n });\r\n isChange = false;\r\n }\r\n }\r\n\r\n removeChildren(parentElement?: TreeNode) {\r\n if (parentElement.children) {\r\n parentElement.children.length = 0;\r\n }\r\n }\r\n\r\n addChildren(parentElement?: TreeNode, childrenList?: TreeNode[]) {\r\n if (childrenList) {\r\n childrenList.forEach((e) => {\r\n parentElement.children.push(e);\r\n });\r\n }\r\n }\r\n\r\n getNodeIndex(id: string, level?: number, data?: any[]) {\r\n if (level) {\r\n return data.findIndex((x) => {\r\n return x.id === id && x.level === level;\r\n });\r\n }\r\n\r\n return data.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n }\r\n\r\n getChildNode(rootId: string, data: any) {\r\n const childArray = data.filter((x) => {\r\n return x.rootId === rootId;\r\n });\r\n const child = { id: childArray[0].rootId, name: childArray[0].subName, children: [] } as TreeNode;\r\n childArray.forEach((item) => {\r\n child.children.push({ id: item.childId, name: item.childName, parentId: rootId });\r\n });\r\n return child;\r\n }\r\n\r\n findParentNode(id: string, data: TreeNode[]) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentFather of data) {\r\n if (currentFather.id === id) {\r\n return currentFather;\r\n }\r\n\r\n if (currentFather.children) {\r\n const currentChild = currentFather.children.find((x) => {\r\n return x.id === id;\r\n });\r\n if (currentChild) {\r\n return currentChild;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentChild1 of currentFather.children) {\r\n if (id !== currentChild1.id) {\r\n const result = this.findParentNode(id, currentFather.children);\r\n if (result !== false) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshTreeData() {\r\n const data = this.dataSource.data;\r\n this.dataSource.data = [];\r\n this.dataSource.data = data;\r\n }\r\n\r\n getNodeIcon(node: TreeFlatNode) {\r\n if (this.openIcon && this.closeIcon) {\r\n return this.treeControl.isExpanded(node) ? this.openIcon : this.closeIcon;\r\n }\r\n switch (this.moduleId) {\r\n case DataType.document: {\r\n const nodeData = this.treeData.filter(x => { return x.rootId === node.id; });\r\n if (nodeData.length > 0) {\r\n switch (nodeData[0].levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return this.treeControl.isExpanded(node) ? 'department_folder_outlined' : 'department_folder';\r\n case DocumentNodeType.RegionalFolder:\r\n return this.treeControl.isExpanded(node) ? 'regional_folder_outlined' : 'regional_folder';\r\n case DocumentNodeType.TopFolder:\r\n return this.treeControl.isExpanded(node) ? 'enterprise_folder_outlined' : 'enterprise_folder';\r\n case DocumentNodeType.Folder:\r\n return this.treeControl.isExpanded(node) ? 'local_folder_outlined' : 'local_folder';\r\n default:\r\n return this.treeControl.isExpanded(node) ? 'folder_outlined' : 'folder';\r\n }\r\n }\r\n return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';\r\n }\r\n case DataType.process:\r\n return this.treeControl.isExpanded(node) ? 'process_area_outlined' : 'process_area';\r\n default:\r\n return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';\r\n }\r\n }\r\n\r\n getItemIcon(node) {\r\n switch (this.moduleId) {\r\n case DataType.document:\r\n switch (node.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'document_department';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'document_regional';\r\n case DocumentNodeType.TopFolder:\r\n return 'document_enterprise';\r\n case DocumentNodeType.Folder:\r\n return 'document_local';\r\n default:\r\n return 'document';\r\n }\r\n case DataType.process:\r\n return 'process';\r\n case DataType.checklist:\r\n return 'checklist';\r\n case DataType.deviation:\r\n return 'deviation';\r\n case DataType.risk:\r\n return 'risk';\r\n default:\r\n return 'document';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, EventEmitter, OnDestroy, ViewChild, ViewEncapsulation, AfterViewChecked, QueryList, ViewChildren } from '@angular/core';\r\nimport { Component, HostListener, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { DataType } from '../common/data-type.enum';\r\nimport { ModuleType } from '../common/module-type.enum';\r\nimport { RelatedConst } from '../common/related.const';\r\nimport { PopupData } from '../model/popup-data.model';\r\nimport { IRelated, RelatedItem } from '../model/related-data.model';\r\nimport { SelectedNode } from '../model/selected-node.model';\r\nimport { TreeConfig } from '../model/tree-config.model';\r\nimport { TreeModel } from '../model/tree.model';\r\nimport { QMSRelatedGlobalService } from '../service/related-global.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { CHECKLIST_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, RISK_ICON } from '../common/qms-icon.const';\r\nimport { TreeComponent } from '../tree/tree.component';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { TreeNode } from '../../../qms-ckeditor-components/common/models/qms-ckeditor-tree-node.model';\r\nimport { DocumentNodeType } from '../common/document-folder-type.enum';\r\nimport { QMSIconRegistryService } from '../../app-icon/icon-registry.service';\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n parentId?: string;\r\n disabled: boolean;\r\n levelType?: number;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-related-popup',\r\n templateUrl: './related-popup.component.html',\r\n styleUrls: ['./related-popup.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RelatedPopupComponent implements OnInit, OnDestroy, AfterViewChecked {\r\n ngUnsubscribe = new Subject<void>();\r\n\r\n LANG: any;\r\n moduleId = 0;\r\n moduleName = '';\r\n treeData1: Array<TreeModel> = [];\r\n treeData2: Array<TreeModel> = [];\r\n treeConfig1: TreeConfig;\r\n treeConfig2: TreeConfig;\r\n\r\n checkedNodeList: Array<SelectedNode> = [];\r\n selectedNode: Array<SelectedNode> = [];\r\n selectedData: Array<TreeFlatNode> = [];\r\n selectedData2: Array<TreeFlatNode> = [];\r\n\r\n commonCheckedList: Array<TreeFlatNode> = [];\r\n documentCheckedList: Array<TreeFlatNode> = [];\r\n singleProcessList: Array<SelectedNode> = [];\r\n singleDocumentList: Array<SelectedNode> = [];\r\n splitView: boolean;\r\n\r\n module = ModuleType;\r\n dataType = DataType;\r\n itemType = 0;\r\n selectedRiskData: any = [];\r\n disabledList: any = [];\r\n disabledList2: any = [];\r\n maxSelectItemCount: number;\r\n canOnlySelectItem: boolean;\r\n\r\n isDocumentExpanded = true;\r\n isCommonExpanded = true;\r\n singleSelectedNode = false;\r\n searchOrder = [];\r\n\r\n myControl = new FormControl();\r\n filteredOptions: IRelated[] = [];\r\n isInputValue = false;\r\n\r\n itemInSplitview: IRelated[] = [];\r\n selectedFolder: TreeFlatNode = null;\r\n splitViewTitle: string = null;\r\n\r\n onSearch = new EventEmitter();\r\n onExpandFolder = new EventEmitter<IRelated>();\r\n\r\n @ViewChildren(TreeComponent, {}) dataTrees: QueryList<TreeComponent>;\r\n\r\n @ViewChild('autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true })\r\n autoComplete: MatAutocompleteTrigger;\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n public translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<RelatedPopupComponent>,\r\n public globalService: QMSRelatedGlobalService,\r\n private iconRegistry: MatIconRegistry,\r\n private sanitizer: DomSanitizer,\r\n private appIconService: QMSIconRegistryService,\r\n @Inject(MAT_DIALOG_DATA) public data: PopupData\r\n ) {\r\n this.moduleId = data.moduleId;\r\n this.moduleName = data.moduleName;\r\n this.treeData1 = data.treeData1;\r\n this.treeData2 = data.treeData2;\r\n this.treeConfig1 = data.treeConfig1;\r\n this.treeConfig2 = data.treeConfig2;\r\n this.selectedRiskData = data?.selectedNode || [];\r\n this.singleSelectedNode = data.treeConfig1.singleSelectedNode;\r\n this.disabledList = data.disabledList || [];\r\n this.disabledList2 = data.disabledList2 || [];\r\n this.splitView = data.splitView;\r\n this.maxSelectItemCount = data.maxSelectItemCount;\r\n this.canOnlySelectItem = data.canOnlySelectItem;\r\n appIconService.registerProcessIcon(iconRegistry, sanitizer);\r\n appIconService.registerProcessAreaIcon(iconRegistry, sanitizer);\r\n appIconService.registerDocumentIcon(iconRegistry, sanitizer);\r\n appIconService.registerFolderIcon(iconRegistry, sanitizer);\r\n appIconService.registerDeviationIcon(iconRegistry, sanitizer);\r\n appIconService.registerChecklistIcon(iconRegistry, sanitizer);\r\n appIconService.registerRiskIcon(iconRegistry, sanitizer);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n this.globalService.setSearchRelated([]);\r\n this.selectedFolder = null;\r\n this.globalService.setSplitviewValue([]);\r\n }\r\n\r\n @HostListener('window:message', ['$event'])\r\n onMessage(event) {\r\n if (event.data === RelatedConst.HIDE_SEARCH_RESULT) {\r\n this.autoComplete.closePanel();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n\r\n this.globalService.searchRelated.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {\r\n if (res && res.length) {\r\n this.filteredOptions = res;\r\n }\r\n });\r\n\r\n this.globalService.splitViewValue.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {\r\n if (res) {\r\n this.itemInSplitview = res;\r\n }\r\n });\r\n\r\n this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {\r\n this.isInputValue = true;\r\n this.onSearchRelated(val);\r\n });\r\n\r\n this.itemType = this.getDataTypeId(this.moduleId);\r\n this.searchOrder = this.getSearchOrder();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n if (this.filteredOptions && this.filteredOptions.length) {\r\n this.autoComplete.openPanel();\r\n this.setResultHeight();\r\n } else if (this.autoComplete) {\r\n this.autoComplete.closePanel();\r\n }\r\n }\r\n\r\n getDataTypeId(moduleId: number) {\r\n let itemType;\r\n switch (moduleId) {\r\n case ModuleType.documentProcess:\r\n itemType = this.dataType.process;\r\n break;\r\n case ModuleType.deviation:\r\n itemType = this.dataType.deviation;\r\n break;\r\n case ModuleType.checklist:\r\n itemType = this.dataType.checklist;\r\n break;\r\n case ModuleType.risk:\r\n itemType = this.dataType.risk;\r\n break;\r\n default:\r\n itemType = this.dataType.document;\r\n break;\r\n }\r\n return itemType;\r\n }\r\n\r\n removeCheckedNodeList(item: TreeFlatNode) {\r\n this.selectedData = [];\r\n this.selectedData2 = [];\r\n\r\n this.checkedNodeList = this.checkedNodeList.filter(x => (x.id.toLowerCase() !== item.id.toLowerCase() || x.parentId.toLowerCase() !== item.parentId.toLowerCase()));\r\n const tempArr = [];\r\n const tempArrDocument = [];\r\n const newSelectProcessList = [];\r\n const newSelectDocumentList = [];\r\n\r\n\r\n this.commonCheckedList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {\r\n tempArr.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.singleProcessList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {\r\n newSelectProcessList.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.singleProcessList = newSelectProcessList;\r\n this.selectedData = [...tempArr];\r\n\r\n this.documentCheckedList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {\r\n tempArrDocument.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.singleDocumentList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {\r\n newSelectDocumentList.push(element);\r\n }\r\n });\r\n });\r\n this.singleDocumentList = newSelectDocumentList;\r\n this.selectedData2 = [...tempArrDocument];\r\n }\r\n\r\n isMatchTrue(arr: any[], arr2: any[]) {\r\n return arr.every((i) => {\r\n return arr2.includes(i);\r\n });\r\n }\r\n\r\n setResultHeight(arr?: IRelated[]) {\r\n let maxHeight = 484;\r\n const popup_content = document.getElementsByClassName('qmslib_related_popup_content')[0] as HTMLElement;\r\n const line__divider = document.getElementsByClassName('line__divider')[0] as HTMLElement;\r\n if (popup_content && line__divider) {\r\n maxHeight = this.getOffsetHeight(popup_content, true) + this.getOffsetHeight(line__divider, true) * 2;\r\n }\r\n\r\n const contentResult = document.getElementsByClassName('cdk-virtual-scroll-content-wrapper')[0] as HTMLElement;\r\n const viewreports = document.getElementsByClassName('related-viewport')[0] as HTMLElement;\r\n\r\n if (viewreports) {\r\n if (contentResult.offsetHeight <= maxHeight) {\r\n viewreports.style.height = `${contentResult.offsetHeight}px`;\r\n }\r\n else {\r\n viewreports.style.height = `${maxHeight}px`;\r\n }\r\n }\r\n }\r\n\r\n onSearchRelated(_val: any) {\r\n this.filteredOptions = [];\r\n if (typeof (_val) === 'object') {\r\n this.myControl.setValue('');\r\n }\r\n else if (typeof (_val) === 'string') {\r\n if (!!_val) {\r\n this.onSearch.emit(_val);\r\n }\r\n }\r\n }\r\n\r\n getModuleFilteredOptions(moduleId: number) {\r\n return this.filteredOptions.filter(x => x.itemType === moduleId);\r\n }\r\n\r\n showSearchResult() {\r\n this.autoComplete.openPanel();\r\n }\r\n\r\n displayRelated(related?: IRelated): string | undefined {\r\n return related ? related.itemName : undefined;\r\n }\r\n\r\n selectRelated(item: IRelated) {\r\n let index = -1;\r\n this.selectedNode = [];\r\n if (this.treeConfig1.showCheckBox) {\r\n index = this.checkedNodeList.findIndex(x => {\r\n return x.id === item.id && x.parentId === item.parentId;\r\n });\r\n }\r\n\r\n if (index < 0) {\r\n let position = -1;\r\n let node: any;\r\n let typeId: number;\r\n\r\n if (item.itemType === this.dataType.document) {\r\n // document\r\n position = this.treeData2.findIndex(x => {\r\n return x.childId === item.id;\r\n });\r\n node = this.treeData2[position];\r\n typeId = this.dataType.document;\r\n this.dataTrees.toArray()[1].todoItemSelectionById([item.id]);\r\n }\r\n else if (item.itemType === this.dataType.folder) {\r\n position = this.treeData2.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n node = this.treeData2[position];\r\n typeId = item.itemType;\r\n if (position >= 0) {\r\n if (this.treeConfig2.showCheckBox) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.itemName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId,\r\n levelType: item.levelType\r\n });\r\n }\r\n else {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.itemName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId,\r\n levelType: item.levelType\r\n });\r\n }\r\n this.dataTrees.toArray()[1].todoItemSelectionById([item.id]);\r\n }\r\n return;\r\n }\r\n else if ((item.itemType === this.dataType.deviationType\r\n || item.itemType === this.dataType.checklistCategory\r\n || item.itemType === this.dataType.riskFolder) && !this.canOnlySelectItem) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n this.selectNodeRecursive(this.treeData1[position], item.itemType);\r\n }\r\n else if (item.itemType === this.dataType.area) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n node = this.treeData1[position];\r\n typeId = item.itemType;\r\n\r\n if (position >= 0) {\r\n if (this.treeConfig1.showCheckBox) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: node.rootId,\r\n itemName: node.rootName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId,\r\n levelType: item.levelType\r\n });\r\n }\r\n else {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: node.rootId,\r\n itemName: node.rootName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId,\r\n levelType: item.levelType\r\n });\r\n }\r\n }\r\n this.dataTrees.toArray()[0].todoItemSelectionById([item.id]);\r\n return;\r\n }\r\n else if (item.itemType === this.dataType.deviation ||\r\n item.itemType === this.dataType.checklist) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.childId === item.id && x.rootId === item.parentId;\r\n });\r\n node = this.treeData1[position];\r\n typeId = this.itemType;\r\n const treeNode = {\r\n id: node.childId,\r\n name: node.childName,\r\n children: [],\r\n parentId: node.rootId\r\n };\r\n this.dataTrees.toArray()[0].todoItemSelection([treeNode]);\r\n }\r\n else {\r\n // process, risk,...\r\n position = this.treeData1.findIndex(x => {\r\n return x.childId.toLowerCase() === item.id.toLowerCase();\r\n });\r\n node = this.treeData1[position];\r\n typeId = this.itemType;\r\n if (node) {\r\n this.dataTrees.toArray()[0].todoItemSelectionById([node.childId]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n selectNodeRecursive(item: TreeModel, itemType: DataType) {\r\n let position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.rootId;\r\n });\r\n\r\n if (position >= 0) {\r\n\r\n const node: TreeNode = {\r\n id: item.rootId,\r\n name: item.rootName,\r\n children: [],\r\n parentId: item.parentId\r\n };\r\n\r\n let nodeChildren: TreeNode[] = this.treeData1.\r\n filter(x => x.rootId === item.rootId).\r\n map(x => {\r\n return {\r\n id: x.childId,\r\n name: item.childName,\r\n children: [],\r\n parentId: item.rootId\r\n };\r\n });\r\n let nodeSubfolders: TreeModel[] = this.treeData1.\r\n filter(x => x.parentId === item.rootId);\r\n\r\n if (this.treeConfig1.showCheckBox) {\r\n nodeChildren.forEach(x => {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: x.id,\r\n itemName: x.name,\r\n itemType: itemType,\r\n itemNumberId: item.displayId.toString(),\r\n parentId: item.rootId\r\n });\r\n });\r\n }\r\n else {\r\n nodeChildren.forEach(x => {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: x.id,\r\n itemName: x.name,\r\n itemType: itemType,\r\n itemNumberId: item.displayId.toString(),\r\n parentId: item.rootId\r\n });\r\n });\r\n }\r\n\r\n this.dataTrees.toArray()[0].todoItemSelection([node].concat(nodeChildren));\r\n if (nodeSubfolders) {\r\n nodeSubfolders.forEach(folder => {\r\n this.selectNodeRecursive(folder, itemType);\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n\r\n setTypeProcess(expand) {\r\n return expand ? this.dataType.area : this.dataType.process;\r\n }\r\n\r\n getCommonCheckedNode(list: Array<TreeFlatNode>) {\r\n this.checkedNodeList = [];\r\n this.commonCheckedList = [];\r\n this.singleProcessList = [];\r\n this.checkedNodeList = [...this.singleDocumentList];\r\n\r\n if (list.length) {\r\n list.forEach(item => {\r\n const index = this.checkedNodeList.findIndex(x => x.id === item.id && x.parentId === item.parentId);\r\n\r\n if (item.id && index < 0) {\r\n this.commonCheckedList.push(item);\r\n }\r\n\r\n if (this.singleSelectedNode) {\r\n let position: number;\r\n if (item.expandable) {\r\n position = this.treeData1.findIndex(p => p.rootId === item.id);\r\n }\r\n else {\r\n position = this.treeData1.findIndex(p => p.childId === item.id);\r\n }\r\n if (position > -1) {\r\n this.singleProcessList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: (this.itemType === 2) ? this.setTypeProcess(item.expandable) : this.itemType,\r\n itemNumberId: this.treeData1[position].displayId.toString(),\r\n parentId: item.parentId,\r\n levelType: item.levelType\r\n });\r\n }\r\n }\r\n\r\n\r\n if (item.id && index < 0 && !item.expandable && !this.singleSelectedNode) {\r\n const position = this.treeData1.findIndex(p => p.childId === item.id && p.rootId === item.parentId);\r\n if (position > -1) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: this.itemType,\r\n parentId: item.parentId,\r\n parentName: this.treeData1[position].parentId ? this.treeData1[position].subName : this.treeData1[position].rootName,\r\n itemNumberId: this.treeData1[position].displayId.toString(),\r\n levelType: item.levelType\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.singleSelectedNode) {\r\n this.checkedNodeList = [...this.checkedNodeList, ...this.singleProcessList];\r\n }\r\n\r\n if(this.maxSelectItemCount && this.maxSelectItemCount > 0){\r\n const removeList = this.checkedNodeList.slice(0, this.maxSelectItemCount * -1);\r\n if(removeList.length){\r\n removeList.forEach(item => {\r\n this.removeCheckedNodeList({\r\n id: item.id,\r\n name: item.itemName,\r\n parentId: item.parentId,\r\n level: 0,\r\n expandable: true,\r\n hasChild: true,\r\n disabled: false\r\n })\r\n })\r\n }\r\n this.checkedNodeList = this.checkedNodeList.slice(this.maxSelectItemCount * -1);\r\n }\r\n }\r\n }\r\n\r\n getDocumentCheckedNode(list: Array<TreeFlatNode>) {\r\n this.checkedNodeList = [];\r\n this.documentCheckedList = [];\r\n this.singleDocumentList = [];\r\n this.checkedNodeList = [...this.singleProcessList];\r\n\r\n\r\n if (list.length) {\r\n list.forEach(item => {\r\n const index = this.checkedNodeList.findIndex(x => x.id === item.id);\r\n\r\n if (item.id && index < 0) {\r\n this.documentCheckedList.push(item);\r\n }\r\n\r\n if (this.singleSelectedNode) {\r\n let position: number;\r\n if (item.expandable) {\r\n position = this.treeData2.findIndex(p => p.rootId === item.id);\r\n }\r\n else {\r\n position = this.treeData2.findIndex(p => p.childId === item.id);\r\n }\r\n if (position > -1) {\r\n this.singleDocumentList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: item.expandable ? this.dataType.folder : this.dataType.document,\r\n itemNumberId: this.treeData2[position].displayId.toString(),\r\n parentId: item.parentId,\r\n levelType: item.levelType\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n if (index < 0 && !item.expandable && !this.singleSelectedNode) {\r\n const position = this.treeData2.findIndex(p => p.childId === item.id);\r\n if (position > -1) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: this.dataType.document,\r\n itemNumberId: this.treeData2[position].displayId.toString(),\r\n parentId: item.parentId,\r\n parentName: this.treeData2[position].rootName,\r\n levelType: item.levelType\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.singleSelectedNode) {\r\n this.checkedNodeList = [...this.checkedNodeList, ...this.singleDocumentList];\r\n }\r\n\r\n if(this.maxSelectItemCount && this.maxSelectItemCount > 0){\r\n const removeList = this.checkedNodeList.slice(0, this.maxSelectItemCount * -1);\r\n if(removeList.length){\r\n removeList.forEach(item => {\r\n this.removeCheckedNodeList({\r\n id: item.id,\r\n name: item.itemName,\r\n parentId: item.parentId,\r\n level: 0,\r\n expandable: true,\r\n hasChild: true,\r\n disabled: false\r\n })\r\n })\r\n }\r\n this.checkedNodeList = this.checkedNodeList.slice(this.maxSelectItemCount * -1);\r\n }\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.selectedFolder = null;\r\n this.itemInSplitview = [];\r\n this.dialogRef.close();\r\n };\r\n\r\n onAddClick() {\r\n // if (this.treeConfig1.showCheckBox) {\r\n this.selectedFolder = null;\r\n this.itemInSplitview = [];\r\n this.dialogRef.close(this.checkedNodeList);\r\n // }\r\n // else {\r\n // this.dialogRef.close(this.selectedNode);\r\n // }\r\n }\r\n\r\n getOffsetHeight(element: HTMLElement, includeMargin: boolean): number {\r\n let elmHeight = 0, elmMargin = 0;\r\n\r\n elmHeight = element.offsetHeight;\r\n if (includeMargin) {\r\n const style = window.getComputedStyle(element);\r\n elmMargin = parseFloat(style.marginTop.replace('px', '')) + parseFloat(style.marginBottom.replace('px', ''));\r\n }\r\n\r\n return (elmHeight + elmMargin);\r\n }\r\n\r\n getItemChipName(item: SelectedNode) {\r\n if (item.itemType === DataType.checklist || item.itemType === DataType.deviation) {\r\n return item.parentName ? `${item.parentName}/${item.itemName}` : item.itemName;\r\n }\r\n return item.itemName;\r\n }\r\n\r\n isEllipsisActive(e: HTMLElement): boolean {\r\n return e ? (e.clientWidth < e.scrollWidth) : false;\r\n }\r\n\r\n getNodeIcon(item: IRelated) {\r\n switch (item.itemType) {\r\n case DataType.folder: {\r\n switch (item.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'department_folder_outlined';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'regional_folder_outlined';\r\n case DocumentNodeType.TopFolder:\r\n return 'enterprise_folder_outlined';\r\n case DocumentNodeType.Folder:\r\n return 'local_folder_outlined';\r\n default:\r\n return 'folder_outlined';\r\n }\r\n }\r\n case DataType.document: {\r\n switch (item.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'document_department';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'document_regional';\r\n case DocumentNodeType.TopFolder:\r\n return 'document_enterprise';\r\n case DocumentNodeType.Folder:\r\n return 'document_local';\r\n default:\r\n return 'document';\r\n }\r\n }\r\n case DataType.area:\r\n return 'process_area_outlined';\r\n case DataType.process:\r\n return 'process';\r\n case DataType.deviation:\r\n return 'deviation';\r\n case DataType.checklist:\r\n return 'checklist';\r\n case DataType.risk:\r\n return 'risk';\r\n default:\r\n return 'folder_outlined';\r\n }\r\n }\r\n\r\n getSearchOrder() {\r\n let searchTypes = Object.keys(this.dataType)\r\n .map(key => ({ value: this.dataType[key], key: key }));\r\n searchTypes = searchTypes.slice(searchTypes.length / 2);\r\n return searchTypes;\r\n }\r\n\r\n getTitle(type: number) {\r\n switch (type) {\r\n case DataType.process:\r\n return this.LANG.PROCESSES;\r\n case DataType.area:\r\n return this.LANG.PROCESS_AREA;\r\n case DataType.document:\r\n return this.LANG.DOCUMENTS;\r\n case DataType.folder:\r\n return this.LANG.FOLDER;\r\n case DataType.deviation:\r\n return this.LANG.DEVIATION;\r\n case DataType.deviationType:\r\n return this.LANG.DEVIATION_TYPE;\r\n case DataType.checklist:\r\n return this.LANG.CHECKLIST;\r\n case DataType.checklistCategory:\r\n return this.LANG.CHECKLIST_CATEGORY;\r\n case DataType.risk:\r\n return this.LANG.ASSESSMENT;\r\n case DataType.riskFolder:\r\n return this.LANG.FOLDER;\r\n }\r\n }\r\n\r\n getParentName(item: IRelated) {\r\n if (item.itemType === this.dataType.checklist || item.itemType === this.dataType.deviation) {\r\n return item.parentName;\r\n }\r\n return null;\r\n }\r\n\r\n getItemId(item: IRelated) {\r\n if (item.itemType === this.dataType.process) {\r\n return `${this.LANG.PROCESS_ID}: ${item.itemNumberId}; ${item.statusName}`;\r\n }\r\n else if (item.itemType === this.dataType.document) {\r\n return `${this.LANG.DOCUMENT_ID}: ${item.itemNumberId}; ${item.statusName}`;\r\n }\r\n return null;\r\n }\r\n\r\n toggleSelectItem(node: IRelated) {\r\n const selectedNode = this.checkedNodeList.find(x => (x.id.toLowerCase() === node.id.toLowerCase() && x.parentId.toLowerCase() === node.parentId.toLowerCase()));\r\n if (selectedNode) {\r\n this.removeCheckedNodeList({\r\n id: selectedNode.id,\r\n name: node.itemName,\r\n parentId: selectedNode.parentId,\r\n hasChild: false,\r\n expandable: false,\r\n level: 0,\r\n disabled: false,\r\n });\r\n }\r\n else {\r\n this.selectRelated(node);\r\n }\r\n }\r\n\r\n isNodeSelected(node) {\r\n return this.checkedNodeList.filter(x => (x.id.toLowerCase() === node.id.toLowerCase() && x.parentId.toLowerCase() === node.parentId.toLowerCase())).length > 0;\r\n }\r\n\r\n\r\n getChildrenOfFolder(node: TreeFlatNode, type: DataType) {\r\n if (this.splitView) {\r\n let item = new IRelated();\r\n item.id = node.id;\r\n item.itemType = type;\r\n item.itemName = node.name;\r\n item.levelType = node.levelType;\r\n this.selectedFolder = node;\r\n if (type === this.dataType.folder) {\r\n this.splitViewTitle = `${this.LANG.MESSAGE.DOCUMENTS_IN.toUpperCase()} \"${node.name}\"`;\r\n }\r\n else if (type === this.dataType.area) {\r\n this.splitViewTitle = `${this.LANG.MESSAGE.PROCESSES_IN.toUpperCase()} \"${node.name}\"`;\r\n }\r\n this.onExpandFolder.emit(item);\r\n }\r\n }\r\n\r\n canShowSearchOption(moduleId: number){\r\n if(this.canOnlySelectItem &&\r\n (moduleId === DataType.checklistCategory \r\n || moduleId === DataType.riskFolder \r\n || moduleId === DataType.deviationType \r\n || (moduleId === DataType.area && this.treeConfig1 && !this.treeConfig1.singleSelectedNode) \r\n || (moduleId === DataType.folder && this.treeConfig2 && !this.treeConfig2.singleSelectedNode)\r\n )){\r\n return false;\r\n }\r\n return this.getModuleFilteredOptions(moduleId).length > 0;\r\n }\r\n}\r\n","import { TreeConfig } from \"./tree-config.model\";\r\nimport { TreeModel } from \"./tree.model\";\r\n\r\nexport class RiskAnalysis {\r\n title: string;\r\n dangers: Array<TreeModel>;\r\n dangerConfig: TreeConfig;\r\n selectedDangers: any;\r\n disabledList?: Array<any>;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.dangers = [];\r\n this.selectedDangers = [];\r\n this.disabledList = [];\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { DataType } from \"../../common/data-type.enum\";\r\nimport { AnalysisDanger } from \"../../model/analysis-danger.model\";\r\nimport { RiskAnalysis } from \"../../model/risk-analysis.model\";\r\nimport { TreeConfig } from \"../../model/tree-config.model\";\r\nimport { TreeModel } from \"../../model/tree.model\";\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-risk-analysis',\r\n templateUrl: './analysis.component.html',\r\n styleUrls: ['./analysis.component.scss']\r\n})\r\nexport class RiskAnalysisComponent implements OnInit {\r\n LANG: any;\r\n title: string;\r\n dangers: Array<TreeModel> = [];\r\n dangerConfig: TreeConfig;\r\n analysisDanger: Array<AnalysisDanger> = [];;\r\n\r\n selectedData = [];\r\n nodeCheckedItem = [];\r\n disabledList = [];\r\n\r\n riskData: Array<any> = [];\r\n riskConfig: TreeConfig;\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef<RiskAnalysisComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: RiskAnalysis\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n\r\n this.title = this.data.title;\r\n this.dangers = this.data.dangers;\r\n this.dangerConfig = this.data.dangerConfig;\r\n this.selectedData = [...this.data.selectedDangers];\r\n this.disabledList = this.data.disabledList || [];\r\n\r\n // cheat not null when selected\r\n if (this.data.selectedDangers.length) {\r\n this.analysisDanger.push({\r\n analysisId: 1,\r\n analysisName: 'string',\r\n dangerId: 1,\r\n dangerName: 'string',\r\n });\r\n }\r\n\r\n this.riskConfig = {\r\n allowSelectFolder: false,\r\n areaOfCurrentProcess: '',\r\n showCheckBox: true,\r\n allowMultipleCheck: true,\r\n onlyCheckBoxForChild: false,\r\n moduleId: DataType.risk,\r\n openIcon: 'keyboard_arrow_up',\r\n openIconColor: '#1954A9',\r\n closeIcon: 'keyboard_arrow_down',\r\n closeIconColor: '',\r\n itemIcon: 'border_all',\r\n itemIconPath: '',\r\n itemIconBase64: '',\r\n singleSelectedNode: false,\r\n canHaveDupId: false\r\n };\r\n }\r\n\r\n toggleChileNode(list: Array<TreeFlatNode>) {\r\n this.analysisDanger = [];\r\n this.nodeCheckedItem = [];\r\n\r\n\r\n if (list.length) {\r\n this.dangers.forEach(el => {\r\n list.forEach(x => {\r\n if (x.id === el.childId) {\r\n // keep array node selected\r\n this.nodeCheckedItem.push(x);\r\n // create format show analysis \r\n this.analysisDanger.push({\r\n analysisId: +el.rootId,\r\n analysisName: el.rootName,\r\n dangerId: +el.childId,\r\n dangerName: el.childName\r\n })\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onFinishClick(): void {\r\n const data = {\r\n 'nodeSelected': this.nodeCheckedItem,\r\n 'analysisData': this.analysisDanger,\r\n 'riskData': this.dangers || []\r\n }\r\n\r\n this.dialogRef.close(data);\r\n }\r\n\r\n onCancelClick() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export enum ActionType {\r\n edit = 1,\r\n detail = 2,\r\n delete = 3\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { ActionType } from \"../../common/action-type.enum\";\r\nimport { DangerAction } from \"../../model/danger-action.model\";\r\nimport { DangerAssessment } from \"../../model/danger-assessment.model\";\r\nimport { Danger } from \"../../model/danger.model\";\r\nimport { RiskDanger } from \"../../model/risk-danger.model\";\r\nimport { TreeConfig } from \"../../model/tree-config.model\";\r\n\r\n@Component({\r\n selector: 'qms-risk-list',\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss']\r\n})\r\nexport class RiskListComponent implements OnInit, OnChanges {\r\n LANG: any;\r\n title: string;\r\n isNotEditedItem: boolean;\r\n dangers: Array<Danger> = [];\r\n analysisDanger: Array<DangerAssessment> = [];\r\n dangerAction: DangerAction;\r\n show = 5;\r\n\r\n dangerConfig: TreeConfig;\r\n\r\n resultData: Array<any> = [];\r\n riskAnalysis: Array<any> = [];\r\n\r\n @Input() data: RiskDanger;\r\n @Output() updateData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n private dialog: MatDialog\r\n ) {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && JSON.stringify(changes.data.currentValue) !== JSON.stringify(changes.data.previousValue)) {\r\n this.dangers = [];\r\n this.title = changes.data.currentValue.title;\r\n this.isNotEditedItem = changes.data.currentValue['isNotEditedItem'] ?? false;\r\n this.dangers = [...changes.data.currentValue.data];\r\n this.show = changes.data.currentValue?.numRow || 5;\r\n\r\n this.analysisDanger = [];\r\n this.groupByDanger(changes.data.currentValue.data, 0);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.title = this.data?.title || '';\r\n this.isNotEditedItem = this.data['isNotEditedItem'] ?? false;\r\n this.dangers = this.data?.data || [];\r\n this.show = this.data?.numRow || 5;\r\n\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n if (this.dangers.length) {\r\n this.groupByDanger(this.dangers, 0);\r\n }\r\n }\r\n\r\n groupByDanger(dangers: Array<Danger>, i: number) {\r\n dangers.forEach(d => {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return d.analysisId === x.id;\r\n });\r\n if (index < 0) {\r\n let count = 0;\r\n this.analysisDanger.push({\r\n id: d.analysisId,\r\n name: d.analysisName,\r\n childNumber: 0,\r\n show: this.show,\r\n remain: 0,\r\n dangers: [],\r\n folderId: d.folderId,\r\n statusId: d.statusId,\r\n simple: d.simple\r\n });\r\n dangers.forEach(d => {\r\n const index = this.analysisDanger[i].dangers.findIndex(x => {\r\n return x.dangerId === d.dangerId;\r\n });\r\n\r\n if (index < 0 && this.analysisDanger[i].id === d.analysisId) {\r\n this.analysisDanger[i].dangers.push(d);\r\n count++;\r\n }\r\n });\r\n\r\n this.analysisDanger[i].childNumber = count;\r\n this.analysisDanger[i].remain = count - this.show;\r\n i++;\r\n }\r\n });\r\n }\r\n\r\n editDanger(item) {\r\n this.dangerAction = {\r\n type: ActionType.edit,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n }\r\n const data = { ...this.dangerAction, ...item };\r\n this.updateData.emit(data);\r\n\r\n }\r\n\r\n removeDanger(id: number) {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return x.id === id;\r\n });\r\n const removedItem = this.analysisDanger[index];\r\n\r\n this.dangerAction = {\r\n type: ActionType.delete,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n };\r\n\r\n const data = { ...this.dangerAction, ...removedItem };\r\n this.updateData.emit(data);\r\n }\r\n\r\n dangerDetail(danger: Danger) {\r\n this.dangerAction = {\r\n type: ActionType.detail,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n };\r\n const data = { ...this.dangerAction, ...danger };\r\n this.updateData.emit(data);\r\n }\r\n\r\n increaseShow(id: number) {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return x.id === id;\r\n });\r\n if (index >= 0) {\r\n this.analysisDanger[index].show = this.analysisDanger[index].childNumber;\r\n this.analysisDanger[index].remain = 0;\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n\r\n }\r\n}\r\n","export enum Color {\r\n green = 1,\r\n yellow = 2,\r\n red = 3\r\n}\r\n","export class RiskResult {\r\n title: string;\r\n results: Array<Result>;\r\n isSimple?: number;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.results = [];\r\n this.isSimple = 0\r\n }\r\n}\r\n\r\nexport class Result {\r\n dangerId: number;\r\n dangerName: string;\r\n color: number;\r\n cause: string;\r\n consequenceArea: string;\r\n result: string;\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../../../services/translation-registry.service\";\r\nimport { Color } from \"../../common/color.enum\";\r\nimport { Result, RiskResult } from \"../../model/risk-result.model\";\r\n\r\n@Component({\r\n selector: 'qms-risk-result',\r\n templateUrl: './result.component.html',\r\n styleUrls: ['./result.component.scss']\r\n})\r\nexport class RiskResultComponent implements OnInit {\r\n LANG: any;\r\n title: string;\r\n results: Array<Result> = [];\r\n color = Color;\r\n isSimple = 0;\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<RiskResultComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: RiskResult\r\n ) {\r\n this.title = data.title;\r\n this.results = data.results;\r\n this.isSimple = data.isSimple || 0;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export class SideNav {\r\n menu: string;\r\n icon: string;\r\n items: Array<SideNavItem>;\r\n\r\n constructor() {\r\n this.menu = '';\r\n this.icon = '';\r\n this.items = [];\r\n }\r\n}\r\n\r\nexport class SideNavItem {\r\n id: string;\r\n name: string;\r\n url: string;\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { SideNav, SideNavItem } from '../model/sidenav.model';\r\n\r\n@Component({\r\n selector: 'qms-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n})\r\nexport class SidenavComponent implements OnInit {\r\n @Input() data = new SideNav();\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n\r\n menu = '';\r\n icon = '';\r\n items: Array<SideNavItem> = [];\r\n\r\n isExpanded = true;\r\n showSubmenu: boolean = false;\r\n isShowing = false;\r\n showSubSubMenu: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.menu = this.data.menu;\r\n this.icon = this.data.icon;\r\n this.items = this.data.items;\r\n }\r\n\r\n mouseenter() {\r\n if (!this.isExpanded) {\r\n this.isShowing = true;\r\n }\r\n }\r\n\r\n mouseleave() {\r\n if (!this.isExpanded) {\r\n this.isShowing = false;\r\n }\r\n }\r\n}\r\n","import { ScrollingModule } from \"@angular/cdk/scrolling\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCardModule } from \"@angular/material/card\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatListModule } from \"@angular/material/list\";\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatTreeModule } from \"@angular/material/tree\";\r\nimport { SharedMaterialModule } from '../../material-module';\r\nimport { QmsAngularModule } from '../../qms-angular.module';\r\nimport { QMSAppIconModule } from \"../app-icon/app-icon.module\";\r\nimport { QMSBreadcrumbModule } from \"../breadcrumb/breadcrumb.module\";\r\nimport { QMSListModule } from \"../list/list.module\";\r\nimport { RelatedContentComponent } from \"./content/related-content.component\";\r\nimport { RelatedListComponent } from \"./list-other-related/list-related.component\";\r\nimport { RelatedPopupComponent } from \"./popup/related-popup.component\";\r\nimport { RiskAnalysisComponent } from \"./risk/analysis/analysis.component\";\r\nimport { RiskListComponent } from \"./risk/list/list.component\";\r\nimport { RiskResultComponent } from \"./risk/result/result.component\";\r\nimport { SidenavComponent } from \"./sidenav/sidenav.component\";\r\nimport { TreeComponent } from \"./tree/tree.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n TreeComponent,\r\n RelatedPopupComponent,\r\n RelatedContentComponent,\r\n SidenavComponent,\r\n RiskAnalysisComponent,\r\n RiskResultComponent,\r\n RiskListComponent,\r\n RelatedListComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatTreeModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatExpansionModule,\r\n MatAutocompleteModule,\r\n ReactiveFormsModule,\r\n ScrollingModule,\r\n MatCardModule,\r\n MatSidenavModule,\r\n MatListModule,\r\n SharedMaterialModule,\r\n QMSListModule,\r\n QmsAngularModule,\r\n QMSBreadcrumbModule,\r\n QMSAppIconModule\r\n ],\r\n exports: [\r\n TreeComponent,\r\n RelatedPopupComponent,\r\n RelatedContentComponent,\r\n SidenavComponent,\r\n RiskAnalysisComponent,\r\n RiskResultComponent,\r\n RiskListComponent,\r\n RelatedListComponent\r\n ]\r\n})\r\nexport class QMSRelatedModule { }\r\n","export class TreeModel {\r\n rootId: string;\r\n parentId: string;\r\n rootName: string;\r\n subName: string;\r\n childId: string;\r\n childName: string;\r\n statusId: number;\r\n displayId: number;\r\n levelType?: number;\r\n onlyRead?: boolean;\r\n}\r\n","import { DataType } from \"../common/data-type.enum\";\r\n\r\nexport class TreeConfig {\r\n allowSelectFolder: boolean;\r\n areaOfCurrentProcess: string;\r\n showCheckBox: boolean;\r\n allowMultipleCheck: boolean;\r\n onlyCheckBoxForChild: boolean;\r\n moduleId: DataType;\r\n openIcon?: string;\r\n openIconColor: string;\r\n closeIcon?: string;\r\n closeIconColor: string;\r\n itemIcon?: string;\r\n itemIconPath?: string;\r\n itemIconBase64?: string;\r\n itemIconSvg?: string;\r\n singleSelectedNode: boolean;\r\n canHaveDupId?: boolean;\r\n expandAll?: boolean;\r\n onlyFolder?: boolean;\r\n}\r\n","import { Danger } from \"./danger.model\";\r\n\r\nexport class RiskDanger {\r\n title: string;\r\n data: Array<Danger>;\r\n numRow: number;\r\n isNotEditedItem: boolean;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.data = [];\r\n this.numRow = 5;\r\n this.isNotEditedItem = false;\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class QMSCKEditorBaseComponent implements OnDestroy {\r\n ngUnsubcribe = new Subject<void>();\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubcribe.next();\r\n this.ngUnsubcribe.complete();\r\n }\r\n}\r\n","export class QMSCKEditorDialogData {\r\n title: string;\r\n\r\n content: string;\r\n\r\n checkText?: string;\r\n\r\n isMessage?: boolean;\r\n\r\n isAdvance?: boolean;\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { QMSCKEditorBaseComponent } from '../../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorDialogData } from '../../models/qms-ckeditor-dialog.model';\r\n\r\n@Component({\r\n selector: 'app-confirm-popup',\r\n templateUrl: './qms-ckeditor-confirm.component.html',\r\n styleUrls: ['./qms-ckeditor-confirm.component.scss']\r\n})\r\nexport class QMSCKEditorConfirmComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n isNotShowAgain = false;\r\n\r\n constructor(\r\n private translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<QMSCKEditorConfirmComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorDialogData\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onConfirmClick() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onAdvanceConfirmClick() {\r\n const obj = { isConfirmed: true, isNotShowAgain: this.isNotShowAgain };\r\n this.dialogRef.close(obj);\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\r\n\r\ninterface TreeNode {\r\n id: string;\r\n name: string;\r\n children?: TreeNode[];\r\n}\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-ckeditor-tree',\r\n templateUrl: './qms-ckeditor-tree.component.html',\r\n styleUrls: ['./qms-ckeditor-tree.component.scss']\r\n})\r\nexport class QMSCKEditorTreeComponent implements OnChanges {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() rawData: Array<any> = [];\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() treeData: Array<any> = [];\r\n\r\n @Input() useExpandFeature: boolean;\r\n\r\n @Input() docType: number;\r\n\r\n @Input() allowSelectFolder: boolean;\r\n\r\n @Output() selectNodeEvent: EventEmitter<string> = new EventEmitter();\r\n\r\n @Output() selectFolderEvent: EventEmitter<string> = new EventEmitter();\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() listParentObj: any;\r\n\r\n arrIndex: string[] = [];\r\n\r\n @Input() areaOfCurrentProcess: string;\r\n\r\n // tslint:disable-next-line:member-ordering\r\n treeControl = new FlatTreeControl<TreeFlatNode>(\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n }\r\n );\r\n\r\n ngOnChanges() {\r\n if (this.treeData) {\r\n this.dataSource.data = this.treeData;\r\n }\r\n }\r\n\r\n private transformer = (node: TreeNode, level: number) => {\r\n let checkHasChild = true;\r\n if (!node.children) {\r\n checkHasChild = false;\r\n } else if (!(!!node.children && node.children.length && node.children.length > 0)) {\r\n checkHasChild = false;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n else if (\r\n !!node.children &&\r\n node.children.length &&\r\n node.children.length === 1 &&\r\n !node.children[0].name.length &&\r\n node.id.toString() === this.areaOfCurrentProcess\r\n ) {\r\n checkHasChild = false;\r\n }\r\n\r\n if (!(this.listParentObj[node.id] === 1)) {\r\n checkHasChild = false;\r\n }\r\n\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n name: node.name,\r\n level,\r\n id: node.id,\r\n hasChild: checkHasChild\r\n };\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n treeFlattener = new MatTreeFlattener(\r\n this.transformer,\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n },\r\n (node) => {\r\n return node.children;\r\n }\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n hasChild = (_: number, node: TreeFlatNode) => {\r\n return node.expandable;\r\n };\r\n\r\n selectNode(node: TreeFlatNode) {\r\n this.selectNodeEvent.emit(node.id);\r\n }\r\n\r\n selectFolder(node: TreeFlatNode) {\r\n this.selectFolderEvent.emit(node.id);\r\n }\r\n\r\n onExpandNode(node: TreeFlatNode, isExpandNode?: boolean) {\r\n // set useExpandFeature = true to improve performance of tree loading\r\n if (!isExpandNode || !this.useExpandFeature) {\r\n for (let i = 0; i < this.arrIndex.length; i++) {\r\n if (this.arrIndex[i] === node.id) {\r\n this.arrIndex.splice(i, 1);\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // get array index to expand node after refresh datasource\r\n let index = 0;\r\n let isChange = false;\r\n let isRemove = false;\r\n if (node.level === 0) {\r\n this.arrIndex.push(node.id);\r\n } else {\r\n this.arrIndex.push(node.id);\r\n }\r\n\r\n const childArray = this.rawData.filter((x) => {\r\n return x.parentId === node.id;\r\n });\r\n let rootId = 0;\r\n let parentElement: TreeNode;\r\n let childrenList: TreeNode[];\r\n if (childArray.length === 0) {\r\n return;\r\n }\r\n childArray.forEach((item) => {\r\n if (item.rootId === rootId) {\r\n return;\r\n }\r\n\r\n // get child node from original datasource\r\n const child = this.getChildNode(item.rootId, childArray);\r\n rootId = item.rootId;\r\n\r\n index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n // add child node to expand node\r\n parentElement = this.findParentNode(node.id, this.dataSource.data);\r\n if (parentElement) {\r\n // temporary remove all node without children => purpose to add node folder first\r\n if (!isRemove) {\r\n childrenList = [...parentElement.children];\r\n this.removeChildren(parentElement);\r\n isRemove = true;\r\n }\r\n // add node folder first\r\n parentElement.children.push(child);\r\n isChange = true;\r\n }\r\n });\r\n // add node without children again\r\n if (isRemove) {\r\n this.addChildren(parentElement, childrenList);\r\n }\r\n\r\n // refresh data and expand tree node from root node\r\n if (isChange) {\r\n this.refreshTreeData();\r\n this.arrIndex.forEach((item) => {\r\n index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);\r\n this.treeControl.expand(this.treeControl.dataNodes[index]);\r\n });\r\n isChange = false;\r\n }\r\n }\r\n\r\n removeChildren(parentElement?: TreeNode) {\r\n if (parentElement.children) {\r\n parentElement.children.length = 0;\r\n }\r\n }\r\n\r\n addChildren(parentElement?: TreeNode, childrenList?: TreeNode[]) {\r\n if (childrenList) {\r\n childrenList.forEach((e) => {\r\n parentElement.children.push(e);\r\n });\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getNodeIndex(id: string, level?: number, data?: any[]) {\r\n if (level) {\r\n return data.findIndex((x) => {\r\n return x.id === id && x.level === level;\r\n });\r\n }\r\n\r\n return data.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getChildNode(rootId: string, data: any) {\r\n const childArray = data.filter((x) => {\r\n return x.rootId === rootId;\r\n });\r\n const child = { id: childArray[0].rootId, name: childArray[0].subName, children: [] } as TreeNode;\r\n childArray.forEach((item) => {\r\n child.children.push({ id: item.childId, name: item.childName });\r\n });\r\n return child;\r\n }\r\n\r\n findParentNode(id: string, data: TreeNode[]) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentFather of data) {\r\n if (currentFather.id === id) {\r\n return currentFather;\r\n }\r\n\r\n if (currentFather.children) {\r\n const currentChild = currentFather.children.find((x) => {\r\n return x.id === id;\r\n });\r\n if (currentChild) {\r\n return currentChild;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentChild1 of currentFather.children) {\r\n if (id !== currentChild1.id) {\r\n const result = this.findParentNode(id, currentFather.children);\r\n if (result !== false) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshTreeData() {\r\n const data = this.dataSource.data;\r\n this.dataSource.data = [];\r\n this.dataSource.data = data;\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-fullscreen',\r\n templateUrl: './qms-ckeditor-fullscreen.component.html',\r\n styleUrls: ['./qms-ckeditor-fullscreen.component.scss']\r\n})\r\nexport class QMSCKEditorFullscreenComponent {\r\n public showFullScreen() {\r\n this.showHideFullScreen('none', 'hide-content-wrapper', '0px', '0px', '0px', '98vh');\r\n }\r\n\r\n public hideFullScreen() {\r\n this.showHideFullScreen('block', 'show-content-wrapper', '0px', '0px', '2px', '93vh');\r\n }\r\n\r\n public showHideFullScreen(\r\n display: string,\r\n className: string,\r\n paddingTop: string,\r\n paddingBottom: string,\r\n marginTopMain: string,\r\n heightIframe: string\r\n ) {\r\n const sidebar = window.parent.document.getElementById('sidebar_left');\r\n if (sidebar) {\r\n if (display === 'block') {\r\n if (!sidebar.classList.contains('show-sidebar_left')) {\r\n sidebar.classList.add('show-sidebar_left');\r\n }\r\n } else if (display === 'none') {\r\n if (sidebar.classList.contains('show-sidebar_left')) {\r\n sidebar.classList.remove('show-sidebar_left');\r\n }\r\n }\r\n }\r\n const topbars = window.parent.document.getElementsByClassName('navbar-fixed-top');\r\n if (topbars && topbars.length > 0) {\r\n const topbar = topbars[0] as HTMLElement;\r\n topbar.style.display = display;\r\n }\r\n const contentWrapper = window.parent.document.getElementById('content_wrapper');\r\n if (contentWrapper) {\r\n contentWrapper.className = className;\r\n }\r\n\r\n const bodies = window.parent.document.getElementsByTagName('body');\r\n if (bodies && bodies.length > 0) {\r\n const body = bodies[0] as HTMLElement;\r\n body.style.paddingTop = paddingTop;\r\n body.style.paddingBottom = paddingBottom;\r\n if (display === 'block') {\r\n body.classList.remove('sidebar-hidden');\r\n body.classList.add('sidebar-ltr');\r\n } else if (display === 'none') {\r\n body.classList.remove('sidebar-ltr');\r\n body.classList.add('sidebar-hidden');\r\n }\r\n }\r\n const main = window.parent.document.getElementById('main');\r\n if (main) {\r\n main.style.marginTop = marginTopMain;\r\n }\r\n\r\n const iframes = window.parent.document.getElementsByClassName('processIFrameModule');\r\n if (iframes && iframes.length > 0) {\r\n const iframe = iframes[0] as HTMLElement;\r\n iframe.style.height = heightIframe;\r\n }\r\n\r\n const ck = window.document.getElementById('qmsckeditor');\r\n if (ck) {\r\n if (display === 'none') {\r\n if (!ck.classList.contains('qmsckeditor__fullscreen')) {\r\n ck.classList.add('qmsckeditor__fullscreen');\r\n }\r\n } else if (display === 'block') {\r\n if (ck.classList.contains('qmsckeditor__fullscreen')) {\r\n ck.classList.remove('qmsckeditor__fullscreen');\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorGlobalService {\r\n getApiUrlSubject = new BehaviorSubject<any>(null);\r\n\r\n constructor() { }\r\n\r\n setApiUrl(apiUrl: string) {\r\n this.getApiUrlSubject.next(apiUrl);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { QMSCKEditorBaseComponent } from '../qms-ckeditor-base.component';\r\nimport { QMSCKEditorGlobalService } from './qms-ckeditor-global.service';\r\n\r\n@Injectable()\r\nexport class QMSCKEditorBaseService extends QMSCKEditorBaseComponent {\r\n headers = new HttpHeaders();\r\n apiUrl: string;\r\n\r\n constructor(public http: HttpClient, private globalService: QMSCKEditorGlobalService) {\r\n super();\r\n this.globalService.getApiUrlSubject.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n this.apiUrl = res;\r\n })\r\n }\r\n\r\n protected get(url: string, params: any = {}): Observable<any> {\r\n return this.http.get(this.apiUrl + url, { headers: this.headers, params });\r\n }\r\n\r\n protected post(url: string, data: any): Observable<any> {\r\n return this.http.post(this.apiUrl + url, data, { headers: this.headers });\r\n }\r\n\r\n protected put(url: string, data: any): Observable<any> {\r\n return this.http.put(this.apiUrl + url, data, { headers: this.headers });\r\n }\r\n\r\n protected delete(url: string, params: any = {}): Observable<any> {\r\n return this.http.delete(this.apiUrl + url, { headers: this.headers, params });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { QMSCKEditorLinkAnchorDocument } from '../common/models/qms-ckeditor-link-anchor-document.model';\r\nimport QMSCKEditorLinkAttachment from '../common/models/qms-ckeditor-link-attachment.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorLinkService extends QMSCKEditorBaseService {\r\n public getAttachmentList(\r\n module: number,\r\n entityId: string,\r\n supportFileArchiveAttachments: boolean\r\n ): Observable<QMSCKEditorLinkAttachment[]> {\r\n return this.get('ckeditorLink/LinkAttachmentList', { module, entityId, supportFileArchiveAttachments });\r\n }\r\n\r\n public getAnchorDocumentList(documentId: number): Observable<QMSCKEditorLinkAnchorDocument[]> {\r\n return this.get('ckeditorLink/LinkAnchorDoucmentList', { documentId });\r\n }\r\n}\r\n","export default class QMSCKEditorParamter {\r\n module: number;\r\n entityId: string;\r\n}\r\n","export enum CKEditorModule {\r\n document = 1,\r\n process = 2,\r\n deviation = 3,\r\n risk = 4,\r\n checklist = 5,\r\n dashboard = 6\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport QMSCKEditorLinkAttachment from '../../../common/models/qms-ckeditor-link-attachment.model';\r\nimport { QMSCKEditorBaseComponent } from '../../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorLinkService } from '../../../services/qms-ckeditor-link.service';\r\nimport QMSCKEditorParamter from '../../../common/models/qms-ckeditor-parameter.model';\r\nimport { CKEditorModule } from '../../../common/enums/module.enum';\r\n\r\nexport interface LinkUrl {\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'link-attachment',\r\n templateUrl: './link-attachment.component.html',\r\n styleUrls: ['./link-attachment.component.scss']\r\n})\r\nexport class LinkAttachmentComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n module = 0;\r\n entityId = '';\r\n supportFileArchiveAttachments = false;\r\n attachments: QMSCKEditorLinkAttachment[] = [];\r\n linkUrl: LinkUrl;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private linkService: QMSCKEditorLinkService,\r\n public dialogRef: MatDialogRef<LinkAttachmentComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorParamter\r\n ) {\r\n super();\r\n this.module = data.module;\r\n this.entityId = data.entityId;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getAttachmentList(this.module, this.entityId, this.supportFileArchiveAttachments);\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getAttachmentList(module: number, itemId: string, supportFileArchiveAttachments: boolean) {\r\n this.linkService\r\n .getAttachmentList(module, itemId, supportFileArchiveAttachments)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.attachments = response;\r\n }\r\n });\r\n }\r\n\r\n onSelectedAttachment(extraId: string, fileName: string) {\r\n this.linkUrl = { url: '', title: '' };\r\n if (extraId) {\r\n if (this.module === CKEditorModule.document) {\r\n this.linkUrl.url = `/api/File/GetFile?entityId=${extraId}`;\r\n }\r\n else if (this.module === CKEditorModule.process) {\r\n this.linkUrl.url = `/api/processes/GetFileContents?fileId=${extraId}`;\r\n }\r\n this.linkUrl.title = fileName;\r\n }\r\n this.dialogRef.close(this.linkUrl);\r\n }\r\n}\r\n","export enum LinkAnchor {\r\n Blank = '',\r\n Attachment = 'Idattachment',\r\n Related = 'IdrelatedDocument'\r\n}\r\n","export enum LinkType {\r\n url = 0,\r\n anchorText = 1,\r\n email = 2,\r\n anchorDocument = 3\r\n}\r\n","export enum ProtocolType {\r\n http = 0,\r\n https = 1,\r\n fpt = 2,\r\n new = 3,\r\n other = 4\r\n}\r\n","export enum TargetType {\r\n new = 0,\r\n topmost = 1,\r\n same = 2,\r\n parent = 3\r\n}\r\n","export class QMSCKEditorRelation {\r\n isOnlyDocument: boolean;\r\n isEnableFolder: boolean;\r\n\r\n constructor() {\r\n this.isOnlyDocument = false;\r\n this.isEnableFolder = false;\r\n }\r\n}\r\n","export default class QMSCKEditorLink {\r\n typeId: number;\r\n targetId: number;\r\n protocolId: number;\r\n url: string;\r\n title: string;\r\n edit: boolean;\r\n editorContent: string;\r\n module: number;\r\n entityId: string;\r\n constructor() {\r\n this.typeId = 0;\r\n this.targetId = 0;\r\n this.protocolId = 0;\r\n this.url = '';\r\n this.title = '';\r\n this.edit = false;\r\n this.editorContent = '';\r\n this.entityId = '';\r\n }\r\n}\r\n","export enum QMSCKEditorDocumentType {\r\n document = 1,\r\n process = 2,\r\n area = 3,\r\n folder = 4\r\n}\r\n","export class TreeNode {\r\n children: TreeNode[];\r\n id: string;\r\n name: string;\r\n parentId?: string;\r\n}\r\n","import QMSCKEditorTree from '../models/qms-ckeditor-tree.model';\r\nimport { TreeNode } from '../models/qms-ckeditor-tree-node.model';\r\n\r\nlet objData = {};\r\n\r\nfunction buildArrayTree(obj: object, level: number): TreeNode[] {\r\n return Object.keys(obj).reduce<TreeNode[]>((accumulator, key) => {\r\n const value = obj[key];\r\n const node = new TreeNode();\r\n const index = key.indexOf('_');\r\n node.id = key.substr(0, index);\r\n node.name = key.substr(index + 1, key.length - index);\r\n\r\n if (value != null) {\r\n if (typeof value === 'object') {\r\n node.children = this.buildArrayTree(value, level + 1);\r\n } else {\r\n node.name = value;\r\n }\r\n }\r\n\r\n return accumulator.concat(node);\r\n }, []);\r\n}\r\n\r\nfunction buildObjectTree(arr: QMSCKEditorTree[]): object {\r\n objData = {};\r\n let objTreeData;\r\n const root = arr.filter((x: { parentId: string }) => {\r\n return x.parentId === '';\r\n });\r\n root.forEach((item) => {\r\n objTreeData = this.findParent(item.rootId, arr);\r\n });\r\n return objTreeData;\r\n}\r\n\r\nfunction findParent(id: string, array: QMSCKEditorTree[]) {\r\n const objParent = {};\r\n const parent = array.filter((x: { rootId: string }) => {\r\n return x.rootId === id;\r\n });\r\n\r\n parent.forEach((item) => {\r\n objParent[`${item.childId}_${item.childName}`] = null;\r\n });\r\n\r\n // find child\r\n const child = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n if (child.length > 0) {\r\n this.findChild(id, objParent, array);\r\n }\r\n\r\n // add node to tree\r\n objData[`${parent[0].rootId}_${parent[0].rootName}`] = objParent;\r\n return objData;\r\n}\r\n\r\nfunction findChild(id: string, objParent: object, array: QMSCKEditorTree[]) {\r\n const subNode = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n subNode.forEach((item) => {\r\n const processNode = {};\r\n processNode[`${item.childId}_${item.childName}`] = null;\r\n objParent[`${item.rootId}_${item.subName}`] = processNode;\r\n\r\n findChild(item.rootId, processNode, array);\r\n });\r\n}\r\n\r\nconst QMSCKEditorTreeFunctions = {\r\n buildArrayTree,\r\n buildObjectTree,\r\n findParent,\r\n findChild\r\n};\r\n\r\nexport default QMSCKEditorTreeFunctions;\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport QMSCKEditorTree from '../common/models/qms-ckeditor-tree.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorTreeService extends QMSCKEditorBaseService {\r\n public getDocumentList(): Observable<QMSCKEditorTree[]> {\r\n return this.get('ckeditorTree/GetDocumentList');\r\n }\r\n\r\n public getProcessList(): Observable<QMSCKEditorTree[]> {\r\n return this.get('ckeditorTree/GetProcessList');\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDocumentType } from '../../common/enums/document-type.enum';\r\nimport QMSCKEditorTreeFunctions from '../../common/functions/tree.function';\r\nimport { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';\r\nimport { TreeNode } from '../../common/models/qms-ckeditor-tree-node.model';\r\nimport QMSCKEditorTree from '../../common/models/qms-ckeditor-tree.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTreeService } from '../../services/qms-ckeditor-tree.service';\r\n\r\nexport interface Related {\r\n id: number;\r\n name: string;\r\n type: number;\r\n}\r\n\r\nexport interface SelectedNode {\r\n id: string;\r\n type: number;\r\n}\r\n\r\nexport interface LinkUrl {\r\n id: string;\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './qmsckeditor-related.component.html',\r\n styleUrls: ['./qmsckeditor-related.component.scss']\r\n})\r\nexport class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n selectedNode: SelectedNode;\r\n linkUrl: LinkUrl;\r\n documentType: QMSCKEditorDocumentType;\r\n processData: QMSCKEditorTree[];\r\n documentData: QMSCKEditorTree[];\r\n filterData: QMSCKEditorTree[];\r\n treeDataFile: object;\r\n treeProcessFile: object;\r\n treeDocumentFile: object;\r\n treeProcessData: TreeNode[];\r\n treeDocumentData: TreeNode[];\r\n processNumber = -1;\r\n listParentProcessId = {};\r\n listParentDocumentId = {};\r\n\r\n myControl = new FormControl();\r\n filteredOptions = [];\r\n isInputValue = false;\r\n isOnlyDocument = false;\r\n isEnableFolder = false;\r\n areaOfCurrentProcess: string;\r\n\r\n constructor(\r\n private treeService: QMSCKEditorTreeService,\r\n private translate: TranslateLibraryService,\r\n private dialogRef: MatDialogRef<QMSCKEditorRelatedComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorRelation\r\n ) {\r\n super();\r\n this.isOnlyDocument = data.isOnlyDocument;\r\n this.isEnableFolder = data.isEnableFolder;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.selectedNode = { id: '', type: 0 };\r\n this.getProcessAndDocumentData();\r\n this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {\r\n this.isInputValue = true;\r\n this.filteredOptions = this.onSearchRelated(val);\r\n });\r\n }\r\n\r\n getProcessAndDocumentData() {\r\n forkJoin([this.getProcessData(), this.getDocumentData()])\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe(([p, d]) => {\r\n this.mappingData(p, 2);\r\n this.mappingData(d, 1);\r\n\r\n // for process\r\n this.filterData = this.processData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n this.treeDataFile = QMSCKEditorTreeFunctions.buildObjectTree(this.filterData);\r\n this.treeProcessData = QMSCKEditorTreeFunctions.buildArrayTree(this.treeDataFile, 0);\r\n // for document\r\n this.filterData = this.documentData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n this.treeDataFile = QMSCKEditorTreeFunctions.buildObjectTree(this.filterData);\r\n this.treeDocumentData = QMSCKEditorTreeFunctions.buildArrayTree(this.treeDataFile, 0);\r\n });\r\n }\r\n\r\n getProcessData() {\r\n return this.treeService.getProcessList().pipe(takeUntil(this.ngUnsubcribe));\r\n }\r\n\r\n getDocumentData() {\r\n return this.treeService.getDocumentList().pipe(takeUntil(this.ngUnsubcribe));\r\n }\r\n\r\n mappingData(array: QMSCKEditorTree[], dataType: number) {\r\n if (array) {\r\n if (dataType === 1) {\r\n this.documentData = array.map((item) => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentDocumentId[item.parentId] = 1;\r\n }\r\n if (!!item.childId && item.childId.length > 0) {\r\n this.listParentDocumentId[item.rootId] = 1;\r\n }\r\n return {\r\n rootId: item.rootId,\r\n parentId: item.parentId,\r\n rootName: item.rootName,\r\n subName: item.subName,\r\n childId: item.childId,\r\n childName: item.childName,\r\n statusId: item.statusId,\r\n displayId: item.displayId\r\n };\r\n });\r\n } else if (dataType === 2) {\r\n this.processData = array.filter((item) => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentProcessId[item.parentId] = 1;\r\n }\r\n if (item.childId && item.childId.length > 0) {\r\n this.listParentProcessId[item.rootId] = 1;\r\n }\r\n if (Number(item.displayId) === this.processNumber) {\r\n item.childId = '';\r\n item.childName = '';\r\n this.areaOfCurrentProcess = item.rootId;\r\n }\r\n return {\r\n rootId: item.rootId,\r\n parentId: item.parentId,\r\n rootName: item.rootName,\r\n subName: item.subName,\r\n childId: item.childId,\r\n childName: item.childName,\r\n statusId: item.statusId,\r\n displayId: item.displayId\r\n };\r\n });\r\n }\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onAddDocumentProcess() {\r\n let data: QMSCKEditorTree;\r\n this.linkUrl = { id: '', url: '', title: '' };\r\n switch (this.selectedNode.type) {\r\n case QMSCKEditorDocumentType.document:\r\n data = this.documentData.find((e) => {\r\n return e.childId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/document/${data.childId}`;\r\n this.linkUrl.title = data.childName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.process:\r\n data = this.processData.find((e) => {\r\n return e.childId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/process-detail/${data.displayId}`;\r\n this.linkUrl.title = data.childName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.area:\r\n data = this.processData.find((e) => {\r\n return e.rootId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/area/detail/${data.rootId}`;\r\n this.linkUrl.title = data.rootName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.folder:\r\n data = this.documentData.find((e) => {\r\n return e.rootId === this.selectedNode.id;\r\n });\r\n\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/folder/${data.rootId}`;\r\n this.linkUrl.title = data.rootName;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n this.dialogRef.close(this.linkUrl);\r\n }\r\n\r\n selectAreaNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.area;\r\n }\r\n\r\n selectProcessNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.process;\r\n }\r\n\r\n selectDocumentNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.document;\r\n }\r\n\r\n selectHandbookNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.folder;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isMatchTrue(arr: any[], arr2: any[]) {\r\n return arr.every((i) => {\r\n return arr2.includes(i);\r\n });\r\n }\r\n\r\n onSearchRelated(_val: string) {\r\n const arr: Related[] = [];\r\n let data = [];\r\n if (typeof _val !== 'string') {\r\n return arr;\r\n }\r\n const val = _val\r\n .trim()\r\n .split(' ')\r\n .map((v) => {\r\n return v.toLowerCase();\r\n });\r\n if (!val || val.length === 0) {\r\n return arr;\r\n }\r\n\r\n if (!this.isOnlyDocument) {\r\n data = this.processData.filter((item) => {\r\n const tempArr = item.childName.split(' ').map((v) => {\r\n return v.toLowerCase();\r\n });\r\n return this.isMatchTrue(val, tempArr);\r\n });\r\n\r\n if (data) {\r\n data.forEach((element) => {\r\n arr.push({\r\n id: element.childId,\r\n name: element.childName,\r\n type: 2\r\n });\r\n });\r\n }\r\n }\r\n\r\n data = this.documentData.filter((item) => {\r\n const tempArr = item.childName.split(' ').map((v) => {\r\n return v.toLowerCase();\r\n });\r\n return this.isMatchTrue(val, tempArr);\r\n });\r\n\r\n if (data) {\r\n data.forEach((element) => {\r\n arr.push({\r\n id: element.childId,\r\n name: element.childName,\r\n type: 1\r\n });\r\n });\r\n }\r\n this.setResultHeight(arr);\r\n return arr;\r\n }\r\n\r\n displayRelated(related?: Related): string | undefined {\r\n return related ? related.name : undefined;\r\n }\r\n\r\n selectRelated(id: string, type: number) {\r\n this.selectedNode = { id, type };\r\n this.onAddDocumentProcess();\r\n }\r\n\r\n setResultHeight(arr?: Related[]) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports) {\r\n let iHeight = 0;\r\n const view = viewreports[0] as HTMLElement;\r\n if (arr.length * 5 > 50) {\r\n iHeight = 51;\r\n } else {\r\n iHeight = arr.length * 5 + 1;\r\n if (iHeight > 0) {\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = true;\r\n }\r\n }\r\n view.style.height = `${iHeight}vh`;\r\n view.style.display = 'block';\r\n }\r\n }\r\n\r\n hideSearchResult() {\r\n if (this.filteredOptions && this.filteredOptions.length > 0) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports && viewreports.length) {\r\n const view = viewreports[0] as HTMLElement;\r\n view.style.display = 'none';\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = false;\r\n }\r\n }\r\n }\r\n\r\n showSearchResult() {\r\n if (this.filteredOptions && this.filteredOptions.length) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports && viewreports.length) {\r\n const view = viewreports[0] as HTMLElement;\r\n if (view.style.display === 'none') {\r\n view.style.display = 'block';\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = true;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { LinkAnchor } from '../../common/enums/link-anchor.enum';\r\nimport { LinkType } from '../../common/enums/link-type.enum';\r\nimport { ProtocolType } from '../../common/enums/protocol-type.enum';\r\nimport { TargetType } from '../../common/enums/target-type.enum';\r\nimport { QMSCKEditorLinkAnchorDocument } from '../../common/models/qms-ckeditor-link-anchor-document.model';\r\nimport QMSCKEditorParamter from '../../common/models/qms-ckeditor-parameter.model';\r\nimport { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';\r\nimport QMSCKEditorLink from '../../common/models/qms-ckeditor-url.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorLinkService } from '../../services/qms-ckeditor-link.service';\r\nimport { QMSCKEditorRelatedComponent } from '../qms-ckeditor-relation/qmsckeditor-related.component';\r\nimport { LinkAttachmentComponent } from './attachments/link-attachment.component';\r\n\r\ninterface ILinkType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface ITarget {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface IProtocol {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface IAnchor {\r\n value: number;\r\n viewValue: string;\r\n anchorValue: string;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-ckeditor-link',\r\n templateUrl: './qms-ckeditor-link.component.html',\r\n styleUrls: ['./qms-ckeditor-link.component.scss']\r\n})\r\nexport class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n linkFormGroup: FormGroup = new FormGroup({\r\n targetList: new FormControl(),\r\n protocolList: new FormControl(),\r\n url: new FormControl('', [Validators.required]),\r\n advisoryTitle: new FormControl()\r\n });\r\n anchorTextFormGroup: FormGroup = new FormGroup({\r\n anchorText: new FormControl('', [Validators.required])\r\n });\r\n emailFormGroup: FormGroup = new FormGroup({\r\n emailAddress: new FormControl('', [Validators.required]),\r\n emailSubject: new FormControl('', [Validators.required]),\r\n emailBody: new FormControl('', [Validators.required])\r\n });\r\n anchorDocFormGroup: FormGroup = new FormGroup({\r\n anchorTitle: new FormControl('', [Validators.required]),\r\n anchorByName: new FormControl('', [Validators.required])\r\n });\r\n isExpanded = true;\r\n linkTypes: ILinkType[] = [];\r\n targets: ITarget[] = [];\r\n protocols: IProtocol[] = [];\r\n anchorDocuments: QMSCKEditorLinkAnchorDocument[] = [];\r\n anchors: IAnchor[];\r\n editorAnchors: IAnchor[];\r\n documentAnchors: IAnchor[];\r\n editorContent = '';\r\n selectedLink = 0;\r\n selectedTarget = 0;\r\n selectedProtocol = 0;\r\n url = '';\r\n advisoryTitle = '';\r\n edit = false;\r\n anchorText = '';\r\n emailAddress = '';\r\n emailSubject = '';\r\n emailBody = '';\r\n documentId = 0;\r\n anchorTitle = '';\r\n anchorByName = '';\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private linkService: QMSCKEditorLinkService,\r\n public dialogRef: MatDialogRef<QMSCKEditorLinkComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorLink\r\n ) {\r\n super();\r\n this.selectedLink = data.typeId;\r\n this.selectedTarget = data.targetId;\r\n this.selectedProtocol = data.protocolId;\r\n this.url = data.url;\r\n this.advisoryTitle = data.title;\r\n this.edit = data.edit;\r\n this.editorContent = data.editorContent;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.initLinkType();\r\n this.initTarget();\r\n this.initProtocol();\r\n this.initAnchor();\r\n if (this.data.edit) {\r\n this.parseLinkUrl(this.selectedLink, this.url);\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n initLinkType() {\r\n if (this.linkTypes) {\r\n this.linkTypes.push({ id: LinkType.url, name: this.LANG.QMSCKEDITOR.LINK_URL });\r\n this.linkTypes.push({\r\n id: LinkType.anchorText,\r\n name: this.LANG.QMSCKEDITOR.LINK_ANCHOR_IN_TEXT\r\n });\r\n this.linkTypes.push({ id: LinkType.email, name: this.LANG.QMSCKEDITOR.LINK_EMAIL });\r\n this.linkTypes.push({\r\n id: LinkType.anchorDocument,\r\n name: this.LANG.QMSCKEDITOR.LINK_ANCHOR_DOCUMENT\r\n });\r\n }\r\n }\r\n\r\n initTarget() {\r\n if (this.targets) {\r\n this.targets.push({ id: TargetType.new, name: this.LANG.QMSCKEDITOR.TARTGET_NEW });\r\n this.targets.push({ id: TargetType.topmost, name: this.LANG.QMSCKEDITOR.TARGET_TOPMOST });\r\n this.targets.push({ id: TargetType.same, name: this.LANG.QMSCKEDITOR.TARGET_SAME });\r\n this.targets.push({ id: TargetType.parent, name: this.LANG.QMSCKEDITOR.TARGET_PARENT });\r\n }\r\n }\r\n\r\n initProtocol() {\r\n if (this.protocols) {\r\n this.protocols.push({ id: ProtocolType.http, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTP });\r\n this.protocols.push({ id: ProtocolType.https, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTPS });\r\n this.protocols.push({ id: ProtocolType.fpt, name: this.LANG.QMSCKEDITOR.PROTOCOL_FTP });\r\n this.protocols.push({ id: ProtocolType.new, name: this.LANG.QMSCKEDITOR.PROTOCOL_NEW });\r\n this.protocols.push({ id: ProtocolType.other, name: this.LANG.QMSCKEDITOR.PROTOCOL_OTHER });\r\n }\r\n }\r\n\r\n initAnchor() {\r\n this.anchors = [];\r\n this.anchors = [{ value: 0, viewValue: '', anchorValue: LinkAnchor.Blank }];\r\n }\r\n\r\n parseLinkUrl(typeId: number, url: string) {\r\n if (typeId === LinkType.anchorText) {\r\n this.getEditorAnchor();\r\n this.anchorText = url.substr(1);\r\n } else if (typeId === LinkType.email) {\r\n const p1 = url.indexOf('mailto:');\r\n const p2 = url.indexOf('?subject=');\r\n const p3 = url.indexOf('&body=');\r\n this.emailAddress = url.substr(p1 + 7, p2 - 7);\r\n this.emailSubject = url.substr(p2 + 9, p3 - p2 - 9);\r\n this.emailBody = url.substr(p3 + 6, url.length - p3 - 6);\r\n } else if (typeId === LinkType.anchorDocument) {\r\n const flashIndex = url.lastIndexOf('/');\r\n const hashIndex = url.indexOf('#');\r\n const sId = url.substr(flashIndex + 1, hashIndex - 1 - flashIndex);\r\n const documentId = parseInt(sId, 10);\r\n this.getAnchorDocument(documentId);\r\n this.anchorByName = url.substr(hashIndex + 1, url.length - hashIndex);\r\n this.anchorTitle = this.data.title;\r\n }\r\n }\r\n\r\n onSelectedLinkType() {\r\n if (this.selectedLink === LinkType.anchorText) {\r\n this.getEditorAnchor();\r\n } else if (this.selectedLink === LinkType.anchorDocument) {\r\n if (!this.documentAnchors) {\r\n this.anchorDocuments = [];\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n }\r\n }\r\n }\r\n\r\n eHandbook(isOnlyDocument: boolean, isAnchorDocument: boolean) {\r\n const data = new QMSCKEditorRelation();\r\n data.isOnlyDocument = isOnlyDocument;\r\n data.isEnableFolder = !isOnlyDocument;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorRelatedComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n if (!isAnchorDocument) {\r\n this.url = result.url;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n this.selectedProtocol = ProtocolType.other;\r\n } else {\r\n this.documentId = result.id;\r\n this.anchorTitle = `${result.title}(${result.id})`;\r\n this.getAnchorDocument(result.id);\r\n }\r\n }\r\n });\r\n }\r\n\r\n attachment() {\r\n const data = new QMSCKEditorParamter();\r\n data.module = this.data.module;\r\n data.entityId = this.data.entityId;\r\n const dialogTemplate = this.dialog.open(LinkAttachmentComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.url = result.url;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n this.selectedProtocol = ProtocolType.other;\r\n }\r\n });\r\n }\r\n\r\n getEditorAnchor() {\r\n this.anchorDocuments = [];\r\n if (this.editorContent) {\r\n this.anchorDocuments.push({\r\n id: 0,\r\n entityId: 0,\r\n documentId: 0,\r\n documentTypeId: 0,\r\n richText: this.editorContent\r\n });\r\n }\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.editorAnchors = this.anchors;\r\n }\r\n\r\n getAnchorDocument(documentId: number) {\r\n this.linkService\r\n .getAnchorDocumentList(documentId)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.anchorDocuments = res;\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n } else {\r\n this.anchorDocuments = [];\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n }\r\n });\r\n }\r\n\r\n setAnchorDocument(anchorDocument: QMSCKEditorLinkAnchorDocument[]) {\r\n this.initAnchor();\r\n let id = 3;\r\n if (anchorDocument) {\r\n anchorDocument.forEach((e) => {\r\n const div = document.createElement('div');\r\n div.innerHTML = e.richText;\r\n const domContent = div;\r\n const aTags = domContent.getElementsByTagName('a');\r\n if (aTags) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < aTags.length; i++) {\r\n const tag = aTags[i];\r\n if (tag.name) {\r\n const index = this.anchors.findIndex((x) => {\r\n return x.anchorValue === tag.name;\r\n });\r\n if (index < 0) {\r\n this.anchors.push({\r\n value: id,\r\n viewValue: tag.name,\r\n anchorValue: tag.name\r\n });\r\n id += 1;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n this.anchors.push({\r\n value: 1,\r\n viewValue: this.LANG.QMSCKEDITOR.ANCHOR_ATTACHMENT,\r\n anchorValue: LinkAnchor.Attachment\r\n });\r\n this.anchors.push({\r\n value: 2,\r\n viewValue: this.LANG.QMSCKEDITOR.ANCHOR_RELATED_DOCUMENT,\r\n anchorValue: LinkAnchor.Related\r\n });\r\n }\r\n\r\n disableOkButton() {\r\n let isDisable = false;\r\n switch (this.selectedLink) {\r\n case LinkType.url:\r\n isDisable = this.linkFormGroup.invalid;\r\n break;\r\n case LinkType.anchorText:\r\n isDisable = this.anchorTextFormGroup.invalid;\r\n break;\r\n case LinkType.email:\r\n isDisable = this.emailFormGroup.invalid;\r\n break;\r\n case LinkType.anchorDocument:\r\n isDisable = this.anchorDocFormGroup.invalid;\r\n break;\r\n default:\r\n break;\r\n }\r\n return isDisable;\r\n }\r\n\r\n setLink() {\r\n const link = new QMSCKEditorLink();\r\n link.typeId = this.selectedLink;\r\n link.targetId = this.selectedTarget;\r\n link.protocolId = this.selectedProtocol;\r\n if (this.selectedLink === LinkType.url) {\r\n link.url = `${this.selectedLink}${this.selectedProtocol}${this.url}`;\r\n link.title = this.advisoryTitle;\r\n } else if (this.selectedLink === LinkType.anchorText) {\r\n link.url = `${this.selectedLink}${0}#${this.anchorText}`;\r\n link.title = `#${this.anchorText}`;\r\n link.targetId = TargetType.topmost;\r\n } else if (this.selectedLink === LinkType.email) {\r\n link.url = `${this.selectedLink}${0}mailto:${this.emailAddress}?subject=${this.emailSubject}&body=${this.emailBody\r\n }`;\r\n link.title = this.emailAddress;\r\n link.targetId = TargetType.topmost;\r\n } else if (this.selectedLink === LinkType.anchorDocument) {\r\n link.url = `${this.selectedLink}${0}/document/${this.documentId}#${this.anchorByName}`;\r\n link.title = this.anchorTitle;\r\n link.targetId = TargetType.topmost;\r\n }\r\n this.dialogRef.close(link);\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Injectable, Injector } from '@angular/core';\r\n\r\n// @dynamic\r\nexport class QMSCKEditorInjector {\r\n private static injector: Injector;\r\n\r\n static setInjector(injector: Injector) {\r\n QMSCKEditorInjector.injector = injector;\r\n }\r\n\r\n static getInjector(): Injector {\r\n return QMSCKEditorInjector.injector;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static getService(type: any) {\r\n const injector = QMSCKEditorInjector.getInjector();\r\n const service = injector.get(type);\r\n return service;\r\n }\r\n}\r\n","import {\r\n MatSnackBar,\r\n MatSnackBarConfig,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from '@angular/material/snack-bar';\r\nimport { QMSCKEditorInjector } from '../../services/qms-ckeditor-injector.service';\r\n\r\nexport class QMSCKEditorToastService {\r\n static horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n\r\n static verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n static actionButtonLabel = 'Close';\r\n\r\n static action = true;\r\n\r\n static setAutoHide = true;\r\n\r\n static autoHide = 3000;\r\n\r\n static success(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = this.setAutoHide ? this.autoHide : 0;\r\n config.panelClass = ['toast-success'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static warning(msg, duration?: number) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = duration || (this.setAutoHide ? this.autoHide : 0);\r\n config.panelClass = ['toast-warning'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static info(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = this.setAutoHide ? this.autoHide : 0;\r\n config.panelClass = ['toast-infor'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static error(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = 0;\r\n config.panelClass = ['toast-error'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n}\r\n","export class QMSCKEditorTemplate {\r\n id: number;\r\n title: string;\r\n description: string;\r\n content: string;\r\n deleted: boolean;\r\n createdBy: number;\r\n edit: boolean;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.title = '';\r\n this.description = '';\r\n this.content = '';\r\n this.deleted = false;\r\n this.createdBy = 0;\r\n this.edit = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { QMSCKEditorTemplate } from '../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorTemplateService extends QMSCKEditorBaseService {\r\n public deleteTemplate(id: number): Observable<boolean> {\r\n return this.delete('ckeditorTemplate/DeleteTemplate', { id });\r\n }\r\n public getTemplate(): Observable<QMSCKEditorTemplate[]> {\r\n return this.get('ckeditorTemplate/GetTemplateList');\r\n }\r\n\r\n public modifyTemplate(template: QMSCKEditorTemplate): Observable<boolean> {\r\n return this.post('ckeditorTemplate/ModifyTemplate', template);\r\n }\r\n}\r\n","import { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDialogData } from '../../common/models/qms-ckeditor-dialog.model';\r\nimport { QMSCKEditorConfirmComponent } from '../../common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorToastService } from '../../common/toast/qms-ckeditor-toast.service';\r\nimport { QMSCKEditorTemplate } from '../../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTemplateService } from '../../services/qms-ckedtior-template.service';\r\n\r\ninterface ITemplate {\r\n id: number;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-qmsck-template',\r\n templateUrl: './qms-ckeditor-template.component.html',\r\n styleUrls: ['./qms-ckeditor-template.component.scss']\r\n})\r\nexport class QMSCKEditorTemplateComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n templateFormGroup: FormGroup = new FormGroup({\r\n templateList: new FormControl(),\r\n title: new FormControl('', [Validators.required]),\r\n description: new FormControl('', [Validators.required])\r\n });\r\n isExpanded = true;\r\n content: string;\r\n templateList: QMSCKEditorTemplate[] = [];\r\n templates: ITemplate[] = [];\r\n template = new QMSCKEditorTemplate();\r\n selectedId = 0;\r\n isEdit = false;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private templateService: QMSCKEditorTemplateService,\r\n public dialogRef: MatDialogRef<QMSCKEditorTemplateComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorTemplate\r\n ) {\r\n super();\r\n this.content = data.content;\r\n this.selectedId = data.id;\r\n this.isEdit = data.edit;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getTemplate();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getTemplate() {\r\n this.templateService\r\n .getTemplate()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.templateList = response;\r\n this.templates = response.map((x) => {\r\n return {\r\n id: x.id,\r\n title: x.title\r\n };\r\n });\r\n this.addNoneTemplate(this.templates);\r\n } else {\r\n this.addNoneTemplate(this.templates);\r\n }\r\n\r\n if (this.isEdit && this.selectedId !== 0) {\r\n this.onSelectChange();\r\n }\r\n });\r\n }\r\n\r\n addNoneTemplate(template: ITemplate[]) {\r\n if (template && !this.isEdit) {\r\n template.unshift({\r\n id: 0,\r\n title: this.LANG.QMSCKEDITOR.CREATE_NEW_TEMPLATE\r\n });\r\n }\r\n }\r\n\r\n onSelectChange() {\r\n if (this.selectedId === 0) {\r\n this.template.id = this.selectedId;\r\n this.template.title = '';\r\n this.template.description = '';\r\n this.template.content = this.content;\r\n this.template.deleted = false;\r\n this.template.createdBy = 0;\r\n } else if (this.templateList.length > 0) {\r\n const index = this.templateList.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n this.template.id = this.templateList[index].id;\r\n this.template.title = this.templateList[index].title;\r\n this.template.description = this.templateList[index].description;\r\n this.template.content = this.templateList[index].content;\r\n this.template.deleted = this.templateList[index].deleted;\r\n this.template.createdBy = this.templateList[index].createdBy;\r\n }\r\n }\r\n\r\n deleteTemplate() {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.DELETE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templateService\r\n .deleteTemplate(this.selectedId)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n if (index >= 0) {\r\n this.templates.splice(index, 1);\r\n }\r\n this.selectedId = 0;\r\n this.onSelectChange();\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n saveTemplate() {\r\n if (this.selectedId === 0) {\r\n this.template.content = this.content;\r\n }\r\n this.templateService\r\n .modifyTemplate(this.template)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n if (index >= 0 && this.selectedId !== 0) {\r\n this.templates[index].title = this.template.title;\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);\r\n }\r\n });\r\n }\r\n\r\n cancelTemplate() {\r\n this.dialogRef.close();\r\n }\r\n\r\n updateTemplate() {\r\n this.templateService\r\n .modifyTemplate(this.template)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n if (this.isEdit) {\r\n this.dialogRef.close(this.template);\r\n } else {\r\n let index = this.templates.findIndex((x) => {\r\n return x.id === this.template.id;\r\n });\r\n if (index >= 0) {\r\n this.templates[index].title = this.template.title;\r\n }\r\n index = this.templateList.findIndex((x) => {\r\n return x.id === this.template.id;\r\n });\r\n if (index >= 0) {\r\n this.templateList[index].description = this.template.description;\r\n }\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDialogData } from '../../common/models/qms-ckeditor-dialog.model';\r\nimport { QMSCKEditorConfirmComponent } from '../../common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorToastService } from '../../common/toast/qms-ckeditor-toast.service';\r\nimport { QMSCKEditorTemplate } from '../../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTemplateService } from '../../services/qms-ckedtior-template.service';\r\nimport { QMSCKEditorTemplateComponent } from '../qms-ckeditor-template/qms-ckeditor-template.component';\r\n\r\n@Component({\r\n selector: 'app-qmsck-load-template',\r\n templateUrl: './qms-ckeditor-load-template.component.html',\r\n styleUrls: ['./qms-ckeditor-load-template.component.scss']\r\n})\r\nexport class QMSCKEditorLoadTemplateComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n templates: QMSCKEditorTemplate[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private templateService: QMSCKEditorTemplateService,\r\n public dialogRef: MatDialogRef<QMSCKEditorLoadTemplateComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: string\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getTemplate();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getTemplate() {\r\n this.templateService\r\n .getTemplate()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.templates = response;\r\n }\r\n });\r\n }\r\n\r\n onSelectTemplate(id: number) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.CHANGE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_CHANGE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n const content = this.templates[index].content;\r\n this.dialogRef.close(content);\r\n }\r\n });\r\n }\r\n\r\n onEditTemplate(id: number) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n const data: QMSCKEditorTemplate = new QMSCKEditorTemplate();\r\n data.id = this.templates[index].id;\r\n data.content = this.templates[index].content;\r\n data.edit = true;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTemplateComponent, {\r\n width: '650px',\r\n height: '500px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templates[index].title = result.title;\r\n this.templates[index].description = result.description;\r\n }\r\n });\r\n }\r\n\r\n onDeleteTemplate(id: number) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.DELETE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templateService\r\n .deleteTemplate(id)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n if (index >= 0) {\r\n this.templates.splice(index, 1);\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","import { QMSCKEditorToastService } from '../toast/qms-ckeditor-toast.service';\r\nexport class UploadAdapter {\r\n loader: any;\r\n constructor(loader) {\r\n this.loader = loader;\r\n }\r\n\r\n upload() {\r\n return this.loader.file\r\n .then((file) => {\r\n return new Promise((resolve, reject) => {\r\n const myReader = new FileReader();\r\n myReader.onloadend = () => {\r\n resolve({ default: myReader.result });\r\n };\r\n // if (file.size > 512000) {\r\n // const msg = `${file.name} is more than 500kb. Sorry, it has to be less than or equal to 500kb`;\r\n // QMSCKEditorToastService.error(msg);\r\n // reject();\r\n // }\r\n myReader.readAsDataURL(file);\r\n });\r\n })\r\n .catch((error) => {\r\n throw error;\r\n });\r\n }\r\n}\r\n","export class CKEditorEventConst {\r\n public static QMSCK_FULLSCREEN_PLUGIN_MSG = 'QMSCK_FULLSCREEN_PLUGIN_MSG';\r\n public static QMSCK_TEMPLATE_PLUGIN_MSG = 'QMSCK_TEMPLATE_PLUGIN_MSG';\r\n public static QMSCK_LOAD_TEMPLATE_PLUGIN_MSG = 'QMSCK_LOAD_TEMPLATE_PLUGIN_MSG';\r\n public static QMSCK_LOAD_TEMPLATE_PLUGIN_RESP = 'QMSCK_LOAD_TEMPLATE_PLUGIN_RESP';\r\n public static QMSCK_LINK_PLUGIN_MSG = 'QMSCK_LINK_PLUGIN_MSG';\r\n public static QMSCK_LINK_PLUGIN_RESP = 'QMSCK_LINK_PLUGIN_RESP';\r\n public static QMSCK_TOOLTIP_PLUGIN_MSG = 'QMSCK_TOOLTIP_PLUGIN_MSG';\r\n public static QMSCK_TOOLTIP_PLUGIN_RESP = 'QMSCK_TOOLTIP_PLUGIN_RESP';\r\n}\r\n","var IFRAME_SRC = '//cdn.iframe.ly/api/iframe';\r\nvar API_KEY = 'b499e92e857f435c39c14d';\r\n\r\nfunction getCKEditorConfiguration(itemToolbar: string) {\r\n const ckeditorConfig = {\r\n toolbar: {\r\n items: [\r\n ],\r\n viewportTopOffset: 30,\r\n shouldNotGroupWhenFull: true\r\n },\r\n language: 'en',\r\n table: {\r\n contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells']\r\n },\r\n image: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n toolbar: [\r\n 'imageResize:25',\r\n 'imageResize:50',\r\n 'imageResize:75',\r\n 'imageResize:original',\r\n 'imageStyle:alignLeft',\r\n 'imageStyle:alignCenter',\r\n 'imageStyle:alignRight',\r\n '|',\r\n 'imageTextAlternative',\r\n '|',\r\n 'linkImage'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'imageResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'imageResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'imageResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'imageResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'medium'\r\n }\r\n ]\r\n },\r\n video: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'videoResize',\r\n '|',\r\n 'videoResize:25',\r\n 'videoResize:50',\r\n 'videoResize:75',\r\n 'videoResize:original',\r\n 'videoStyle:alignLeft',\r\n 'videoStyle:alignCenter',\r\n 'videoStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'videoResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'videoResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'videoResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'videoResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ]\r\n },\r\n media: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'mediaResize',\r\n '|',\r\n 'mediaResize:25',\r\n 'mediaResize:50',\r\n 'mediaResize:75',\r\n 'mediaResize:original',\r\n 'mediaStyle:alignLeft',\r\n 'mediaStyle:alignCenter',\r\n 'mediaStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'mediaResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'mediaResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'mediaResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'mediaResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ]\r\n },\r\n // Configure 'mediaEmbed' with Iframely previews.\r\n mediaEmbed: {\r\n // Previews are always enabled if there’s a provider for a URL (below regex catches all URLs)\r\n // By default `previewsInData` are disabled, but let’s set it to `false` explicitely to be sure\r\n previewsInData: true,\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'mediaResize',\r\n '|',\r\n 'mediaResize:25',\r\n 'mediaResize:50',\r\n 'mediaResize:75',\r\n 'mediaResize:original',\r\n 'mediaStyle:alignLeft',\r\n 'mediaStyle:alignCenter',\r\n 'mediaStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'mediaResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'mediaResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'mediaResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'mediaResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ],\r\n // providers: [\r\n // {\r\n // // hint: this is just for previews. Get actual HTML codes by making API calls from your CMS\r\n // name: 'iframely previews',\r\n // // Match all URLs or just the ones you need:\r\n // url: /.+/,\r\n\r\n // html: match => {\r\n // const url = match[0];\r\n\r\n // var iframeUrl = IFRAME_SRC + '?app=1&api_key=' + API_KEY + '&url=' + encodeURIComponent(url);\r\n // // alternatively, use &key= instead of &api_key with the MD5 hash of your api_key\r\n // // more about it: https://iframely.com/docs/allow-origins\r\n\r\n // return (\r\n // // If you need, set maxwidth and other styles for 'iframely-embed' class - it's yours to customize\r\n // '<div class=\"iframely-embed\">' +\r\n // '<div class=\"iframely-responsive\">' +\r\n // `<iframe src=\"${iframeUrl}\" ` +\r\n // 'frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen>' +\r\n // '</iframe>' +\r\n // '</div>' +\r\n // '</div>'\r\n // );\r\n // }\r\n // }\r\n // ]\r\n },\r\n link: {\r\n addTargetToExternalLinks: false,\r\n decorators: [\r\n {\r\n mode: 'manual',\r\n label: 'New window',\r\n attributes: {\r\n target: '_blank',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Topmost window',\r\n attributes: {\r\n target: '_top',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Same window',\r\n attributes: {\r\n target: '_self',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Parent window',\r\n attributes: {\r\n target: '_parent',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n // alway put this one a the bottom\r\n mode: 'manual',\r\n label: 'Select range',\r\n attributes: {\r\n selectedRange: true\r\n }\r\n }\r\n ]\r\n }\r\n };\r\n\r\n if (itemToolbar) {\r\n const itemArray = itemToolbar.split(',');\r\n itemArray.forEach(i => {\r\n ckeditorConfig.toolbar.items.push(i);\r\n });\r\n }\r\n\r\n return ckeditorConfig;\r\n}\r\n\r\nconst CKEditorCommonFunctions = {\r\n getCKEditorConfiguration\r\n};\r\nexport default CKEditorCommonFunctions;\r\n","export class QMSCKEditorTooltip {\r\n text: string;\r\n content: string;\r\n ckEditor:any;\r\n \r\n constructor() {\r\n this.text = '';\r\n this.content = '';\r\n }\r\n }\r\n ","import { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators, Validator } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTooltip } from '../../models/qms-ckeditor-tooltip.model';\r\n//import * as customEditor from '../../../../assets/qms-ckeditor-plugin/build/ckEditor';\r\nimport CKEditorCommonFunctions from '../../common/functions/common.function';\r\n\r\ninterface ITooltip {\r\n text: string;\r\n content: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-qmsck-tooltip',\r\n templateUrl: './qms-ckeditor-tooltip.component.html',\r\n styleUrls: ['./qms-ckeditor-tooltip.component.scss']\r\n})\r\nexport class QMSCKEditorTooltipComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n tooltipFormGroup: FormGroup = new FormGroup({\r\n title: new FormControl('', [Validators.required]),\r\n content: new FormControl('', [Validators.required])\r\n });\r\n tooltip: ITooltip;\r\n editor: any;\r\n editorConfig: any;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<QMSCKEditorTooltipComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorTooltip\r\n ) {\r\n super();\r\n this.tooltip = { text: data.text, content: data.content };\r\n this.editor = data.ckEditor;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.editorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(',heading,|,fontsize,fontfamily,fontColor,fontBackgroundColor,|,bold,italic,underline,strikethrough,|,alignment,|,bulletedList,numberedList,|,outdent,indent,|,subscript,superscript,|,undo,redo,|,specialCharacters,blockQuote,insertTable,|,link,anchor,|,timestamp,|,removeformat');\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getOutputContent(content: string) {\r\n this.tooltip.content = content;\r\n }\r\n\r\n public onChanged({ editor }) {\r\n this.tooltip.content = editor.getData();\r\n }\r\n\r\n public onBlur({ editor }) {\r\n this.tooltip.content = editor.getData();\r\n }\r\n\r\n public onReady(editor) {\r\n if (this.tooltip.text) {\r\n editor.setData(this.tooltip.text);\r\n }\r\n editor.ui.getEditableElement().parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n }\r\n\r\n saveTooltip() {\r\n const tooltip = new QMSCKEditorTooltip();\r\n tooltip.content = this.tooltip.content;\r\n tooltip.text = this.tooltip.text;\r\n this.dialogRef.close(tooltip);\r\n }\r\n\r\n cancelTooltip() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnInit, Output, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UploadAdapter } from './common/classes/uploadAdapter';\r\nimport { CKEditorEventConst } from './common/constants/ckeditorEvent.constant';\r\nimport CKEditorCommonFunctions from './common/functions/common.function';\r\nimport { QMSCKEdtiorInputData } from './common/models/qms-ckeditor-input.model';\r\nimport { QMSCKEditorPlugin } from './common/models/qms-ckeditor-plugin.model';\r\nimport QMSCKEditorLink from './common/models/qms-ckeditor-url.model';\r\nimport { QMSCKEditorFullscreenComponent } from './components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nimport { QMSCKEditorLinkComponent } from './components/qms-ckeditor-link/qms-ckeditor-link.component';\r\nimport { QMSCKEditorLoadTemplateComponent } from './components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nimport { QMSCKEditorTemplateComponent } from './components/qms-ckeditor-template/qms-ckeditor-template.component';\r\nimport { QMSCKEditorTemplate } from './models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from './qms-ckeditor-base.component';\r\nimport { QMSCKEditorGlobalService } from './services/qms-ckeditor-global.service';\r\nimport { QMSCKEditorTooltip } from './models/qms-ckeditor-tooltip.model';\r\nimport { QMSCKEditorTooltipComponent } from './components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component';\r\n@Component({\r\n selector: 'qms-ckeditor',\r\n templateUrl: './qms-ckeditor.component.html',\r\n styleUrls: ['./qms-ckeditor.component.scss'],\r\n providers: [\r\n QMSCKEditorFullscreenComponent,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSCKEditorComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QMSCKEditorComponent),\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class QMSCKEditorComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewInit, Validator {\r\n @Input() qmsckData: QMSCKEdtiorInputData;\r\n @Input() qmsckPlugin: QMSCKEditorPlugin;\r\n @Input() qmsckContentInput: string;\r\n @Input('disabled') isDisabled: boolean;\r\n @Input('required') required: boolean = false;\r\n @Output() qmsckContentOutput: EventEmitter<string> = new EventEmitter();\r\n\r\n ckEditor: any;\r\n name: string;\r\n ckeditorConfig: any;\r\n ckEditorEventConst = CKEditorEventConst;\r\n countWord: number;\r\n countChar: number;\r\n editorInstance: any;\r\n\r\n @HostListener('window:message', ['$event'])\r\n onMessage(event) {\r\n switch (event.data.eventName) {\r\n case this.ckEditorEventConst.QMSCK_FULLSCREEN_PLUGIN_MSG:\r\n this.fullscreenEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_TEMPLATE_PLUGIN_MSG:\r\n this.templateEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_LOAD_TEMPLATE_PLUGIN_MSG:\r\n this.loadTemplateEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_LINK_PLUGIN_MSG:\r\n this.linkEventHandling(event.data.value);\r\n break;\r\n case this.ckEditorEventConst.QMSCK_TOOLTIP_PLUGIN_MSG:\r\n this.tooltipEventHandling(event.data.value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Constructor\r\n */\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private globalService: QMSCKEditorGlobalService,\r\n private qmsCKEditorFullscreenComponent: QMSCKEditorFullscreenComponent,\r\n private renderer: Renderer2,\r\n private elRef: ElementRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.name = 'CKEditor custom build';\r\n this.ckEditor = this.qmsckPlugin.pluginObject;\r\n this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckPlugin.itemToolbar);\r\n this.globalService.setApiUrl(this.qmsckData.apiUrl);\r\n if (this.isEnabledCustomizingMathtypeService()) {\r\n this.customizeMathTypeService();\r\n }\r\n if (this.isEnabledCustomizingTimestampFormat()) {\r\n this.customizeTimestampFormat();\r\n }\r\n }\r\n\r\n onChange: (content: any) => void;\r\n onTouched: () => void;\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.isDisabled) {\r\n this.renderer.addClass(this.elRef.nativeElement, 'ck-disabled');\r\n }\r\n }\r\n\r\n isEnabledCustomizingTimestampFormat(): boolean {\r\n const pattern = /(timestamp)/gmi;\r\n return !!this.qmsckData.timestampFormat\r\n && this.qmsckData.timestampFormat !== ''\r\n && !!this.qmsckPlugin.itemToolbar\r\n && this.qmsckPlugin.itemToolbar.search(pattern) > -1;\r\n }\r\n\r\n customizeTimestampFormat() {\r\n const timestampConfig = {\r\n timestampConfig: {\r\n datetimeFormat: this.qmsckData.timestampFormat\r\n }\r\n };\r\n this.ckEditor.defaultConfig = Object.assign(this.ckEditor.defaultConfig || {}, timestampConfig);\r\n }\r\n\r\n isEnabledCustomizingMathtypeService(): boolean {\r\n const pattern = /(MathType)|(ChemType)/gmi;\r\n return !!this.qmsckData.mathtypeServiceUrl\r\n && this.qmsckData.mathtypeServiceUrl !== ''\r\n && !!this.qmsckPlugin.itemToolbar\r\n && this.qmsckPlugin.itemToolbar.search(pattern) > -1;\r\n }\r\n\r\n customizeMathTypeService() {\r\n const mathTypeConfig = {\r\n mathTypeParameters: {\r\n serviceProviderProperties: {\r\n URI: this.qmsckData.mathtypeServiceUrl,\r\n server: 'aspx'\r\n }\r\n }\r\n };\r\n this.ckEditor.defaultConfig = Object.assign(this.ckEditor.defaultConfig || {}, mathTypeConfig);\r\n }\r\n\r\n public onChanged({ editor }) {\r\n this.qmsckContentOutput.emit(this.qmsckContentInput);\r\n }\r\n\r\n public onBlur({ editor }) {\r\n this.qmsckContentOutput.emit(this.qmsckContentInput);\r\n }\r\n\r\n validate(c: FormControl) {\r\n if (!this.required) {\r\n return null;\r\n }\r\n return (this.qmsckContentInput && !this.required) ? null : {\r\n type: {\r\n valid: false,\r\n actual: c.value\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * onReady\r\n */\r\n public onReady(editor) {\r\n this.editorInstance = editor;\r\n if (this.qmsckContentInput) {\r\n editor.setData(this.qmsckContentInput);\r\n }\r\n\r\n this.initEditor(editor);\r\n\r\n }\r\n\r\n private initEditor(editor) {\r\n editor.ui\r\n .getEditableElement()\r\n .parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n\r\n editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {\r\n return new UploadAdapter(loader);\r\n };\r\n\r\n // Apped Wordcount to CKeditor\r\n editor.plugins.get('WordCount').on('update', (evt, stats) => {\r\n // Prints the current content statistics.\r\n const wordsBox = document.querySelector('.wordcount-content');\r\n wordsBox.textContent = `Words: ${stats.words} / Characters: ${stats.characters}`;\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Full screen - Restore down\r\n */\r\n public fullscreenEventHandling() {\r\n const ck = window.document.getElementById('qmsckeditor');\r\n if (ck) {\r\n if (!ck.classList.contains('qmsckeditor__fullscreen')) {\r\n this.qmsCKEditorFullscreenComponent.showFullScreen();\r\n } else {\r\n this.qmsCKEditorFullscreenComponent.hideFullScreen();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Add template - Load template\r\n */\r\n public templateEventHandling() {\r\n const data: QMSCKEditorTemplate = new QMSCKEditorTemplate();\r\n data.id = 0;\r\n data.content = this.qmsckContentInput;\r\n data.edit = false;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTemplateComponent, {\r\n width: '650px',\r\n height: '520px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n // TDO\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Add template - Load template\r\n */\r\n public loadTemplateEventHandling() {\r\n const dialogTemplate = this.dialog.open(QMSCKEditorLoadTemplateComponent, {\r\n width: '650px',\r\n height: '700px',\r\n data: this.qmsckContentInput,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LOAD_TEMPLATE_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Anchor - Link - Image mapping\r\n */\r\n public linkEventHandling(link) {\r\n let data = new QMSCKEditorLink();\r\n data = link;\r\n data.editorContent = this.qmsckContentInput;\r\n data.module = this.qmsckData.module;\r\n data.entityId = this.qmsckData.entityId;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorLinkComponent, {\r\n width: '650px',\r\n height: '660px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LINK_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Tooltip mapping\r\n */\r\n public tooltipEventHandling(value) {\r\n let data = new QMSCKEditorTooltip();\r\n data.text = value.text;\r\n data.content = value.content;\r\n data.ckEditor = this.qmsckPlugin.pluginObject;\r\n\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTooltipComponent, {\r\n width: '650px',\r\n height: '530px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_TOOLTIP_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n}\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { Injector, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { CKEditorModule } from '@ckeditor/ckeditor5-angular';\r\nimport { QMSCKEditorConfirmComponent } from './common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorTreeComponent } from './common/module/tree/qms-ckeditor-tree.component';\r\nimport { QMSCKEditorFullscreenComponent } from './components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nimport { LinkAttachmentComponent } from './components/qms-ckeditor-link/attachments/link-attachment.component';\r\nimport { QMSCKEditorLinkComponent } from './components/qms-ckeditor-link/qms-ckeditor-link.component';\r\nimport { QMSCKEditorLoadTemplateComponent } from './components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nimport { QMSCKEditorRelatedComponent } from './components/qms-ckeditor-relation/qmsckeditor-related.component';\r\nimport { QMSCKEditorTemplateComponent } from './components/qms-ckeditor-template/qms-ckeditor-template.component';\r\nimport { QMSCKEditorComponent } from './qms-ckeditor.component';\r\nimport { QMSCKEditorInjector } from './services/qms-ckeditor-injector.service';\r\nimport { SharedModule } from '../shared.module';\r\nimport { QMSCKEditorTooltipComponent } from './components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n QMSCKEditorFullscreenComponent,\r\n QMSCKEditorComponent,\r\n QMSCKEditorTemplateComponent,\r\n QMSCKEditorLoadTemplateComponent,\r\n QMSCKEditorConfirmComponent,\r\n QMSCKEditorLinkComponent,\r\n QMSCKEditorTreeComponent,\r\n QMSCKEditorRelatedComponent,\r\n LinkAttachmentComponent,\r\n QMSCKEditorTooltipComponent\r\n ],\r\n imports: [\r\n CKEditorModule,\r\n CommonModule,\r\n MatCommonModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n MatCardModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatSnackBarModule,\r\n MatSelectModule,\r\n MatButtonModule,\r\n MatTreeModule,\r\n MatAutocompleteModule,\r\n ScrollingModule,\r\n HttpClientModule,\r\n SharedModule\r\n ],\r\n providers: [],\r\n exports: [QMSCKEditorComponent],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSCKEditorModule {\r\n constructor(private injectors: Injector) {\r\n QMSCKEditorInjector.setInjector(this.injectors);\r\n }\r\n}\r\n","export class QMSCKEditorData {\r\n apiUrl?: string;\r\n module?: number;\r\n entityId?: string;\r\n documentId?: number;\r\n mathtypeServiceUrl?: string;\r\n timestampFormat?: string;\r\n}\r\n","export class QMSCKEdtiorInputData {\r\n apiUrl: string;\r\n module: number;\r\n entityId: string;\r\n documentId: number;\r\n mathtypeServiceUrl: string;\r\n timestampFormat: string;\r\n\r\n constructor() {\r\n this.apiUrl = '';\r\n this.module = 0;\r\n this.entityId = '';\r\n this.documentId = 0;\r\n this.mathtypeServiceUrl = '';\r\n this.timestampFormat = '';\r\n }\r\n}\r\n","export class QMSCKEditorLinkAnchorDocument {\r\n id: number;\r\n entityId: number;\r\n documentId: number;\r\n documentTypeId: number;\r\n richText: string;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.entityId = 0;\r\n this.documentId = 0;\r\n this.documentTypeId = 0;\r\n this.richText = '';\r\n }\r\n}\r\n","export default class QMSCKEditorLinkAttachment {\r\n itemId: string;\r\n fileName: string;\r\n placementId: number;\r\n processrelationTypeId: number;\r\n extension: string;\r\n description: string;\r\n sort: number;\r\n extraId: string;\r\n}\r\n","export default class QMSCKEditorTree {\r\n rootId: string;\r\n parentId: string;\r\n rootName: string;\r\n subName: string;\r\n childId: string;\r\n childName: string;\r\n statusId: number;\r\n displayId: number;\r\n}\r\n","export class QMSCKEditorPlugin {\r\n pluginObject: any;\r\n itemToolbar: string;\r\n\r\n constructor() {\r\n this.pluginObject = null;\r\n this.itemToolbar = '';\r\n }\r\n}\r\n","import { ViewChild } from '@angular/core';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { IconModel } from './qms-app-bar.model';\r\n\r\n@Component({\r\n selector: 'app-qms-app-bar',\r\n templateUrl: './qms-app-bar.component.html',\r\n styleUrls: ['./qms-app-bar.component.scss']\r\n})\r\nexport class QmsAppBarComponent implements OnInit {\r\n @ViewChild('menu', { static: true }) menu: MatButton;\r\n\r\n // nomal style\r\n @Input() isNomalType = false;\r\n @Input() leftFirstIcon = 'keyboard_backspace';\r\n @Input() title: string;\r\n @Input() cancelTitle: string;\r\n @Input() confirmTitle: string;\r\n @Input() disabledConfirmAction: boolean;\r\n @Output() onClickLeftFirstIconEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onCancelEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onConfirmEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n // modern style\r\n @Input() hideMenuDropdown: boolean;\r\n @Input() logoSvgPath: string;\r\n @Input() imgSvgPath: string;\r\n @Input() isImgSvgTransparent: boolean;\r\n @Input() rightIcons: IconModel[] = [];\r\n @Input() notifications = 0;\r\n @Output() onMenuClickedEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onRightIconClickedEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() { }\r\n \r\n ngOnInit(): void {\r\n }\r\n\r\n onCancel() {\r\n this.onCancelEvent.emit();\r\n }\r\n\r\n onClickLeftFirstIcon() {\r\n this.onClickLeftFirstIconEvent.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.onConfirmEvent.emit();\r\n }\r\n\r\n onMenuClicked() {\r\n this.onMenuClickedEvent.emit();\r\n }\r\n\r\n onRightIconClicked(icon: string) {\r\n this.onRightIconClickedEvent.emit(icon);\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsAppBarComponent } from './qms-app-bar.component';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { QMSButtonModule } from '../button/button.module';\r\n\r\n@NgModule(\r\n {\r\n declarations: [\r\n QmsAppBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatBadgeModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsAppBarComponent\r\n ]\r\n }\r\n)\r\n\r\nexport class QmsAppBarModule {\r\n}\r\n","export class IconModel {\r\n icon: string;\r\n tooltip: string;\r\n cssClass: string;\r\n svg: boolean;\r\n isShow: boolean;\r\n constructor(icon: string, tooltip: string, cssClass = '', svg = false, isShow = true) {\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n this.svg = svg;\r\n this.cssClass = cssClass;\r\n this.isShow = isShow;\r\n }\r\n}","import { MatDialogConfig } from \"@angular/material/dialog\";\r\n\r\nexport class ConfirmDialog {\r\n title: string;\r\n body: string;\r\n normalTitle: string;\r\n closeButton: boolean;\r\n buttonType: string;\r\n actionText: string;\r\n cancelText: string;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.body = '';\r\n this.normalTitle = '';\r\n this.buttonType = 'normal';\r\n this.closeButton = false;\r\n this.actionText = 'Confirm';\r\n this.cancelText = 'Cancel';\r\n }\r\n}\r\n\r\n\r\n\r\nexport class QMSDialogConfig extends MatDialogConfig {\r\n constructor(data: ConfirmDialog, width: string = '', minHeight: string = '', panelClass: string = '') {\r\n super();\r\n this.data = data;\r\n this.width = width;\r\n this.disableClose = false;\r\n this.panelClass = ['qms-dialog'];\r\n this.panelClass.push(panelClass);\r\n this.autoFocus = false;\r\n this.restoreFocus = false;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { QMSToolTipComponent } from './tooltip';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n CommonModule\r\n ],\r\n exports: [\r\n QMSToolTipComponent,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n \r\n ],\r\n declarations: [\r\n QMSToolTipComponent\r\n ],\r\n})\r\nexport class QMSTooltipModule { }","export class QmsBannerContent {\r\n text: string;\r\n tooltip?: string;\r\n bold?: boolean;\r\n}\r\n\r\nexport enum BannerType {\r\n primary = 'primary',\r\n warning = 'warning',\r\n success = 'success',\r\n error = 'error',\r\n light = 'light',\r\n none = 'none',\r\n}\r\n\r\nexport class QmsBannerConfirmButton {\r\n id: string | number;\r\n text: string;\r\n}\r\n\r\nexport class QmsBannerConfirmButtonClick {\r\n button: QmsBannerConfirmButton;\r\n event: PointerEvent;\r\n}","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BannerType, QmsBannerContent } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner',\r\n templateUrl: './qms-banner.component.html',\r\n styleUrls: ['./qms-banner.component.scss']\r\n})\r\nexport class QmsBannerComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() contents: QmsBannerContent[] = [];\r\n @Input() icon: string;\r\n @Input() buttonText: string;\r\n @Input() buttonMinWidth: number;\r\n\r\n @Output() buttonClick = new EventEmitter<PointerEvent>();\r\n\r\n public onClickButton(event: PointerEvent) {\r\n this.buttonClick.emit(event);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsBannerComponent } from './qms-banner.component';\r\nimport { QMSButtonModule } from '../../button/button.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsBannerComponent\r\n ]\r\n})\r\nexport class QmsBannerModule { }\r\n","import { Component, Input } from '@angular/core';\r\nimport { BannerType } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner-loading',\r\n templateUrl: './qms-banner-loading.component.html',\r\n styleUrls: ['./qms-banner-loading.component.scss']\r\n})\r\nexport class QmsBannerLoadingComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() title: string;\r\n @Input() percent: number;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { QmsBannerLoadingComponent } from './qms-banner-loading.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerLoadingComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n QmsBannerLoadingComponent\r\n ]\r\n})\r\nexport class QmsBannerLoadingModule { }\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BannerType, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerContent } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner-confirm',\r\n templateUrl: './qms-banner-confirm.component.html',\r\n styleUrls: ['./qms-banner-confirm.component.scss']\r\n})\r\nexport class QmsBannerConfirmComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() contents: QmsBannerContent[] = [];\r\n @Input() icon: string;\r\n @Input() title: string;\r\n @Input() buttons: QmsBannerConfirmButton[];\r\n\r\n @Output() buttonClick = new EventEmitter<QmsBannerConfirmButtonClick>();\r\n\r\n public onClickButton(event: PointerEvent, button: QmsBannerConfirmButton) {\r\n this.buttonClick.emit({\r\n event: event,\r\n button: button\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsBannerConfirmComponent } from './qms-banner-confirm.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { QMSButtonModule } from '../../button/button.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerConfirmComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsBannerConfirmComponent\r\n ]\r\n})\r\nexport class QmsBannerConfirmModule { }\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit, ChangeDetectionStrategy, Component,\r\n ContentChildren, Directive, ElementRef, HostListener, Input, OnInit,\r\n QueryList, Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\n\r\n\r\n@Component({\r\n selector: 'qms-table-action',\r\n templateUrl: 'table-action.html',\r\n styleUrls: ['table.scss'],\r\n host: { 'class': 'qms-table-action' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSTableAction implements OnInit {\r\n\r\n constructor(private elRef: ElementRef) { }\r\n ngOnInit() { }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-table-action-block',\r\n templateUrl: 'table-action-block.html',\r\n styleUrls: ['table.scss'],\r\n host: {\r\n 'class': 'qms-table-action-block',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSTableActionBlock implements AfterViewInit {\r\n\r\n constructor(private elRef: ElementRef<HTMLElement>, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n }\r\n}\r\n\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { QMSTableAction, QMSTableActionBlock } from './table-action';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSTableAction,\r\n QMSTableActionBlock,\r\n ],\r\n declarations: [\r\n QMSTableAction,\r\n QMSTableActionBlock,\r\n ],\r\n providers: []\r\n})\r\nexport class QMSTableModule { }\r\n","import { ItemIconType } from \"../../related/common/item-icon-type.enum\";\r\n\r\nexport class BreadcrumbNode {\r\n icon: string;\r\n iconColor: string;\r\n itemIcon: string;\r\n itemIconSvg: string;\r\n itemIconPath: string;\r\n itemIconBase64: string;\r\n name: string;\r\n isOverflow?: boolean;\r\n isShow?: boolean;\r\n displayType?: ItemIconType;\r\n}\r\n ","export class StepModel {\r\n id: string;\r\n name: string;\r\n disabled: boolean;\r\n selected: boolean;\r\n constructor(id: string, name: string, disabled: boolean, selected: boolean) {\r\n this.id = id;\r\n this.disabled = disabled;\r\n this.name = name;\r\n this.selected = selected;\r\n }\r\n}","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { StepModel } from './qms-stepper.model';\r\n\r\n@Component({\r\n selector: 'app-qms-stepper',\r\n templateUrl: './qms-stepper.component.html',\r\n styleUrls: ['./qms-stepper.component.scss']\r\n})\r\nexport class QmsStepperComponent implements OnInit {\r\n @ViewChild('stepper', { static: false }) stepper;\r\n @Input() steps: StepModel[] = [];\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() isHorizontal = false;\r\n @Input() currentStep = 0;\r\n @Input() labelPosition = 'end';\r\n @Output() selectionChangeEvent: EventEmitter<number> = new EventEmitter();\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n changeStep(selectedIndex: number): void {\r\n this.currentStep = selectedIndex;\r\n this.selectionChangeEvent.emit(selectedIndex);\r\n }\r\n}\r\n","import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { QmsStepperComponent } from './qms-stepper.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@NgModule(\r\n {\r\n declarations: [\r\n QmsStepperComponent\r\n ],\r\n imports: [\r\n MatStepperModule,\r\n CommonModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n QmsStepperComponent\r\n ],\r\n entryComponents: [\r\n QmsStepperComponent\r\n ],\r\n providers: [{\r\n provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\r\n }]\r\n }\r\n)\r\n\r\nexport class QmsStepperModule {\r\n}","import { MatSnackBarConfig, MatSnackBarHorizontalPosition } from \"@angular/material/snack-bar\";\r\n\r\nexport class QMSSnackbarConfig extends MatSnackBarConfig {\r\n constructor(duration: number = 3000, horizontalPosition: MatSnackBarHorizontalPosition = 'right', panelClass: string | string[] = ['c-snackbar-qms']) {\r\n super();\r\n this.duration = duration;\r\n this.horizontalPosition = horizontalPosition;\r\n this.panelClass = panelClass;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of qms-angular\r\n */\r\n\r\nimport { from } from 'rxjs';\r\n\r\nexport * from './lib/qms-angular.service';\r\nexport * from './lib/qms-angular.component';\r\nexport * from './lib/qms-angular.module';\r\n\r\n// directives\r\n// export * from './lib/directives/directive.module';\r\nexport * from './lib/directives/margin.directive';\r\nexport * from './lib/directives/form.directive';\r\n\r\n// //components\r\nexport * from './lib/components/test-only/test-only.component';\r\n\r\nexport * from './lib/components/button/button.module';\r\nexport * from './lib/components/button/button';\r\nexport * from './lib/components/button/color';\r\n\r\nexport * from './lib/components/comment/comment';\r\n\r\n\r\nexport * from './lib/directives/search-field.directive';\r\nexport * from './lib/directives/range-slider/range-slider.directive';\r\nexport * from './lib/directives/range-slider/range-slider-lockup.directive';\r\nexport * from './lib/components/list/list.module';\r\nexport * from './lib/components/list/list';\r\nexport * from './lib/components/suffix-field/suffix-field.directive';\r\n\r\nexport * from './lib/services/translation-registry.service';\r\nexport * from './lib/shared.module';\r\nexport * from './lib/model/en';\r\nexport * from './lib/model/no';\r\n\r\nexport * from './lib/components/rich-text/rich-text.module';\r\nexport * from './lib/components/rich-text/rich-text';\r\n\r\n\r\n\r\nexport * from './lib/directives/chips/chip.directive';\r\nexport * from './lib/directives/chips/chip-body.directive';\r\nexport * from './lib/components/edit-file-name-dialog/edit-file-name-dialog.module';\r\nexport * from './lib/components/edit-file-name-dialog/edit-file-name-dialog';\r\nexport * from './lib/components/upload-file-error-dialog/upload-file-error-dialog.module';\r\nexport * from './lib/components/upload-file-error-dialog/upload-file-error-dialog';\r\n\r\nexport * from './lib/directives/file-upload/file-upload.directive';\r\nexport * from './lib/directives/file-upload/file-upload-attachment-list.directive';\r\nexport * from './lib/directives/file-upload/file-upload-selector.directive';\r\nexport * from './lib/directives/file-upload/file-upload-display.directive';\r\nexport * from './lib/directives/file-upload/file-upload-scrollable-attachment-list.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple-selector.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple-display.directive';\r\nexport * from './lib/directives/file-upload/qms-file-upload-attachment.model';\r\n\r\n\r\nexport * from './lib/directives/dropdown-menu/dropdown-item.directive';\r\n\r\nexport * from './lib/directives/scrollbar/scrollbar.directive';\r\nexport * from './lib/directives/scroll-selected/scroll-to-selected.directive';\r\n\r\n// export * from './lib/components/substance-conflict/substance-conflict.module';\r\n// export * from './lib/components/substance-conflict/substaince-conflict.base';\r\n// export * from './lib/components/substance-conflict/substance-conflict.component';\r\n\r\nexport * from './lib/components/related/related.module';\r\nexport * from './lib/components/related/tree/tree.component';\r\nexport * from './lib/components/related/common/tree.function';\r\nexport * from './lib/components/related/model/tree-node.model';\r\nexport * from './lib/components/related/model/tree.model';\r\nexport * from './lib/components/related/popup/related-popup.component';\r\nexport * from './lib/components/related/model/popup-data.model';\r\nexport * from './lib/components/related/content/related-content.component';\r\nexport * from './lib/components/related/sidenav/sidenav.component';\r\nexport * from './lib/components/related/model/sidenav.model';\r\nexport * from './lib/components/related/risk/analysis/analysis.component';\r\nexport * from './lib/components/related/model/risk-analysis.model';\r\nexport * from './lib/components/related/model/tree-config.model';\r\nexport * from './lib/components/related/model/risk-danger.model';\r\nexport * from './lib/components/related/risk/result/result.component';\r\nexport * from './lib/components/related/model/risk-result.model';\r\nexport * from './lib/components/related/risk/list/list.component';\r\nexport * from './lib/components/related/list-other-related/list-related.component'\r\nexport * from './lib/components/related/service/related-global.service';\r\nexport * from './lib/components/related/common/qms-icon.const';\r\n/* qms-ckeditor */\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor.module';\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor-base.component';\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor.component';\r\n\r\nexport * from './lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant';\r\nexport * from './lib/qms-ckeditor-components/common/enums/document-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/link-anchor.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/link-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/protocol-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/target-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/module.enum';\r\nexport * from './lib/qms-ckeditor-components/common/functions/common.function';\r\nexport * from './lib/qms-ckeditor-components/common/functions/tree.function';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-dialog.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-link-anchor-document.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-link-attachment.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-relation.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-tree.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-url.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model';\r\nexport * from './lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component';\r\nexport * from './lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component';\r\nexport * from './lib/qms-ckeditor-components/common/toast/qms-ckeditor-toast.service';\r\n\r\nexport * from './lib/qms-ckeditor-components/models/qms-ckeditor-template.model';\r\n\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component';\r\n// export * from './lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component';\r\n\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-global.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-injector.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-base.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckedtior-template.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckedtior-template.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-link.service';\r\n\r\nexport * from './lib/directives/text-block/text-block.directive';\r\nexport * from './lib/directives/text-block/text-block-line.directive';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.module';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.model';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.component';\r\n\r\nexport * from './lib/components/dialog/constant';\r\nexport * from './lib/components/dialog/dialog';\r\n\r\nexport * from './lib/directives/side-sheet/drawer.directive';\r\nexport * from './lib/directives/side-sheet/drawer-header.directive';\r\nexport * from './lib/directives/side-sheet/drawer-content.directive';\r\nexport * from './lib/directives/side-sheet/drawer-header-action.directive';\r\nexport * from './lib/directives/tooltip/tooltip-renderer.directive';\r\nexport * from './lib/directives/tooltip/tooltip-image.directive';\r\nexport * from './lib/components/tooltip/tooltip';\r\nexport * from './lib/components/tooltip/tooltip.module';\r\n\r\nexport * from './lib/directives/tab/tab-label.directive';\r\nexport * from './lib/directives/tab/tab-group.directive';\r\nexport * from './lib/directives/tab/tab-group-advanced.directive';\r\n\r\nexport * from './lib/components/banner/qms-banner/qms-banner.module';\r\nexport * from './lib/components/banner/qms-banner/qms-banner.component';\r\nexport * from './lib/components/banner/qms-banner-loading/qms-banner-loading.module';\r\nexport * from './lib/components/banner/qms-banner-loading/qms-banner-loading.component';\r\nexport * from './lib/components/banner/qms-banner-confirm/qms-banner-confirm.module';\r\nexport * from './lib/components/banner/qms-banner-confirm/qms-banner-confirm.component';\r\nexport * from './lib/components/banner/models/qms-banner.model';\r\n\r\nexport * from './lib/components/button/button-toggle';\r\nexport * from './lib/pipe/dateFormat.pipe';\r\n\r\nexport * from './lib/directives/chip-input/chip-input-field.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-field.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-trigger.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-dropdown.directive';\r\nexport * from './lib/directives/chip-input/chip-input-chip-list.directive';\r\nexport * from './lib/components/table/table.module';\r\nexport * from './lib/components/table/table-action';\r\n\r\n\r\nexport * from './lib/components/breadcrumb/breadcrumb';\r\nexport * from './lib/components/breadcrumb/breadcrumb.module';\r\nexport * from './lib/components/breadcrumb/breadcrumb-item.directive';\r\nexport * from './lib/components/breadcrumb/breadcrumb-direction-icon.directive';\r\nexport * from './lib/components/breadcrumb/model/breadcrumb-node.model';\r\n\r\nexport * from './lib/common/qms-icon.const';\r\n\r\nexport * from './lib/components/qms-stepper/qms-stepper.model';\r\nexport * from './lib/components/qms-stepper/qms-stepper.module';\r\nexport * from './lib/components/qms-stepper/qms-stepper.component';\r\nexport * from './lib/components/snackbar/snackbar';\r\n\r\nexport * from './lib/directives/scroll-selected/scroll-to-selected.directive';\r\n\r\nexport * from './lib/components/app-icon/icon-registry.service';\r\nexport * from './lib/components/app-icon/app-icon.module';\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SharedMaterialModule as ɵa} from './lib/material-module';\nexport {LinkAttachmentComponent as ɵd} from './lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component';\nexport {QMSCKEditorTemplateComponent as ɵb} from './lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component';\nexport {QMSCKEditorTooltipComponent as ɵe} from './lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component';\nexport {QMSCKEditorTooltip as ɵf} from './lib/qms-ckeditor-components/models/qms-ckeditor-tooltip.model';\nexport {QMSCKEditorTreeService as ɵc} from './lib/qms-ckeditor-components/services/qms-ckeditor-tree.service';"],"names":["TreeNode","objData","buildArrayTree","buildObjectTree","findParent","findChild","CKEditorModule"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"qms-angular.js","sources":["../../../projects/qms-angular/src/lib/qms-angular.service.ts","../../../projects/qms-angular/src/lib/model/en.ts","../../../projects/qms-angular/src/lib/model/no.ts","../../../projects/qms-angular/src/lib/services/translation-registry.service.ts","../../../projects/qms-angular/src/lib/qms-angular.component.ts","../../../projects/qms-angular/src/lib/components/comment/comment.ts","../../../projects/qms-angular/src/lib/components/dialog/dialog.ts","../../../projects/qms-angular/src/lib/components/suffix-field/suffix-field.directive.ts","../../../projects/qms-angular/src/lib/components/test-only/test-only.component.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-chip-list.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-field.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-dropdown.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-trigger.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-field.directive.ts","../../../projects/qms-angular/src/lib/directives/chips/chip-body.directive.ts","../../../projects/qms-angular/src/lib/directives/chips/chip.directive.ts","../../../projects/qms-angular/src/lib/directives/dropdown-menu/dropdown-item.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-attachment-list.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-display.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple-display.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/qms-file-upload-attachment.model.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple-selector.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-selector.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload.directive.ts","../../../projects/qms-angular/src/lib/directives/form.directive.ts","../../../projects/qms-angular/src/lib/directives/margin.directive.ts","../../../projects/qms-angular/src/lib/directives/range-slider/range-slider-lockup.directive.ts","../../../projects/qms-angular/src/lib/directives/range-slider/range-slider.directive.ts","../../../projects/qms-angular/src/lib/directives/scroll-selected/scroll-to-selected.directive.ts","../../../projects/qms-angular/src/lib/directives/scrollbar/scrollbar.directive.ts","../../../projects/qms-angular/src/lib/directives/search-field.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-content.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-header-action.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-header.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-group-advanced.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-group.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-label.directive.ts","../../../projects/qms-angular/src/lib/directives/text-block/text-block-line.directive.ts","../../../projects/qms-angular/src/lib/directives/text-block/text-block.directive.ts","../../../projects/qms-angular/src/lib/directives/tooltip/tooltip-image.directive.ts","../../../projects/qms-angular/src/lib/components/tooltip/tooltip.ts","../../../projects/qms-angular/src/lib/directives/tooltip/tooltip-renderer.directive.ts","../../../projects/qms-angular/src/lib/components/button/button-toggle.ts","../../../projects/qms-angular/src/lib/components/button/color.ts","../../../projects/qms-angular/src/lib/components/button/button.ts","../../../projects/qms-angular/src/lib/components/button/button.module.ts","../../../projects/qms-angular/src/lib/material-module.ts","../../../projects/qms-angular/src/lib/pipe/dateFormat.pipe.ts","../../../projects/qms-angular/src/lib/shared.module.ts","../../../projects/qms-angular/src/lib/qms-angular.module.ts","../../../projects/qms-angular/src/lib/components/list/list.ts","../../../projects/qms-angular/src/lib/components/list/list.module.ts","../../../projects/qms-angular/src/lib/components/rich-text/rich-text.ts","../../../projects/qms-angular/src/lib/components/rich-text/rich-text.module.ts","../../../projects/qms-angular/src/lib/components/edit-file-name-dialog/edit-file-name-dialog.ts","../../../projects/qms-angular/src/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.ts","../../../projects/qms-angular/src/lib/components/upload-file-error-dialog/upload-file-error-dialog.ts","../../../projects/qms-angular/src/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.ts","../../../projects/qms-angular/src/lib/components/related/common/qms-icon.const.ts","../../../projects/qms-angular/src/lib/components/app-icon/icon-registry.service.ts","../../../projects/qms-angular/src/lib/components/app-icon/app-icon.module.ts","../../../projects/qms-angular/src/lib/common/qms-icon.const.ts","../../../projects/qms-angular/src/lib/components/related/common/item-icon-type.enum.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/breadcrumb-item.directive.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/enum/dropdown-node-width.enum.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/breadcrumb.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/breadcrumb-direction-icon.directive.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/breadcrumb.module.ts","../../../projects/qms-angular/src/lib/components/related/common/data-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/content/related-content.component.ts","../../../projects/qms-angular/src/lib/components/related/common/document-folder-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/list-other-related/list-related.component.ts","../../../projects/qms-angular/src/lib/components/related/common/module-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/common/related.const.ts","../../../projects/qms-angular/src/lib/components/related/model/popup-data.model.ts","../../../projects/qms-angular/src/lib/components/related/model/related-data.model.ts","../../../projects/qms-angular/src/lib/components/related/service/related-global.service.ts","../../../projects/qms-angular/src/lib/components/related/model/tree-node.model.ts","../../../projects/qms-angular/src/lib/components/related/common/tree.function.ts","../../../projects/qms-angular/src/lib/components/related/tree/tree.component.ts","../../../projects/qms-angular/src/lib/components/related/popup/related-popup.component.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-analysis.model.ts","../../../projects/qms-angular/src/lib/components/related/risk/analysis/analysis.component.ts","../../../projects/qms-angular/src/lib/components/related/common/action-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/risk/list/list.component.ts","../../../projects/qms-angular/src/lib/components/related/common/color.enum.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-result.model.ts","../../../projects/qms-angular/src/lib/components/related/risk/result/result.component.ts","../../../projects/qms-angular/src/lib/components/related/model/sidenav.model.ts","../../../projects/qms-angular/src/lib/components/related/sidenav/sidenav.component.ts","../../../projects/qms-angular/src/lib/components/related/related.module.ts","../../../projects/qms-angular/src/lib/components/related/model/tree.model.ts","../../../projects/qms-angular/src/lib/components/related/model/tree-config.model.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-danger.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor-base.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-dialog.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-parameter.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/module.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/link-anchor.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/link-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/protocol-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/target-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-relation.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-url.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/document-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-tree-node.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/functions/tree.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-injector.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/toast/qms-ckeditor-toast.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/models/qms-ckeditor-template.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/classes/uploadAdapter.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/functions/common.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/helper/guidHelper.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-bpmn.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/bpmn/inspector.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/bpmn/toolbar.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/flowchart-view-mode.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/models/qms-ckeditor-imagemap.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/image-mode.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/constants/iconSvg.constants.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.lib.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.validator.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/models/qms-ckeditor-tooltip.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor.module.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-link-anchor-document.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-link-attachment.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-tree.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/related-to-item-type.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-bpmn-template.model.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.component.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.module.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.model.ts","../../../projects/qms-angular/src/lib/components/dialog/constant.ts","../../../projects/qms-angular/src/lib/components/tooltip/tooltip.module.ts","../../../projects/qms-angular/src/lib/components/banner/models/qms-banner.model.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner/qms-banner.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner/qms-banner.module.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-loading/qms-banner-loading.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-loading/qms-banner-loading.module.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.ts","../../../projects/qms-angular/src/lib/components/table/table-action.ts","../../../projects/qms-angular/src/lib/components/table/table.module.ts","../../../projects/qms-angular/src/lib/components/breadcrumb/model/breadcrumb-node.model.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.model.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.component.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.module.ts","../../../projects/qms-angular/src/lib/components/snackbar/snackbar.ts","../../../projects/qms-angular/src/public-api.ts","../../../projects/qms-angular/src/qms-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QmsAngularService {\r\n\r\n constructor() { }\r\n}\r\n","export const en = {\r\n \"MY_COMPONENT\": \"My component\",\r\n \"SAVE_BUTTON\": \"Save\",\r\n \"CANCEL_BUTTON\": \"Cancel\",\r\n \"DELETE_MESSAGE_COMMENT\": \"This message has been deleted.\",\r\n \"REGRET\": \"Regret\",\r\n \"EDIT\": \"Edit\",\r\n \"DELETE\": \"Delete\",\r\n \"SAVE\": \"Save\",\r\n \"CANCEL\": \"Cancel\",\r\n \"EDIT_FILE_NAME\": \"Edit file name\",\r\n \"FILE_NAME\": \"File name\",\r\n \"UPLOAD_LEAVE_WARNING\": \"Files you're uploading may not be saved.\",\r\n \"SOME_FILES_WERE_NOT_ADDED\": \"Some files were not added\",\r\n \"YOU_CAN_ONLY_ADD\": \"You can only upload\",\r\n \"SELECT\": \"Select\",\r\n \"PROCESSES\": \"Processes\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"DEVIATION\": \"Categories\",\r\n \"CHECKLIST\": \"Checklists\",\r\n \"ASSESSMENT\": \"Assessments\",\r\n \"ADD\": \"Add\",\r\n \"SEARCH\": \"Search\",\r\n \"REGULAR_TITLE\": \"What do you want to include in the risk assessment(s)?\",\r\n \"CAPTION_TITLE\": \"In causal assessments, all causes related to the event are automatically added.\",\r\n \"CAUSAL_ANALYZES\": \"Selected Assessments\",\r\n \"FINISHED\": \"Finished\",\r\n \"PROCESS_ID\": \"Process ID\",\r\n \"DOCUMENT_ID\": \"Document ID\",\r\n \"PROCESS_AREA\": \"Process area\",\r\n \"FOLDER\": \"Folder\",\r\n \"DEVIATION_TYPE\": \"Deviation type\",\r\n \"CHECKLIST_CATEGORY\": \"Categories\",\r\n \"EVENT\": \"Event\",\r\n \"AREA_OF_IMPACT\": \"Consequence Area\",\r\n \"RESULT\": \"Result\",\r\n \"NOT_ACCEPTED\": \"Not accepted\",\r\n \"MUST_BE_EVALUATED\": \"Must be evaluated\",\r\n \"ACCEPTED\": \"Accepted\",\r\n \"ARCHIVED\": \"Archived\",\r\n \"CAUSE\": \"Cause\",\r\n \"ERROR\": {\r\n \"SELECT_DANGER\": \"You must select one or more events\"\r\n },\r\n \"MESSAGE\": {\r\n \"PROCESSES_IN\": \"Processes in\",\r\n \"DOCUMENTS_IN\": \"Documents in\"\r\n }\r\n ,\r\n \"QMSCKEDITOR\": {\r\n \"REMOVE_MAP\": \"Remove Map\",\r\n \"IMAGE_MAP_PROPERTIES\": \"Image Map Properties\",\r\n \"INSERT_TOOLTIP\": \"Insert a tooltip\",\r\n \"CONTENT\": \"Content\",\r\n \"TEMPLATE\": \"Template\",\r\n \"CONTENT_TEMPLATE\": \"Content Template\",\r\n \"CREATE_NEW_TEMPLATE\": \"Create new tempplate\",\r\n \"UPDATE_TEMPLATE\": \"Update tempplate\",\r\n \"TITLE\": \"Title\",\r\n \"DESCRIPTION\": \"Description\",\r\n \"SAVE\": \"Save\",\r\n \"CHOOSE_TEMPLATE\": \"Please select the template to open in the editor\",\r\n \"REPLACE_CONTENT\": \"Replace actual contents\",\r\n \"SAVED\": \"Saved\",\r\n \"SAVE_FAILED\": \"Save failed\",\r\n \"DELETE\": \"Delete\",\r\n \"DELETED\": \"Deleted\",\r\n \"DELETE_FAILED\": \"Delete failed\",\r\n \"DELETE_TEMPLATE\": \"Delete template\",\r\n \"CHANGE_TEMPLATE\": \"Change template\",\r\n \"CANCEL\": \"Cancel\",\r\n \"LINK\": \"Link\",\r\n \"LINK_TYPE\": \"Link type\",\r\n \"ZOOM\": \"Zoom\",\r\n \"LINK_URL\": \"URL\",\r\n \"LINK_ANCHOR_IN_TEXT\": \"Link to anchor in the text\",\r\n \"LINK_EMAIL\": \"Email\",\r\n \"LINK_ANCHOR_DOCUMENT\": \"Anchor in other document\",\r\n \"TARGET\": \"Target\",\r\n \"TARTGET_NEW\": \"New Window (_blank)\",\r\n \"TARGET_TOPMOST\": \"Topmost Window (_top)\",\r\n \"TARGET_SAME\": \"Same Window (_self)\",\r\n \"TARGET_PARENT\": \"Parent Window (_parent)\",\r\n \"PROTOCOL\": \"Protocol\",\r\n \"PROTOCOL_HTTP\": \"http://\",\r\n \"PROTOCOL_HTTPS\": \"https://\",\r\n \"PROTOCOL_FTP\": \"ftp://\",\r\n \"PROTOCOL_NEW\": \"news://\",\r\n \"PROTOCOL_OTHER\": \"<other>\",\r\n \"ADVISORY_TITLE\": \"Advisory Title\",\r\n \"HANDBOOK\": \"eHandbook\",\r\n \"ATTACHMENT\": \"Attachment\",\r\n \"OK\": \"Ok\",\r\n \"URL_HEADER\": \"URL information\",\r\n \"ANCHOR_TEXT_HEADER\": \"Select an Anchor\",\r\n \"ANCHOR_BY_NAME\": \"Anchor by name\",\r\n \"EMAIL_HEADER\": \"Email information\",\r\n \"EMAIL_ADDRESS\": \"Address\",\r\n \"EMAIL_SUBJECT\": \"Subject\",\r\n \"EMAIL_BODY\": \"Body\",\r\n \"ANCHOR_ATTACHMENT\": \"Attachments\",\r\n \"ANCHOR_RELATED_DOCUMENT\": \"Related document\",\r\n \"ADD_DOCUMENT_PROCESS\": \"Add document/ process\",\r\n \"ADD_DOCUMENT\": \"Add document\",\r\n \"ADD\": \"Add\",\r\n \"PROCESSES\": \"Processes\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"UPDATE\": \"Update\",\r\n \"DOCUMENT\": \"Document\",\r\n \"CONFIRM\": \"Confirm\",\r\n \"SEARCH\": \"Search\",\r\n \"IMAGE_MODE_POINTER\": \"Pointer\",\r\n \"IMAGE_MODE_RECTANGLE\": \"Rectangle\",\r\n \"IMAGE_MODE_CIRCLE\": \"Circle\",\r\n \"IMAGE_MODE_POLYGON\": \"Polygon\",\r\n \"IMAGE_MODE_REMOVE\": \"Remove\",\r\n \"POLYGON_DRAW\": \"Use SHIFT + click for the last control point\",\r\n \"RECTANGLE_DRAW\": \"Hold down SHIFT for square mode\",\r\n \"SQUARE_DRAW\": \"Release SHIFT for rectangle mode\",\r\n \"INVALID_URL\": \"Invalid URL\",\r\n \"REQUIRED_URL\": \"URL is required\"\r\n },\r\n \"BPMN\": {\r\n \"DEFAULT\": \"Default\",\r\n \"TYPE\": \"Type\",\r\n \"NAME\": \"Name\",\r\n \"EXCLUSIVE\": \"Exclusive\",\r\n \"INCLUSIVE\": \"Inclusive\",\r\n \"PARALLEL\": \"Parallel\",\r\n \"APPEARANCE\": \"appearance\",\r\n \"BODY_COLOR\": \"Body color\",\r\n \"TEXT_ALIGNMENT\": \"Text Alignment\",\r\n \"LEFT\": \"Left\",\r\n \"CENTER\": \"Center\",\r\n \"RIGHT\": \"Right\",\r\n \"FONT_FAMILY\": \"Font family\",\r\n \"FONT_SIZE\": \"Font size\",\r\n \"CONTENT\": \"Content\",\r\n \"ICON\": \"Icon\",\r\n \"NONE\": \"None\",\r\n \"MESSAGE\": \"Message\",\r\n \"USER\": \"User\",\r\n \"TASK\": \"Task\",\r\n \"TRANSACTION\": \"Transaction\",\r\n \"EVENT_SUB_PROCESS\": \"event-sub-process\",\r\n \"CALL_ACTIVITY\": \"call-activity\",\r\n \"SUB_PROCESS\": \"Sub-process\",\r\n \"START\": \"Start\",\r\n \"END\": \"End\",\r\n \"INTERMEDIATE\": \"Intermediate\",\r\n \"CANCEL\": \"Cancel\",\r\n \"CANCEL_OULINED\": \"Cancel oulined\",\r\n \"CANCEL_FILLED\": \"Cancel filled\",\r\n \"COMPENSATION_OULINED\": \"Compensation oulined\",\r\n \"COMPENSATION_FILLED\": \"Compensation filled\",\r\n \"CONDITIONAL\": \"Conditional\",\r\n \"ERROR_OULINED\": \"Error oulined\",\r\n \"ERROR_FILLED\": \"Error filled\",\r\n \"ESCALATION_OULINED\": \"Escalation oulined\",\r\n \"ESCALATION_FILLED\": \"Escalation filled\",\r\n \"LINK_OULINED\": \"Link oulined\",\r\n \"LINK_FILLED\": \"Link filled\",\r\n \"MESSAGE_OULINED\": \"Message oulined\",\r\n \"MESSAGE_FILLED\": \"Message filled\",\r\n \"MULTIPLE_OULINED\": \"Multiple oulined\",\r\n \"MULTIPLE_FILLED\": \"Multiple filled\",\r\n \"PARALLEL_MULTIPLE\": \"Parallel multiple\",\r\n \"TERMINATION_OULINED\": \"Termination oulined\",\r\n \"TERMINATION_FILLED\": \"Termination filled\",\r\n \"TIMER\": \"Timer\",\r\n \"SIGNAL_OULINED\": \"Signal oulined\",\r\n \"SIGNAL_FILLED\": \"Signal filled\",\r\n \"PARALLEL_OULINED\": \"Parallel oulined\",\r\n \"PARALLEL_FILLED\": \"Parallel filled\",\r\n \"SUB_TYPE\": \"Subtype\",\r\n \"TRANSPARENCY\": \"Transparency\",\r\n \"LABEL\": \"Label\",\r\n \"TEXT\": \"Text\",\r\n \"POSITION\": \"Position\",\r\n \"LABELS\": \"Labels\",\r\n \"NORMAL\": \"Normal\",\r\n \"ASSOCIATION\": \"Association\",\r\n \"CONVERSATION\": \"Conversation\",\r\n \"PARTICPANTS\": \"Particpants\",\r\n \"INITIATING_PARTICIPANT\": \"Initiating Participant\",\r\n \"PRIMARY_COLOR\": \"Primary Color\",\r\n \"SECONDARY_COLOR\": \"Secondary Color\",\r\n \"CALL-CONVERSATION\": \"Call-conversation\",\r\n \"ADD_LANES\": \"Add lanes\",\r\n \"PERCENTAGE\": \"Percentage\",\r\n \"ADD_SUBLANES\": \"Add sublanes\",\r\n \"HEADER_COLOR\": \"Header Color\",\r\n \"LANE_BODY_COLOR\": \"Lane Body Color\",\r\n \"LANE_HEADER_COLOR\": \"Lane Header Color\",\r\n \"OPEN_A_PRINT_DIALOG\": \"Open a Print Dialog\",\r\n \"OPEN_AS_JSON\": \"Open As JSON\",\r\n \"ZOOM_IN\": \"Zoom In\",\r\n \"ZOOM_OUT\": \"Zoom Out\",\r\n \"ZOOM_TO_FIT\": \"Zoom To Fit\",\r\n \"SEND_TO_FRONT\": \"Sent To Front\",\r\n \"BRING_OBJECT_TO_FRONT\": \"Bring Object to Front\",\r\n \"SEND_TO_BACK\": \"Sent To Back\",\r\n \"BRING_OBJECT_TO_BACK\": \"Send Object to Back\",\r\n \"CLEAR_PAPER\": \"Clear Paper\",\r\n \"UNDO\": \"Undo\",\r\n \"REDO\": \"Redo\",\r\n \"SELECT_TEMPLATE\": \"Select template\",\r\n \"DELETE_TEMPLATE\": \"Delete template\",\r\n \"SAVE_AS_TEMPLATE\": \"Save as template\",\r\n \"RESET_TO_LAST_SAVE\": \"Reset to last saved\",\r\n \"GRID_SIZE\": \"Grid size\",\r\n \"CHANGE_GRID_SIZE\": \"Change grid size\",\r\n \"SNAPLINES\": \"Snaplines:\",\r\n \"ENABLE_DISABLE_SNAPLINES\": \"Enable/Disable Snaplines\",\r\n \"LINE_COLOR\": \"Line Color\",\r\n \"BODY_LINE_COLOR\": \"Body Line Color\",\r\n \"TYPE_COLOR\": \"Type Color\",\r\n \"MARKER\": \"Markers\",\r\n \"MARKER_COLOR\": \"Markers Color\",\r\n \"TOP_COLOR\": \"Markers Color\",\r\n \"TOP_LINE_COLOR\": \"Top Line Color\",\r\n \"COLLECTION\": \"Collection\",\r\n \"COLLECTION_COLOR\": \"Collection Color\",\r\n \"SIZE\": \"Size\",\r\n \"HEADER_SIZE\": \"Header Size\",\r\n \"HEADER\": \"Header\",\r\n \"HEADER_STROKE_COLOR\": \"Header stroke color\",\r\n \"HEADER_LABEL_COLOR\": \"Header label color\",\r\n \"LANE_STROKE_COLOR\": \"Lane Stroke Color\",\r\n \"LANE_HEADER_STROKE\": \"Lane Header Stroke\",\r\n \"LANE_LABEL_COLOR\": \"Lane Label Color\",\r\n \"MILESTONE_HEADER_FILL\": \"Milestone Header Fill\",\r\n \"MILESTONE_STROKE\": \"Milestone Stroke\",\r\n \"MILESTONE_LABEL_COLOR\": \"Milestone Label Color\",\r\n \"MILESTONE_LINE_COLOR\": \"Milestone Line Color\",\r\n \"HEADER_ALIGNMENT\": \"Header Alignment\",\r\n \"HEADER_FONT_FAMILY\": \"Header Font family\",\r\n \"HEADER_FONT_SIZE\": \"Header Font size\",\r\n \"LANE_ALIGNMENT\": \"Lane Alignment\",\r\n \"LANE_FONT_FAMILY\": \"Lane Font family\",\r\n \"LANE_FONT_SIZE\": \"Lane Font size\",\r\n \"MILESTONE_ALIGNMENT\": \"Milestone Alignment\",\r\n \"MILESTONE_FONT_FAMILY\": \"Milestone Font family\",\r\n \"MILESTONE_FONT_SIZE\": \"Milestone Font size\",\r\n \"TEXT_COLOR\": \"Text color\",\r\n \"TEXT_HEADER_COLOR\": \"Header text color\",\r\n \"TEXT_BACKGROUND_COLOR\": \"Background text color\",\r\n \"TEXT_INSIDE_SHAPE\": \"Show text inside shape\",\r\n \"TEMPLATE_NAME\": \"Template name\",\r\n \"TEMPLATE_INFO\": \"Please input template name\",\r\n \"SELECT_TEMPLATE_INFORMATION\": \"You must select a template before you do this action.\",\r\n },\r\n \"QMSCKEDITOR_MESSAGE\": {\r\n \"CONFIRM_DELETE_TEMPLATE\": \"Are you sure you want to delete this template?\",\r\n \"CONFIRM_CHANGE_TEMPLATE\": \"Are you sure you want to apply this template to the editor?\"\r\n }\r\n}\r\n","export const no = {\r\n \"MY_COMPONENT\": \"Min komponent\",\r\n \"SAVE_BUTTON\": \"Lagre\",\r\n \"CANCEL_BUTTON\": \"Avbryt\",\r\n \"DELETE_MESSAGE_COMMENT\": \"Denne meldingen er slettet.\",\r\n \"REGRET\": \"Angre\",\r\n \"EDIT\": \"Rediger\",\r\n \"DELETE\": \"Slett\",\r\n \"SAVE\": \"Lagre\",\r\n \"CANCEL\": \"Avbryt\",\r\n \"EDIT_FILE_NAME\": \"Rediger filnavn\",\r\n \"FILE_NAME\": \"Filnavn\",\r\n \"UPLOAD_LEAVE_WARNING\": \"Filene du laster opp vil kanskje ikke bli lagret\",\r\n \"SOME_FILES_WERE_NOT_ADDED\": \"Noen filer ble ikke lagt til\",\r\n \"YOU_CAN_ONLY_ADD\": \"Du kan kun laste opp\",\r\n \"SELECT\": \"Velg\",\r\n \"PROCESSES\": \"Prosesser\",\r\n \"DOCUMENTS\": \"Dokumenter\",\r\n \"DEVIATION\": \"Kategorier\",\r\n \"CHECKLIST\": \"Sjekklister\",\r\n \"ASSESSMENT\": \"Analyser\",\r\n \"ADD\": \"Legg til\",\r\n \"SEARCH\": \"Søk\",\r\n \"REGULAR_TITLE\": \"Hva ønsker du å inkludere av hendeler i risikoanalysen(e)?\",\r\n \"CAPTION_TITLE\": \"I årsaksanalyser blir automatisk alle årsaker knyttet til hendelsen lagt til.\",\r\n \"CAUSAL_ANALYZES\": \"Valgte Analyser\",\r\n \"FINISHED\": \"Ferdig\",\r\n \"PROCESS_ID\": \"Prosess ID\",\r\n \"DOCUMENT_ID\": \"Dokument ID\",\r\n \"PROCESS_AREA\": \"Prosessområder\",\r\n \"FOLDER\": \"Mappe\",\r\n \"DEVIATION_TYPE\": \"Sakstype\",\r\n \"CHECKLIST_CATEGORY\": \"Kategorier\",\r\n \"EVENT\": \"Hendelse\",\r\n \"AREA_OF_IMPACT\": \"Konsekvensområde\",\r\n \"RESULT\": \"Resultat\",\r\n \"NOT_ACCEPTED\": \"Ikke akseptert\",\r\n \"MUST_BE_EVALUATED\": \"Må vurderes\",\r\n \"ACCEPTED\": \"Akseptert\",\r\n \"ARCHIVED\": \"Arkivert\",\r\n \"CAUSE\": \"Årsak\",\r\n \"ERROR\": {\r\n \"SELECT_DANGER\": \"Du må velge en eller flere hendelser\"\r\n },\r\n \"MESSAGE\": {\r\n \"PROCESSES_IN\": \"Prosesser i\",\r\n \"DOCUMENTS_IN\": \"Dokumenter i\"\r\n },\r\n \"QMSCKEDITOR\": {\r\n \"REMOVE_MAP\": \"Fjern kartet\",\r\n \"IMAGE_MAP_PROPERTIES\": \"Bilde Kart Egenskaper\",\r\n \"INSERT_TOOLTIP\": \"Sett inn et verktøytips\",\r\n \"CONTENT\": \"Innhold\",\r\n \"TEMPLATE\": \"Mal\",\r\n \"CONTENT_TEMPLATE\": \"Innholdsmal\",\r\n \"CREATE_NEW_TEMPLATE\": \"Lag ny mal\",\r\n \"UPDATE_TEMPLATE\": \"Oppdater mal\",\r\n \"TITLE\": \"Tittel\",\r\n \"DESCRIPTION\": \"Beskrivelse\",\r\n \"SAVE\": \"Lagre\",\r\n \"CHOOSE_TEMPLATE\": \"Velg malen du vil åpne i redigeringsprogrammet\",\r\n \"REPLACE_CONTENT\": \"Bytt ut faktisk innhold\",\r\n \"SAVED\": \"Lagret\",\r\n \"SAVE_FAILED\": \"Lagringen mislyktes\",\r\n \"DELETE\": \"Slett\",\r\n \"DELETED\": \"Slettet\",\r\n \"DELETE_FAILED\": \"Sletting mislyktes\",\r\n \"DELETE_TEMPLATE\": \"Slett mal\",\r\n \"CHANGE_TEMPLATE\": \"Endre mal\",\r\n \"CANCEL\": \"Avbryt\",\r\n \"LINK\": \"Link\",\r\n \"LINK_TYPE\": \"Koblingstype\",\r\n \"ZOOM\": \"Zoom\",\r\n \"LINK_URL\": \"URL\",\r\n \"LINK_ANCHOR_IN_TEXT\": \"Lenke til anker i teksten\",\r\n \"LINK_EMAIL\": \"E-post\",\r\n \"LINK_ANCHOR_DOCUMENT\": \"Anker i annet dokument\",\r\n \"TARGET\": \"Target\",\r\n \"TARTGET_NEW\": \"Nytt vindu (_blank)\",\r\n \"TARGET_TOPMOST\": \"Det øverste vinduet (_top)\",\r\n \"TARGET_SAME\": \"Samme vindu (selv)\",\r\n \"TARGET_PARENT\": \"Overordnet vindu (_parent)\",\r\n \"PROTOCOL\": \"Protocol\",\r\n \"PROTOCOL_HTTP\": \"http://\",\r\n \"PROTOCOL_HTTPS\": \"https://\",\r\n \"PROTOCOL_FTP\": \"ftp://\",\r\n \"PROTOCOL_NEW\": \"nyheter://\",\r\n \"PROTOCOL_OTHER\": \"<other>\",\r\n \"ADVISORY_TITLE\": \"Rådgivende tittel\",\r\n \"HANDBOOK\": \"eHandbook\",\r\n \"ATTACHMENT\": \"Attachment\",\r\n \"OK\": \"OK\",\r\n \"URL_HEADER\": \"URL-informasjon\",\r\n \"ANCHOR_TEXT_HEADER\": \"Velg et anker\",\r\n \"ANCHOR_BY_NAME\": \"Anker ved navn\",\r\n \"EMAIL_HEADER\": \"E-postinformasjon\",\r\n \"EMAIL_ADDRESS\": \"Adresse\",\r\n \"EMAIL_SUBJECT\": \"Emne\",\r\n \"EMAIL_BODY\": \"Kropp\",\r\n \"ANCHOR_ATTACHMENT\": \"Vedlegg\",\r\n \"ANCHOR_RELATED_DOCUMENT\": \"Beslektet dokument\",\r\n \"ADD_DOCUMENT_PROCESS\": \"Legg til dokument / prosess\",\r\n \"ADD_DOCUMENT\": \"Legg til dokument\",\r\n \"ADD\": \"Legg til\",\r\n \"PROSESSER\": \"Prosesser\",\r\n \"DOCUMENTS\": \"Dokumenter\",\r\n \"UPDATE\": \"Oppdater\",\r\n \"DOCUMENT\": \"Dokument\",\r\n \"CONFIRM\": \"Bekreft\",\r\n \"SEARCH\": \"Søk\",\r\n \"IMAGE_MODE_POINTER\": \"Peker\",\r\n \"IMAGE_MODE_RECTANGLE\": \"Rektangel\",\r\n \"IMAGE_MODE_CIRCLE\": \"Sirkel\",\r\n \"IMAGE_MODE_POLYGON\": \"Polygon\",\r\n \"IMAGE_MODE_REMOVE\": \"Ta bort\",\r\n \"POLYGON_DRAW\": \"Bruk SKIFT + klikk for det siste kontrollpunktet\",\r\n \"RECTANGLE_DRAW\": \"Hold nede SKIFT for kvadratisk modus\",\r\n \"SQUARE_DRAW\": \"Slipp SKIFT for rektangelmodus\",\r\n \"INVALID_URL\": \"Ugyldig URL\",\r\n \"REQUIRED_URL\": \"URL er påkrevd\"\r\n },\r\n \"BPMN\": {\r\n \"DEFAULT\": \"Standard\",\r\n \"TYPE\": \"Type\",\r\n \"NAME\": \"Navn\",\r\n \"EXCLUSIVE\": \"Eksklusiv\",\r\n \"INCLUSIVE\": \"Inklusive\",\r\n \"PARALLEL\": \"Parallel\",\r\n \"APPEARANCE\": \"Utseende\",\r\n \"BODY_COLOR\": \"Farge\",\r\n \"TEXT_ALIGNMENT\": \"Tekstplassering\",\r\n \"LEFT\": \"Venstre\",\r\n \"CENTER\": \"Midtjuster\",\r\n \"RIGHT\": \"Høyre\",\r\n \"FONT_FAMILY\": \"Fontfamilie\",\r\n \"FONT_SIZE\": \"Skriftstørrelse\",\r\n \"CONTENT\": \"Innhold\",\r\n \"ICON\": \"Ikon\",\r\n \"NONE\": \"None\",\r\n \"MESSAGE\": \"Message\",\r\n \"USER\": \"User\",\r\n \"TASK\": \"Task\",\r\n \"TRANSACTION\": \"Transaction\",\r\n \"EVENT_SUB_PROCESS\": \"event-sub-process\",\r\n \"CALL_ACTIVITY\": \"call-activity\",\r\n \"SUB_PROCESS\": \"Sub-process\",\r\n \"START\": \"Start\",\r\n \"END\": \"End\",\r\n \"INTERMEDIATE\": \"Intermediate\",\r\n \"CANCEL\": \"Cancel\",\r\n \"CANCEL_OULINED\": \"Cancel oulined\",\r\n \"CANCEL_FILLED\": \"Cancel filled\",\r\n \"COMPENSATION_OULINED\": \"Compensation oulined\",\r\n \"COMPENSATION_FILLED\": \"Compensation filled\",\r\n \"CONDITIONAL\": \"Conditional\",\r\n \"ERROR_OULINED\": \"Error oulined\",\r\n \"ERROR_FILLED\": \"Error filled\",\r\n \"ESCALATION_OULINED\": \"Escalation oulined\",\r\n \"ESCALATION_FILLED\": \"Escalation filled\",\r\n \"LINK_OULINED\": \"Link oulined\",\r\n \"LINK_FILLED\": \"Link filled\",\r\n \"MESSAGE_OULINED\": \"Message oulined\",\r\n \"MESSAGE_FILLED\": \"Message filled\",\r\n \"MULTIPLE_OULINED\": \"Multiple oulined\",\r\n \"MULTIPLE_FILLED\": \"Multiple filled\",\r\n \"PARALLEL_MULTIPLE\": \"Parallel multiple\",\r\n \"TERMINATION_OULINED\": \"Termination oulined\",\r\n \"TERMINATION_FILLED\": \"Termination filled\",\r\n \"TIMER\": \"Timer\",\r\n \"SIGNAL_OULINED\": \"Signal oulined\",\r\n \"SIGNAL_FILLED\": \"Signal filled\",\r\n \"PARALLEL_OULINED\": \"Parallel oulined\",\r\n \"PARALLEL_FILLED\": \"Parallel filled\",\r\n \"SUB_TYPE\": \"Subtype\",\r\n \"TRANSPARENCY\": \"Transparency\",\r\n \"LABEL\": \"Label\",\r\n \"TEXT\": \"Tekst\",\r\n \"POSITION\": \"Plassering\",\r\n \"LABELS\": \"Labels\",\r\n \"NORMAL\": \"Normal\",\r\n \"ASSOCIATION\": \"Association\",\r\n \"CONVERSATION\": \"Conversation\",\r\n \"PARTICPANTS\": \"Particpants\",\r\n \"INITIATING_PARTICIPANT\": \"Initiating Participant\",\r\n \"PRIMARY_COLOR\": \"Hovedfarge\",\r\n \"SECONDARY_COLOR\": \"Sekundærfarge\",\r\n \"CALL-CONVERSATION\": \"Call-conversation\",\r\n \"ADD_LANES\": \"Legg til baner\",\r\n \"PERCENTAGE\": \"Prosent\",\r\n \"ADD_SUBLANES\": \"Legg til delbane\",\r\n \"HEADER_COLOR\": \"Header Color\",\r\n \"LANE_BODY_COLOR\": \"Lane Body Color\",\r\n \"LANE_HEADER_COLOR\": \"Lane Header Color\",\r\n \"OPEN_A_PRINT_DIALOG\": \"Åpne en utskriftsdialog\",\r\n \"OPEN_AS_JSON\": \"Åpne som JSON\",\r\n \"ZOOM_IN\": \"Zoom inn\",\r\n \"ZOOM_OUT\": \"Zoom ut\",\r\n \"ZOOM_TO_FIT\": \"Zoom for å passe\",\r\n \"SEND_TO_FRONT\": \"Send til front\",\r\n \"BRING_OBJECT_TO_FRONT\": \"Flytt objektet frem til front\",\r\n \"SEND_TO_BACK\": \"Send bakerst\",\r\n \"BRING_OBJECT_TO_BACK\": \"Flytt objektet bakerst\",\r\n \"CLEAR_PAPER\": \"Tøm\",\r\n \"UNDO\": \"Angre\",\r\n \"REDO\": \"Gjenta\",\r\n \"SELECT_TEMPLATE\": \"Velg mal\",\r\n \"DELETE_TEMPLATE\": \"Slett mal\",\r\n \"SAVE_AS_TEMPLATE\": \"Lagre som mal\",\r\n \"RESET_TO_LAST_SAVE\": \"Forkast ulagrede endringer\",\r\n \"GRID_SIZE\": \"Grid str.\",\r\n \"CHANGE_GRID_SIZE\": \"Endre grid str.\",\r\n \"SNAPLINES\": \"Hjelpelinjer:\",\r\n \"ENABLE_DISABLE_SNAPLINES\": \"Aktivere/Deaktivere hjelpelinjer\",\r\n \"LINE_COLOR\": \"Linje Farge\",\r\n \"BODY_LINE_COLOR\": \"Kropps Linje Farge\",\r\n \"TYPE_COLOR\": \"Type Farge\",\r\n \"MARKER\": \"Markører\",\r\n \"MARKER_COLOR\": \"Markører Farge\",\r\n \"TOP_COLOR\": \"Topp Farge\",\r\n \"TOP_LINE_COLOR\": \"Topp Linje Farge\",\r\n \"COLLECTION\": \"Samling\",\r\n \"COLLECTION_COLOR\": \"Samling Farge\",\r\n \"SIZE\": \"Str.\",\r\n \"HEADER_SIZE\": \"Overskriftsstr.\",\r\n \"HEADER\": \"Overskrift\",\r\n \"HEADER_STROKE_COLOR\": \"Header stroke color\",\r\n \"HEADER_LABEL_COLOR\": \"Header label color\",\r\n \"LANE_STROKE_COLOR\": \"Lane Stroke Color\",\r\n \"LANE_HEADER_STROKE\": \"Lane Header Stroke\",\r\n \"LANE_LABEL_COLOR\": \"Lane Label Color\",\r\n \"MILESTONE_HEADER_FILL\": \"Milestone Header Fill\",\r\n \"MILESTONE_STROKE\": \"Milestone Stroke\",\r\n \"MILESTONE_LABEL_COLOR\": \"Milestone Label Color\",\r\n \"MILESTONE_LINE_COLOR\": \"Milestone Line Color\",\r\n \"HEADER_ALIGNMENT\": \"Header Alignment\",\r\n \"HEADER_FONT_FAMILY\": \"Header Font family\",\r\n \"HEADER_FONT_SIZE\": \"Header Font size\",\r\n \"LANE_ALIGNMENT\": \"Lane Alignment\",\r\n \"LANE_FONT_FAMILY\": \"Lane Font family\",\r\n \"LANE_FONT_SIZE\": \"Lane Font size\",\r\n \"MILESTONE_ALIGNMENT\": \"Milestone Alignment\",\r\n \"MILESTONE_FONT_FAMILY\": \"Milestone Font family\",\r\n \"MILESTONE_FONT_SIZE\": \"Milestone Font size\",\r\n \"TEXT_COLOR\": \"Tekst Farge\",\r\n \"TEXT_HEADER_COLOR\": \"Header Tekst Farge\",\r\n \"TEXT_BACKGROUND_COLOR\": \"Bakgrunn Tekst Farge\",\r\n \"TEXT_INSIDE_SHAPE\": \"Vis teksten inni figur\",\r\n \"TEMPLATE_NAME\": \"Malnavn\",\r\n \"TEMPLATE_INFO\": \"Vennligst skriv inn malnavn\",\r\n \"SELECT_TEMPLATE_INFORMATION\": \"Du må velge en malen før du utfører denne handlingen.\",\r\n },\r\n \"QMSCKEDITOR_MESSAGE\": {\r\n \"CONFIRM_DELETE_TEMPLATE\": \"Er du sikker på at du vil slette denne malen?\",\r\n \"CONFIRM_CHANGE_TEMPLATE\": \"Er du sikker på at du vil bruke denne malen på redaktøren?\"\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { en } from '../model/en';\r\nimport { no } from '../model/no';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslateLibraryService {\r\n\r\n getLanguageSubject$ = new BehaviorSubject<any>(null);\r\n private availableLanguages = { en, no };\r\n\r\n constructor() { }\r\n\r\n setLanguage(item: any) {\r\n this.getLanguageSubject$.next(item);\r\n }\r\n\r\n getObjectLang(lang) {\r\n let language = lang && lang.toLowerCase() || 'en';\r\n if (language !== 'en' && language !== 'no') {\r\n language = 'en';\r\n }\r\n return this.availableLanguages[language];\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateLibraryService } from './services/translation-registry.service';\r\n\r\n@Component({\r\n selector: 'lib-qms-angular',\r\n templateUrl: 'qms-angular.component.html',\r\n styles: []\r\n})\r\nexport class QmsAngularComponent implements OnInit {\r\n\r\n LANG: any;\r\n\r\n constructor(public trans: TranslateLibraryService) { }\r\n\r\n ngOnInit() {\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","// Import the core angular services.\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\nexport interface Logs {\r\n user: string,\r\n date: any,\r\n isDraft: boolean,\r\n isEdit: boolean,\r\n content: string,\r\n editedContent: string\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-comment',\r\n templateUrl: 'comment.html',\r\n styleUrls: ['comment.scss'],\r\n host: { 'class': 'qms-comment' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSComment implements OnInit, OnChanges {\r\n @Input() sourceLog: Logs[];\r\n @Output() updateLog = new EventEmitter();\r\n\r\n LANG: any;\r\n\r\n constructor(public trans: TranslateLibraryService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n for (const propName in changes) {\r\n const changedProp = changes[propName];\r\n const to = JSON.stringify(changedProp.currentValue);\r\n if (changedProp.isFirstChange()) {\r\n console.log('Initial value of');\r\n } else {\r\n const from = JSON.stringify(changedProp.previousValue);\r\n console.log('changed from');\r\n }\r\n }\r\n console.log('value changed', changes.sourceLog.currentValue);\r\n // this.sourceLog = changes.sourceLog.currentValue;\r\n }\r\n\r\n ngOnInit() {\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n console.log(this.LANG);\r\n\r\n }\r\n });\r\n }\r\n\r\n showContent(content) {\r\n return content.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\r\n }\r\n\r\n editContent(item) {\r\n item.editedContent = item.content;\r\n item.isEdit = true;\r\n }\r\n\r\n saveEditedContent(item) {\r\n item.content = item.editedContent;\r\n item.isEdit = false;\r\n this.updateLog.emit(item);\r\n }\r\n\r\n removeItem(item) {\r\n item.isDelete = true;\r\n this.updateLog.emit(item);\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, HostListener, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ConfirmDialog } from './constant';\r\n\r\n@Component({\r\n selector: 'qms-dialog-confirm',\r\n templateUrl: 'dialog-confirm.html',\r\n styleUrls: ['dialog.scss']\r\n})\r\nexport class QMSConfirmDialog implements OnInit, AfterViewInit {\r\n info: ConfirmDialog;\r\n\r\n @ViewChild('actionGroup') actionGroup: ElementRef;\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.orderActionButton();\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private _elRef: ElementRef,\r\n private dialogRef: MatDialogRef<QMSConfirmDialog>,\r\n @Inject(MAT_DIALOG_DATA) data) {\r\n\r\n this.info = { ...data };\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.orderActionButton();\r\n }\r\n\r\n orderActionButton() {\r\n const divHeight = this.actionGroup.nativeElement.offsetHeight;\r\n document.getElementById('action-btn').style.order = divHeight > 68 ? '1' : '2';\r\n }\r\n\r\n save() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-dialog-form',\r\n templateUrl: 'dialog-form.html',\r\n styleUrls: ['dialog.scss']\r\n})\r\nexport class QMSFormDialog implements OnInit {\r\n ngOnInit() {\r\n\r\n }\r\n}\r\n\r\n","import { AfterViewChecked, AfterViewInit, ContentChild, Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-suffix]',\r\n})\r\nexport class QMSSuffixDirective {\r\n constructor(private el: ElementRef) {\r\n el.nativeElement.classList.add('qms-suffix');\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mat-form-field[qms-suffix-field]',\r\n})\r\nexport class QMSSuffixFieldDirective implements AfterViewChecked {\r\n @ContentChild(QMSSuffixDirective, {static: false}) qmsSuffix: QMSSuffixDirective;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngAfterViewChecked(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-suffix-field');\r\n }\r\n }\r\n\r\n removeFocus = () => {\r\n this.ele.nativeElement.classList.remove('mat-focused');\r\n }\r\n}\r\n\r\n\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'qms-test-only',\r\n styleUrls: ['./test-only.component.scss'],\r\n templateUrl: './test-only.component.html'\r\n})\r\nexport class TestOnlyComponent {\r\n @Input() text: string = \"\";\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-input-chip-list]',\r\n})\r\nexport class QMSChipInputChipListDirective implements OnInit {\r\n @Input() maxRows: number;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-input-chip-list');\r\n if(this.maxRows && this.maxRows > 0){\r\n this.ele.nativeElement.classList.add(`qms-chip-input-max-${this.maxRows}`)\r\n }\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input]',\r\n})\r\nexport class QMSChipInputDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-dropdown]',\r\n})\r\nexport class QMSChipInputSelectDropWDownDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input-dropdown');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit } from \"@angular/core\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-select-trigger]',\r\n})\r\nexport class QMSChipInputSelectTriggerDirective implements OnInit {\r\n public eleSelect: ElementRef;\r\n public autocomplete: MatAutocompleteTrigger;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input');\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n click(){\r\n if(this.autocomplete){\r\n if(!this.autocomplete.panelOpen)\r\n this.autocomplete.openPanel();\r\n else\r\n this.autocomplete.closePanel();\r\n }\r\n \r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\nimport { QMSChipInputSelectTriggerDirective } from \"./chip-input-select-trigger.directive\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-select]',\r\n})\r\nexport class QMSChipInputSelectFieldDirective implements OnInit, AfterViewInit {\r\n @ContentChild(QMSChipInputSelectTriggerDirective, {static: false}) selectTrigger: QMSChipInputSelectTriggerDirective;\r\n @ContentChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngAfterViewInit(): void {\r\n if(this.selectTrigger){\r\n this.selectTrigger.autocomplete = this.autocomplete;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input-select');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-chip-body]',\r\n})\r\nexport class QMSChipBodyDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-body');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'mat-chip[qms-chip]',\r\n})\r\nexport class QMSInputChipDirective implements OnInit, OnChanges {\r\n\r\n @Input() selected: boolean;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.selected) {\r\n this.ele.nativeElement.classList.add('qms-chip-selected');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-chip-selected');\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip');\r\n if (this.selected) {\r\n this.ele.nativeElement.classList.add('qms-chip-selected');\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, Directive, ElementRef, HostListener, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-menu-item]',\r\n})\r\nexport class QMSDropdownMenuItem implements OnInit, AfterViewInit, OnChanges{\r\n @ContentChild(\"menuItemContent\", {static: false}) menuItemContent: ElementRef;\r\n @Input() selected: boolean;\r\n \r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(this.selected){\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item-selected');\r\n }\r\n else{\r\n this.ele.nativeElement.classList.remove('qms-dropdown-menu-item-selected');\r\n }\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n if(this.menuItemContent){\r\n if(this.menuItemContent.nativeElement){\r\n this.menuItemContent.nativeElement.classList.add('qms-dropdown-menu-item__content')\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item');\r\n if(this.selected){\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item-selected');\r\n }\r\n }\r\n }\r\n}","import { AfterContentChecked, ContentChild, Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-attachment-list]',\r\n})\r\n\r\nexport class QMSAttachmentListDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-attachment-list');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\nimport { QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-display]',\r\n})\r\nexport class QMSFileUploadDisplayDirective implements OnInit, OnChanges{\r\n public eleInput: ElementRef;\r\n public removeInvalid: () => void;\r\n public addInvalid: () => void;\r\n @Input() value;\r\n constructor(public ele: ElementRef, \r\n @Optional() private control: NgControl) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n if(this.control){\r\n this.control.control.setValue(this.value? this.value : '');\r\n this.control.control.updateValueAndValidity();\r\n if(this.control.control.valid && this.removeInvalid){\r\n this.removeInvalid();\r\n }\r\n if(this.control.control.invalid && this.addInvalid){\r\n this.addInvalid();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n Click() {\r\n this.eleInput.nativeElement.click();\r\n }\r\n}","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple-display]',\r\n})\r\nexport class QMSFileUploadMultipleDisplayDirective implements OnInit{\r\n public eleInput: ElementRef;\r\n @Input() acceptExtension: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n \r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n Click() {\r\n this.eleInput.nativeElement.click();\r\n }\r\n}","\r\nexport enum FileErrorType{\r\n noError,\r\n notSupportedExtension,\r\n exceedMaxSize,\r\n}\r\nexport class QMSFileAttachment {\r\n file: File;\r\n fileName: string;\r\n fileContent: string;\r\n fileContentBase64: string;\r\n extension: string;\r\n isSuccessful: boolean;\r\n typeError: FileErrorType;\r\n progress: number;\r\n}","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { QMSUploadFileErrorDialog } from \"../../components/upload-file-error-dialog/upload-file-error-dialog\";\r\nimport { FileErrorType, QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple-selector]',\r\n})\r\n\r\nexport class QMSFileUploadMultipleSelectorDirective implements OnInit, OnChanges {\r\n @Input() filesForInput: QMSFileAttachment[];\r\n @Output() filesForInputChange = new EventEmitter();\r\n @Input() acceptExtensions: string[];\r\n @Output('onFileUploaded') onFileUploaded: EventEmitter<any> = new EventEmitter();\r\n @Input() maxSize: number;\r\n invokeMyFunc(){\r\n if(this.onFileUploaded)\r\n this.onFileUploaded.emit();\r\n }\r\n\r\n constructor(public ele: ElementRef, public dialog: MatDialog) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(!this.filesForInput || this.filesForInput.length === 0){\r\n this.ele.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n @HostListener('change', ['$event']) OnChanges(event) {\r\n if(event.target && event.target.files){\r\n const listFiles: FileList = event.target.files;\r\n let listAttachments : QMSFileAttachment[] = [];\r\n for (let i = 0; i < listFiles.length; i++) {\r\n const file = event.target.files[i];\r\n let attachment = new QMSFileAttachment();\r\n attachment.fileName = file.name;\r\n attachment.extension = file.name.split('.').pop();\r\n attachment.file = file; \r\n attachment.isSuccessful = true;\r\n attachment.typeError = FileErrorType.noError;\r\n if(this.acceptExtensions){\r\n const check = this.acceptExtensions.filter(type => type.toLowerCase() === attachment.extension.toLowerCase())\r\n if(check.length === 0){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.notSupportedExtension;\r\n }\r\n }\r\n if(this.maxSize && file.size > this.maxSize){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.exceedMaxSize;\r\n }\r\n listAttachments.push(attachment);\r\n }\r\n this.filesForInputChange.emit(listAttachments);\r\n this.invokeMyFunc();\r\n }\r\n }\r\n}","import { AfterViewInit, ContentChild, Directive, ElementRef,\r\n HostListener, Input, OnChanges, OnInit } from \"@angular/core\";\r\nimport { QMSFileUploadMultipleDisplayDirective } from \"./file-upload-multiple-display.directive\";\r\nimport { QMSFileUploadMultipleSelectorDirective } from \"./file-upload-multiple-selector.directive\";\r\nimport { ComponentCanDeactivate } from \"./file-upload.directive\";\r\n\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple]',\r\n})\r\nexport class QMSFileUploadMultipleDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n @ContentChild(QMSFileUploadMultipleSelectorDirective, {static: false}) fileSelector: QMSFileUploadMultipleSelectorDirective;\r\n @ContentChild(QMSFileUploadMultipleDisplayDirective, {static: false}) fileDisplay: QMSFileUploadMultipleDisplayDirective;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-file-upload-loading');\r\n }\r\n \r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.fileSelector) {\r\n this.fileDisplay.eleInput = this.fileSelector.ele;\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-scrollable-attachment-list]',\r\n})\r\n\r\nexport class QMSScrolableAttachmentListDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-scrollable-attachment-list');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FileErrorType, QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n\r\nexport function requiredFileType( types: string[] ) {\r\n return function (control: FormControl) {\r\n const fileName = control.value;\r\n if ( fileName ) {\r\n const extension = fileName.split('.').pop();\r\n const check = types.filter(type => type.toLowerCase() === extension.toLowerCase())\r\n if(check.length === 0){\r\n return {\r\n requiredFileType: true\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nexport function notExceedSize( size: number ) {\r\n return function (control: FormControl) {\r\n const file = control.value;\r\n if ( file ) {\r\n \r\n if(file.size > size){\r\n return {\r\n notExceedSize: true\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-selector]',\r\n})\r\n\r\nexport class QMSFileUploadSelectorDirective implements OnInit, OnChanges {\r\n @Input() inputFile: any;\r\n @Output() inputFileChange = new EventEmitter();\r\n @Input() acceptExtensions: string[];\r\n @Output('onFileUploaded') onFileUploaded: EventEmitter<any> = new EventEmitter();\r\n @Input() maxSize: number;\r\n public isLoading: boolean;\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(!this.inputFile){\r\n this.ele.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n invokeMyFunc(){\r\n if(this.onFileUploaded)\r\n this.onFileUploaded.emit();\r\n }\r\n\r\n @HostListener('change', ['$event']) OnChanges(event) {\r\n if(event.target && event.target.files[0]){\r\n const file = event.target.files[0];\r\n let attachment = new QMSFileAttachment();\r\n attachment.fileName = file.name;\r\n attachment.extension = file.name.split('.').pop();\r\n attachment.file = file;\r\n attachment.isSuccessful = true;\r\n attachment.typeError = FileErrorType.noError;\r\n if(this.acceptExtensions){\r\n const check = this.acceptExtensions.filter(type => type.toLowerCase() === attachment.extension.toLowerCase())\r\n if(check.length === 0){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.notSupportedExtension;\r\n }\r\n }\r\n if(this.maxSize && file.size > this.maxSize){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.exceedMaxSize;\r\n }\r\n this.inputFileChange.emit(attachment);\r\n this.invokeMyFunc();\r\n }\r\n }\r\n}","import { AfterContentChecked, AfterViewInit, ContentChild, Directive, ElementRef,\r\n EventEmitter,\r\n HostListener, Injectable, Input, OnChanges, OnInit, Output, Renderer2, SimpleChanges } from \"@angular/core\";\r\nimport { CanDeactivate } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\nimport { QMSFileUploadDisplayDirective } from \"./file-upload-display.directive\";\r\nimport { QMSFileUploadSelectorDirective } from \"./file-upload-selector.directive\";\r\n\r\n\r\nexport interface ComponentCanDeactivate {\r\n canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\r\n}\r\n \r\n@Injectable()\r\nexport class QMSUploadingFileGuard implements CanDeactivate<ComponentCanDeactivate> {\r\n constructor(){}\r\n canDeactivate(component: ComponentCanDeactivate) {\r\n // if there are no pending changes, just allow deactivation; else confirm first\r\n return component.canDeactivate? component.canDeactivate(): true;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-file-upload]',\r\n})\r\nexport class QMSFileUploadDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n @ContentChild(QMSFileUploadSelectorDirective, {static: false}) fileSelector: QMSFileUploadSelectorDirective;\r\n @ContentChild(QMSFileUploadDisplayDirective, {static: false}) fileDisplay: QMSFileUploadDisplayDirective;\r\n\r\n constructor(private ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-file-upload-loading');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.fileSelector) {\r\n this.fileDisplay.eleInput = this.fileSelector.ele;\r\n this.fileDisplay.removeInvalid = this.removeInvalid;\r\n this.fileDisplay.addInvalid = this.addInvalid;\r\n this.fileSelector.isLoading = this.isLoading;\r\n }\r\n }\r\n\r\n removeInvalid = () => {\r\n this.ele.nativeElement.classList.remove('mat-form-field-invalid');\r\n }\r\n\r\n addInvalid = () => {\r\n this.ele.nativeElement.classList.add('mat-form-field-invalid');\r\n }\r\n}\r\n","import { AfterContentInit, Directive, ElementRef, Renderer2 } from \"@angular/core\";\r\n\r\n\r\n@Directive({\r\n selector: '[qms-form]',\r\n host: { 'class': 'qms-form' }\r\n})\r\nexport class QMSFormFieldDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-form-textarea]',\r\n host: { 'class': 'qms-form form-textarea' }\r\n})\r\nexport class QMSFormFieldTextareaDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-form-date]',\r\n host: { 'class': 'qms-form form-datepicker' }\r\n})\r\nexport class QMSFormFieldDatePickerDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n\r\n@Directive({\r\n selector: '[qms-group-options]',\r\n host: { 'class': 'qms-group-options' }\r\n})\r\nexport class QMSGroupOptionDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-group-options]',\r\n host: { 'class': 'qms-group-options' }\r\n})\r\n\r\nexport class AutocompleteOffDirective {\r\n constructor(private _el: ElementRef) {\r\n this._el.nativeElement.setAttribute('autocomplete', 'off');\r\n this._el.nativeElement.setAttribute('autocorrect', 'off');\r\n this._el.nativeElement.setAttribute('autocapitalize', 'none');\r\n this._el.nativeElement.setAttribute('spellcheck', 'false');\r\n }\r\n}","import { Directive, Input, ElementRef, OnInit, OnDestroy } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-margin]'\r\n})\r\n\r\nexport class MarginDirective implements OnInit {\r\n @Input() dim: string;\r\n @Input() value: string;\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dim ?\r\n this.el.nativeElement.style[`margin-${this.dim}`] = `${this.value}px` :\r\n this.value.includes('px')\r\n ? this.el.nativeElement.style[`margin`] = `${this.value}`\r\n : this.el.nativeElement.style[`margin`] = `${this.value}px`;\r\n }\r\n}","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'mat-slider[qms-range-slider-lockup]',\r\n})\r\nexport class QMSRangeSliderLockUpDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-range-slider-lockup');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'mat-slider[qms-range-slider]',\r\n})\r\nexport class QMSRangeSliderDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-range-slider');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\r\n@Directive({\r\n selector: '[scrollToSelected]'\r\n})\r\nexport class ScrollToSelectedDirective implements OnInit {\r\n @Input() scrollToClass: string;\r\n @HostListener('document:click', ['$event'])\r\n onClick(e) {\r\n const isStepElement = e.currentTarget.activeElement.classList.contains('mat-step-header');\r\n const isStepElementActive = e.currentTarget.activeElement.classList.contains('mat-primary');\r\n if (isStepElement && isStepElementActive) {\r\n this.rerenderView();\r\n }\r\n }\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n rerenderView() {\r\n if (this.el.nativeElement.classList.contains(this.scrollToClass)) {\r\n this.el.nativeElement.scrollIntoView(true, { behavior: 'smooth', block: 'start' });\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.rerenderView();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-scrollbar]',\r\n})\r\nexport class QMSScrollbarDirective implements OnInit {\r\n @Input() isNoneBackground: boolean;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-scrollbar');\r\n\r\n if (this.isNoneBackground) {\r\n this.ele.nativeElement.classList.add('none-scroll-bg');\r\n }\r\n }\r\n }\r\n}","import { AfterViewChecked, AfterViewInit, ContentChild, Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, \r\n OnDestroy,\r\n OnInit, Output, Renderer2, SimpleChanges, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[qms-input-clear]',\r\n})\r\nexport class QMSInputClearDirective {\r\n inputDemo;\r\n inputDemoChange;\r\n constructor(public el: ElementRef) {\r\n el.nativeElement.classList.add('qms-input-clear');\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mat-form-field[qms-search-field]',\r\n})\r\nexport class QMSSearchFieldDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n constructor(private ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-search-field-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-search-field-loading');\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-search-field');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-search-field-loading');\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-content]',\r\n})\r\nexport class QMSDrawerContentDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-content');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-header-action]',\r\n})\r\nexport class QMSDrawerHeaderActionDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-header__action');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-header]',\r\n})\r\nexport class QMSDrawerHeaderDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-header');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer]',\r\n})\r\nexport class QMSDrawerDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-group-advanced]',\r\n})\r\nexport class QMSTabGroupAdvancedDirective implements OnInit{\r\n @Input() color: string;\r\n @Input() type: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-group-advanced');\r\n if(this.color){\r\n this.ele.nativeElement.classList.add(this.color);\r\n }\r\n if(this.type==='fixed'){\r\n this.ele.nativeElement.classList.add('qms-tab-group-advanced-fixed');\r\n }\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-group]',\r\n})\r\nexport class QMSTabGroupDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-group');\r\n }\r\n \r\n }\r\n}","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-label]',\r\n})\r\nexport class QMSTabLabelDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-label');\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, Renderer2 } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-text-block-line]'\r\n})\r\nexport class QMSTextBlockLine {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n @Input('size') size: string;\r\n @Input('type') type: string;\r\n @Input('color') color: string;\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'caption-semibold') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption-semibold');\r\n }\r\n else if (this.type == 'caption'){\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption');\r\n }\r\n else if (this.type === 'body') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `content size-${this.size ? this.size : 'none'}`);\r\n } else {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `qms-text-block-line size-${this.size ? this.size : 'none'}`);\r\n }\r\n\r\n if (this.color) {\r\n this.renderer.addClass(this.elRef.nativeElement, this.color);\r\n }\r\n\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-text-block]',\r\n})\r\nexport class QMSTextBlockDirective implements OnInit {\r\n\r\n @Input('appearance') appearance: string;\r\n @Input('mode') mode: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-text-block');\r\n if(this.appearance == 'fill'){\r\n this.ele.nativeElement.classList.add('qms-text-block-filled')\r\n }\r\n if(this.mode === 'dark'){\r\n this.ele.nativeElement.classList.add('qms-text-block-dark')\r\n }\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tooltip-image]',\r\n})\r\nexport class QMSTooltipImageDirective implements OnInit {\r\n @Input('type') type: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tooltip-image');\r\n if (this.type) { \r\n this.ele.nativeElement.classList.add(this.type);\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, ContentChild, ElementRef, Input, OnInit, TemplateRef, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'qms-tooltip',\r\n templateUrl: './tooltip.html',\r\n styleUrls: ['./tooltip.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n })\r\nexport class QMSToolTipComponent implements OnInit, AfterViewInit {\r\n\r\n /**\r\n * This is simple text which is to be shown in the tooltip\r\n */\r\n @Input() text: string;\r\n @Input() mode: string;\r\n\r\n /**\r\n * This provides finer control on the content to be visible on the tooltip\r\n * This template will be injected in McToolTipRenderer directive in the consumer template\r\n * <ng-template #template>\r\n * content.....\r\n * </ng-template>\r\n */\r\n @Input() contentTemplate: TemplateRef<any>;\r\n @ViewChild('qmsTooltipContainer', {static: false}) qmsTooltipContainer: ElementRef;\r\n constructor(private ele: ElementRef) { }\r\n ngAfterViewInit(): void {\r\n if(this.mode == 'dark'){\r\n this.qmsTooltipContainer.nativeElement.classList.add('qms-tooltip-container-dark')\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n}","import { ConnectedPosition, ConnectionPositionPair, Overlay, OverlayPositionBuilder, OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { ComponentRef, Directive, ElementRef, HostListener, Input, TemplateRef } from \"@angular/core\";\r\nimport { QMSToolTipComponent } from \"../../components/tooltip/tooltip\";\r\n\r\n@Directive({\r\n selector: '[qms-tool-tip]'\r\n})\r\nexport class QMSToolTipRendererDirective {\r\n\r\n /**\r\n * This will be used to show tooltip or not\r\n * This can be used to show the tooltip conditionally\r\n */\r\n @Input() showToolTip: boolean = true;\r\n @Input() mode: string;\r\n //If this is specified then specified text will be showin in the tooltip\r\n @Input(`qms-tool-tip`) text: string;\r\n\r\n //If this is specified then specified template will be rendered in the tooltip\r\n @Input() contentTemplate: TemplateRef<any>;\r\n @Input() position: string;\r\n private _overlayRef: OverlayRef;\r\n\r\n constructor(private _overlay: Overlay,\r\n private _overlayPositionBuilder: OverlayPositionBuilder,\r\n private _elementRef: ElementRef) { }\r\n\r\n /**\r\n * Init life cycle event handler\r\n */\r\n ngOnInit() {\r\n let positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 5,\r\n }]);\r\n switch (this.position) {\r\n case 'left': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetY: 0,\r\n offsetX: -10,\r\n }]);\r\n break;\r\n }\r\n case 'right': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetY: 0,\r\n offsetX: 10,\r\n }]);\r\n break;\r\n }\r\n case 'top': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -10,\r\n offsetX: 0,\r\n }]);\r\n break;\r\n }\r\n case 'bottom': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 10,\r\n offsetX: 0\r\n }]);\r\n break;\r\n }\r\n }\r\n\r\n this._overlayRef = this._overlay.create({ positionStrategy });\r\n }\r\n\r\n /**\r\n * This method will be called whenever mouse enters in the Host element\r\n * i.e. where this directive is applied\r\n * This method will show the tooltip by instantiating the McToolTipComponent and attaching to the overlay\r\n */\r\n @HostListener('focus')\r\n @HostListener('mouseenter')\r\n show() {\r\n if (!this.showToolTip) {\r\n return;\r\n }\r\n //attach the component if it has not already attached to the overlay\r\n if ((this.text || this.contentTemplate) && this._overlayRef && !this._overlayRef.hasAttached()) {\r\n const tooltipRef: ComponentRef<QMSToolTipComponent>\r\n = this._overlayRef.attach(new ComponentPortal(QMSToolTipComponent));\r\n if(this.text)\r\n tooltipRef.instance.text = this.text;\r\n if (this.mode) {\r\n tooltipRef.instance.mode = this.mode;\r\n }\r\n tooltipRef.instance.contentTemplate = this.contentTemplate;\r\n }\r\n }\r\n\r\n /**\r\n * This method will be called when mouse goes out of the host element\r\n * i.e. where this directive is applied\r\n * This method will close the tooltip by detaching the overlay from the view\r\n */\r\n @HostListener('focusout')\r\n @HostListener('mouseleave')\r\n hide() {\r\n this.closeToolTip();\r\n }\r\n\r\n /**\r\n * Destroy lifecycle event handler\r\n * This method will make sure to close the tooltip\r\n * It will be needed in case when app is navigating to different page\r\n * and user is still seeing the tooltip; In that case we do not want to hang around the\r\n * tooltip after the page [on which tooltip visible] is destroyed\r\n */\r\n ngOnDestroy() {\r\n this.closeToolTip();\r\n }\r\n\r\n /**\r\n * This method will close the tooltip by detaching the component from the overlay\r\n */\r\n private closeToolTip() {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n }\r\n }\r\n}","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n AfterContentInit,\r\n Attribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n ViewChild,\r\n ViewEncapsulation,\r\n InjectionToken,\r\n Inject,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport {\r\n CanDisableRipple,\r\n mixinDisableRipple,\r\n} from '@angular/material/core';\r\n\r\n\r\n\r\nexport type ButtonToggleAppearance = 'standard' | 'active' | 'dark';\r\n\r\nexport interface ButtonToggleDefaultOptions {\r\n appearance?: ButtonToggleAppearance;\r\n}\r\n\r\n\r\nexport const BUTTON_TOGGLE_DEFAULT_OPTIONS =\r\n new InjectionToken<ButtonToggleDefaultOptions>('BUTTON_TOGGLE_DEFAULT_OPTIONS');\r\n\r\n\r\nexport const BUTTON_TOGGLE_GROUP =\r\n new InjectionToken<QMSButtonToggleGroup>('QMSButtonToggleGroup');\r\n\r\n\r\nexport const BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSButtonToggleGroup),\r\n multi: true\r\n};\r\n\r\n\r\nlet uniqueIdCounter = 0;\r\n\r\n\r\nexport class ButtonToggleChange {\r\n constructor(\r\n public source: QMSButtonToggle,\r\n public value: any) { }\r\n}\r\n\r\n\r\n@Directive({\r\n selector: 'qms-button-toggle-group',\r\n providers: [\r\n BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\r\n { provide: BUTTON_TOGGLE_GROUP, useExisting: QMSButtonToggleGroup },\r\n ],\r\n host: {\r\n 'role': 'group',\r\n 'class': 'qms-button-toggle-group',\r\n '[attr.aria-disabled]': 'disabled',\r\n '[class.qms-button-toggle-vertical]': 'vertical',\r\n '[class.qms-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\r\n '[class.qms-button-toggle-group-appearance-active]': 'appearance === \"active\"',\r\n '[class.qms-button-toggle-group-appearance-dark]': 'appearance === \"dark\"',\r\n },\r\n exportAs: 'qmsButtonToggleGroup',\r\n})\r\nexport class QMSButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\r\n private _vertical = false;\r\n private _disabled = false;\r\n private _selectionModel: SelectionModel<QMSButtonToggle>;\r\n\r\n private _rawValue: any;\r\n\r\n _controlValueAccessorChangeFn: (value: any) => void = () => { };\r\n\r\n _onTouched: () => any = () => { };\r\n\r\n @ContentChildren(forwardRef(() => QMSButtonToggle), {\r\n descendants: true\r\n }) _buttonToggles: QueryList<QMSButtonToggle>;\r\n\r\n\r\n @Input() appearance: ButtonToggleAppearance;\r\n\r\n @Input()\r\n get name(): string { return this._name; }\r\n set name(value: string) {\r\n this._name = value;\r\n\r\n if (this._buttonToggles) {\r\n this._buttonToggles.forEach(toggle => {\r\n toggle.name = this._name;\r\n toggle._markForCheck();\r\n });\r\n }\r\n }\r\n private _name = `qms-button-toggle-group-${uniqueIdCounter++}`;\r\n\r\n\r\n @Input()\r\n get vertical(): boolean { return this._vertical; }\r\n set vertical(value: boolean) {\r\n this._vertical = coerceBooleanProperty(value);\r\n }\r\n\r\n\r\n @Input()\r\n get value(): any {\r\n const selected = this._selectionModel ? this._selectionModel.selected : [];\r\n\r\n return selected[0] ? selected[0].value : undefined;\r\n }\r\n set value(newValue: any) {\r\n this._setSelectionByValue(newValue);\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n\r\n @Output() readonly valueChange = new EventEmitter<any>();\r\n\r\n\r\n get selected(): QMSButtonToggle | QMSButtonToggle[] {\r\n const selected = this._selectionModel ? this._selectionModel.selected : [];\r\n return (selected[0] || null);\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean { return this._disabled; }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n if (this._buttonToggles) {\r\n this._buttonToggles.forEach(toggle => toggle._markForCheck());\r\n }\r\n }\r\n\r\n @Output() readonly change: EventEmitter<ButtonToggleChange> =\r\n new EventEmitter<ButtonToggleChange>();\r\n\r\n constructor(\r\n private _changeDetector: ChangeDetectorRef,\r\n @Optional() @Inject(BUTTON_TOGGLE_DEFAULT_OPTIONS)\r\n defaultOptions?: ButtonToggleDefaultOptions) {\r\n\r\n this.appearance =\r\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\r\n }\r\n\r\n ngOnInit() {\r\n this._selectionModel = new SelectionModel<QMSButtonToggle>(false, undefined, false);\r\n }\r\n\r\n ngAfterContentInit() {\r\n this._selectionModel.select(...this._buttonToggles.filter(toggle => toggle.checked));\r\n }\r\n\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this._controlValueAccessorChangeFn = fn;\r\n }\r\n\r\n\r\n registerOnTouched(fn: any) {\r\n this._onTouched = fn;\r\n }\r\n\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n\r\n _emitChangeEvent(): void {\r\n const selected = this.selected;\r\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\r\n const event = new ButtonToggleChange(source!, this.value);\r\n this._controlValueAccessorChangeFn(event.value);\r\n this.change.emit(event);\r\n }\r\n\r\n _syncButtonToggle(toggle: QMSButtonToggle,\r\n select: boolean,\r\n isUserInput = false,\r\n deferEvents = false) {\r\n\r\n if (this.selected && !toggle.checked) {\r\n (this.selected as QMSButtonToggle).checked = false;\r\n }\r\n\r\n if (this._selectionModel) {\r\n if (select) {\r\n this._selectionModel.select(toggle);\r\n } else {\r\n this._selectionModel.deselect(toggle);\r\n }\r\n } else {\r\n deferEvents = true;\r\n }\r\n\r\n\r\n if (deferEvents) {\r\n Promise.resolve().then(() => this._updateModelValue(isUserInput));\r\n } else {\r\n this._updateModelValue(isUserInput);\r\n }\r\n }\r\n\r\n\r\n _isSelected(toggle: QMSButtonToggle) {\r\n return this._selectionModel && this._selectionModel.isSelected(toggle);\r\n }\r\n\r\n\r\n _isPrechecked(toggle: QMSButtonToggle) {\r\n if (typeof this._rawValue === 'undefined') {\r\n return false;\r\n }\r\n\r\n return toggle.value === this._rawValue;\r\n }\r\n\r\n\r\n private _setSelectionByValue(value: any | any[]) {\r\n this._rawValue = value;\r\n\r\n if (!this._buttonToggles) {\r\n return;\r\n }\r\n\r\n this._clearSelection();\r\n this._selectValue(value);\r\n }\r\n\r\n\r\n private _clearSelection() {\r\n this._selectionModel.clear();\r\n this._buttonToggles.forEach(toggle => toggle.checked = false);\r\n }\r\n\r\n\r\n private _selectValue(value: any) {\r\n const correspondingOption = this._buttonToggles.find(toggle => {\r\n return toggle.value != null && toggle.value === value;\r\n });\r\n\r\n if (correspondingOption) {\r\n correspondingOption.checked = true;\r\n this._selectionModel.select(correspondingOption);\r\n }\r\n }\r\n\r\n private _updateModelValue(isUserInput: boolean) {\r\n if (isUserInput) {\r\n this._emitChangeEvent();\r\n }\r\n\r\n\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_multiple: BooleanInput;\r\n static ngAcceptInputType_vertical: BooleanInput;\r\n}\r\n\r\n\r\nconst _ButtonToggleBase = mixinDisableRipple(class { });\r\n\r\n\r\n@Component({\r\n selector: 'qms-button-toggle',\r\n templateUrl: 'button-toggle.html',\r\n styleUrls: ['button-toggle.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'qmsButtonToggle',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: ['disableRipple'],\r\n host: {\r\n '[class.qms-button-toggle-standalone]': '!buttonToggleGroup',\r\n '[class.qms-button-toggle-checked]': 'checked',\r\n '[class.qms-button-toggle-disabled]': 'disabled',\r\n '[class.qms-button-toggle-appearance-standard]': 'appearance === \"standard\"',\r\n '[class.qms-button-toggle-appearance-active]': 'appearance === \"active\"',\r\n '[class.qms-button-toggle-appearance-dark]': 'appearance === \"dark\"',\r\n 'class': 'qms-button-toggle',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.id]': 'id',\r\n '[attr.name]': 'null',\r\n '(focus)': 'focus()',\r\n 'role': 'presentation',\r\n }\r\n})\r\nexport class QMSButtonToggle extends _ButtonToggleBase implements OnInit, AfterViewInit,\r\n CanDisableRipple, OnDestroy {\r\n\r\n private _checked = false;\r\n\r\n\r\n @Input('aria-label') ariaLabel: string;\r\n\r\n\r\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\r\n\r\n\r\n @ViewChild('button') _buttonElement: ElementRef<HTMLButtonElement>;\r\n\r\n\r\n buttonToggleGroup: QMSButtonToggleGroup;\r\n\r\n\r\n get buttonId(): string { return `${this.id}-button`; }\r\n\r\n\r\n @Input() id: string;\r\n\r\n\r\n @Input() name: string;\r\n\r\n\r\n @Input() value: any;\r\n\r\n\r\n @Input() tabIndex: number | null;\r\n\r\n\r\n @Input()\r\n get appearance(): ButtonToggleAppearance {\r\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\r\n }\r\n set appearance(value: ButtonToggleAppearance) {\r\n this._appearance = value;\r\n }\r\n private _appearance: ButtonToggleAppearance;\r\n\r\n\r\n @Input()\r\n get checked(): boolean {\r\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\r\n }\r\n set checked(value: boolean) {\r\n const newValue = coerceBooleanProperty(value);\r\n\r\n if (newValue !== this._checked) {\r\n this._checked = newValue;\r\n\r\n if (this.buttonToggleGroup) {\r\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\r\n }\r\n set disabled(value: boolean) { this._disabled = coerceBooleanProperty(value); }\r\n private _disabled: boolean = false;\r\n\r\n @Output() readonly change: EventEmitter<ButtonToggleChange> =\r\n new EventEmitter<ButtonToggleChange>();\r\n\r\n constructor(@Optional() @Inject(BUTTON_TOGGLE_GROUP) toggleGroup: QMSButtonToggleGroup,\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private _elementRef: ElementRef<HTMLElement>,\r\n private _focusMonitor: FocusMonitor,\r\n @Attribute('tabindex') defaultTabIndex: string,\r\n @Optional() @Inject(BUTTON_TOGGLE_DEFAULT_OPTIONS)\r\n defaultOptions?: ButtonToggleDefaultOptions) {\r\n super();\r\n\r\n const parsedTabIndex = Number(defaultTabIndex);\r\n this.tabIndex = (parsedTabIndex || parsedTabIndex === 0) ? parsedTabIndex : null;\r\n this.buttonToggleGroup = toggleGroup;\r\n this.appearance =\r\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\r\n }\r\n\r\n ngOnInit() {\r\n const group = this.buttonToggleGroup;\r\n this.id = this.id || `qms-button-toggle-${uniqueIdCounter++}`;\r\n\r\n this.name = group.name;\r\n\r\n if (group) {\r\n if (group._isPrechecked(this)) {\r\n this.checked = true;\r\n } else if (group._isSelected(this) !== this._checked) {\r\n group._syncButtonToggle(this, this._checked);\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n const group = this.buttonToggleGroup;\r\n\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n\r\n if (group && group._isSelected(this)) {\r\n group._syncButtonToggle(this, false, false, true);\r\n }\r\n }\r\n\r\n focus(options?: FocusOptions): void {\r\n this._buttonElement.nativeElement.focus(options);\r\n }\r\n\r\n _onButtonClick() {\r\n\r\n if (!this._checked) {\r\n this._checked = true;\r\n if (this.buttonToggleGroup) {\r\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\r\n this.buttonToggleGroup._onTouched();\r\n }\r\n }\r\n this.change.emit(new ButtonToggleChange(this, this.value));\r\n }\r\n\r\n\r\n _markForCheck() {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n static ngAcceptInputType_checked: BooleanInput;\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_vertical: BooleanInput;\r\n static ngAcceptInputType_disableRipple: BooleanInput;\r\n}","import { ElementRef } from '@angular/core';\r\n\r\nexport type Constructor<T> = new (...args: any[]) => T;\r\n\r\nexport type ThemePalette = 'primary' | 'secondary' | 'light' | 'dark' | undefined;\r\n\r\n/** @docs-private */\r\nexport interface CanColor {\r\n /** Theme color palette for the component. */\r\n color: ThemePalette;\r\n\r\n /** Default color to fall back to if no value is set. */\r\n defaultColor: ThemePalette | undefined;\r\n}\r\n\r\n/** @docs-private */\r\nexport type CanColorCtor = Constructor<CanColor>;\r\n\r\n/** @docs-private */\r\nexport interface HasElementRef {\r\n _elementRef: ElementRef;\r\n}\r\n\r\n///** Mixin to augment a directive with a `color` property. */\r\nexport function mixinColor<T extends Constructor<HasElementRef>>(base: T, defaultColor?: ThemePalette): CanColorCtor & T {\r\n return class extends base {\r\n private _color: ThemePalette;\r\n defaultColor = defaultColor;\r\n\r\n get color(): ThemePalette { return this._color; }\r\n set color(value: ThemePalette) {\r\n const colorPalette = value || this.defaultColor;\r\n if (colorPalette !== this._color) {\r\n if (this._color) {\r\n this._elementRef.nativeElement.classList.remove(`qms-${this._color}`);\r\n }\r\n if (colorPalette) {\r\n this._elementRef.nativeElement.classList.add(`qms-${colorPalette}`);\r\n }\r\n\r\n this._color = colorPalette;\r\n }\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n\r\n // Set the default color that can be specified from the mixin.\r\n this.color = defaultColor;\r\n }\r\n };\r\n}\r\n","import { FocusMonitor, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n Optional,\r\n Inject,\r\n Input,\r\n AfterViewInit,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport {\r\n CanColor,\r\n CanColorCtor,\r\n mixinColor,\r\n} from './color';\r\nimport {\r\n CanDisable,\r\n CanDisableCtor,\r\n mixinDisabled,\r\n} from '@angular/material/core';\r\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\r\n\r\nconst DEFAULT_ROUND_BUTTON_COLOR = 'primary';\r\n\r\n/**\r\n * List of classes to add to QMSButton instances based on host attributes to\r\n * style as different variants.\r\n */\r\nconst BUTTON_HOST_ATTRIBUTES = [\r\n 'qms-btn',\r\n 'qms-btn-lg',\r\n 'qms-btn-outlined',\r\n 'qms-btn-outlined-lg',\r\n 'qms-btn-text',\r\n 'qms-btn-text-lg',\r\n 'qms-btn-fab',\r\n 'qms-btn-fab-sm',\r\n 'qms-btn-fab-ext',\r\n 'qms-btn-fab-outlined',\r\n 'qms-btn-fab-outlined-sm',\r\n 'qms-btn-fab-outlined-ext'\r\n];\r\n\r\nclass QMSButtonBase {\r\n constructor(public _elementRef: ElementRef) { }\r\n}\r\n\r\nconst _QMSButtonMixinBase: CanDisableCtor & CanColorCtor &\r\n typeof QMSButtonBase = mixinColor(mixinDisabled(QMSButtonBase));\r\n\r\n\r\n/**\r\n * QMS design button.\r\n */\r\n@Component({\r\n selector: `button[qms-btn], button[qms-btn-lg], button[qms-btn-outlined],\r\n button[qms-btn-outlined-lg], button[qms-btn-text], button[qms-btn-text-lg],\r\n button[qms-btn-fab],button[qms-btn-fab-sm],button[qms-btn-fab-ext],\r\n button[qms-btn-fab-outlined],button[qms-btn-fab-outlined-sm],button[qms-btn-fab-outlined-ext]`,\r\n exportAs: 'qmsButton',\r\n host: {\r\n '[attr.disabled]': 'disabled || null',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled'\r\n },\r\n templateUrl: 'button.html',\r\n styleUrls: ['button.scss'],\r\n inputs: ['disabled', 'color'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSButton extends _QMSButtonMixinBase\r\n implements AfterViewInit, OnDestroy, CanDisable, CanColor, FocusableOption {\r\n\r\n constructor(elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string) {\r\n super(elementRef);\r\n\r\n for (const attr of BUTTON_HOST_ATTRIBUTES) {\r\n if (this._hasHostAttributes(attr)) {\r\n (this._getHostElement() as HTMLElement).classList.add(attr);\r\n }\r\n }\r\n\r\n elementRef.nativeElement.classList.add('qms-btn-base');\r\n }\r\n\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\r\n } else {\r\n this._getHostElement().focus(options);\r\n }\r\n }\r\n\r\n _getHostElement() {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n _hasHostAttributes(...attributes: string[]) {\r\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Material design anchor button.\r\n */\r\n@Component({\r\n selector: `a[qms-btn], a[qms-btn-lg], a[qms-btn-outlined],\r\n a[qms-btn-outlined-lg], a[qms-btn-text], a[qms-btn-text-lg],\r\n a[qms-btn-fab], a[qms-btn-fab-sm], a[qms-btn-fab-ext],\r\n a[qms-btn-fab-outlined],a[qms-btn-fab-outlined-sm],a[qms-btn-fab-outlined-ext]`,\r\n exportAs: 'qmsButton, qmsAnchor',\r\n host: {\r\n '[attr.tabindex]': 'disabled ? -1 : (tabIndex || 0)',\r\n '[attr.disabled]': 'disabled || null',\r\n '[attr.aria-disabled]': 'disabled.toString()',\r\n '(click)': '_haltDisabledEvents($event)',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled'\r\n },\r\n inputs: ['disabled', 'color'],\r\n templateUrl: 'button.html',\r\n styleUrls: ['button.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSAnchor extends QMSButton {\r\n @Input() tabIndex: number;\r\n\r\n constructor(\r\n focusMonitor: FocusMonitor,\r\n elementRef: ElementRef,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode: string) {\r\n super(elementRef, focusMonitor, animationMode);\r\n }\r\n\r\n _haltDisabledEvents(event: Event) {\r\n // A disabled button shouldn't apply any actions\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: `button[qms-btn-icon]`,\r\n exportAs: 'qmsButtonIcon',\r\n host: {\r\n 'class': 'qms-btn-icon',\r\n '[attr.disabled]': 'disabled || null',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled',\r\n '[class.active-icon]': 'type',\r\n },\r\n templateUrl: 'button-icon.html',\r\n styleUrls: ['button-icon.scss'],\r\n inputs: ['disabled', 'color', 'type'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSButtonIcon extends _QMSButtonMixinBase\r\n implements AfterViewInit, OnDestroy, CanDisable, CanColor, FocusableOption {\r\n\r\n @Input('type') type: string;\r\n\r\n constructor(elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n private renderer: Renderer2,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string) {\r\n super(elementRef);\r\n }\r\n\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\r\n } else {\r\n this._getHostElement().focus(options);\r\n }\r\n }\r\n\r\n _getHostElement() {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n _hasHostAttributes(...attributes: string[]) {\r\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n if (this.type) {\r\n this.renderer.addClass(this._elementRef.nativeElement, 'active-icon');\r\n }\r\n\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { QMSButtonToggle, QMSButtonToggleGroup } from './button-toggle';\r\nimport { QMSAnchor, QMSButton, QMSButtonIcon } from './button';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n QMSButton,\r\n QMSAnchor,\r\n QMSButtonIcon,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n QMSButtonToggle,\r\n QMSButtonToggleGroup\r\n ],\r\n declarations: [\r\n QMSButton,\r\n QMSAnchor,\r\n QMSButtonToggle,\r\n QMSButtonToggleGroup,\r\n QMSButtonIcon\r\n ],\r\n})\r\nexport class QMSButtonModule { }\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { QMSButtonModule } from './components/button/button.module';\r\n\r\n@NgModule({\r\n exports: [\r\n MatInputModule,\r\n MatCardModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n QMSButtonModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class SharedMaterialModule { }","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { TranslateLibraryService } from '../services/translation-registry.service';\r\n\r\n@Pipe({\r\n name: 'dateFormat'\r\n})\r\nexport class DateFormatPipe implements PipeTransform {\r\n\r\n constructor(private trans: TranslateLibraryService) {\r\n\r\n }\r\n\r\n transform(value: Date, args?: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n\r\n let valueFormat = '';\r\n let langCode = '';\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n langCode = res || 'en';\r\n });\r\n\r\n\r\n switch (langCode) {\r\n case 'en':\r\n valueFormat = 'MM/DD/YYYY hh:mm';\r\n break;\r\n case 'no':\r\n valueFormat = 'DD.MM.YYYY hh:mm';\r\n break;\r\n default:\r\n valueFormat = 'DD.MM.YYYY hh:mm';\r\n break;\r\n }\r\n\r\n return moment(value).format(valueFormat);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { QMSUploadingFileGuard } from './directives/file-upload/file-upload.directive';\r\nimport { TranslateLibraryService } from './services/translation-registry.service';\r\n\r\n\r\n@NgModule({})\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders<SharedModule> {\r\n return {\r\n ngModule: SharedModule,\r\n providers: [TranslateLibraryService, QMSUploadingFileGuard]\r\n };\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport { MAT_RADIO_DEFAULT_OPTIONS } from '@angular/material/radio';\r\nimport { QMSComment } from './components/comment/comment';\r\nimport { QMSConfirmDialog, QMSFormDialog } from './components/dialog/dialog';\r\nimport { QMSSuffixDirective, QMSSuffixFieldDirective } from './components/suffix-field/suffix-field.directive';\r\nimport { TestOnlyComponent } from './components/test-only/test-only.component';\r\nimport { QMSChipInputChipListDirective } from './directives/chip-input/chip-input-chip-list.directive';\r\nimport { QMSChipInputDirective } from './directives/chip-input/chip-input-field.directive';\r\nimport { QMSChipInputSelectDropWDownDirective } from './directives/chip-input/chip-input-select-dropdown.directive';\r\nimport { QMSChipInputSelectFieldDirective } from './directives/chip-input/chip-input-select-field.directive';\r\nimport { QMSChipInputSelectTriggerDirective } from './directives/chip-input/chip-input-select-trigger.directive';\r\nimport { QMSChipBodyDirective } from './directives/chips/chip-body.directive';\r\nimport { QMSInputChipDirective } from './directives/chips/chip.directive';\r\nimport { QMSDropdownMenuItem } from './directives/dropdown-menu/dropdown-item.directive';\r\nimport { QMSAttachmentListDirective } from './directives/file-upload/file-upload-attachment-list.directive';\r\nimport { QMSFileUploadDisplayDirective } from './directives/file-upload/file-upload-display.directive';\r\nimport { QMSFileUploadMultipleDisplayDirective } from './directives/file-upload/file-upload-multiple-display.directive';\r\nimport { QMSFileUploadMultipleSelectorDirective } from './directives/file-upload/file-upload-multiple-selector.directive';\r\nimport { QMSFileUploadMultipleDirective } from './directives/file-upload/file-upload-multiple.directive';\r\nimport { QMSScrolableAttachmentListDirective } from './directives/file-upload/file-upload-scrollable-attachment-list.directive';\r\nimport { QMSFileUploadSelectorDirective } from './directives/file-upload/file-upload-selector.directive';\r\nimport { QMSFileUploadDirective, QMSUploadingFileGuard } from './directives/file-upload/file-upload.directive';\r\nimport {\r\n AutocompleteOffDirective,\r\n QMSFormFieldDatePickerDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective\r\n} from './directives/form.directive';\r\nimport { MarginDirective } from './directives/margin.directive';\r\nimport { QMSRangeSliderLockUpDirective } from './directives/range-slider/range-slider-lockup.directive';\r\nimport { QMSRangeSliderDirective } from './directives/range-slider/range-slider.directive';\r\nimport { ScrollToSelectedDirective } from './directives/scroll-selected/scroll-to-selected.directive';\r\nimport { QMSScrollbarDirective } from './directives/scrollbar/scrollbar.directive';\r\nimport {\r\n QMSInputClearDirective,\r\n QMSSearchFieldDirective\r\n} from './directives/search-field.directive';\r\nimport { QMSDrawerContentDirective } from \"./directives/side-sheet/drawer-content.directive\";\r\nimport { QMSDrawerHeaderActionDirective } from \"./directives/side-sheet/drawer-header-action.directive\";\r\nimport { QMSDrawerHeaderDirective } from \"./directives/side-sheet/drawer-header.directive\";\r\nimport { QMSDrawerDirective } from \"./directives/side-sheet/drawer.directive\";\r\nimport { QMSTabGroupAdvancedDirective } from \"./directives/tab/tab-group-advanced.directive\";\r\nimport { QMSTabGroupDirective } from \"./directives/tab/tab-group.directive\";\r\nimport { QMSTabLabelDirective } from \"./directives/tab/tab-label.directive\";\r\nimport { QMSTextBlockLine } from \"./directives/text-block/text-block-line.directive\";\r\nimport { QMSTextBlockDirective } from \"./directives/text-block/text-block.directive\";\r\nimport { QMSTooltipImageDirective } from './directives/tooltip/tooltip-image.directive';\r\nimport { QMSToolTipRendererDirective } from \"./directives/tooltip/tooltip-renderer.directive\";\r\nimport { SharedMaterialModule } from './material-module';\r\nimport { DateFormatPipe } from './pipe/dateFormat.pipe';\r\nimport { QmsAngularComponent } from './qms-angular.component';\r\nimport { SharedModule } from './shared.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsAngularComponent,\r\n TestOnlyComponent,\r\n MarginDirective,\r\n QMSSearchFieldDirective,\r\n QMSInputClearDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective,\r\n QMSSuffixFieldDirective,\r\n QMSSuffixDirective,\r\n QMSFormFieldTextareaDirective,\r\n AutocompleteOffDirective,\r\n QMSComment,\r\n QMSConfirmDialog,\r\n QMSFormDialog,\r\n QMSFormFieldDatePickerDirective,\r\n QMSInputChipDirective,\r\n QMSChipBodyDirective,\r\n QMSFileUploadDirective,\r\n QMSFileUploadDisplayDirective,\r\n QMSFileUploadSelectorDirective,\r\n QMSAttachmentListDirective,\r\n QMSScrolableAttachmentListDirective,\r\n QMSFileUploadMultipleDirective,\r\n QMSFileUploadMultipleDisplayDirective,\r\n QMSFileUploadMultipleSelectorDirective,\r\n QMSRangeSliderDirective,\r\n QMSRangeSliderLockUpDirective,\r\n QMSDropdownMenuItem,\r\n QMSScrollbarDirective,\r\n QMSTextBlockDirective,\r\n QMSTextBlockLine,\r\n QMSDrawerDirective,\r\n QMSDrawerHeaderDirective,\r\n QMSDrawerContentDirective,\r\n QMSDrawerHeaderActionDirective,\r\n QMSToolTipRendererDirective,\r\n QMSTabLabelDirective,\r\n QMSTabGroupDirective,\r\n QMSTabGroupAdvancedDirective,\r\n DateFormatPipe,\r\n QMSChipInputDirective,\r\n QMSChipInputSelectFieldDirective,\r\n QMSChipInputSelectDropWDownDirective,\r\n QMSChipInputSelectTriggerDirective,\r\n QMSChipInputChipListDirective,\r\n ScrollToSelectedDirective,\r\n QMSTooltipImageDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule.forRoot(),\r\n SharedMaterialModule\r\n ],\r\n exports: [\r\n QmsAngularComponent,\r\n MarginDirective,\r\n TestOnlyComponent,\r\n QMSSearchFieldDirective,\r\n QMSInputClearDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective,\r\n QMSSuffixFieldDirective,\r\n QMSSuffixDirective,\r\n AutocompleteOffDirective,\r\n QMSComment,\r\n QMSConfirmDialog,\r\n QMSFormDialog,\r\n QMSInputChipDirective,\r\n QMSChipBodyDirective,\r\n QMSFormFieldDatePickerDirective,\r\n QMSFileUploadDirective,\r\n QMSFileUploadDisplayDirective,\r\n QMSFileUploadSelectorDirective,\r\n QMSAttachmentListDirective,\r\n QMSScrolableAttachmentListDirective,\r\n QMSFileUploadMultipleDirective,\r\n QMSFileUploadMultipleDisplayDirective,\r\n QMSFileUploadMultipleSelectorDirective,\r\n QMSRangeSliderDirective,\r\n QMSRangeSliderLockUpDirective,\r\n QMSDropdownMenuItem,\r\n QMSScrollbarDirective,\r\n QMSTextBlockDirective,\r\n QMSTextBlockLine,\r\n QMSDrawerDirective,\r\n QMSDrawerHeaderDirective,\r\n QMSDrawerContentDirective,\r\n QMSDrawerHeaderActionDirective,\r\n QMSToolTipRendererDirective,\r\n QMSTabLabelDirective,\r\n QMSTabGroupDirective,\r\n QMSTabGroupAdvancedDirective,\r\n DateFormatPipe,\r\n QMSChipInputDirective,\r\n QMSChipInputSelectFieldDirective,\r\n QMSChipInputSelectDropWDownDirective,\r\n QMSChipInputSelectTriggerDirective,\r\n QMSChipInputChipListDirective,\r\n ScrollToSelectedDirective,\r\n QMSTooltipImageDirective\r\n ],\r\n providers: [\r\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'fill' } },\r\n { provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: { color: 'none' } },\r\n QMSUploadingFileGuard\r\n ],\r\n // entryComponents: []\r\n})\r\nexport class QmsAngularModule { }\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit, ChangeDetectionStrategy, Component,\r\n ContentChildren, Directive, ElementRef, HostListener, Input, OnInit,\r\n QueryList, Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { setLines } from '@angular/material/core';\r\n\r\n\r\n@Directive({\r\n selector: '[leading-icon]',\r\n host: { 'class': 'leading-icon' }\r\n})\r\nexport class QMSListLeadingIcon { }\r\n\r\n@Directive({\r\n selector: '[qms-line]'\r\n})\r\nexport class QMSListLine {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n @Input('size') size: string;\r\n @Input('type') type: string;\r\n @Input('color') color: string;\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'caption') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption');\r\n }\r\n else if (this.type === 'subtitle') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `subtitle size-${this.size ? this.size : 'none'}`);\r\n } else {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `qms-line size-${this.size ? this.size : 'none'}`);\r\n }\r\n\r\n if (this.color) {\r\n this.renderer.addClass(this.elRef.nativeElement, this.color);\r\n }\r\n\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-list-header]',\r\n host: { 'class': 'qms-list-header' }\r\n})\r\nexport class QMSListHeader {\r\n\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-expansion]',\r\n host: { 'class': 'qms-expansion' }\r\n})\r\nexport class QMSListExpansion implements AfterContentInit {\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n // setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-expansion-header]',\r\n host: { 'class': 'qms-expansion-header' }\r\n})\r\nexport class QMSListExpansionHeader implements AfterContentInit {\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n @HostListener('click', ['$event']) onClick($event) {\r\n const qmsList = document.querySelectorAll('.qms-expansion-header');\r\n [].forEach.call(qmsList, (el) => {\r\n el.classList.remove('active-item');\r\n });\r\n this.renderer.addClass(this.elRef.nativeElement, 'active-item');\r\n }\r\n\r\n ngAfterContentInit() {\r\n setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'qms-list',\r\n templateUrl: 'list.html',\r\n styleUrls: ['list.scss'],\r\n host: { 'class': 'qms-list' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSList implements OnInit {\r\n\r\n constructor(private elRef: ElementRef) { }\r\n ngOnInit() { }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-list-item',\r\n templateUrl: 'list-item.html',\r\n styleUrls: ['list.scss'],\r\n host: {\r\n 'class': 'qms-list-item',\r\n '[class.qms-list-item-disabled]': 'disabled',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSListItem implements AfterViewInit {\r\n @Input('type') type: string;\r\n get disabled() { return this._disabled }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n }\r\n private _disabled = false;\r\n\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n constructor(private elRef: ElementRef<HTMLElement>, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n if (this.type) {\r\n // this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'qms-list-item image-item');\r\n this.renderer.addClass(this.elRef.nativeElement, 'image-item');\r\n this.renderer.addClass(this.elRef.nativeElement, this.type);\r\n }\r\n\r\n setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatExpansionModule, MAT_EXPANSION_PANEL_DEFAULT_OPTIONS } from '@angular/material/expansion';\r\n\r\nimport {\r\n QMSList, QMSListItem, QMSListLeadingIcon, QMSListLine,\r\n QMSListHeader, QMSListExpansion, QMSListExpansionHeader\r\n} from './list';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatListModule,\r\n MatExpansionModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatListModule,\r\n MatExpansionModule,\r\n QMSList,\r\n QMSListItem,\r\n QMSListLeadingIcon,\r\n QMSListLine,\r\n QMSListHeader,\r\n QMSListExpansion,\r\n QMSListExpansionHeader\r\n ],\r\n declarations: [\r\n QMSList,\r\n QMSListItem,\r\n QMSListLeadingIcon,\r\n QMSListLine,\r\n QMSListHeader,\r\n QMSListExpansion,\r\n QMSListExpansionHeader\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n useValue: {\r\n expandedHeight: '*',\r\n collapsedHeight: '*'\r\n }\r\n }\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSListModule { }\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewEncapsulation } from \"@angular/core\";\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\n@Component({\r\n selector: 'qms-rich-text',\r\n templateUrl: 'rich-text.html',\r\n styleUrls: ['rich-text.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSRichText),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QMSRichText),\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class QMSRichText implements OnInit, AfterViewInit, ControlValueAccessor, Validator {\r\n\r\n @Input('disabled') isDisabled: boolean;\r\n @Input('required') required: boolean = false;\r\n @Input('placeholder') placeholder: string;\r\n\r\n public _value: string;\r\n\r\n public Editor = [];\r\n\r\n public configEditor = {\r\n placeholder: 'Placeholder',\r\n toolbar: {\r\n items: [\r\n 'undo',\r\n 'redo',\r\n '|',\r\n 'alignment',\r\n '|',\r\n 'bold',\r\n 'italic',\r\n 'strikethrough',\r\n 'underline',\r\n '|',\r\n 'bulletedList',\r\n 'numberedList',\r\n '|',\r\n 'insertTable',\r\n \"blockQuote\",\r\n '|',\r\n 'heading'\r\n ]\r\n },\r\n alignment: {\r\n options: ['left', 'right', 'center', 'justify']\r\n },\r\n };\r\n\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n onChange: (_value: any) => void;\r\n onTouched: () => void;\r\n\r\n writeValue(obj: any): void {\r\n this._value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngAfterViewInit() {\r\n this.configEditor.placeholder = this.placeholder;\r\n\r\n if (this.isDisabled) {\r\n this.renderer.addClass(this.elRef.nativeElement, 'ck-disabled');\r\n }\r\n }\r\n\r\n public onChanged({ editor }) {\r\n const data = editor.getData();\r\n this.writeValue(data);\r\n this.onChange(data);\r\n }\r\n\r\n public onBlur({ editor }) {\r\n const data = editor.getData();\r\n this.writeValue(data);\r\n this.onChange(data);\r\n }\r\n\r\n validate(c: FormControl) {\r\n if (!this.required) {\r\n return null;\r\n }\r\n return (this._value && !this.required) ? null : {\r\n type: {\r\n valid: false,\r\n actual: c.value\r\n }\r\n };\r\n }\r\n\r\n public onReady(editor) {\r\n if (this._value) {\r\n editor.setData(this._value);\r\n }\r\n this.initEditor(editor);\r\n }\r\n\r\n private initEditor(editor) {\r\n editor.ui\r\n .getEditableElement()\r\n .parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n\r\n }\r\n\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { QMSRichText } from './rich-text';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSRichText,\r\n ],\r\n declarations: [\r\n QMSRichText,\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSRichTextModule { }\r\n","import { Component, ElementRef, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\n@Component({\r\n selector: 'qms-edit-file-name-dialog',\r\n templateUrl: 'edit-file-name-dialog.html',\r\n styleUrls: ['edit-file-name-dialog.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class QMSEditFileNameDialog {\r\n fileName: string;\r\n LANG: any;\r\n constructor(\r\n public dialogRef: MatDialogRef<QMSEditFileNameDialog>, \r\n public trans: TranslateLibraryService,\r\n @Inject(MAT_DIALOG_DATA) public data: string) {\r\n this.fileName = this.data;\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n cancel(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n saveChanges(): void {\r\n this.dialogRef.close(this.fileName);\r\n }\r\n\r\n clearInput(): void {\r\n this.fileName = '';\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { SharedModule } from \"../../shared.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSEditFileNameDialog } from \"./edit-file-name-dialog\";\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n FormsModule,\r\n SharedModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n QMSEditFileNameDialog\r\n ],\r\n declarations: [\r\n QMSEditFileNameDialog\r\n ],\r\n})\r\nexport class QMSEditFileNameDialogModule { }\r\n","import { Component, ElementRef, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\nexport class UploadErrorData {\r\n fileNames: string[];\r\n acceptedExtension: string[];\r\n}\r\n\r\n@Component({\r\n selector: 'qms-upload-file-error-dialog',\r\n templateUrl: 'upload-file-error-dialog.html',\r\n styleUrls: ['upload-file-error-dialog.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class QMSUploadFileErrorDialog {\r\n unsupportedFiles: string[];\r\n supportedExtensions: string[];\r\n LANG: any;\r\n constructor(\r\n public dialogRef: MatDialogRef<QMSUploadFileErrorDialog>, \r\n public trans: TranslateLibraryService,\r\n @Inject(MAT_DIALOG_DATA) public data: UploadErrorData) {\r\n this.unsupportedFiles = this.data.fileNames;\r\n this.supportedExtensions = this.data.acceptedExtension;\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n ok(): void {\r\n this.dialogRef.close(null);\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { SharedModule } from \"../../shared.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSUploadFileErrorDialog } from \"./upload-file-error-dialog\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n FormsModule,\r\n SharedModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n QMSUploadFileErrorDialog\r\n ],\r\n declarations: [\r\n QMSUploadFileErrorDialog\r\n ],\r\n})\r\nexport class QMSUploadFileErrorDialogModule { }","export const PROCESS_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 3V9H5V19H15V21H21V15H15V17H7V9H9V7H15V9H21V3H15V5H9V3H3ZM7 5V7H5V5H7ZM19 5V7H17V5H19ZM19 19V17H17V19H19Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const PROCESS_AREA_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M13 16.5V13H16.5V14.1667H20V13H23.5V16.5H20V15.3333H16.5V16.5H15.3333V21.1667H20V20H23.5V23.5H20V22.3333H14.1667V16.5H13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const PROCESS_AREA_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H13C11.8954 11 11 11.8954 11 13V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M13 16.5V13H16.5V14.1667H20V13H23.5V16.5H20V15.3333H16.5V16.5H15.3333V21.1667H20V20H23.5V23.5H20V22.3333H14.1667V16.5H13Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DOCUMENT_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 2H14L20 8V20C20 21.1 19.1 22 18 22H5.99C4.89 22 4 21.1 4 20L4.01 4C4.01 2.9 4.9 2 6 2ZM6 4V20H18V9H13V4H6Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEVIATION_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 21.5L12 2.5L23 21.5H1ZM19.53 19.5L12 6.49L4.47 19.5H19.53ZM11 16.5V18.5H13V16.5H11ZM11 10.5H13V14.5H11V10.5Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const CHECKLIST_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path d=\"M3 13H5V11H3V13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M3 17H5V15H3V17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M3 9H5V7H3V9Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 13H21V11H7V13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 17H21V15H7V17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 7V9H21V7H7Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const RISK_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 3V21H21V3H3ZM11 19H5V13H11V19ZM5 11H11V5H5V11ZM19 19H13V13H19V19ZM13 11H19V5H13V11Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const NORMAL_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V18C22 19.1 21.1 20 20 20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4ZM11.17 8L9.17 6H4V18H20V8H11.17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const NORMAL_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.59 4.59C10.21 4.21 9.7 4 9.17 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6H12L10.59 4.59Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const LOCAL_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V12H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const LOCAL_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V12H17C13.6863 12 11 14.6863 11 18V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const ENTERPRISE_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>\r\n`;\r\n\r\nexport const ENTERPRISE_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H17C13.6863 11 11 13.6863 11 17V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>`;\r\n\r\nexport const REGIONAL_FOLDER_OUTLINED_ICON = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H12V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.4999 13.0833C16.4037 13.0833 14.7083 14.7787 14.7083 16.8749C14.7083 19.1337 17.1024 22.2483 18.0883 23.4345C18.3049 23.6945 18.7003 23.6945 18.917 23.4345C19.8974 22.2483 22.2916 19.1337 22.2916 16.8749C22.2916 14.7787 20.5962 13.0833 18.4999 13.0833ZM18.4999 18.2291C17.7524 18.2291 17.1458 17.6224 17.1458 16.8749C17.1458 16.1274 17.7524 15.5208 18.4999 15.5208C19.2474 15.5208 19.8541 16.1274 19.8541 16.8749C19.8541 17.6224 19.2474 18.2291 18.4999 18.2291Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\n\r\nexport const REGIONAL_FOLDER_ICON = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H18C14.6863 11 12 13.6863 12 17V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.4999 13.0833C16.4037 13.0833 14.7083 14.7787 14.7083 16.8749C14.7083 19.1337 17.1024 22.2483 18.0883 23.4345C18.3049 23.6945 18.7003 23.6945 18.917 23.4345C19.8974 22.2483 22.2916 19.1337 22.2916 16.8749C22.2916 14.7787 20.5962 13.0833 18.4999 13.0833ZM18.4999 18.2291C17.7524 18.2291 17.1458 17.6224 17.1458 16.8749C17.1458 16.1274 17.7524 15.5208 18.4999 15.5208C19.2474 15.5208 19.8541 16.1274 19.8541 16.8749C19.8541 17.6224 19.2474 18.2291 18.4999 18.2291Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEPARTMENT_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V12H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEPARTMENT_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V12H17C13.6863 12 11 14.6863 11 18V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\n\r\n\r\nexport const KEYBOARD_UP_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"/></svg>\r\n`;\r\n\r\nexport const KEYBOARD_DOWN_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"/></svg>\r\n`;\r\n\r\n\r\nexport const DOCUMENT_LOCAL_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 2H6C4.9 2 4.01 2.9 4.01 4L4 20C4 21.1 4.89 22 5.99 22H11V20H6V4H13V9H18V12H20V8L14 2Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\nexport const DOCUMENT_DEPARTMENT_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 2H6C4.9 2 4.01 2.9 4.01 4L4 20C4 21.1 4.89 22 5.99 22H11V20H6V4H13V9H18V12H20V8L14 2Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\nexport const DOCUMENT_REGIONAL_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 2H6C4.9 2 4.01 2.9 4.01 4L4 20C4 21.1 4.89 22 5.99 22H11V20H6V4H13V9H18V12H20V8L14 2Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 13C16.065 13 14.5 14.565 14.5 16.5C14.5 18.585 16.71 21.46 17.62 22.555C17.82 22.795 18.185 22.795 18.385 22.555C19.29 21.46 21.5 18.585 21.5 16.5C21.5 14.565 19.935 13 18 13ZM18 17.75C17.31 17.75 16.75 17.19 16.75 16.5C16.75 15.81 17.31 15.25 18 15.25C18.69 15.25 19.25 15.81 19.25 16.5C19.25 17.19 18.69 17.75 18 17.75Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\nexport const DOCUMENT_ENTERPRISE_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 2H6C4.9 2 4.01 2.9 4.01 4L4 20C4 21.1 4.89 22 5.99 22H11V20H6V4H13V9H18V12H20V8L14 2Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>\r\n`;\r\n\r\n\r\n","import { AfterViewInit, Injectable, OnInit } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { CHECKLIST_ICON, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON } from \"../related/common/qms-icon.const\";\r\n\r\n@Injectable(\r\n {\r\n providedIn: 'root'\r\n }\r\n)\r\nexport class QMSIconRegistryService {\r\n registerProcessIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('process', _sanitizer.bypassSecurityTrustHtml(PROCESS_ICON));\r\n }\r\n \r\n registerProcessAreaIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('process_area', _sanitizer.bypassSecurityTrustHtml(PROCESS_AREA_ICON));\r\n _iconRegistry.addSvgIconLiteral('process_area_outlined', _sanitizer.bypassSecurityTrustHtml(PROCESS_AREA_OUTLINED_ICON));\r\n }\r\n\r\n registerDocumentIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('document', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_ICON));\r\n _iconRegistry.addSvgIconLiteral('document_local', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_LOCAL_ICON));\r\n _iconRegistry.addSvgIconLiteral('document_enterprise', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_ENTERPRISE_ICON));\r\n _iconRegistry.addSvgIconLiteral('document_department', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_DEPARTMENT_ICON));\r\n _iconRegistry.addSvgIconLiteral('document_regional', _sanitizer.bypassSecurityTrustHtml(DOCUMENT_REGIONAL_ICON));\r\n }\r\n registerFolderIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('folder', _sanitizer.bypassSecurityTrustHtml(NORMAL_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('folder_outlined', _sanitizer.bypassSecurityTrustHtml(NORMAL_FOLDER_OUTLINED_ICON));\r\n\r\n _iconRegistry.addSvgIconLiteral('local_folder', _sanitizer.bypassSecurityTrustHtml(LOCAL_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('local_folder_outlined', _sanitizer.bypassSecurityTrustHtml(LOCAL_FOLDER_OUTLINED_ICON));\r\n\r\n _iconRegistry.addSvgIconLiteral('enterprise_folder', _sanitizer.bypassSecurityTrustHtml(ENTERPRISE_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('enterprise_folder_outlined', _sanitizer.bypassSecurityTrustHtml(ENTERPRISE_FOLDER_OUTLINED_ICON));\r\n\r\n _iconRegistry.addSvgIconLiteral('regional_folder', _sanitizer.bypassSecurityTrustHtml(REGIONAL_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('regional_folder_outlined', _sanitizer.bypassSecurityTrustHtml(REGIONAL_FOLDER_OUTLINED_ICON));\r\n\r\n _iconRegistry.addSvgIconLiteral('department_folder', _sanitizer.bypassSecurityTrustHtml(DEPARTMENT_FOLDER_ICON));\r\n _iconRegistry.addSvgIconLiteral('department_folder_outlined', _sanitizer.bypassSecurityTrustHtml(DEPARTMENT_FOLDER_OUTLINED_ICON));\r\n }\r\n\r\n registerDeviationIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('deviation', _sanitizer.bypassSecurityTrustHtml(DEVIATION_ICON));\r\n }\r\n\r\n registerChecklistIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('checklist', _sanitizer.bypassSecurityTrustHtml(CHECKLIST_ICON));\r\n }\r\n\r\n registerRiskIcon(_iconRegistry: MatIconRegistry, _sanitizer: DomSanitizer): void {\r\n _iconRegistry.addSvgIconLiteral('risk', _sanitizer.bypassSecurityTrustHtml(RISK_ICON));\r\n }\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { QMSIconRegistryService } from \"./icon-registry.service\";\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule\r\n ],\r\n declarations: [\r\n ],\r\n providers: [QMSIconRegistryService]\r\n })\r\n export class QMSAppIconModule { }","export const BREADCRUMB_DROPDOWN_ICON = `<svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.3552 5.35508C11.9118 4.91175 11.3168 4.66675 10.6985 4.66675H4.66683C3.3835 4.66675 2.34516 5.71675 2.34516 7.00008L2.3335 21.0001C2.3335 22.2834 3.3835 23.3334 4.66683 23.3334H23.3335C24.6168 23.3334 25.6668 22.2834 25.6668 21.0001V9.33341C25.6668 8.05008 24.6168 7.00008 23.3335 7.00008H14.0002L12.3552 5.35508Z\" fill=\"#00324E\"/>\r\n<path d=\"M10.25 13.125L14 16.875L17.75 13.125H10.25Z\" fill=\"white\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;","export enum ItemIconType {\r\n none = 0,\r\n name = 1,\r\n path = 2,\r\n base64 = 3,\r\n svg = 4\r\n}\r\n","import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';\r\nimport { AfterViewInit, ContentChild, Directive, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output, Renderer2} from '@angular/core';\r\nimport { QMSToolTipRendererDirective } from '../../directives/tooltip/tooltip-renderer.directive';\r\n\r\n@Directive({\r\n selector: '[qms-breadcrumb-item]',\r\n})\r\nexport class QMSBreadcrumbItemDirective implements OnInit, AfterViewInit {\r\n @Input() isLastItem: boolean;\r\n @Input() showTooltip: boolean;\r\n @Output() showTooltipChange = new EventEmitter();\r\n @ContentChild(\"breadcrumbItemText\", {static: false}) breadcrumbItemText: ElementRef;\r\n constructor(public ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngAfterViewInit(): void {\r\n if(this.breadcrumbItemText){\r\n this.breadcrumbItemText.nativeElement.classList.add('qms-breadcrumb-item-text')\r\n if(this.breadcrumbItemText.nativeElement.innerText.length > 30){\r\n this.showTooltipChange.emit(true);\r\n }\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-breadcrumb-item');\r\n if(this.isLastItem){\r\n this.ele.nativeElement.classList.add('qms-breadcrumb-last-item')\r\n }\r\n }\r\n }\r\n}","export enum DropdownBreadCrumbNodeWidth{\r\n NORMAL = 66,\r\n TABLE = 44,\r\n}","import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { BREADCRUMB_DROPDOWN_ICON } from \"../../common/qms-icon.const\";\r\nimport { ItemIconType } from \"../related/common/item-icon-type.enum\";\r\nimport { QMSBreadcrumbItemDirective } from \"./breadcrumb-item.directive\";\r\nimport { DropdownBreadCrumbNodeWidth } from \"./enum/dropdown-node-width.enum\";\r\nimport { BreadcrumbNode } from \"./model/breadcrumb-node.model\";\r\n\r\n@Component({\r\n selector: 'qms-breadcrumb',\r\n templateUrl: 'breadcrumb.html',\r\n styleUrls: ['breadcrumb.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\n\r\nexport class QMSBreadcrumb implements OnInit, AfterViewInit {\r\n @Input() nodes: BreadcrumbNode[];\r\n @Input() type: string;\r\n @Input() maxLine: number;\r\n @Input() numDisplayItem: number = 0;\r\n @Input() onlyItem: boolean = false;\r\n @Input() disabledLastItem: boolean = true;\r\n @Output() onItemClick: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChildren(QMSBreadcrumbItemDirective, {}) breadCrumbNodes: QueryList<QMSBreadcrumbItemDirective>;\r\n\r\n dropdownNodes: BreadcrumbNode[] = [];\r\n isOverflow = false;\r\n homeNode: BreadcrumbNode;\r\n previousNode: BreadcrumbNode;\r\n itemNodes: BreadcrumbNode[];\r\n itemSpace: number = DropdownBreadCrumbNodeWidth.NORMAL; // width of dropdown node in normal view\r\n itemIconType;\r\n isMobileType: boolean = false;\r\n\r\n constructor(private ele: ElementRef,\r\n private iconRegistry: MatIconRegistry,\r\n private cdRef: ChangeDetectorRef,\r\n private sanitizer: DomSanitizer) {\r\n iconRegistry.addSvgIconLiteral('breadcrumb_dropdown', sanitizer.bypassSecurityTrustHtml(BREADCRUMB_DROPDOWN_ICON));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.isMobileType && this.ele.nativeElement.offsetWidth) {\r\n if (!this.maxLine || this.maxLine < 2) {\r\n this.checkOverflow(this.ele.nativeElement.offsetWidth);\r\n }\r\n else {\r\n this.checkOverflow(this.ele.nativeElement.offsetWidth * 1.7);\r\n }\r\n }\r\n\r\n //show number Items after 3 dot icon\r\n if (+this.numDisplayItem > 0 && this.itemNodes.length >= 2) {\r\n this.dropdownNodes = [];\r\n this.dropdownNodes = this.itemNodes.slice(0, -this.numDisplayItem).reverse();\r\n this.itemNodes = [...[], ...this.itemNodes.slice(-this.numDisplayItem)];\r\n this.isOverflow = true;\r\n this.cdRef.detectChanges();\r\n }\r\n //just show 1 item for mobile\r\n if (this.onlyItem) {\r\n this.isOverflow = true;\r\n this.dropdownNodes = [];\r\n let itemNodes = [...this.itemNodes];\r\n let lastItem = itemNodes.pop();\r\n this.dropdownNodes = [...itemNodes].reverse();\r\n this.dropdownNodes.push(this.homeNode);\r\n this.itemNodes = [];\r\n this.itemNodes = [lastItem];\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n }\r\n\r\n checkOverflow(width: number) {\r\n const nodeWidths = this.breadCrumbNodes.map(x => x.ele.nativeElement.offsetWidth);\r\n let currentWidth = 0;\r\n nodeWidths.forEach(width => {\r\n currentWidth += width;\r\n });\r\n this.isOverflow = width < currentWidth;\r\n this.cdRef.detectChanges();\r\n\r\n if (this.isOverflow) {\r\n let screenWidth = width;\r\n if (this.type !== 'table') {\r\n this.dropdownNodes.push(this.homeNode);\r\n currentWidth -= nodeWidths[0];\r\n currentWidth += this.itemSpace;\r\n screenWidth -= this.itemSpace;\r\n }\r\n else {\r\n currentWidth += this.itemSpace;\r\n screenWidth -= nodeWidths[0];\r\n screenWidth -= this.itemSpace;\r\n }\r\n nodeWidths.shift();\r\n nodeWidths.forEach((eleWidth, index) => {\r\n if (currentWidth > screenWidth) {\r\n this.itemNodes[index].isShow = false;\r\n this.dropdownNodes.push(this.itemNodes[index]);\r\n currentWidth -= (eleWidth);\r\n }\r\n });\r\n this.dropdownNodes = this.dropdownNodes.reverse();\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.itemIconType = ItemIconType;\r\n if (this.nodes && this.nodes.length > 0) {\r\n this.nodes.forEach(ele => {\r\n ele.isOverflow = ele.isOverflow ? ele.isOverflow : false;\r\n ele.isShow = true;\r\n ele.displayType = this.getItemIconType(ele);\r\n });\r\n if (this.type !== 'mobile') {\r\n this.homeNode = this.nodes[0];\r\n this.itemNodes = this.nodes.slice(1);\r\n }\r\n else {\r\n this.isMobileType = true;\r\n this.previousNode = this.nodes[this.nodes.length >= 2 ? this.nodes.length - 2 : 0];\r\n }\r\n }\r\n\r\n if (this.type === 'table') {\r\n this.ele.nativeElement.classList.add('qms-breadcrumb-table');\r\n this.itemSpace = DropdownBreadCrumbNodeWidth.TABLE; // width of dropdown node in table view\r\n }\r\n if (this.maxLine && this.maxLine > 1) {\r\n this.ele.nativeElement.classList.add('qms-breadcrumb__multi-line');\r\n }\r\n }\r\n\r\n getItemIconType(treeConfig: BreadcrumbNode) {\r\n if (treeConfig.itemIcon) return ItemIconType.name;\r\n if (treeConfig.itemIconPath) return ItemIconType.path;\r\n if (treeConfig.itemIconBase64) return ItemIconType.base64;\r\n if (treeConfig.itemIconSvg) return ItemIconType.svg;\r\n return ItemIconType.none;\r\n }\r\n\r\n getImagePath(node: BreadcrumbNode) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(node.itemIconBase64) as string;\r\n }\r\n\r\n onKeyPressed(event) {\r\n [...event.target.children].forEach(x => x.click());\r\n }\r\n\r\n onItemSelect(item: BreadcrumbNode, isLastItem?: boolean) {\r\n if (isLastItem && this.disabledLastItem) return;\r\n if (this.onItemClick) {\r\n this.onItemClick.emit(item);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-breadcrumb-direction-icon]',\r\n})\r\nexport class QMSBreadcrumbDirectionIconDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-breadcrumb-direction-icon');\r\n }\r\n }\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatMenuModule } from \"@angular/material/menu\";\r\nimport { QMSToolTipRendererDirective } from \"../../directives/tooltip/tooltip-renderer.directive\";\r\nimport { QmsAngularModule } from \"../../qms-angular.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSBreadcrumb } from \"./breadcrumb\";\r\nimport { QMSBreadcrumbDirectionIconDirective } from \"./breadcrumb-direction-icon.directive\";\r\nimport { QMSBreadcrumbItemDirective } from \"./breadcrumb-item.directive\";\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n QmsAngularModule,\r\n QMSButtonModule,\r\n MatMenuModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSBreadcrumb,\r\n QMSBreadcrumbItemDirective,\r\n QMSBreadcrumbDirectionIconDirective,\r\n ],\r\n declarations: [\r\n QMSBreadcrumb,\r\n QMSBreadcrumbItemDirective,\r\n QMSBreadcrumbDirectionIconDirective,\r\n ],\r\n providers: []\r\n })\r\n export class QMSBreadcrumbModule { }","export enum DataType {\r\n process = 2,\r\n document = 1,\r\n area = 3,\r\n folder = 4,\r\n deviation = 5,\r\n checklist = 6,\r\n risk = 7,\r\n deviationType = 8,\r\n checklistCategory = 9,\r\n riskFolder = 10\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { DataType } from \"../common/data-type.enum\";\r\nimport { SelectedNode } from \"../model/selected-node.model\";\r\n\r\n@Component({\r\n selector: 'qms-related-content',\r\n templateUrl: './related-content.component.html',\r\n styleUrls: ['./related-content.component.scss']\r\n})\r\nexport class RelatedContentComponent implements OnInit {\r\n LANG: any;\r\n @Input() header: string;\r\n @Input() contents: Array<SelectedNode> = [];\r\n\r\n dataType = DataType;\r\n imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';\r\n\r\n ngOnInit(): void {\r\n this.LANG = '';\r\n }\r\n\r\n removeContent(content: SelectedNode) {\r\n const index = this.contents.findIndex(x => {\r\n return x.id === content.id;\r\n });\r\n if (index >= 0) {\r\n this.contents.splice(index, 1);\r\n }\r\n }\r\n}\r\n","export enum DocumentNodeType {\r\n Document = 1,\r\n LinkDocument = 2,\r\n FileDocument = 3,\r\n ShortcutDocument = 4,\r\n Folder = 5, // Level 2\r\n TopFolder = 6, // Level 1\r\n DepartmentFolder = 7,\r\n RegionalFolder = 8\r\n}","import { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSIconRegistryService } from \"../../app-icon/icon-registry.service\";\r\nimport { DataType } from \"../common/data-type.enum\";\r\nimport { DocumentNodeType } from \"../common/document-folder-type.enum\";\r\nimport { IRelated, RelatedData } from \"../model/related-data.model\";\r\n\r\n@Component({\r\n selector: 'qms-related-list',\r\n templateUrl: './list-related.component.html',\r\n styleUrls: ['./list-related.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RelatedListComponent implements OnInit, OnChanges {\r\n LANG: any;\r\n title: string;\r\n isNotEditedItem: boolean;\r\n relatedData: Array<IRelated> = [];\r\n dataType = DataType;\r\n // imageProcess = '../qms-angular/src/assets/images/union.svg';\r\n imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';\r\n\r\n @Input() data: RelatedData;\r\n @Input() showStatus: boolean;\r\n @Output() updateData: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onItemSelect: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(\r\n private domSanitizer: DomSanitizer,\r\n public translate: TranslateLibraryService,\r\n private iconRegistry: MatIconRegistry,\r\n private appIconService: QMSIconRegistryService\r\n ) {\r\n appIconService.registerProcessIcon(iconRegistry, domSanitizer);\r\n appIconService.registerProcessAreaIcon(iconRegistry, domSanitizer);\r\n appIconService.registerDocumentIcon(iconRegistry, domSanitizer);\r\n appIconService.registerFolderIcon(iconRegistry, domSanitizer);\r\n appIconService.registerDeviationIcon(iconRegistry, domSanitizer);\r\n appIconService.registerChecklistIcon(iconRegistry, domSanitizer);\r\n appIconService.registerRiskIcon(iconRegistry, domSanitizer);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && JSON.stringify(changes.data.currentValue) !== JSON.stringify(changes.data.previousValue)) {\r\n this.relatedData = [];\r\n this.title = changes.data.currentValue.title;\r\n this.isNotEditedItem = changes.data.currentValue['isNotEditedItem'] ?? false;\r\n this.relatedData = [...changes.data.currentValue.data];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.title = this.data.title;\r\n this.isNotEditedItem = this.data['isNotEditedItem'] ?? false;\r\n this.relatedData = this.data.data;\r\n\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n getImagePath() {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.imageProcess) as string;\r\n }\r\n\r\n removeItem(index: number) {\r\n this.updateData.emit(index);\r\n }\r\n\r\n onCloseClick(): void {\r\n\r\n }\r\n\r\n onItemClick(item: any): void {\r\n if (this.onItemSelect)\r\n this.onItemSelect.emit(item);\r\n }\r\n\r\n onItemBreadcrumbClick(event: any) {\r\n if (this.onItemSelect)\r\n this.onItemSelect.emit(event);\r\n }\r\n\r\n getItemStatus(item: any) {\r\n return (this.showStatus && item?.statusName) ? `, ${item?.statusName}` : '';\r\n }\r\n\r\n getNodeIcon(item) {\r\n switch (item.itemType) {\r\n case DataType.folder: {\r\n switch (item.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'department_folder_outlined';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'regional_folder_outlined';\r\n case DocumentNodeType.TopFolder:\r\n return 'enterprise_folder_outlined';\r\n case DocumentNodeType.Folder:\r\n return 'local_folder_outlined';\r\n default:\r\n return 'folder_outlined';\r\n }\r\n }\r\n case DataType.document: {\r\n switch (item.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'document_department';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'document_regional';\r\n case DocumentNodeType.TopFolder:\r\n return 'document_enterprise';\r\n case DocumentNodeType.Folder:\r\n return 'document_local';\r\n default:\r\n return 'document';\r\n }\r\n }\r\n case DataType.area:\r\n return 'process_area_outlined';\r\n case DataType.process:\r\n return 'process';\r\n case DataType.deviation:\r\n return 'deviation';\r\n case DataType.checklist:\r\n return 'checklist';\r\n case DataType.risk:\r\n return 'risk';\r\n default:\r\n return 'folder_outlined';\r\n }\r\n }\r\n\r\n canShowParent(item) {\r\n return item.itemType === this.dataType.deviation || item.itemType === this.dataType.checklist;\r\n }\r\n}\r\n","export enum ModuleType {\r\n documentProcess = 1,\r\n deviation = 2,\r\n checklist = 3,\r\n risk = 4\r\n}\r\n","export class RelatedConst {\r\n public static IS_DISPLAY_SEARCH_RESULT = 'IS_DISPLAY_SEARCH_RESULT';\r\n public static HIDE_SEARCH_RESULT = 'HIDE_SEARCH_RESULT';\r\n public static SHOW_SEARCH_RESULT = 'SHOW_SEARCH_RESULT';\r\n}\r\n","import { TreeConfig } from \"./tree-config.model\";\r\nimport { TreeModel } from \"./tree.model\";\r\nexport class PopupData {\r\n moduleId: number;\r\n moduleName: string;\r\n treeData1: Array<TreeModel>;\r\n treeData2: Array<TreeModel>;\r\n treeConfig1: TreeConfig;\r\n treeConfig2: TreeConfig;\r\n selectedNode?: Array<any>;\r\n disabledList?: Array<any>;\r\n disabledList2?: Array<any>;\r\n splitView?: boolean;\r\n maxSelectItemCount?: number;\r\n canOnlySelectItem?: boolean;\r\n\r\n constructor() {\r\n this.moduleId = 0;\r\n this.moduleName = '';\r\n this.treeData1 = [];\r\n this.treeData2 = [];\r\n this.selectedNode = [];\r\n this.disabledList = [];\r\n this.disabledList2 = [];\r\n this.splitView = false;\r\n }\r\n}\r\n","import { BreadcrumbNode } from \"../../breadcrumb/model/breadcrumb-node.model\";\r\n\r\nexport class RelatedItem {\r\n id: number;\r\n name: string;\r\n type: number;\r\n icon: string;\r\n text: string;\r\n breadcumbs: BreadcrumbNode[];\r\n}\r\n\r\nexport class IRelated {\r\n id: string;\r\n itemName: string;\r\n itemType: number;\r\n statusName: string;\r\n itemNumberId?: string;\r\n parentId: string;\r\n parentName: string;\r\n disabled?: boolean;\r\n levelType?: number;\r\n breadcumbs?: string[];\r\n}\r\n\r\nexport class RelatedData {\r\n title: string;\r\n data: Array<IRelated>;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.data = [];\r\n }\r\n}\r\n\r\n\r\nexport class SearchRelatedItemsToProcessAndDocument {\r\n processes: IRelated[];\r\n documents: IRelated[];\r\n processAreas: IRelated[];\r\n folders: IRelated[];\r\n}\r\n\r\nexport class SearchRelatedItemsToDeviation {\r\n categories: IRelated[];\r\n types: IRelated[];\r\n}\r\n\r\n\r\nexport class SearchRelatedItemsToChecklist {\r\n checklists: IRelated[];\r\n categories: IRelated[];\r\n}\r\n\r\nexport class SearchRelatedItemsToRisk {\r\n assessments: IRelated[];\r\n folders: IRelated[];\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { IRelated } from \"../model/related-data.model\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class QMSRelatedGlobalService {\r\n searchRelated = new BehaviorSubject<IRelated[]>([]);\r\n splitViewValue = new BehaviorSubject<IRelated[]>([]);\r\n\r\n constructor() { }\r\n\r\n setSearchRelated(result: IRelated[]) {\r\n this.searchRelated.next(result);\r\n }\r\n\r\n setSplitviewValue(result: IRelated[]){\r\n this.splitViewValue.next(result);\r\n }\r\n}\r\n ","export class TreeNode {\r\n children: TreeNode[];\r\n id: string;\r\n name: string;\r\n parentId?: string;\r\n levelType?: number;\r\n}\r\n","import { TreeNode } from '../model/tree-node.model';\r\nimport { TreeModel } from '../model/tree.model';\r\n\r\nlet objData = {};\r\nlet json = JSON;\r\nfunction buildArrayTree(obj: object, level: number): TreeNode[] {\r\n return Object.keys(obj).reduce<TreeNode[]>((accumulator, key) => {\r\n const value = obj[key];\r\n const node = new TreeNode();\r\n const keyObj = json.parse(key);\r\n node.id = keyObj[\"id\"];\r\n node.name = keyObj[\"name\"];\r\n node.parentId = keyObj[\"parentId\"];\r\n node.levelType = keyObj[\"levelType\"];\r\n\r\n if (value != null) {\r\n if (typeof value === 'object') {\r\n node.children = this.buildArrayTree(value, level + 1);\r\n } else {\r\n node.name = value;\r\n }\r\n }\r\n\r\n return accumulator.concat(node);\r\n }, []);\r\n}\r\n\r\nfunction buildObjectTree(arr: TreeModel[]): object {\r\n objData = {};\r\n let objTreeData;\r\n const root = arr.filter((x: { parentId: string }) => {\r\n return x.parentId === '';\r\n });\r\n root.forEach((item) => {\r\n objTreeData = this.findParent(item.rootId, arr);\r\n });\r\n return objTreeData;\r\n}\r\n\r\nfunction findParent(id: string, array: TreeModel[]) {\r\n const objParent = {};\r\n const parent = array.filter((x: { rootId: string }) => {\r\n return x.rootId === id;\r\n });\r\n\r\n parent.forEach((item) => {\r\n let parentKey = {\r\n id: item.childId,\r\n name: item.childName,\r\n parentId: item.rootId,\r\n levelType: item.levelType\r\n }\r\n objParent[json.stringify(parentKey)] = null;\r\n });\r\n\r\n // find child\r\n const child = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n if (child.length > 0) {\r\n this.findChild(id, objParent, array);\r\n }\r\n\r\n let key = {\r\n id: parent[0].rootId,\r\n name: parent[0].rootName,\r\n parentId: '',\r\n levelType: parent[0].levelType\r\n }\r\n // add node to tree\r\n objData[json.stringify(key)] = objParent;\r\n return objData;\r\n}\r\n\r\nfunction findChild(id: string, objParent: object, array: TreeModel[]) {\r\n const subNode = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n subNode.forEach((item) => {\r\n const processNode = {};\r\n let nodeKey = {\r\n id: item.childId,\r\n name: item.childName,\r\n parentId: item.rootId,\r\n levelType: item.levelType\r\n }\r\n processNode[json.stringify(nodeKey)] = null;\r\n this.findChild(item.rootId, processNode, array);\r\n\r\n let key = {\r\n id: item.rootId,\r\n name: item.subName,\r\n parentId: id,\r\n levelType: item.levelType\r\n }\r\n objParent[json.stringify(key)] = { ...objParent[json.stringify(key)], ...processNode };\r\n });\r\n}\r\n\r\nconst TreeFunctions = {\r\n buildArrayTree,\r\n buildObjectTree,\r\n findParent,\r\n findChild\r\n};\r\n\r\nexport default TreeFunctions;\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { QMSIconRegistryService } from '../../app-icon/icon-registry.service';\r\nimport { DataType } from '../common/data-type.enum';\r\nimport { DocumentNodeType } from '../common/document-folder-type.enum';\r\nimport { ItemIconType } from '../common/item-icon-type.enum';\r\nimport { CHECKLIST_ICON, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON } from '../common/qms-icon.const';\r\nimport { RelatedConst } from '../common/related.const';\r\nimport TreeFunctions from '../common/tree.function';\r\nimport { TreeConfig } from '../model/tree-config.model';\r\nimport { TreeModel } from '../model/tree.model';\r\n\r\ninterface TreeNode {\r\n id: string;\r\n name: string;\r\n children?: TreeNode[];\r\n parentId?: string;\r\n levelType?: number;\r\n}\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n parentId?: string;\r\n disabled: boolean;\r\n levelType?: number;\r\n}\r\n\r\ninterface ICheckedNode {\r\n id: string;\r\n checked: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-tree',\r\n templateUrl: './tree.component.html',\r\n styleUrls: ['./tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class TreeComponent implements OnInit, OnChanges {\r\n @Input() treeData: Array<TreeModel> = [];\r\n @Input() treeConfig: TreeConfig;\r\n @Input() selectedData: Array<TreeFlatNode> = [];\r\n @Input() selectedRiskData: any = [];\r\n @Input() disabledList: any = [];\r\n @Output() selectNodeEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n @Output() selectFolderEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n @Output() checkBoxEvent: EventEmitter<TreeFlatNode[]> = new EventEmitter();\r\n @Output() childCheckedEvent: EventEmitter<ICheckedNode> = new EventEmitter();\r\n @Output() nodeExpandEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n\r\n listParentObj = {};\r\n filterData: TreeModel[] = [];\r\n treeObject: object;\r\n arrIndex: string[] = [];\r\n checkedNodeList: Array<TreeFlatNode> = [];\r\n useExpandFeature = true;\r\n allowSelectFolder = false;\r\n areaOfCurrentProcess = '';\r\n showCheckBox = false;\r\n allowMultipleCheck = true;\r\n singleSelectedNode = false;\r\n onlyCheckBoxForChild = false;\r\n onlyFolder = false;\r\n itemIconType = ItemIconType;\r\n displayType = 1;\r\n openIcon = '';\r\n openIconColor = '#1954A9';\r\n closeIcon = '';\r\n closeIconColor = '#000000';\r\n itemIcon = '';\r\n itemIconSvg = '';\r\n itemIconPath = '';\r\n itemIconBase64 = '';\r\n moduleId: number;\r\n\r\n treeControl = new FlatTreeControl<TreeFlatNode>(\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n }\r\n );\r\n\r\n isChecked = false;\r\n checklistSelection: any;\r\n\r\n constructor(private cdRef: ChangeDetectorRef,\r\n private domSanitizer: DomSanitizer,\r\n private iconRegistry: MatIconRegistry,\r\n private appIconService: QMSIconRegistryService) {\r\n iconRegistry.addSvgIconLiteral('keyboard_up', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_UP_ICON));\r\n iconRegistry.addSvgIconLiteral('keyboard_down', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_DOWN_ICON));\r\n appIconService.registerProcessIcon(iconRegistry, domSanitizer);\r\n appIconService.registerProcessAreaIcon(iconRegistry, domSanitizer);\r\n appIconService.registerDocumentIcon(iconRegistry, domSanitizer);\r\n appIconService.registerFolderIcon(iconRegistry, domSanitizer);\r\n appIconService.registerDeviationIcon(iconRegistry, domSanitizer);\r\n appIconService.registerChecklistIcon(iconRegistry, domSanitizer);\r\n appIconService.registerRiskIcon(iconRegistry, domSanitizer);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.treeData && JSON.stringify(changes.treeData.currentValue) !== JSON.stringify(changes.treeData.previousValue)) {\r\n this.treeData = [...this.treeData, changes.treeData.currentValue];\r\n this.initTreeData();\r\n }\r\n\r\n if (changes.selectedData &&\r\n (changes.selectedData.currentValue.length > 0 ||\r\n JSON.stringify(changes.selectedData.currentValue) !==\r\n JSON.stringify(changes.selectedData.previousValue))) {\r\n this.checkSelected(changes.selectedData.currentValue);\r\n } else {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.checklistSelection.deselect(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initTreeData();\r\n }\r\n\r\n initTreeData() {\r\n this.treeData.forEach(item => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentObj[item.parentId] = 1;\r\n }\r\n if (item.childId && item.childId.length > 0) {\r\n this.listParentObj[item.rootId] = 1;\r\n }\r\n });\r\n\r\n if (this.treeConfig.showCheckBox) {\r\n this.filterData = this.treeData;\r\n }\r\n else {\r\n this.filterData = this.treeData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n }\r\n\r\n this.treeObject = TreeFunctions.buildObjectTree(this.filterData);\r\n this.dataSource.data = TreeFunctions.buildArrayTree(this.treeObject, 0).map(element => {\r\n const item = this.sortDataTree(element);\r\n element = null;\r\n element = { ...{}, ...item };\r\n return element;\r\n });\r\n\r\n this.useExpandFeature = !this.treeConfig.showCheckBox;\r\n this.allowSelectFolder = this.treeConfig.allowSelectFolder;\r\n this.areaOfCurrentProcess = this.treeConfig.areaOfCurrentProcess;\r\n this.showCheckBox = this.treeConfig.showCheckBox;\r\n this.onlyCheckBoxForChild = this.treeConfig.onlyCheckBoxForChild;\r\n this.moduleId = this.treeConfig.moduleId;\r\n this.openIcon = this.treeConfig.openIcon;\r\n this.openIconColor = this.treeConfig.openIconColor ? this.treeConfig.openIconColor : this.openIconColor;\r\n this.closeIcon = this.treeConfig.closeIcon;\r\n this.closeIconColor = this.treeConfig.closeIconColor ? this.treeConfig.closeIconColor : this.closeIconColor;\r\n this.itemIcon = this.treeConfig.itemIcon;\r\n this.itemIconSvg = this.treeConfig.itemIconSvg;\r\n this.itemIconPath = this.treeConfig.itemIconPath;\r\n this.itemIconBase64 = this.domSanitizer.bypassSecurityTrustResourceUrl(this.treeConfig.itemIconBase64) as string;\r\n this.allowMultipleCheck = this.treeConfig.allowMultipleCheck;\r\n this.singleSelectedNode = this.treeConfig.singleSelectedNode;\r\n this.onlyFolder = this.treeConfig.onlyFolder;\r\n this.checklistSelection = new SelectionModel<TreeFlatNode>(this.allowMultipleCheck); /* true: multiple */\r\n\r\n this.displayType = this.getItemIconType(this.treeConfig);\r\n\r\n // Expand child node tree\r\n if (this.treeConfig.expandAll) {\r\n this.treeControl.expandAll();\r\n }\r\n\r\n // Risk Tree\r\n if (this.selectedRiskData.length) {\r\n const selectedData = [];\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.selectedRiskData.forEach(x => {\r\n const index = selectedData.findIndex(el => el.id === x.rootId);\r\n if (x.rootId === this.treeControl.dataNodes[i].id && index < 0) {\r\n selectedData.push(this.treeControl.dataNodes[i]);\r\n }\r\n });\r\n }\r\n\r\n this.checkSelected(selectedData);\r\n this.checkBoxEvent.emit(selectedData);\r\n }\r\n\r\n // Disable List\r\n if (this.disabledList.length) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.disabledList.forEach(x => {\r\n if (x.id === this.treeControl.dataNodes[i].id\r\n && (!x.parentId || x.parentId === this.treeControl.dataNodes[i].parentId)) {\r\n this.treeControl.dataNodes[i].disabled = true;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n sortDataTree(obj) {\r\n if (obj.children) {\r\n let child = [];\r\n const leafNode = obj.children.filter(x => !x.children);\r\n const subFolderNode = obj.children.filter(x => x.children);\r\n // for(let index = subFolderNode.length - 1; index >= 0 ; index--){\r\n // let el = subFolderNode[index];\r\n // this.sortDataTree(el); \r\n // child.unshift(el); \r\n // }\r\n subFolderNode.forEach(element => {\r\n let el = element;\r\n this.sortDataTree(el);\r\n child.push(el);\r\n });\r\n\r\n leafNode.forEach(element => {\r\n let el = element;\r\n child.push(el);\r\n });\r\n obj.children = child;\r\n }\r\n return obj;\r\n }\r\n\r\n getImagePath() {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.treeConfig.itemIconBase64) as string;\r\n }\r\n\r\n checkSelected(itemSelected: TreeFlatNode[]) {\r\n setTimeout(() => {\r\n if (!this.treeControl['dataNodes']) return;\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n const tree = this.treeControl.dataNodes[i];\r\n this.checklistSelection.deselect(tree);\r\n\r\n for (let j = 0; j < itemSelected.length; j++) {\r\n const element = itemSelected[j];\r\n if (tree.id === element.id && (!element.parentId || tree.parentId === element.parentId) && !tree.disabled) {\r\n this.checklistSelection.select(tree);\r\n }\r\n }\r\n }\r\n }, 500);\r\n\r\n }\r\n\r\n checkSelectedSameNode(itemSelected: TreeFlatNode[], flag: boolean) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n const tree = this.treeControl.dataNodes[i];\r\n for (let j = 0; j < itemSelected.length; j++) {\r\n const element = itemSelected[j];\r\n if (element.id && tree.id === element.id\r\n && tree.parentId === element.parentId && !tree.disabled) {\r\n flag ? this.checklistSelection.select(tree) : this.checklistSelection.deselect(tree);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n private getItemIconType(treeConfig: TreeConfig) {\r\n if (treeConfig.itemIcon && treeConfig.itemIcon.length) return this.itemIconType.name;\r\n if (treeConfig.itemIconPath && treeConfig.itemIconPath.length) return this.itemIconType.path;\r\n if (treeConfig.itemIconBase64 && treeConfig.itemIconBase64.length) return this.itemIconType.base64;\r\n if (treeConfig.itemIconSvg && treeConfig.itemIconSvg.length) return this.itemIconType.svg;\r\n return this.itemIconType.none;\r\n }\r\n\r\n private transformer = (node: TreeNode, level: number) => {\r\n let checkHasChild = true;\r\n if (!node.children) {\r\n checkHasChild = false;\r\n } else if (!(!!node.children && node.children.length && node.children.length > 0)) {\r\n checkHasChild = false;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n else if (\r\n !!node.children &&\r\n node.children.length &&\r\n node.children.length === 1 &&\r\n !node.children[0].name.length &&\r\n node.id.toString() === this.areaOfCurrentProcess\r\n ) {\r\n checkHasChild = false;\r\n }\r\n\r\n if (!(this.listParentObj[node.id] === 1)) {\r\n checkHasChild = false;\r\n }\r\n\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n name: node.name,\r\n level,\r\n id: node.id,\r\n hasChild: checkHasChild,\r\n parentId: node.parentId,\r\n disabled: false,\r\n levelType: node.levelType\r\n };\r\n };\r\n\r\n treeFlattener = new MatTreeFlattener(\r\n this.transformer,\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n },\r\n (node) => {\r\n return node.children;\r\n }\r\n );\r\n\r\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n\r\n /** Whether all the descendants of the node are selected */\r\n descendantsAllSelected(node: TreeFlatNode): boolean {\r\n\r\n const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];\r\n\r\n if (!descendants.length) {\r\n return this.checklistSelection.isSelected(node);\r\n }\r\n const selected = this.checklistSelection.isSelected(node);\r\n\r\n const allSelected = descendants.every(child => this.checklistSelection.isSelected(child));\r\n if (!selected && allSelected) {\r\n this.checklistSelection.select(node);\r\n this.cdRef.markForCheck();\r\n }\r\n return allSelected;\r\n\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: TreeFlatNode): boolean {\r\n const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];\r\n\r\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\r\n return result && !this.descendantsAllSelected(node);\r\n }\r\n\r\n /** Toggle the to-do item selection. Select/deselect all the descendants node */\r\n todoItemSelectionToggle(node: TreeFlatNode): void {\r\n // tree have duplicate node\r\n if (this.treeConfig.canHaveDupId) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id\r\n && this.treeControl.dataNodes[i].parentId === node.parentId\r\n && !this.treeControl.dataNodes[i].disabled) {\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n } else {\r\n this.checklistSelection.toggle(node);\r\n }\r\n\r\n\r\n // process/ document single selected\r\n if (this.singleSelectedNode) {\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n\r\n } else {\r\n const descendants = this.treeControl.getDescendants(node).filter(item => !item.disabled);\r\n\r\n this.checkSelectedSameNode(descendants, this.descendantsAllSelected(node));\r\n\r\n !this.descendantsAllSelected(node)\r\n ? this.checklistSelection.select(...descendants)\r\n : this.checklistSelection.deselect(...descendants);\r\n\r\n this.cdRef.markForCheck();\r\n\r\n const allNodeIsParent = this.checklistSelection.selected.every(child => child.expandable);\r\n if (allNodeIsParent) {\r\n this.checklistSelection.selected.forEach(element => {\r\n this.checklistSelection.deselect(element);\r\n });\r\n }\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n\r\n }\r\n\r\n todoChildSelectionToggle(node: TreeFlatNode): void {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id\r\n && this.treeControl.dataNodes[i].parentId === node.parentId\r\n && !this.treeControl.dataNodes[i].disabled) {\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n // this.checklistSelection.toggle(node);\r\n this.cdRef.markForCheck();\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n\r\n }\r\n\r\n public todoItemSelectionById(ids: any[]): void {\r\n ids.forEach(\r\n id => {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === id\r\n && !this.treeControl.dataNodes[i].disabled) {\r\n if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n }\r\n )\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n public todoItemSelection(nodes: TreeNode[]): void {\r\n nodes.forEach(\r\n node => {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id &&\r\n this.treeControl.dataNodes[i].parentId === node.parentId &&\r\n !this.treeControl.dataNodes[i].disabled) {\r\n if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n }\r\n )\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n hasChild = (_: number, node: TreeFlatNode) => {\r\n return node.expandable;\r\n };\r\n\r\n selectNode(node: TreeFlatNode) {\r\n if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {\r\n window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');\r\n }\r\n\r\n this.selectNodeEvent.emit(node);\r\n }\r\n\r\n selectFolder(node: TreeFlatNode) {\r\n this.selectFolderEvent.emit(node);\r\n }\r\n\r\n onExpandNode(node: TreeFlatNode, isExpandNode?: boolean) {\r\n if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {\r\n window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');\r\n }\r\n // set useExpandFeature = true to improve performance of tree loading\r\n if (!isExpandNode || !this.useExpandFeature) {\r\n for (let i = 0; i < this.arrIndex.length; i++) {\r\n if (this.arrIndex[i] === node.id) {\r\n this.arrIndex.splice(i, 1);\r\n }\r\n }\r\n if(isExpandNode){\r\n this.nodeExpandEvent.emit(node);\r\n }\r\n return;\r\n }\r\n\r\n \r\n\r\n // get array index to expand node after refresh datasource\r\n let index = 0;\r\n let isChange = false;\r\n let isRemove = false;\r\n this.arrIndex.push(node.id);\r\n\r\n const childArray = this.treeData.filter((x) => {\r\n return x.parentId === node.id;\r\n });\r\n let rootId = '0';\r\n let parentElement: TreeNode;\r\n let childrenList: TreeNode[];\r\n if (childArray.length === 0) {\r\n return;\r\n }\r\n childArray.forEach((item) => {\r\n if (item.rootId === rootId) {\r\n return;\r\n }\r\n\r\n // get child node from original datasource\r\n const child = this.getChildNode(item.rootId, childArray);\r\n rootId = item.rootId;\r\n\r\n index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n // add child node to expand node\r\n parentElement = this.findParentNode(node.id, this.dataSource.data);\r\n if (parentElement) {\r\n // temporary remove all node without children => purpose to add node folder first\r\n if (!isRemove) {\r\n childrenList = [...parentElement.children];\r\n this.removeChildren(parentElement);\r\n isRemove = true;\r\n }\r\n // add node folder first\r\n parentElement.children.push(child);\r\n isChange = true;\r\n }\r\n });\r\n // add node without children again\r\n if (isRemove) {\r\n this.addChildren(parentElement, childrenList);\r\n }\r\n\r\n // refresh data and expand tree node from root node\r\n if (isChange) {\r\n this.refreshTreeData();\r\n this.arrIndex.forEach((item) => {\r\n index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);\r\n this.treeControl.expand(this.treeControl.dataNodes[index]);\r\n });\r\n isChange = false;\r\n }\r\n }\r\n\r\n removeChildren(parentElement?: TreeNode) {\r\n if (parentElement.children) {\r\n parentElement.children.length = 0;\r\n }\r\n }\r\n\r\n addChildren(parentElement?: TreeNode, childrenList?: TreeNode[]) {\r\n if (childrenList) {\r\n childrenList.forEach((e) => {\r\n parentElement.children.push(e);\r\n });\r\n }\r\n }\r\n\r\n getNodeIndex(id: string, level?: number, data?: any[]) {\r\n if (level) {\r\n return data.findIndex((x) => {\r\n return x.id === id && x.level === level;\r\n });\r\n }\r\n\r\n return data.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n }\r\n\r\n getChildNode(rootId: string, data: any) {\r\n const childArray = data.filter((x) => {\r\n return x.rootId === rootId;\r\n });\r\n const child = { id: childArray[0].rootId, name: childArray[0].subName, children: [] } as TreeNode;\r\n childArray.forEach((item) => {\r\n child.children.push({ id: item.childId, name: item.childName, parentId: rootId });\r\n });\r\n return child;\r\n }\r\n\r\n findParentNode(id: string, data: TreeNode[]) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentFather of data) {\r\n if (currentFather.id === id) {\r\n return currentFather;\r\n }\r\n\r\n if (currentFather.children) {\r\n const currentChild = currentFather.children.find((x) => {\r\n return x.id === id;\r\n });\r\n if (currentChild) {\r\n return currentChild;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentChild1 of currentFather.children) {\r\n if (id !== currentChild1.id) {\r\n const result = this.findParentNode(id, currentFather.children);\r\n if (result !== false) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshTreeData() {\r\n const data = this.dataSource.data;\r\n this.dataSource.data = [];\r\n this.dataSource.data = data;\r\n }\r\n\r\n getNodeIcon(node: TreeFlatNode) {\r\n if (this.openIcon && this.closeIcon) {\r\n return this.treeControl.isExpanded(node) ? this.openIcon : this.closeIcon;\r\n }\r\n switch (this.moduleId) {\r\n case DataType.document: {\r\n const nodeData = this.treeData.filter(x => { return x.rootId === node.id; });\r\n if (nodeData.length > 0) {\r\n switch (nodeData[0].levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return this.treeControl.isExpanded(node) ? 'department_folder_outlined' : 'department_folder';\r\n case DocumentNodeType.RegionalFolder:\r\n return this.treeControl.isExpanded(node) ? 'regional_folder_outlined' : 'regional_folder';\r\n case DocumentNodeType.TopFolder:\r\n return this.treeControl.isExpanded(node) ? 'enterprise_folder_outlined' : 'enterprise_folder';\r\n case DocumentNodeType.Folder:\r\n return this.treeControl.isExpanded(node) ? 'local_folder_outlined' : 'local_folder';\r\n default:\r\n return this.treeControl.isExpanded(node) ? 'folder_outlined' : 'folder';\r\n }\r\n }\r\n return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';\r\n }\r\n case DataType.process:\r\n return this.treeControl.isExpanded(node) ? 'process_area_outlined' : 'process_area';\r\n default:\r\n return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';\r\n }\r\n }\r\n\r\n getItemIcon(node) {\r\n switch (this.moduleId) {\r\n case DataType.document:\r\n switch (node.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'document_department';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'document_regional';\r\n case DocumentNodeType.TopFolder:\r\n return 'document_enterprise';\r\n case DocumentNodeType.Folder:\r\n return 'document_local';\r\n default:\r\n return 'document';\r\n }\r\n case DataType.process:\r\n return 'process';\r\n case DataType.checklist:\r\n return 'checklist';\r\n case DataType.deviation:\r\n return 'deviation';\r\n case DataType.risk:\r\n return 'risk';\r\n default:\r\n return 'document';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, EventEmitter, OnDestroy, ViewChild, ViewEncapsulation, AfterViewChecked, QueryList, ViewChildren } from '@angular/core';\r\nimport { Component, HostListener, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { DataType } from '../common/data-type.enum';\r\nimport { ModuleType } from '../common/module-type.enum';\r\nimport { RelatedConst } from '../common/related.const';\r\nimport { PopupData } from '../model/popup-data.model';\r\nimport { IRelated, RelatedItem } from '../model/related-data.model';\r\nimport { SelectedNode } from '../model/selected-node.model';\r\nimport { TreeConfig } from '../model/tree-config.model';\r\nimport { TreeModel } from '../model/tree.model';\r\nimport { QMSRelatedGlobalService } from '../service/related-global.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { CHECKLIST_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, RISK_ICON } from '../common/qms-icon.const';\r\nimport { TreeComponent } from '../tree/tree.component';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { TreeNode } from '../../../qms-ckeditor-components/common/models/qms-ckeditor-tree-node.model';\r\nimport { DocumentNodeType } from '../common/document-folder-type.enum';\r\nimport { QMSIconRegistryService } from '../../app-icon/icon-registry.service';\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n parentId?: string;\r\n disabled: boolean;\r\n levelType?: number;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-related-popup',\r\n templateUrl: './related-popup.component.html',\r\n styleUrls: ['./related-popup.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RelatedPopupComponent implements OnInit, OnDestroy, AfterViewChecked {\r\n ngUnsubscribe = new Subject<void>();\r\n\r\n LANG: any;\r\n moduleId = 0;\r\n moduleName = '';\r\n treeData1: Array<TreeModel> = [];\r\n treeData2: Array<TreeModel> = [];\r\n treeConfig1: TreeConfig;\r\n treeConfig2: TreeConfig;\r\n\r\n checkedNodeList: Array<SelectedNode> = [];\r\n selectedNode: Array<SelectedNode> = [];\r\n selectedData: Array<TreeFlatNode> = [];\r\n selectedData2: Array<TreeFlatNode> = [];\r\n\r\n commonCheckedList: Array<TreeFlatNode> = [];\r\n documentCheckedList: Array<TreeFlatNode> = [];\r\n singleProcessList: Array<SelectedNode> = [];\r\n singleDocumentList: Array<SelectedNode> = [];\r\n splitView: boolean;\r\n\r\n module = ModuleType;\r\n dataType = DataType;\r\n itemType = 0;\r\n selectedRiskData: any = [];\r\n disabledList: any = [];\r\n disabledList2: any = [];\r\n maxSelectItemCount: number;\r\n canOnlySelectItem: boolean;\r\n\r\n isDocumentExpanded = true;\r\n isCommonExpanded = true;\r\n singleSelectedNode = false;\r\n searchOrder = [];\r\n\r\n myControl = new FormControl();\r\n filteredOptions: IRelated[] = [];\r\n isInputValue = false;\r\n\r\n itemInSplitview: IRelated[] = [];\r\n selectedFolder: TreeFlatNode = null;\r\n splitViewTitle: string = null;\r\n\r\n onSearch = new EventEmitter();\r\n onExpandFolder = new EventEmitter<IRelated>();\r\n\r\n @ViewChildren(TreeComponent, {}) dataTrees: QueryList<TreeComponent>;\r\n\r\n @ViewChild('autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true })\r\n autoComplete: MatAutocompleteTrigger;\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n public translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<RelatedPopupComponent>,\r\n public globalService: QMSRelatedGlobalService,\r\n private iconRegistry: MatIconRegistry,\r\n private sanitizer: DomSanitizer,\r\n private appIconService: QMSIconRegistryService,\r\n @Inject(MAT_DIALOG_DATA) public data: PopupData\r\n ) {\r\n this.moduleId = data.moduleId;\r\n this.moduleName = data.moduleName;\r\n this.treeData1 = data.treeData1;\r\n this.treeData2 = data.treeData2;\r\n this.treeConfig1 = data.treeConfig1;\r\n this.treeConfig2 = data.treeConfig2;\r\n this.selectedRiskData = data?.selectedNode || [];\r\n this.singleSelectedNode = data.treeConfig1.singleSelectedNode;\r\n this.disabledList = data.disabledList || [];\r\n this.disabledList2 = data.disabledList2 || [];\r\n this.splitView = data.splitView;\r\n this.maxSelectItemCount = data.maxSelectItemCount;\r\n this.canOnlySelectItem = data.canOnlySelectItem;\r\n appIconService.registerProcessIcon(iconRegistry, sanitizer);\r\n appIconService.registerProcessAreaIcon(iconRegistry, sanitizer);\r\n appIconService.registerDocumentIcon(iconRegistry, sanitizer);\r\n appIconService.registerFolderIcon(iconRegistry, sanitizer);\r\n appIconService.registerDeviationIcon(iconRegistry, sanitizer);\r\n appIconService.registerChecklistIcon(iconRegistry, sanitizer);\r\n appIconService.registerRiskIcon(iconRegistry, sanitizer);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n this.globalService.setSearchRelated([]);\r\n this.selectedFolder = null;\r\n this.globalService.setSplitviewValue([]);\r\n }\r\n\r\n @HostListener('window:message', ['$event'])\r\n onMessage(event) {\r\n if (event.data === RelatedConst.HIDE_SEARCH_RESULT) {\r\n this.autoComplete.closePanel();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n\r\n this.globalService.searchRelated.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {\r\n if (res && res.length) {\r\n this.filteredOptions = res;\r\n }\r\n });\r\n\r\n this.globalService.splitViewValue.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {\r\n if (res) {\r\n this.itemInSplitview = res;\r\n }\r\n });\r\n\r\n this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {\r\n this.isInputValue = true;\r\n this.onSearchRelated(val);\r\n });\r\n\r\n this.itemType = this.getDataTypeId(this.moduleId);\r\n this.searchOrder = this.getSearchOrder();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n if (this.filteredOptions && this.filteredOptions.length) {\r\n this.autoComplete.openPanel();\r\n this.setResultHeight();\r\n } else if (this.autoComplete) {\r\n this.autoComplete.closePanel();\r\n }\r\n }\r\n\r\n getDataTypeId(moduleId: number) {\r\n let itemType;\r\n switch (moduleId) {\r\n case ModuleType.documentProcess:\r\n itemType = this.dataType.process;\r\n break;\r\n case ModuleType.deviation:\r\n itemType = this.dataType.deviation;\r\n break;\r\n case ModuleType.checklist:\r\n itemType = this.dataType.checklist;\r\n break;\r\n case ModuleType.risk:\r\n itemType = this.dataType.risk;\r\n break;\r\n default:\r\n itemType = this.dataType.document;\r\n break;\r\n }\r\n return itemType;\r\n }\r\n\r\n removeCheckedNodeList(item: TreeFlatNode) {\r\n this.selectedData = [];\r\n this.selectedData2 = [];\r\n\r\n this.checkedNodeList = this.checkedNodeList.filter(x => (x.id.toLowerCase() !== item.id.toLowerCase() || x.parentId.toLowerCase() !== item.parentId.toLowerCase()));\r\n const tempArr = [];\r\n const tempArrDocument = [];\r\n const newSelectProcessList = [];\r\n const newSelectDocumentList = [];\r\n\r\n\r\n this.commonCheckedList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {\r\n tempArr.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.singleProcessList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {\r\n newSelectProcessList.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.singleProcessList = newSelectProcessList;\r\n this.selectedData = [...tempArr];\r\n\r\n this.documentCheckedList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {\r\n tempArrDocument.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.singleDocumentList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {\r\n newSelectDocumentList.push(element);\r\n }\r\n });\r\n });\r\n this.singleDocumentList = newSelectDocumentList;\r\n this.selectedData2 = [...tempArrDocument];\r\n }\r\n\r\n isMatchTrue(arr: any[], arr2: any[]) {\r\n return arr.every((i) => {\r\n return arr2.includes(i);\r\n });\r\n }\r\n\r\n setResultHeight(arr?: IRelated[]) {\r\n let maxHeight = 484;\r\n const popup_content = document.getElementsByClassName('qmslib_related_popup_content')[0] as HTMLElement;\r\n const line__divider = document.getElementsByClassName('line__divider')[0] as HTMLElement;\r\n if (popup_content && line__divider) {\r\n maxHeight = this.getOffsetHeight(popup_content, true) + this.getOffsetHeight(line__divider, true) * 2;\r\n }\r\n\r\n const contentResult = document.getElementsByClassName('cdk-virtual-scroll-content-wrapper')[0] as HTMLElement;\r\n const viewreports = document.getElementsByClassName('related-viewport')[0] as HTMLElement;\r\n\r\n if (viewreports) {\r\n if (contentResult.offsetHeight <= maxHeight) {\r\n viewreports.style.height = `${contentResult.offsetHeight}px`;\r\n }\r\n else {\r\n viewreports.style.height = `${maxHeight}px`;\r\n }\r\n }\r\n }\r\n\r\n onSearchRelated(_val: any) {\r\n this.filteredOptions = [];\r\n if (typeof (_val) === 'object') {\r\n this.myControl.setValue('');\r\n }\r\n else if (typeof (_val) === 'string') {\r\n if (!!_val) {\r\n this.onSearch.emit(_val);\r\n }\r\n }\r\n }\r\n\r\n getModuleFilteredOptions(moduleId: number) {\r\n return this.filteredOptions.filter(x => x.itemType === moduleId);\r\n }\r\n\r\n showSearchResult() {\r\n this.autoComplete.openPanel();\r\n }\r\n\r\n displayRelated(related?: IRelated): string | undefined {\r\n return related ? related.itemName : undefined;\r\n }\r\n\r\n selectRelated(item: IRelated) {\r\n let index = -1;\r\n this.selectedNode = [];\r\n if (this.treeConfig1.showCheckBox) {\r\n index = this.checkedNodeList.findIndex(x => {\r\n return x.id === item.id && x.parentId === item.parentId;\r\n });\r\n }\r\n\r\n if (index < 0) {\r\n let position = -1;\r\n let node: any;\r\n let typeId: number;\r\n\r\n if (item.itemType === this.dataType.document) {\r\n // document\r\n position = this.treeData2.findIndex(x => {\r\n return x.childId === item.id;\r\n });\r\n node = this.treeData2[position];\r\n typeId = this.dataType.document;\r\n this.dataTrees.toArray()[1].todoItemSelectionById([item.id]);\r\n }\r\n else if (item.itemType === this.dataType.folder) {\r\n position = this.treeData2.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n node = this.treeData2[position];\r\n typeId = item.itemType;\r\n if (position >= 0) {\r\n if (this.treeConfig2.showCheckBox) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.itemName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId,\r\n levelType: item.levelType\r\n });\r\n }\r\n else {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.itemName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId,\r\n levelType: item.levelType\r\n });\r\n }\r\n this.dataTrees.toArray()[1].todoItemSelectionById([item.id]);\r\n }\r\n return;\r\n }\r\n else if ((item.itemType === this.dataType.deviationType\r\n || item.itemType === this.dataType.checklistCategory\r\n || item.itemType === this.dataType.riskFolder) && !this.canOnlySelectItem) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n this.selectNodeRecursive(this.treeData1[position], item.itemType);\r\n }\r\n else if (item.itemType === this.dataType.area) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n node = this.treeData1[position];\r\n typeId = item.itemType;\r\n\r\n if (position >= 0) {\r\n if (this.treeConfig1.showCheckBox) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: node.rootId,\r\n itemName: node.rootName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId,\r\n levelType: item.levelType\r\n });\r\n }\r\n else {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: node.rootId,\r\n itemName: node.rootName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId,\r\n levelType: item.levelType\r\n });\r\n }\r\n }\r\n this.dataTrees.toArray()[0].todoItemSelectionById([item.id]);\r\n return;\r\n }\r\n else if (item.itemType === this.dataType.deviation ||\r\n item.itemType === this.dataType.checklist) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.childId === item.id && x.rootId === item.parentId;\r\n });\r\n node = this.treeData1[position];\r\n typeId = this.itemType;\r\n const treeNode = {\r\n id: node.childId,\r\n name: node.childName,\r\n children: [],\r\n parentId: node.rootId\r\n };\r\n this.dataTrees.toArray()[0].todoItemSelection([treeNode]);\r\n }\r\n else {\r\n // process, risk,...\r\n position = this.treeData1.findIndex(x => {\r\n return x.childId.toLowerCase() === item.id.toLowerCase();\r\n });\r\n node = this.treeData1[position];\r\n typeId = this.itemType;\r\n if (node) {\r\n this.dataTrees.toArray()[0].todoItemSelectionById([node.childId]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n selectNodeRecursive(item: TreeModel, itemType: DataType) {\r\n let position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.rootId;\r\n });\r\n\r\n if (position >= 0) {\r\n\r\n const node: TreeNode = {\r\n id: item.rootId,\r\n name: item.rootName,\r\n children: [],\r\n parentId: item.parentId\r\n };\r\n\r\n let nodeChildren: TreeNode[] = this.treeData1.\r\n filter(x => x.rootId === item.rootId).\r\n map(x => {\r\n return {\r\n id: x.childId,\r\n name: item.childName,\r\n children: [],\r\n parentId: item.rootId\r\n };\r\n });\r\n let nodeSubfolders: TreeModel[] = this.treeData1.\r\n filter(x => x.parentId === item.rootId);\r\n\r\n if (this.treeConfig1.showCheckBox) {\r\n nodeChildren.forEach(x => {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: x.id,\r\n itemName: x.name,\r\n itemType: itemType,\r\n itemNumberId: item.displayId.toString(),\r\n parentId: item.rootId\r\n });\r\n });\r\n }\r\n else {\r\n nodeChildren.forEach(x => {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: x.id,\r\n itemName: x.name,\r\n itemType: itemType,\r\n itemNumberId: item.displayId.toString(),\r\n parentId: item.rootId\r\n });\r\n });\r\n }\r\n\r\n this.dataTrees.toArray()[0].todoItemSelection([node].concat(nodeChildren));\r\n if (nodeSubfolders) {\r\n nodeSubfolders.forEach(folder => {\r\n this.selectNodeRecursive(folder, itemType);\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n\r\n setTypeProcess(expand) {\r\n return expand ? this.dataType.area : this.dataType.process;\r\n }\r\n\r\n getCommonCheckedNode(list: Array<TreeFlatNode>) {\r\n this.checkedNodeList = [];\r\n this.commonCheckedList = [];\r\n this.singleProcessList = [];\r\n this.checkedNodeList = [...this.singleDocumentList];\r\n\r\n if (list.length) {\r\n list.forEach(item => {\r\n const index = this.checkedNodeList.findIndex(x => x.id === item.id && x.parentId === item.parentId);\r\n\r\n if (item.id && index < 0) {\r\n this.commonCheckedList.push(item);\r\n }\r\n\r\n if (this.singleSelectedNode) {\r\n let position: number;\r\n if (item.expandable) {\r\n position = this.treeData1.findIndex(p => p.rootId === item.id);\r\n }\r\n else {\r\n position = this.treeData1.findIndex(p => p.childId === item.id);\r\n }\r\n if (position > -1) {\r\n this.singleProcessList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: (this.itemType === 2) ? this.setTypeProcess(item.expandable) : this.itemType,\r\n itemNumberId: this.treeData1[position].displayId.toString(),\r\n parentId: item.parentId,\r\n levelType: item.levelType\r\n });\r\n }\r\n }\r\n\r\n\r\n if (item.id && index < 0 && !item.expandable && !this.singleSelectedNode) {\r\n const position = this.treeData1.findIndex(p => p.childId === item.id && p.rootId === item.parentId);\r\n if (position > -1) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: this.itemType,\r\n parentId: item.parentId,\r\n parentName: this.treeData1[position].parentId ? this.treeData1[position].subName : this.treeData1[position].rootName,\r\n itemNumberId: this.treeData1[position].displayId.toString(),\r\n levelType: item.levelType\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.singleSelectedNode) {\r\n this.checkedNodeList = [...this.checkedNodeList, ...this.singleProcessList];\r\n }\r\n\r\n if(this.maxSelectItemCount && this.maxSelectItemCount > 0){\r\n const removeList = this.checkedNodeList.slice(0, this.maxSelectItemCount * -1);\r\n if(removeList.length){\r\n removeList.forEach(item => {\r\n this.removeCheckedNodeList({\r\n id: item.id,\r\n name: item.itemName,\r\n parentId: item.parentId,\r\n level: 0,\r\n expandable: true,\r\n hasChild: true,\r\n disabled: false\r\n })\r\n })\r\n }\r\n this.checkedNodeList = this.checkedNodeList.slice(this.maxSelectItemCount * -1);\r\n }\r\n }\r\n }\r\n\r\n getDocumentCheckedNode(list: Array<TreeFlatNode>) {\r\n this.checkedNodeList = [];\r\n this.documentCheckedList = [];\r\n this.singleDocumentList = [];\r\n this.checkedNodeList = [...this.singleProcessList];\r\n\r\n\r\n if (list.length) {\r\n list.forEach(item => {\r\n const index = this.checkedNodeList.findIndex(x => x.id === item.id);\r\n\r\n if (item.id && index < 0) {\r\n this.documentCheckedList.push(item);\r\n }\r\n\r\n if (this.singleSelectedNode) {\r\n let position: number;\r\n if (item.expandable) {\r\n position = this.treeData2.findIndex(p => p.rootId === item.id);\r\n }\r\n else {\r\n position = this.treeData2.findIndex(p => p.childId === item.id);\r\n }\r\n if (position > -1) {\r\n this.singleDocumentList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: item.expandable ? this.dataType.folder : this.dataType.document,\r\n itemNumberId: this.treeData2[position].displayId.toString(),\r\n parentId: item.parentId,\r\n levelType: item.levelType\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n if (index < 0 && !item.expandable && !this.singleSelectedNode) {\r\n const position = this.treeData2.findIndex(p => p.childId === item.id);\r\n if (position > -1) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: this.dataType.document,\r\n itemNumberId: this.treeData2[position].displayId.toString(),\r\n parentId: item.parentId,\r\n parentName: this.treeData2[position].rootName,\r\n levelType: item.levelType\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.singleSelectedNode) {\r\n this.checkedNodeList = [...this.checkedNodeList, ...this.singleDocumentList];\r\n }\r\n\r\n if(this.maxSelectItemCount && this.maxSelectItemCount > 0){\r\n const removeList = this.checkedNodeList.slice(0, this.maxSelectItemCount * -1);\r\n if(removeList.length){\r\n removeList.forEach(item => {\r\n this.removeCheckedNodeList({\r\n id: item.id,\r\n name: item.itemName,\r\n parentId: item.parentId,\r\n level: 0,\r\n expandable: true,\r\n hasChild: true,\r\n disabled: false\r\n })\r\n })\r\n }\r\n this.checkedNodeList = this.checkedNodeList.slice(this.maxSelectItemCount * -1);\r\n }\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.selectedFolder = null;\r\n this.itemInSplitview = [];\r\n this.dialogRef.close();\r\n };\r\n\r\n onAddClick() {\r\n // if (this.treeConfig1.showCheckBox) {\r\n this.selectedFolder = null;\r\n this.itemInSplitview = [];\r\n this.dialogRef.close(this.checkedNodeList);\r\n // }\r\n // else {\r\n // this.dialogRef.close(this.selectedNode);\r\n // }\r\n }\r\n\r\n getOffsetHeight(element: HTMLElement, includeMargin: boolean): number {\r\n let elmHeight = 0, elmMargin = 0;\r\n\r\n elmHeight = element.offsetHeight;\r\n if (includeMargin) {\r\n const style = window.getComputedStyle(element);\r\n elmMargin = parseFloat(style.marginTop.replace('px', '')) + parseFloat(style.marginBottom.replace('px', ''));\r\n }\r\n\r\n return (elmHeight + elmMargin);\r\n }\r\n\r\n getItemChipName(item: SelectedNode) {\r\n if (item.itemType === DataType.checklist || item.itemType === DataType.deviation) {\r\n return item.parentName ? `${item.parentName}/${item.itemName}` : item.itemName;\r\n }\r\n return item.itemName;\r\n }\r\n\r\n isEllipsisActive(e: HTMLElement): boolean {\r\n return e ? (e.clientWidth < e.scrollWidth) : false;\r\n }\r\n\r\n getNodeIcon(item: IRelated) {\r\n switch (item.itemType) {\r\n case DataType.folder: {\r\n switch (item.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'department_folder_outlined';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'regional_folder_outlined';\r\n case DocumentNodeType.TopFolder:\r\n return 'enterprise_folder_outlined';\r\n case DocumentNodeType.Folder:\r\n return 'local_folder_outlined';\r\n default:\r\n return 'folder_outlined';\r\n }\r\n }\r\n case DataType.document: {\r\n switch (item.levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return 'document_department';\r\n case DocumentNodeType.RegionalFolder:\r\n return 'document_regional';\r\n case DocumentNodeType.TopFolder:\r\n return 'document_enterprise';\r\n case DocumentNodeType.Folder:\r\n return 'document_local';\r\n default:\r\n return 'document';\r\n }\r\n }\r\n case DataType.area:\r\n return 'process_area_outlined';\r\n case DataType.process:\r\n return 'process';\r\n case DataType.deviation:\r\n return 'deviation';\r\n case DataType.checklist:\r\n return 'checklist';\r\n case DataType.risk:\r\n return 'risk';\r\n default:\r\n return 'folder_outlined';\r\n }\r\n }\r\n\r\n getSearchOrder() {\r\n let searchTypes = Object.keys(this.dataType)\r\n .map(key => ({ value: this.dataType[key], key: key }));\r\n searchTypes = searchTypes.slice(searchTypes.length / 2);\r\n return searchTypes;\r\n }\r\n\r\n getTitle(type: number) {\r\n switch (type) {\r\n case DataType.process:\r\n return this.LANG.PROCESSES;\r\n case DataType.area:\r\n return this.LANG.PROCESS_AREA;\r\n case DataType.document:\r\n return this.LANG.DOCUMENTS;\r\n case DataType.folder:\r\n return this.LANG.FOLDER;\r\n case DataType.deviation:\r\n return this.LANG.DEVIATION;\r\n case DataType.deviationType:\r\n return this.LANG.DEVIATION_TYPE;\r\n case DataType.checklist:\r\n return this.LANG.CHECKLIST;\r\n case DataType.checklistCategory:\r\n return this.LANG.CHECKLIST_CATEGORY;\r\n case DataType.risk:\r\n return this.LANG.ASSESSMENT;\r\n case DataType.riskFolder:\r\n return this.LANG.FOLDER;\r\n }\r\n }\r\n\r\n getParentName(item: IRelated) {\r\n if (item.itemType === this.dataType.checklist || item.itemType === this.dataType.deviation) {\r\n return item.parentName;\r\n }\r\n return null;\r\n }\r\n\r\n getItemId(item: IRelated) {\r\n if (item.itemType === this.dataType.process) {\r\n return `${this.LANG.PROCESS_ID}: ${item.itemNumberId}; ${item.statusName}`;\r\n }\r\n else if (item.itemType === this.dataType.document) {\r\n return `${this.LANG.DOCUMENT_ID}: ${item.itemNumberId}; ${item.statusName}`;\r\n }\r\n return null;\r\n }\r\n\r\n toggleSelectItem(node: IRelated) {\r\n const selectedNode = this.checkedNodeList.find(x => (x.id.toLowerCase() === node.id.toLowerCase() && x.parentId.toLowerCase() === node.parentId.toLowerCase()));\r\n if (selectedNode) {\r\n this.removeCheckedNodeList({\r\n id: selectedNode.id,\r\n name: node.itemName,\r\n parentId: selectedNode.parentId,\r\n hasChild: false,\r\n expandable: false,\r\n level: 0,\r\n disabled: false,\r\n });\r\n }\r\n else {\r\n this.selectRelated(node);\r\n }\r\n }\r\n\r\n isNodeSelected(node) {\r\n return this.checkedNodeList.filter(x => (x.id.toLowerCase() === node.id.toLowerCase() && x.parentId.toLowerCase() === node.parentId.toLowerCase())).length > 0;\r\n }\r\n\r\n\r\n getChildrenOfFolder(node: TreeFlatNode, type: DataType) {\r\n if (this.splitView) {\r\n let item = new IRelated();\r\n item.id = node.id;\r\n item.itemType = type;\r\n item.itemName = node.name;\r\n item.levelType = node.levelType;\r\n this.selectedFolder = node;\r\n if (type === this.dataType.folder) {\r\n this.splitViewTitle = `${this.LANG.MESSAGE.DOCUMENTS_IN.toUpperCase()} \"${node.name}\"`;\r\n }\r\n else if (type === this.dataType.area) {\r\n this.splitViewTitle = `${this.LANG.MESSAGE.PROCESSES_IN.toUpperCase()} \"${node.name}\"`;\r\n }\r\n this.onExpandFolder.emit(item);\r\n }\r\n }\r\n\r\n canShowSearchOption(moduleId: number){\r\n if(this.canOnlySelectItem &&\r\n (moduleId === DataType.checklistCategory \r\n || moduleId === DataType.riskFolder \r\n || moduleId === DataType.deviationType \r\n || (moduleId === DataType.area && this.treeConfig1 && !this.treeConfig1.singleSelectedNode) \r\n || (moduleId === DataType.folder && this.treeConfig2 && !this.treeConfig2.singleSelectedNode)\r\n )){\r\n return false;\r\n }\r\n return this.getModuleFilteredOptions(moduleId).length > 0;\r\n }\r\n}\r\n","import { TreeConfig } from \"./tree-config.model\";\r\nimport { TreeModel } from \"./tree.model\";\r\n\r\nexport class RiskAnalysis {\r\n title: string;\r\n dangers: Array<TreeModel>;\r\n dangerConfig: TreeConfig;\r\n selectedDangers: any;\r\n disabledList?: Array<any>;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.dangers = [];\r\n this.selectedDangers = [];\r\n this.disabledList = [];\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { DataType } from \"../../common/data-type.enum\";\r\nimport { AnalysisDanger } from \"../../model/analysis-danger.model\";\r\nimport { RiskAnalysis } from \"../../model/risk-analysis.model\";\r\nimport { TreeConfig } from \"../../model/tree-config.model\";\r\nimport { TreeModel } from \"../../model/tree.model\";\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-risk-analysis',\r\n templateUrl: './analysis.component.html',\r\n styleUrls: ['./analysis.component.scss']\r\n})\r\nexport class RiskAnalysisComponent implements OnInit {\r\n LANG: any;\r\n title: string;\r\n dangers: Array<TreeModel> = [];\r\n dangerConfig: TreeConfig;\r\n analysisDanger: Array<AnalysisDanger> = [];;\r\n\r\n selectedData = [];\r\n nodeCheckedItem = [];\r\n disabledList = [];\r\n\r\n riskData: Array<any> = [];\r\n riskConfig: TreeConfig;\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef<RiskAnalysisComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: RiskAnalysis\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n\r\n this.title = this.data.title;\r\n this.dangers = this.data.dangers;\r\n this.dangerConfig = this.data.dangerConfig;\r\n this.selectedData = [...this.data.selectedDangers];\r\n this.disabledList = this.data.disabledList || [];\r\n\r\n // cheat not null when selected\r\n if (this.data.selectedDangers.length) {\r\n this.analysisDanger.push({\r\n analysisId: 1,\r\n analysisName: 'string',\r\n dangerId: 1,\r\n dangerName: 'string',\r\n });\r\n }\r\n\r\n this.riskConfig = {\r\n allowSelectFolder: false,\r\n areaOfCurrentProcess: '',\r\n showCheckBox: true,\r\n allowMultipleCheck: true,\r\n onlyCheckBoxForChild: false,\r\n moduleId: DataType.risk,\r\n openIcon: 'keyboard_arrow_up',\r\n openIconColor: '#1954A9',\r\n closeIcon: 'keyboard_arrow_down',\r\n closeIconColor: '',\r\n itemIcon: 'border_all',\r\n itemIconPath: '',\r\n itemIconBase64: '',\r\n singleSelectedNode: false,\r\n canHaveDupId: false\r\n };\r\n }\r\n\r\n toggleChileNode(list: Array<TreeFlatNode>) {\r\n this.analysisDanger = [];\r\n this.nodeCheckedItem = [];\r\n\r\n\r\n if (list.length) {\r\n this.dangers.forEach(el => {\r\n list.forEach(x => {\r\n if (x.id === el.childId) {\r\n // keep array node selected\r\n this.nodeCheckedItem.push(x);\r\n // create format show analysis \r\n this.analysisDanger.push({\r\n analysisId: +el.rootId,\r\n analysisName: el.rootName,\r\n dangerId: +el.childId,\r\n dangerName: el.childName\r\n })\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onFinishClick(): void {\r\n const data = {\r\n 'nodeSelected': this.nodeCheckedItem,\r\n 'analysisData': this.analysisDanger,\r\n 'riskData': this.dangers || []\r\n }\r\n\r\n this.dialogRef.close(data);\r\n }\r\n\r\n onCancelClick() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export enum ActionType {\r\n edit = 1,\r\n detail = 2,\r\n delete = 3\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { ActionType } from \"../../common/action-type.enum\";\r\nimport { DangerAction } from \"../../model/danger-action.model\";\r\nimport { DangerAssessment } from \"../../model/danger-assessment.model\";\r\nimport { Danger } from \"../../model/danger.model\";\r\nimport { RiskDanger } from \"../../model/risk-danger.model\";\r\nimport { TreeConfig } from \"../../model/tree-config.model\";\r\n\r\n@Component({\r\n selector: 'qms-risk-list',\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss']\r\n})\r\nexport class RiskListComponent implements OnInit, OnChanges {\r\n LANG: any;\r\n title: string;\r\n isNotEditedItem: boolean;\r\n dangers: Array<Danger> = [];\r\n analysisDanger: Array<DangerAssessment> = [];\r\n dangerAction: DangerAction;\r\n show = 5;\r\n\r\n dangerConfig: TreeConfig;\r\n\r\n resultData: Array<any> = [];\r\n riskAnalysis: Array<any> = [];\r\n\r\n @Input() data: RiskDanger;\r\n @Output() updateData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n private dialog: MatDialog\r\n ) {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && JSON.stringify(changes.data.currentValue) !== JSON.stringify(changes.data.previousValue)) {\r\n this.dangers = [];\r\n this.title = changes.data.currentValue.title;\r\n this.isNotEditedItem = changes.data.currentValue['isNotEditedItem'] ?? false;\r\n this.dangers = [...changes.data.currentValue.data];\r\n this.show = changes.data.currentValue?.numRow || 5;\r\n\r\n this.analysisDanger = [];\r\n this.groupByDanger(changes.data.currentValue.data, 0);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.title = this.data?.title || '';\r\n this.isNotEditedItem = this.data['isNotEditedItem'] ?? false;\r\n this.dangers = this.data?.data || [];\r\n this.show = this.data?.numRow || 5;\r\n\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n if (this.dangers.length) {\r\n this.groupByDanger(this.dangers, 0);\r\n }\r\n }\r\n\r\n groupByDanger(dangers: Array<Danger>, i: number) {\r\n dangers.forEach(d => {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return d.analysisId === x.id;\r\n });\r\n if (index < 0) {\r\n let count = 0;\r\n this.analysisDanger.push({\r\n id: d.analysisId,\r\n name: d.analysisName,\r\n childNumber: 0,\r\n show: this.show,\r\n remain: 0,\r\n dangers: [],\r\n folderId: d.folderId,\r\n statusId: d.statusId,\r\n simple: d.simple\r\n });\r\n dangers.forEach(d => {\r\n const index = this.analysisDanger[i].dangers.findIndex(x => {\r\n return x.dangerId === d.dangerId;\r\n });\r\n\r\n if (index < 0 && this.analysisDanger[i].id === d.analysisId) {\r\n this.analysisDanger[i].dangers.push(d);\r\n count++;\r\n }\r\n });\r\n\r\n this.analysisDanger[i].childNumber = count;\r\n this.analysisDanger[i].remain = count - this.show;\r\n i++;\r\n }\r\n });\r\n }\r\n\r\n editDanger(item) {\r\n this.dangerAction = {\r\n type: ActionType.edit,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n }\r\n const data = { ...this.dangerAction, ...item };\r\n this.updateData.emit(data);\r\n\r\n }\r\n\r\n removeDanger(id: number) {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return x.id === id;\r\n });\r\n const removedItem = this.analysisDanger[index];\r\n\r\n this.dangerAction = {\r\n type: ActionType.delete,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n };\r\n\r\n const data = { ...this.dangerAction, ...removedItem };\r\n this.updateData.emit(data);\r\n }\r\n\r\n dangerDetail(danger: Danger) {\r\n this.dangerAction = {\r\n type: ActionType.detail,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n };\r\n const data = { ...this.dangerAction, ...danger };\r\n this.updateData.emit(data);\r\n }\r\n\r\n increaseShow(id: number) {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return x.id === id;\r\n });\r\n if (index >= 0) {\r\n this.analysisDanger[index].show = this.analysisDanger[index].childNumber;\r\n this.analysisDanger[index].remain = 0;\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n\r\n }\r\n}\r\n","export enum Color {\r\n green = 1,\r\n yellow = 2,\r\n red = 3\r\n}\r\n","export class RiskResult {\r\n title: string;\r\n results: Array<Result>;\r\n isSimple?: number;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.results = [];\r\n this.isSimple = 0\r\n }\r\n}\r\n\r\nexport class Result {\r\n dangerId: number;\r\n dangerName: string;\r\n color: number;\r\n cause: string;\r\n consequenceArea: string;\r\n result: string;\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../../../services/translation-registry.service\";\r\nimport { Color } from \"../../common/color.enum\";\r\nimport { Result, RiskResult } from \"../../model/risk-result.model\";\r\n\r\n@Component({\r\n selector: 'qms-risk-result',\r\n templateUrl: './result.component.html',\r\n styleUrls: ['./result.component.scss']\r\n})\r\nexport class RiskResultComponent implements OnInit {\r\n LANG: any;\r\n title: string;\r\n results: Array<Result> = [];\r\n color = Color;\r\n isSimple = 0;\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<RiskResultComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: RiskResult\r\n ) {\r\n this.title = data.title;\r\n this.results = data.results;\r\n this.isSimple = data.isSimple || 0;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export class SideNav {\r\n menu: string;\r\n icon: string;\r\n items: Array<SideNavItem>;\r\n\r\n constructor() {\r\n this.menu = '';\r\n this.icon = '';\r\n this.items = [];\r\n }\r\n}\r\n\r\nexport class SideNavItem {\r\n id: string;\r\n name: string;\r\n url: string;\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { SideNav, SideNavItem } from '../model/sidenav.model';\r\n\r\n@Component({\r\n selector: 'qms-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n})\r\nexport class SidenavComponent implements OnInit {\r\n @Input() data = new SideNav();\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n\r\n menu = '';\r\n icon = '';\r\n items: Array<SideNavItem> = [];\r\n\r\n isExpanded = true;\r\n showSubmenu: boolean = false;\r\n isShowing = false;\r\n showSubSubMenu: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.menu = this.data.menu;\r\n this.icon = this.data.icon;\r\n this.items = this.data.items;\r\n }\r\n\r\n mouseenter() {\r\n if (!this.isExpanded) {\r\n this.isShowing = true;\r\n }\r\n }\r\n\r\n mouseleave() {\r\n if (!this.isExpanded) {\r\n this.isShowing = false;\r\n }\r\n }\r\n}\r\n","import { ScrollingModule } from \"@angular/cdk/scrolling\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCardModule } from \"@angular/material/card\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatListModule } from \"@angular/material/list\";\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatTreeModule } from \"@angular/material/tree\";\r\nimport { SharedMaterialModule } from '../../material-module';\r\nimport { QmsAngularModule } from '../../qms-angular.module';\r\nimport { QMSAppIconModule } from \"../app-icon/app-icon.module\";\r\nimport { QMSBreadcrumbModule } from \"../breadcrumb/breadcrumb.module\";\r\nimport { QMSListModule } from \"../list/list.module\";\r\nimport { RelatedContentComponent } from \"./content/related-content.component\";\r\nimport { RelatedListComponent } from \"./list-other-related/list-related.component\";\r\nimport { RelatedPopupComponent } from \"./popup/related-popup.component\";\r\nimport { RiskAnalysisComponent } from \"./risk/analysis/analysis.component\";\r\nimport { RiskListComponent } from \"./risk/list/list.component\";\r\nimport { RiskResultComponent } from \"./risk/result/result.component\";\r\nimport { SidenavComponent } from \"./sidenav/sidenav.component\";\r\nimport { TreeComponent } from \"./tree/tree.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n TreeComponent,\r\n RelatedPopupComponent,\r\n RelatedContentComponent,\r\n SidenavComponent,\r\n RiskAnalysisComponent,\r\n RiskResultComponent,\r\n RiskListComponent,\r\n RelatedListComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatTreeModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatExpansionModule,\r\n MatAutocompleteModule,\r\n ReactiveFormsModule,\r\n ScrollingModule,\r\n MatCardModule,\r\n MatSidenavModule,\r\n MatListModule,\r\n SharedMaterialModule,\r\n QMSListModule,\r\n QmsAngularModule,\r\n QMSBreadcrumbModule,\r\n QMSAppIconModule\r\n ],\r\n exports: [\r\n TreeComponent,\r\n RelatedPopupComponent,\r\n RelatedContentComponent,\r\n SidenavComponent,\r\n RiskAnalysisComponent,\r\n RiskResultComponent,\r\n RiskListComponent,\r\n RelatedListComponent\r\n ]\r\n})\r\nexport class QMSRelatedModule { }\r\n","export class TreeModel {\r\n rootId: string;\r\n parentId: string;\r\n rootName: string;\r\n subName: string;\r\n childId: string;\r\n childName: string;\r\n statusId: number;\r\n displayId: number;\r\n levelType?: number;\r\n onlyRead?: boolean;\r\n}\r\n","import { DataType } from \"../common/data-type.enum\";\r\n\r\nexport class TreeConfig {\r\n allowSelectFolder: boolean;\r\n areaOfCurrentProcess: string;\r\n showCheckBox: boolean;\r\n allowMultipleCheck: boolean;\r\n onlyCheckBoxForChild: boolean;\r\n moduleId: DataType;\r\n openIcon?: string;\r\n openIconColor: string;\r\n closeIcon?: string;\r\n closeIconColor: string;\r\n itemIcon?: string;\r\n itemIconPath?: string;\r\n itemIconBase64?: string;\r\n itemIconSvg?: string;\r\n singleSelectedNode: boolean;\r\n canHaveDupId?: boolean;\r\n expandAll?: boolean;\r\n onlyFolder?: boolean;\r\n}\r\n","import { Danger } from \"./danger.model\";\r\n\r\nexport class RiskDanger {\r\n title: string;\r\n data: Array<Danger>;\r\n numRow: number;\r\n isNotEditedItem: boolean;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.data = [];\r\n this.numRow = 5;\r\n this.isNotEditedItem = false;\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class QMSCKEditorBaseComponent implements OnDestroy {\r\n ngUnsubcribe = new Subject<void>();\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubcribe.next();\r\n this.ngUnsubcribe.complete();\r\n }\r\n}\r\n","export class QMSCKEditorDialogData {\r\n title: string;\r\n\r\n content: string;\r\n\r\n checkText?: string;\r\n\r\n isMessage?: boolean;\r\n\r\n isAdvance?: boolean;\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { QMSCKEditorBaseComponent } from '../../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorDialogData } from '../../models/qms-ckeditor-dialog.model';\r\n\r\n@Component({\r\n selector: 'app-confirm-popup',\r\n templateUrl: './qms-ckeditor-confirm.component.html',\r\n styleUrls: ['./qms-ckeditor-confirm.component.scss']\r\n})\r\nexport class QMSCKEditorConfirmComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n isNotShowAgain = false;\r\n\r\n constructor(\r\n private translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<QMSCKEditorConfirmComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorDialogData\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onConfirmClick() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onAdvanceConfirmClick() {\r\n const obj = { isConfirmed: true, isNotShowAgain: this.isNotShowAgain };\r\n this.dialogRef.close(obj);\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\r\n\r\ninterface TreeNode {\r\n id: string;\r\n name: string;\r\n children?: TreeNode[];\r\n}\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-ckeditor-tree',\r\n templateUrl: './qms-ckeditor-tree.component.html',\r\n styleUrls: ['./qms-ckeditor-tree.component.scss']\r\n})\r\nexport class QMSCKEditorTreeComponent implements OnChanges {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() rawData: Array<any> = [];\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() treeData: Array<any> = [];\r\n\r\n @Input() useExpandFeature: boolean;\r\n\r\n @Input() docType: number;\r\n\r\n @Input() allowSelectFolder: boolean;\r\n\r\n @Output() selectNodeEvent: EventEmitter<string> = new EventEmitter();\r\n\r\n @Output() selectFolderEvent: EventEmitter<string> = new EventEmitter();\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() listParentObj: any;\r\n\r\n arrIndex: string[] = [];\r\n\r\n @Input() areaOfCurrentProcess: string;\r\n\r\n // tslint:disable-next-line:member-ordering\r\n treeControl = new FlatTreeControl<TreeFlatNode>(\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n }\r\n );\r\n\r\n ngOnChanges() {\r\n if (this.treeData) {\r\n this.dataSource.data = this.treeData;\r\n }\r\n }\r\n\r\n private transformer = (node: TreeNode, level: number) => {\r\n let checkHasChild = true;\r\n if (!node.children) {\r\n checkHasChild = false;\r\n } else if (!(!!node.children && node.children.length && node.children.length > 0)) {\r\n checkHasChild = false;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n else if (\r\n !!node.children &&\r\n node.children.length &&\r\n node.children.length === 1 &&\r\n !node.children[0].name.length &&\r\n node.id.toString() === this.areaOfCurrentProcess\r\n ) {\r\n checkHasChild = false;\r\n }\r\n\r\n if (!(this.listParentObj[node.id] === 1)) {\r\n checkHasChild = false;\r\n }\r\n\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n name: node.name,\r\n level,\r\n id: node.id,\r\n hasChild: checkHasChild\r\n };\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n treeFlattener = new MatTreeFlattener(\r\n this.transformer,\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n },\r\n (node) => {\r\n return node.children;\r\n }\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n hasChild = (_: number, node: TreeFlatNode) => {\r\n return node.expandable;\r\n };\r\n\r\n selectNode(node: TreeFlatNode) {\r\n this.selectNodeEvent.emit(node.id);\r\n }\r\n\r\n selectFolder(node: TreeFlatNode) {\r\n this.selectFolderEvent.emit(node.id);\r\n }\r\n\r\n onExpandNode(node: TreeFlatNode, isExpandNode?: boolean) {\r\n // set useExpandFeature = true to improve performance of tree loading\r\n if (!isExpandNode || !this.useExpandFeature) {\r\n for (let i = 0; i < this.arrIndex.length; i++) {\r\n if (this.arrIndex[i] === node.id) {\r\n this.arrIndex.splice(i, 1);\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // get array index to expand node after refresh datasource\r\n let index = 0;\r\n let isChange = false;\r\n let isRemove = false;\r\n if (node.level === 0) {\r\n this.arrIndex.push(node.id);\r\n } else {\r\n this.arrIndex.push(node.id);\r\n }\r\n\r\n const childArray = this.rawData.filter((x) => {\r\n return x.parentId === node.id;\r\n });\r\n let rootId = 0;\r\n let parentElement: TreeNode;\r\n let childrenList: TreeNode[];\r\n if (childArray.length === 0) {\r\n return;\r\n }\r\n childArray.forEach((item) => {\r\n if (item.rootId === rootId) {\r\n return;\r\n }\r\n\r\n // get child node from original datasource\r\n const child = this.getChildNode(item.rootId, childArray);\r\n rootId = item.rootId;\r\n\r\n index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n // add child node to expand node\r\n parentElement = this.findParentNode(node.id, this.dataSource.data);\r\n if (parentElement) {\r\n // temporary remove all node without children => purpose to add node folder first\r\n if (!isRemove) {\r\n childrenList = [...parentElement.children];\r\n this.removeChildren(parentElement);\r\n isRemove = true;\r\n }\r\n // add node folder first\r\n parentElement.children.push(child);\r\n isChange = true;\r\n }\r\n });\r\n // add node without children again\r\n if (isRemove) {\r\n this.addChildren(parentElement, childrenList);\r\n }\r\n\r\n // refresh data and expand tree node from root node\r\n if (isChange) {\r\n this.refreshTreeData();\r\n this.arrIndex.forEach((item) => {\r\n index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);\r\n this.treeControl.expand(this.treeControl.dataNodes[index]);\r\n });\r\n isChange = false;\r\n }\r\n }\r\n\r\n removeChildren(parentElement?: TreeNode) {\r\n if (parentElement.children) {\r\n parentElement.children.length = 0;\r\n }\r\n }\r\n\r\n addChildren(parentElement?: TreeNode, childrenList?: TreeNode[]) {\r\n if (childrenList) {\r\n childrenList.forEach((e) => {\r\n parentElement.children.push(e);\r\n });\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getNodeIndex(id: string, level?: number, data?: any[]) {\r\n if (level) {\r\n return data.findIndex((x) => {\r\n return x.id === id && x.level === level;\r\n });\r\n }\r\n\r\n return data.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getChildNode(rootId: string, data: any) {\r\n const childArray = data.filter((x) => {\r\n return x.rootId === rootId;\r\n });\r\n const child = { id: childArray[0].rootId, name: childArray[0].subName, children: [] } as TreeNode;\r\n childArray.forEach((item) => {\r\n child.children.push({ id: item.childId, name: item.childName });\r\n });\r\n return child;\r\n }\r\n\r\n findParentNode(id: string, data: TreeNode[]) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentFather of data) {\r\n if (currentFather.id === id) {\r\n return currentFather;\r\n }\r\n\r\n if (currentFather.children) {\r\n const currentChild = currentFather.children.find((x) => {\r\n return x.id === id;\r\n });\r\n if (currentChild) {\r\n return currentChild;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentChild1 of currentFather.children) {\r\n if (id !== currentChild1.id) {\r\n const result = this.findParentNode(id, currentFather.children);\r\n if (result !== false) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshTreeData() {\r\n const data = this.dataSource.data;\r\n this.dataSource.data = [];\r\n this.dataSource.data = data;\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-fullscreen',\r\n templateUrl: './qms-ckeditor-fullscreen.component.html',\r\n styleUrls: ['./qms-ckeditor-fullscreen.component.scss']\r\n})\r\nexport class QMSCKEditorFullscreenComponent {\r\n public showFullScreen() {\r\n this.showHideFullScreen('none', 'hide-content-wrapper', '0px', '0px', '0px', '98vh');\r\n }\r\n\r\n public hideFullScreen() {\r\n this.showHideFullScreen('block', 'show-content-wrapper', '0px', '0px', '2px', '93vh');\r\n }\r\n\r\n public showHideFullScreen(\r\n display: string,\r\n className: string,\r\n paddingTop: string,\r\n paddingBottom: string,\r\n marginTopMain: string,\r\n heightIframe: string\r\n ) {\r\n const sidebar = window.parent.document.getElementById('sidebar_left');\r\n if (sidebar) {\r\n if (display === 'block') {\r\n if (!sidebar.classList.contains('show-sidebar_left')) {\r\n sidebar.classList.add('show-sidebar_left');\r\n }\r\n } else if (display === 'none') {\r\n if (sidebar.classList.contains('show-sidebar_left')) {\r\n sidebar.classList.remove('show-sidebar_left');\r\n }\r\n }\r\n }\r\n const topbars = window.parent.document.getElementsByClassName('navbar-fixed-top');\r\n if (topbars && topbars.length > 0) {\r\n const topbar = topbars[0] as HTMLElement;\r\n topbar.style.display = display;\r\n }\r\n const contentWrapper = window.parent.document.getElementById('content_wrapper');\r\n if (contentWrapper) {\r\n contentWrapper.className = className;\r\n }\r\n\r\n const bodies = window.parent.document.getElementsByTagName('body');\r\n if (bodies && bodies.length > 0) {\r\n const body = bodies[0] as HTMLElement;\r\n body.style.paddingTop = paddingTop;\r\n body.style.paddingBottom = paddingBottom;\r\n if (display === 'block') {\r\n body.classList.remove('sidebar-hidden');\r\n body.classList.add('sidebar-ltr');\r\n } else if (display === 'none') {\r\n body.classList.remove('sidebar-ltr');\r\n body.classList.add('sidebar-hidden');\r\n }\r\n }\r\n const main = window.parent.document.getElementById('main');\r\n if (main) {\r\n main.style.marginTop = marginTopMain;\r\n }\r\n\r\n const iframes = window.parent.document.getElementsByClassName('processIFrameModule');\r\n if (iframes && iframes.length > 0) {\r\n const iframe = iframes[0] as HTMLElement;\r\n iframe.style.height = heightIframe;\r\n }\r\n\r\n const ck = window.document.getElementById('qmsckeditor');\r\n if (ck) {\r\n if (display === 'none') {\r\n if (!ck.classList.contains('qmsckeditor__fullscreen')) {\r\n ck.classList.add('qmsckeditor__fullscreen');\r\n }\r\n } else if (display === 'block') {\r\n if (ck.classList.contains('qmsckeditor__fullscreen')) {\r\n ck.classList.remove('qmsckeditor__fullscreen');\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorGlobalService {\r\n getApiUrlSubject = new BehaviorSubject<any>(null);\r\n\r\n constructor() { }\r\n\r\n setApiUrl(apiUrl: string) {\r\n this.getApiUrlSubject.next(apiUrl);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { QMSCKEditorBaseComponent } from '../qms-ckeditor-base.component';\r\nimport { QMSCKEditorGlobalService } from './qms-ckeditor-global.service';\r\n\r\n@Injectable()\r\nexport class QMSCKEditorBaseService extends QMSCKEditorBaseComponent {\r\n headers = new HttpHeaders();\r\n apiUrl: string;\r\n\r\n constructor(public http: HttpClient, private globalService: QMSCKEditorGlobalService) {\r\n super();\r\n this.globalService.getApiUrlSubject.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n this.apiUrl = res;\r\n })\r\n }\r\n\r\n protected get(url: string, params: any = {}): Observable<any> {\r\n return this.http.get(this.apiUrl + url, { headers: this.headers, params });\r\n }\r\n\r\n protected post(url: string, data: any): Observable<any> {\r\n return this.http.post(this.apiUrl + url, data, { headers: this.headers });\r\n }\r\n\r\n protected put(url: string, data: any): Observable<any> {\r\n return this.http.put(this.apiUrl + url, data, { headers: this.headers });\r\n }\r\n\r\n protected delete(url: string, params: any = {}): Observable<any> {\r\n return this.http.delete(this.apiUrl + url, { headers: this.headers, params });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { QMSCKEditorLinkAnchorDocument } from '../common/models/qms-ckeditor-link-anchor-document.model';\r\nimport QMSCKEditorLinkAttachment from '../common/models/qms-ckeditor-link-attachment.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorLinkService extends QMSCKEditorBaseService {\r\n public getAttachmentList(\r\n module: number,\r\n entityId: string,\r\n supportFileArchiveAttachments: boolean\r\n ): Observable<QMSCKEditorLinkAttachment[]> {\r\n return this.get('ckeditorLink/LinkAttachmentList', { module, entityId, supportFileArchiveAttachments });\r\n }\r\n\r\n public getAnchorDocumentList(documentId: number): Observable<QMSCKEditorLinkAnchorDocument[]> {\r\n return this.get('ckeditorLink/LinkAnchorDoucmentList', { documentId });\r\n }\r\n}\r\n","export default class QMSCKEditorParamter {\r\n module: number;\r\n entityId: string;\r\n}\r\n","export enum CKEditorModule {\r\n document = 1,\r\n process = 2,\r\n deviation = 3,\r\n risk = 4,\r\n checklist = 5,\r\n dashboard = 6\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport QMSCKEditorLinkAttachment from '../../../common/models/qms-ckeditor-link-attachment.model';\r\nimport { QMSCKEditorBaseComponent } from '../../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorLinkService } from '../../../services/qms-ckeditor-link.service';\r\nimport QMSCKEditorParamter from '../../../common/models/qms-ckeditor-parameter.model';\r\nimport { CKEditorModule } from '../../../common/enums/module.enum';\r\n\r\nexport interface LinkUrl {\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'link-attachment',\r\n templateUrl: './link-attachment.component.html',\r\n styleUrls: ['./link-attachment.component.scss']\r\n})\r\nexport class LinkAttachmentComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n module = 0;\r\n entityId = '';\r\n supportFileArchiveAttachments = false;\r\n attachments: QMSCKEditorLinkAttachment[] = [];\r\n linkUrl: LinkUrl;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private linkService: QMSCKEditorLinkService,\r\n public dialogRef: MatDialogRef<LinkAttachmentComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorParamter\r\n ) {\r\n super();\r\n this.module = data.module;\r\n this.entityId = data.entityId;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getAttachmentList(this.module, this.entityId, this.supportFileArchiveAttachments);\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getAttachmentList(module: number, itemId: string, supportFileArchiveAttachments: boolean) {\r\n this.linkService\r\n .getAttachmentList(module, itemId, supportFileArchiveAttachments)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.attachments = response;\r\n }\r\n });\r\n }\r\n\r\n onSelectedAttachment(extraId: string, fileName: string) {\r\n this.linkUrl = { url: '', title: '' };\r\n if (extraId) {\r\n if (this.module === CKEditorModule.document) {\r\n this.linkUrl.url = `/api/File/GetFile?entityId=${extraId}`;\r\n }\r\n else if (this.module === CKEditorModule.process) {\r\n this.linkUrl.url = `/api/processes/GetFileContents?fileId=${extraId}`;\r\n }\r\n this.linkUrl.title = fileName;\r\n }\r\n this.dialogRef.close(this.linkUrl);\r\n }\r\n}\r\n","export enum LinkAnchor {\r\n Blank = '',\r\n Attachment = 'Idattachment',\r\n Related = 'IdrelatedDocument'\r\n}\r\n","export enum LinkType {\r\n url = 0,\r\n anchorText = 1,\r\n email = 2,\r\n anchorDocument = 3\r\n}\r\n","export enum ProtocolType {\r\n http = 0,\r\n https = 1,\r\n ftp = 2,\r\n news = 3,\r\n other = 4\r\n}\r\n\r\nexport enum ProtocolTypeName {\r\n http = 'http://',\r\n https = 'https://',\r\n ftp = 'ftp://',\r\n news = 'news://',\r\n other = ''\r\n}","export enum TargetType {\r\n new = 0,\r\n topmost = 1,\r\n same = 2,\r\n parent = 3\r\n}\r\n\r\nexport enum TargetTypeName {\r\n new = '_blank',\r\n topmost = '_top',\r\n same = '_self',\r\n parent = '_parent'\r\n}\r\n","export class QMSCKEditorRelation {\r\n isOnlyDocument: boolean;\r\n isEnableFolder: boolean;\r\n\r\n constructor() {\r\n this.isOnlyDocument = false;\r\n this.isEnableFolder = false;\r\n }\r\n}\r\n","export default class QMSCKEditorLink {\r\n typeId: number;\r\n targetId: number;\r\n protocolId: number;\r\n url: string;\r\n title: string;\r\n edit: boolean;\r\n editorContent: string;\r\n module: number;\r\n entityId: string;\r\n constructor() {\r\n this.typeId = 0;\r\n this.targetId = 0;\r\n this.protocolId = 0;\r\n this.url = '';\r\n this.title = '';\r\n this.edit = false;\r\n this.editorContent = '';\r\n this.entityId = '';\r\n }\r\n}\r\n","export enum QMSCKEditorDocumentType {\r\n document = 1,\r\n process = 2,\r\n area = 3,\r\n folder = 4\r\n}\r\n","export class TreeNode {\r\n children: TreeNode[];\r\n id: string;\r\n name: string;\r\n parentId?: string;\r\n}\r\n","import QMSCKEditorTree from '../models/qms-ckeditor-tree.model';\r\nimport { TreeNode } from '../models/qms-ckeditor-tree-node.model';\r\n\r\nlet objData = {};\r\n\r\nfunction buildArrayTree(obj: object, level: number): TreeNode[] {\r\n return Object.keys(obj).reduce<TreeNode[]>((accumulator, key) => {\r\n const value = obj[key];\r\n const node = new TreeNode();\r\n const index = key.indexOf('_');\r\n node.id = key.substr(0, index);\r\n node.name = key.substr(index + 1, key.length - index);\r\n\r\n if (value != null) {\r\n if (typeof value === 'object') {\r\n node.children = this.buildArrayTree(value, level + 1);\r\n } else {\r\n node.name = value;\r\n }\r\n }\r\n\r\n return accumulator.concat(node);\r\n }, []);\r\n}\r\n\r\nfunction buildObjectTree(arr: QMSCKEditorTree[]): object {\r\n objData = {};\r\n let objTreeData;\r\n const root = arr.filter((x: { parentId: string }) => {\r\n return x.parentId === '';\r\n });\r\n root.forEach((item) => {\r\n objTreeData = this.findParent(item.rootId, arr);\r\n });\r\n return objTreeData;\r\n}\r\n\r\nfunction findParent(id: string, array: QMSCKEditorTree[]) {\r\n const objParent = {};\r\n const parent = array.filter((x: { rootId: string }) => {\r\n return x.rootId === id;\r\n });\r\n\r\n parent.forEach((item) => {\r\n objParent[`${item.childId}_${item.childName}`] = null;\r\n });\r\n\r\n // find child\r\n const child = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n if (child.length > 0) {\r\n this.findChild(id, objParent, array);\r\n }\r\n\r\n // add node to tree\r\n objData[`${parent[0].rootId}_${parent[0].rootName}`] = objParent;\r\n return objData;\r\n}\r\n\r\nfunction findChild(id: string, objParent: object, array: QMSCKEditorTree[]) {\r\n const subNode = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n subNode.forEach((item) => {\r\n const processNode = {};\r\n processNode[`${item.childId}_${item.childName}`] = null;\r\n objParent[`${item.rootId}_${item.subName}`] = processNode;\r\n\r\n findChild(item.rootId, processNode, array);\r\n });\r\n}\r\n\r\nconst QMSCKEditorTreeFunctions = {\r\n buildArrayTree,\r\n buildObjectTree,\r\n findParent,\r\n findChild\r\n};\r\n\r\nexport default QMSCKEditorTreeFunctions;\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport QMSCKEditorTree from '../common/models/qms-ckeditor-tree.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorTreeService extends QMSCKEditorBaseService {\r\n public getDocumentList(): Observable<QMSCKEditorTree[]> {\r\n return this.get('ckeditorTree/GetDocumentList');\r\n }\r\n\r\n public getProcessList(): Observable<QMSCKEditorTree[]> {\r\n return this.get('ckeditorTree/GetProcessList');\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDocumentType } from '../../common/enums/document-type.enum';\r\nimport QMSCKEditorTreeFunctions from '../../common/functions/tree.function';\r\nimport { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';\r\nimport { TreeNode } from '../../common/models/qms-ckeditor-tree-node.model';\r\nimport QMSCKEditorTree from '../../common/models/qms-ckeditor-tree.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTreeService } from '../../services/qms-ckeditor-tree.service';\r\n\r\nexport interface Related {\r\n id: number;\r\n name: string;\r\n type: number;\r\n}\r\n\r\nexport interface SelectedNode {\r\n id: string;\r\n type: number;\r\n}\r\n\r\nexport interface LinkUrl {\r\n id: string;\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './qmsckeditor-related.component.html',\r\n styleUrls: ['./qmsckeditor-related.component.scss']\r\n})\r\nexport class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n selectedNode: SelectedNode;\r\n linkUrl: LinkUrl;\r\n documentType: QMSCKEditorDocumentType;\r\n processData: QMSCKEditorTree[];\r\n documentData: QMSCKEditorTree[];\r\n filterData: QMSCKEditorTree[];\r\n treeDataFile: object;\r\n treeProcessFile: object;\r\n treeDocumentFile: object;\r\n treeProcessData: TreeNode[];\r\n treeDocumentData: TreeNode[];\r\n processNumber = -1;\r\n listParentProcessId = {};\r\n listParentDocumentId = {};\r\n\r\n myControl = new FormControl();\r\n filteredOptions = [];\r\n isInputValue = false;\r\n isOnlyDocument = false;\r\n isEnableFolder = false;\r\n areaOfCurrentProcess: string;\r\n\r\n constructor(\r\n private treeService: QMSCKEditorTreeService,\r\n private translate: TranslateLibraryService,\r\n private dialogRef: MatDialogRef<QMSCKEditorRelatedComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorRelation\r\n ) {\r\n super();\r\n this.isOnlyDocument = data.isOnlyDocument;\r\n this.isEnableFolder = data.isEnableFolder;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.selectedNode = { id: '', type: 0 };\r\n this.getProcessAndDocumentData();\r\n this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {\r\n this.isInputValue = true;\r\n this.filteredOptions = this.onSearchRelated(val);\r\n });\r\n }\r\n\r\n getProcessAndDocumentData() {\r\n forkJoin([this.getProcessData(), this.getDocumentData()])\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe(([p, d]) => {\r\n this.mappingData(p, 2);\r\n this.mappingData(d, 1);\r\n\r\n // for process\r\n this.filterData = this.processData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n this.treeDataFile = QMSCKEditorTreeFunctions.buildObjectTree(this.filterData);\r\n this.treeProcessData = QMSCKEditorTreeFunctions.buildArrayTree(this.treeDataFile, 0);\r\n // for document\r\n this.filterData = this.documentData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n this.treeDataFile = QMSCKEditorTreeFunctions.buildObjectTree(this.filterData);\r\n this.treeDocumentData = QMSCKEditorTreeFunctions.buildArrayTree(this.treeDataFile, 0);\r\n });\r\n }\r\n\r\n getProcessData() {\r\n return this.treeService.getProcessList().pipe(takeUntil(this.ngUnsubcribe));\r\n }\r\n\r\n getDocumentData() {\r\n return this.treeService.getDocumentList().pipe(takeUntil(this.ngUnsubcribe));\r\n }\r\n\r\n mappingData(array: QMSCKEditorTree[], dataType: number) {\r\n if (array) {\r\n if (dataType === 1) {\r\n this.documentData = array.map((item) => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentDocumentId[item.parentId] = 1;\r\n }\r\n if (!!item.childId && item.childId.length > 0) {\r\n this.listParentDocumentId[item.rootId] = 1;\r\n }\r\n return {\r\n rootId: item.rootId,\r\n parentId: item.parentId,\r\n rootName: item.rootName,\r\n subName: item.subName,\r\n childId: item.childId,\r\n childName: item.childName,\r\n statusId: item.statusId,\r\n displayId: item.displayId\r\n };\r\n });\r\n } else if (dataType === 2) {\r\n this.processData = array.filter((item) => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentProcessId[item.parentId] = 1;\r\n }\r\n if (item.childId && item.childId.length > 0) {\r\n this.listParentProcessId[item.rootId] = 1;\r\n }\r\n if (Number(item.displayId) === this.processNumber) {\r\n item.childId = '';\r\n item.childName = '';\r\n this.areaOfCurrentProcess = item.rootId;\r\n }\r\n return {\r\n rootId: item.rootId,\r\n parentId: item.parentId,\r\n rootName: item.rootName,\r\n subName: item.subName,\r\n childId: item.childId,\r\n childName: item.childName,\r\n statusId: item.statusId,\r\n displayId: item.displayId\r\n };\r\n });\r\n }\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onAddDocumentProcess() {\r\n let data: QMSCKEditorTree;\r\n this.linkUrl = { id: '', url: '', title: '' };\r\n switch (this.selectedNode.type) {\r\n case QMSCKEditorDocumentType.document:\r\n data = this.documentData.find((e) => {\r\n return e.childId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/document/${data.childId}`;\r\n this.linkUrl.title = data.childName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.process:\r\n data = this.processData.find((e) => {\r\n return e.childId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/process-detail/${data.displayId}`;\r\n this.linkUrl.title = data.childName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.area:\r\n data = this.processData.find((e) => {\r\n return e.rootId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/area/detail/${data.rootId}`;\r\n this.linkUrl.title = data.rootName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.folder:\r\n data = this.documentData.find((e) => {\r\n return e.rootId === this.selectedNode.id;\r\n });\r\n\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/folder/${data.rootId}`;\r\n this.linkUrl.title = data.rootName;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n this.dialogRef.close(this.linkUrl);\r\n }\r\n\r\n selectAreaNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.area;\r\n }\r\n\r\n selectProcessNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.process;\r\n }\r\n\r\n selectDocumentNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.document;\r\n }\r\n\r\n selectHandbookNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.folder;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isMatchTrue(arr: any[], arr2: any[]) {\r\n return arr.every((i) => {\r\n return arr2.includes(i);\r\n });\r\n }\r\n\r\n onSearchRelated(_val: string) {\r\n const arr: Related[] = [];\r\n let data = [];\r\n if (typeof _val !== 'string') {\r\n return arr;\r\n }\r\n const val = _val\r\n .trim()\r\n .split(' ')\r\n .map((v) => {\r\n return v.toLowerCase();\r\n });\r\n if (!val || val.length === 0) {\r\n return arr;\r\n }\r\n\r\n if (!this.isOnlyDocument) {\r\n data = this.processData.filter((item) => {\r\n const tempArr = item.childName.split(' ').map((v) => {\r\n return v.toLowerCase();\r\n });\r\n return this.isMatchTrue(val, tempArr);\r\n });\r\n\r\n if (data) {\r\n data.forEach((element) => {\r\n arr.push({\r\n id: element.childId,\r\n name: element.childName,\r\n type: 2\r\n });\r\n });\r\n }\r\n }\r\n\r\n data = this.documentData.filter((item) => {\r\n const tempArr = item.childName.split(' ').map((v) => {\r\n return v.toLowerCase();\r\n });\r\n return this.isMatchTrue(val, tempArr);\r\n });\r\n\r\n if (data) {\r\n data.forEach((element) => {\r\n arr.push({\r\n id: element.childId,\r\n name: element.childName,\r\n type: 1\r\n });\r\n });\r\n }\r\n this.setResultHeight(arr);\r\n return arr;\r\n }\r\n\r\n displayRelated(related?: Related): string | undefined {\r\n return related ? related.name : undefined;\r\n }\r\n\r\n selectRelated(id: string, type: number) {\r\n this.selectedNode = { id, type };\r\n this.onAddDocumentProcess();\r\n }\r\n\r\n setResultHeight(arr?: Related[]) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports) {\r\n let iHeight = 0;\r\n const view = viewreports[0] as HTMLElement;\r\n if (arr.length * 5 > 50) {\r\n iHeight = 51;\r\n } else {\r\n iHeight = arr.length * 5 + 1;\r\n if (iHeight > 0) {\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = true;\r\n }\r\n }\r\n view.style.height = `${iHeight}vh`;\r\n view.style.display = 'block';\r\n }\r\n }\r\n\r\n hideSearchResult() {\r\n if (this.filteredOptions && this.filteredOptions.length > 0) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports && viewreports.length) {\r\n const view = viewreports[0] as HTMLElement;\r\n view.style.display = 'none';\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = false;\r\n }\r\n }\r\n }\r\n\r\n showSearchResult() {\r\n if (this.filteredOptions && this.filteredOptions.length) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports && viewreports.length) {\r\n const view = viewreports[0] as HTMLElement;\r\n if (view.style.display === 'none') {\r\n view.style.display = 'block';\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = true;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { LinkAnchor } from '../../common/enums/link-anchor.enum';\r\nimport { LinkType } from '../../common/enums/link-type.enum';\r\nimport { ProtocolType } from '../../common/enums/protocol-type.enum';\r\nimport { TargetType } from '../../common/enums/target-type.enum';\r\nimport { QMSCKEditorLinkAnchorDocument } from '../../common/models/qms-ckeditor-link-anchor-document.model';\r\nimport QMSCKEditorParamter from '../../common/models/qms-ckeditor-parameter.model';\r\nimport { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';\r\nimport QMSCKEditorLink from '../../common/models/qms-ckeditor-url.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorLinkService } from '../../services/qms-ckeditor-link.service';\r\nimport { QMSCKEditorRelatedComponent } from '../qms-ckeditor-relation/qmsckeditor-related.component';\r\nimport { LinkAttachmentComponent } from './attachments/link-attachment.component';\r\n\r\ninterface ILinkType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface ITarget {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface IProtocol {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface IAnchor {\r\n value: number;\r\n viewValue: string;\r\n anchorValue: string;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-ckeditor-link',\r\n templateUrl: './qms-ckeditor-link.component.html',\r\n styleUrls: ['./qms-ckeditor-link.component.scss']\r\n})\r\nexport class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n linkFormGroup: FormGroup = new FormGroup({\r\n targetList: new FormControl(),\r\n protocolList: new FormControl(),\r\n url: new FormControl('', [Validators.required]),\r\n advisoryTitle: new FormControl()\r\n });\r\n anchorTextFormGroup: FormGroup = new FormGroup({\r\n anchorText: new FormControl('', [Validators.required])\r\n });\r\n emailFormGroup: FormGroup = new FormGroup({\r\n emailAddress: new FormControl('', [Validators.required]),\r\n emailSubject: new FormControl('', [Validators.required]),\r\n emailBody: new FormControl('', [Validators.required])\r\n });\r\n anchorDocFormGroup: FormGroup = new FormGroup({\r\n anchorTitle: new FormControl('', [Validators.required]),\r\n anchorByName: new FormControl('', [Validators.required])\r\n });\r\n isExpanded = true;\r\n linkTypes: ILinkType[] = [];\r\n targets: ITarget[] = [];\r\n protocols: IProtocol[] = [];\r\n anchorDocuments: QMSCKEditorLinkAnchorDocument[] = [];\r\n anchors: IAnchor[];\r\n editorAnchors: IAnchor[];\r\n documentAnchors: IAnchor[];\r\n editorContent = '';\r\n selectedLink = 0;\r\n selectedTarget = 0;\r\n selectedProtocol = 0;\r\n url = '';\r\n advisoryTitle = '';\r\n edit = false;\r\n anchorText = '';\r\n emailAddress = '';\r\n emailSubject = '';\r\n emailBody = '';\r\n documentId = 0;\r\n anchorTitle = '';\r\n anchorByName = '';\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private linkService: QMSCKEditorLinkService,\r\n public dialogRef: MatDialogRef<QMSCKEditorLinkComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorLink\r\n ) {\r\n super();\r\n this.selectedLink = data.typeId;\r\n this.selectedTarget = data.targetId;\r\n this.selectedProtocol = data.protocolId;\r\n this.url = data.url;\r\n this.advisoryTitle = data.title;\r\n this.edit = data.edit;\r\n this.editorContent = data.editorContent;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.initLinkType();\r\n this.initTarget();\r\n this.initProtocol();\r\n this.initAnchor();\r\n if (this.data.edit) {\r\n this.parseLinkUrl(this.selectedLink, this.url);\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n initLinkType() {\r\n if (this.linkTypes) {\r\n this.linkTypes.push({ id: LinkType.url, name: this.LANG.QMSCKEDITOR.LINK_URL });\r\n this.linkTypes.push({\r\n id: LinkType.anchorText,\r\n name: this.LANG.QMSCKEDITOR.LINK_ANCHOR_IN_TEXT\r\n });\r\n this.linkTypes.push({ id: LinkType.email, name: this.LANG.QMSCKEDITOR.LINK_EMAIL });\r\n this.linkTypes.push({\r\n id: LinkType.anchorDocument,\r\n name: this.LANG.QMSCKEDITOR.LINK_ANCHOR_DOCUMENT\r\n });\r\n }\r\n }\r\n\r\n initTarget() {\r\n if (this.targets) {\r\n this.targets.push({ id: TargetType.new, name: this.LANG.QMSCKEDITOR.TARTGET_NEW });\r\n this.targets.push({ id: TargetType.topmost, name: this.LANG.QMSCKEDITOR.TARGET_TOPMOST });\r\n this.targets.push({ id: TargetType.same, name: this.LANG.QMSCKEDITOR.TARGET_SAME });\r\n this.targets.push({ id: TargetType.parent, name: this.LANG.QMSCKEDITOR.TARGET_PARENT });\r\n }\r\n }\r\n\r\n initProtocol() {\r\n if (this.protocols) {\r\n this.protocols.push({ id: ProtocolType.http, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTP });\r\n this.protocols.push({ id: ProtocolType.https, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTPS });\r\n this.protocols.push({ id: ProtocolType.ftp, name: this.LANG.QMSCKEDITOR.PROTOCOL_FTP });\r\n this.protocols.push({ id: ProtocolType.news, name: this.LANG.QMSCKEDITOR.PROTOCOL_NEW });\r\n this.protocols.push({ id: ProtocolType.other, name: this.LANG.QMSCKEDITOR.PROTOCOL_OTHER });\r\n }\r\n }\r\n\r\n initAnchor() {\r\n this.anchors = [];\r\n this.anchors = [{ value: 0, viewValue: '', anchorValue: LinkAnchor.Blank }];\r\n }\r\n\r\n parseLinkUrl(typeId: number, url: string) {\r\n if (typeId === LinkType.anchorText) {\r\n this.getEditorAnchor();\r\n this.anchorText = url.substr(1);\r\n } else if (typeId === LinkType.email) {\r\n const p1 = url.indexOf('mailto:');\r\n const p2 = url.indexOf('?subject=');\r\n const p3 = url.indexOf('&body=');\r\n this.emailAddress = url.substr(p1 + 7, p2 - 7);\r\n this.emailSubject = url.substr(p2 + 9, p3 - p2 - 9);\r\n this.emailBody = url.substr(p3 + 6, url.length - p3 - 6);\r\n } else if (typeId === LinkType.anchorDocument) {\r\n const flashIndex = url.lastIndexOf('/');\r\n const hashIndex = url.indexOf('#');\r\n const sId = url.substr(flashIndex + 1, hashIndex - 1 - flashIndex);\r\n const documentId = parseInt(sId, 10);\r\n this.getAnchorDocument(documentId);\r\n this.anchorByName = url.substr(hashIndex + 1, url.length - hashIndex);\r\n this.anchorTitle = this.data.title;\r\n }\r\n }\r\n\r\n onSelectedLinkType() {\r\n if (this.selectedLink === LinkType.anchorText) {\r\n this.getEditorAnchor();\r\n } else if (this.selectedLink === LinkType.anchorDocument) {\r\n if (!this.documentAnchors) {\r\n this.anchorDocuments = [];\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n }\r\n }\r\n }\r\n\r\n eHandbook(isOnlyDocument: boolean, isAnchorDocument: boolean) {\r\n const data = new QMSCKEditorRelation();\r\n data.isOnlyDocument = isOnlyDocument;\r\n data.isEnableFolder = !isOnlyDocument;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorRelatedComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n if (!isAnchorDocument) {\r\n this.url = result.url;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n this.selectedProtocol = ProtocolType.other;\r\n } else {\r\n this.documentId = result.id;\r\n this.anchorTitle = `${result.title}(${result.id})`;\r\n this.getAnchorDocument(result.id);\r\n }\r\n }\r\n });\r\n }\r\n\r\n attachment() {\r\n const data = new QMSCKEditorParamter();\r\n data.module = this.data.module;\r\n data.entityId = this.data.entityId;\r\n const dialogTemplate = this.dialog.open(LinkAttachmentComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.url = result.url;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n this.selectedProtocol = ProtocolType.other;\r\n }\r\n });\r\n }\r\n\r\n getEditorAnchor() {\r\n this.anchorDocuments = [];\r\n if (this.editorContent) {\r\n this.anchorDocuments.push({\r\n id: 0,\r\n entityId: 0,\r\n documentId: 0,\r\n documentTypeId: 0,\r\n richText: this.editorContent\r\n });\r\n }\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.editorAnchors = this.anchors;\r\n }\r\n\r\n getAnchorDocument(documentId: number) {\r\n this.linkService\r\n .getAnchorDocumentList(documentId)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.anchorDocuments = res;\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n } else {\r\n this.anchorDocuments = [];\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n }\r\n });\r\n }\r\n\r\n setAnchorDocument(anchorDocument: QMSCKEditorLinkAnchorDocument[]) {\r\n this.initAnchor();\r\n let id = 3;\r\n if (anchorDocument) {\r\n anchorDocument.forEach((e) => {\r\n const div = document.createElement('div');\r\n div.innerHTML = e.richText;\r\n const domContent = div;\r\n const aTags = domContent.getElementsByTagName('a');\r\n if (aTags) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < aTags.length; i++) {\r\n const tag = aTags[i];\r\n if (tag.name) {\r\n const index = this.anchors.findIndex((x) => {\r\n return x.anchorValue === tag.name;\r\n });\r\n if (index < 0) {\r\n this.anchors.push({\r\n value: id,\r\n viewValue: tag.name,\r\n anchorValue: tag.name\r\n });\r\n id += 1;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n this.anchors.push({\r\n value: 1,\r\n viewValue: this.LANG.QMSCKEDITOR.ANCHOR_ATTACHMENT,\r\n anchorValue: LinkAnchor.Attachment\r\n });\r\n this.anchors.push({\r\n value: 2,\r\n viewValue: this.LANG.QMSCKEDITOR.ANCHOR_RELATED_DOCUMENT,\r\n anchorValue: LinkAnchor.Related\r\n });\r\n }\r\n\r\n disableOkButton() {\r\n let isDisable = false;\r\n switch (this.selectedLink) {\r\n case LinkType.url:\r\n isDisable = this.linkFormGroup.invalid;\r\n break;\r\n case LinkType.anchorText:\r\n isDisable = this.anchorTextFormGroup.invalid;\r\n break;\r\n case LinkType.email:\r\n isDisable = this.emailFormGroup.invalid;\r\n break;\r\n case LinkType.anchorDocument:\r\n isDisable = this.anchorDocFormGroup.invalid;\r\n break;\r\n default:\r\n break;\r\n }\r\n return isDisable;\r\n }\r\n\r\n setLink() {\r\n const link = new QMSCKEditorLink();\r\n link.typeId = this.selectedLink;\r\n link.targetId = this.selectedTarget;\r\n link.protocolId = this.selectedProtocol;\r\n if (this.selectedLink === LinkType.url) {\r\n link.url = `${this.selectedLink}${this.selectedProtocol}${this.url}`;\r\n link.title = this.advisoryTitle;\r\n } else if (this.selectedLink === LinkType.anchorText) {\r\n link.url = `${this.selectedLink}${0}#${this.anchorText}`;\r\n link.title = `#${this.anchorText}`;\r\n link.targetId = TargetType.topmost;\r\n } else if (this.selectedLink === LinkType.email) {\r\n link.url = `${this.selectedLink}${0}mailto:${this.emailAddress}?subject=${this.emailSubject}&body=${this.emailBody\r\n }`;\r\n link.title = this.emailAddress;\r\n link.targetId = TargetType.topmost;\r\n } else if (this.selectedLink === LinkType.anchorDocument) {\r\n link.url = `${this.selectedLink}${0}/document/${this.documentId}#${this.anchorByName}`;\r\n link.title = this.anchorTitle;\r\n link.targetId = TargetType.topmost;\r\n }\r\n this.dialogRef.close(link);\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Injectable, Injector } from '@angular/core';\r\n\r\n// @dynamic\r\nexport class QMSCKEditorInjector {\r\n private static injector: Injector;\r\n\r\n static setInjector(injector: Injector) {\r\n QMSCKEditorInjector.injector = injector;\r\n }\r\n\r\n static getInjector(): Injector {\r\n return QMSCKEditorInjector.injector;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static getService(type: any) {\r\n const injector = QMSCKEditorInjector.getInjector();\r\n const service = injector.get(type);\r\n return service;\r\n }\r\n}\r\n","import {\r\n MatSnackBar,\r\n MatSnackBarConfig,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from '@angular/material/snack-bar';\r\nimport { QMSCKEditorInjector } from '../../services/qms-ckeditor-injector.service';\r\n\r\nexport class QMSCKEditorToastService {\r\n static horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n\r\n static verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n static actionButtonLabel = 'Close';\r\n\r\n static action = true;\r\n\r\n static setAutoHide = true;\r\n\r\n static autoHide = 3000;\r\n\r\n static success(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = this.setAutoHide ? this.autoHide : 0;\r\n config.panelClass = ['toast-success'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static warning(msg, duration?: number) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = duration || (this.setAutoHide ? this.autoHide : 0);\r\n config.panelClass = ['toast-warning'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static info(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = this.setAutoHide ? this.autoHide : 0;\r\n config.panelClass = ['toast-infor'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static error(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = 0;\r\n config.panelClass = ['toast-error'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n}\r\n","export class QMSCKEditorTemplate {\r\n id: number;\r\n title: string;\r\n description: string;\r\n content: string;\r\n deleted: boolean;\r\n createdBy: number;\r\n edit: boolean;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.title = '';\r\n this.description = '';\r\n this.content = '';\r\n this.deleted = false;\r\n this.createdBy = 0;\r\n this.edit = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { QMSCKEditorTemplate } from '../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorTemplateService extends QMSCKEditorBaseService {\r\n public deleteTemplate(id: number): Observable<boolean> {\r\n return this.delete('ckeditorTemplate/DeleteTemplate', { id });\r\n }\r\n public getTemplate(): Observable<QMSCKEditorTemplate[]> {\r\n return this.get('ckeditorTemplate/GetTemplateList');\r\n }\r\n\r\n public modifyTemplate(template: QMSCKEditorTemplate): Observable<boolean> {\r\n return this.post('ckeditorTemplate/ModifyTemplate', template);\r\n }\r\n}\r\n","import { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDialogData } from '../../common/models/qms-ckeditor-dialog.model';\r\nimport { QMSCKEditorConfirmComponent } from '../../common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorToastService } from '../../common/toast/qms-ckeditor-toast.service';\r\nimport { QMSCKEditorTemplate } from '../../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTemplateService } from '../../services/qms-ckedtior-template.service';\r\n\r\ninterface ITemplate {\r\n id: number;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-qmsck-template',\r\n templateUrl: './qms-ckeditor-template.component.html',\r\n styleUrls: ['./qms-ckeditor-template.component.scss']\r\n})\r\nexport class QMSCKEditorTemplateComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n templateFormGroup: FormGroup = new FormGroup({\r\n templateList: new FormControl(),\r\n title: new FormControl('', [Validators.required]),\r\n description: new FormControl('', [Validators.required])\r\n });\r\n isExpanded = true;\r\n content: string;\r\n templateList: QMSCKEditorTemplate[] = [];\r\n templates: ITemplate[] = [];\r\n template = new QMSCKEditorTemplate();\r\n selectedId = 0;\r\n isEdit = false;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private templateService: QMSCKEditorTemplateService,\r\n public dialogRef: MatDialogRef<QMSCKEditorTemplateComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorTemplate\r\n ) {\r\n super();\r\n this.content = data.content;\r\n this.selectedId = data.id;\r\n this.isEdit = data.edit;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getTemplate();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getTemplate() {\r\n this.templateService\r\n .getTemplate()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.templateList = response;\r\n this.templates = response.map((x) => {\r\n return {\r\n id: x.id,\r\n title: x.title\r\n };\r\n });\r\n this.addNoneTemplate(this.templates);\r\n } else {\r\n this.addNoneTemplate(this.templates);\r\n }\r\n\r\n if (this.isEdit && this.selectedId !== 0) {\r\n this.onSelectChange();\r\n }\r\n });\r\n }\r\n\r\n addNoneTemplate(template: ITemplate[]) {\r\n if (template && !this.isEdit) {\r\n template.unshift({\r\n id: 0,\r\n title: this.LANG.QMSCKEDITOR.CREATE_NEW_TEMPLATE\r\n });\r\n }\r\n }\r\n\r\n onSelectChange() {\r\n if (this.selectedId === 0) {\r\n this.template.id = this.selectedId;\r\n this.template.title = '';\r\n this.template.description = '';\r\n this.template.content = this.content;\r\n this.template.deleted = false;\r\n this.template.createdBy = 0;\r\n } else if (this.templateList.length > 0) {\r\n const index = this.templateList.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n this.template.id = this.templateList[index].id;\r\n this.template.title = this.templateList[index].title;\r\n this.template.description = this.templateList[index].description;\r\n this.template.content = this.templateList[index].content;\r\n this.template.deleted = this.templateList[index].deleted;\r\n this.template.createdBy = this.templateList[index].createdBy;\r\n }\r\n }\r\n\r\n deleteTemplate() {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.DELETE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templateService\r\n .deleteTemplate(this.selectedId)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n if (index >= 0) {\r\n this.templates.splice(index, 1);\r\n }\r\n this.selectedId = 0;\r\n this.onSelectChange();\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n saveTemplate() {\r\n if (this.selectedId === 0) {\r\n this.template.content = this.content;\r\n }\r\n this.templateService\r\n .modifyTemplate(this.template)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n if (index >= 0 && this.selectedId !== 0) {\r\n this.templates[index].title = this.template.title;\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);\r\n }\r\n });\r\n }\r\n\r\n cancelTemplate() {\r\n this.dialogRef.close();\r\n }\r\n\r\n updateTemplate() {\r\n this.templateService\r\n .modifyTemplate(this.template)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n if (this.isEdit) {\r\n this.dialogRef.close(this.template);\r\n } else {\r\n let index = this.templates.findIndex((x) => {\r\n return x.id === this.template.id;\r\n });\r\n if (index >= 0) {\r\n this.templates[index].title = this.template.title;\r\n }\r\n index = this.templateList.findIndex((x) => {\r\n return x.id === this.template.id;\r\n });\r\n if (index >= 0) {\r\n this.templateList[index].description = this.template.description;\r\n }\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDialogData } from '../../common/models/qms-ckeditor-dialog.model';\r\nimport { QMSCKEditorConfirmComponent } from '../../common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorToastService } from '../../common/toast/qms-ckeditor-toast.service';\r\nimport { QMSCKEditorTemplate } from '../../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTemplateService } from '../../services/qms-ckedtior-template.service';\r\nimport { QMSCKEditorTemplateComponent } from '../qms-ckeditor-template/qms-ckeditor-template.component';\r\n\r\n@Component({\r\n selector: 'app-qmsck-load-template',\r\n templateUrl: './qms-ckeditor-load-template.component.html',\r\n styleUrls: ['./qms-ckeditor-load-template.component.scss']\r\n})\r\nexport class QMSCKEditorLoadTemplateComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n templates: QMSCKEditorTemplate[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private templateService: QMSCKEditorTemplateService,\r\n public dialogRef: MatDialogRef<QMSCKEditorLoadTemplateComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: string\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getTemplate();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getTemplate() {\r\n this.templateService\r\n .getTemplate()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.templates = response;\r\n }\r\n });\r\n }\r\n\r\n onSelectTemplate(id: number) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.CHANGE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_CHANGE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n const content = this.templates[index].content;\r\n this.dialogRef.close(content);\r\n }\r\n });\r\n }\r\n\r\n onEditTemplate(id: number) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n const data: QMSCKEditorTemplate = new QMSCKEditorTemplate();\r\n data.id = this.templates[index].id;\r\n data.content = this.templates[index].content;\r\n data.edit = true;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTemplateComponent, {\r\n width: '650px',\r\n height: '500px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templates[index].title = result.title;\r\n this.templates[index].description = result.description;\r\n }\r\n });\r\n }\r\n\r\n onDeleteTemplate(id: number) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.DELETE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templateService\r\n .deleteTemplate(id)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n if (index >= 0) {\r\n this.templates.splice(index, 1);\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","import { QMSCKEditorToastService } from '../toast/qms-ckeditor-toast.service';\r\nexport class UploadAdapter {\r\n loader: any;\r\n constructor(loader) {\r\n this.loader = loader;\r\n }\r\n\r\n upload() {\r\n return this.loader.file\r\n .then((file) => {\r\n return new Promise((resolve, reject) => {\r\n const myReader = new FileReader();\r\n myReader.onloadend = () => {\r\n resolve({ default: myReader.result });\r\n };\r\n // if (file.size > 512000) {\r\n // const msg = `${file.name} is more than 500kb. Sorry, it has to be less than or equal to 500kb`;\r\n // QMSCKEditorToastService.error(msg);\r\n // reject();\r\n // }\r\n myReader.readAsDataURL(file);\r\n });\r\n })\r\n .catch((error) => {\r\n throw error;\r\n });\r\n }\r\n}\r\n","export class CKEditorEventConst {\r\n public static QMSCK_FULLSCREEN_PLUGIN_MSG = 'QMSCK_FULLSCREEN_PLUGIN_MSG';\r\n public static QMSCK_TEMPLATE_PLUGIN_MSG = 'QMSCK_TEMPLATE_PLUGIN_MSG';\r\n public static QMSCK_LOAD_TEMPLATE_PLUGIN_MSG = 'QMSCK_LOAD_TEMPLATE_PLUGIN_MSG';\r\n public static QMSCK_LOAD_TEMPLATE_PLUGIN_RESP = 'QMSCK_LOAD_TEMPLATE_PLUGIN_RESP';\r\n public static QMSCK_LINK_PLUGIN_MSG = 'QMSCK_LINK_PLUGIN_MSG';\r\n public static QMSCK_LINK_PLUGIN_RESP = 'QMSCK_LINK_PLUGIN_RESP';\r\n public static QMSCK_TOOLTIP_PLUGIN_MSG = 'QMSCK_TOOLTIP_PLUGIN_MSG';\r\n public static QMSCK_TOOLTIP_PLUGIN_RESP = 'QMSCK_TOOLTIP_PLUGIN_RESP';\r\n public static QMSCK_IMAGEMAP_PLUGIN_MSG = 'QMSCK_IMAGEMAP_PLUGIN_MSG';\r\n public static QMSCK_IMAGEMAP_PLUGIN_RESP = 'QMSCK_IMAGEMAP_PLUGIN_RESP';\r\n public static QMSCK_BPMN_PLUGIN_MSG = 'QMSCK_BPMN_PLUGIN_MSG';\r\n public static QMSCK_BPMN_PLUGIN_RESP = 'QMSCK_BPMN_PLUGIN_RESP';\r\n public static QMSCK_BPMN = 'bpmn';\r\n}\r\n","var IFRAME_SRC = '//cdn.iframe.ly/api/iframe';\r\nvar API_KEY = 'b499e92e857f435c39c14d';\r\n\r\nfunction getCKEditorConfiguration(itemToolbar: string) {\r\n const ckeditorConfig = {\r\n toolbar: {\r\n items: [\r\n ],\r\n viewportTopOffset: 30,\r\n shouldNotGroupWhenFull: true\r\n },\r\n language: 'en',\r\n table: {\r\n contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells']\r\n },\r\n image: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n toolbar: [\r\n 'imageResize:25',\r\n 'imageResize:50',\r\n 'imageResize:75',\r\n 'imageResize:original',\r\n 'imageStyle:alignLeft',\r\n 'imageStyle:alignCenter',\r\n 'imageStyle:alignRight',\r\n '|',\r\n 'imageTextAlternative',\r\n '|',\r\n 'linkImage',\r\n '|',\r\n 'imageMap',\r\n '|',\r\n 'qmsBpmn'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'imageResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'imageResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'imageResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'imageResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'medium'\r\n }\r\n ]\r\n },\r\n video: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'videoResize',\r\n '|',\r\n 'videoResize:25',\r\n 'videoResize:50',\r\n 'videoResize:75',\r\n 'videoResize:original',\r\n 'videoStyle:alignLeft',\r\n 'videoStyle:alignCenter',\r\n 'videoStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'videoResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'videoResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'videoResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'videoResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ]\r\n },\r\n media: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'mediaResize',\r\n '|',\r\n 'mediaResize:25',\r\n 'mediaResize:50',\r\n 'mediaResize:75',\r\n 'mediaResize:original',\r\n 'mediaStyle:alignLeft',\r\n 'mediaStyle:alignCenter',\r\n 'mediaStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'mediaResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'mediaResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'mediaResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'mediaResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ]\r\n },\r\n // Configure 'mediaEmbed' with Iframely previews.\r\n mediaEmbed: {\r\n // Previews are always enabled if there’s a provider for a URL (below regex catches all URLs)\r\n // By default `previewsInData` are disabled, but let’s set it to `false` explicitely to be sure\r\n previewsInData: true,\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'mediaResize',\r\n '|',\r\n 'mediaResize:25',\r\n 'mediaResize:50',\r\n 'mediaResize:75',\r\n 'mediaResize:original',\r\n 'mediaStyle:alignLeft',\r\n 'mediaStyle:alignCenter',\r\n 'mediaStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'mediaResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'mediaResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'mediaResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'mediaResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ],\r\n // providers: [\r\n // {\r\n // // hint: this is just for previews. Get actual HTML codes by making API calls from your CMS\r\n // name: 'iframely previews',\r\n // // Match all URLs or just the ones you need:\r\n // url: /.+/,\r\n\r\n // html: match => {\r\n // const url = match[0];\r\n\r\n // var iframeUrl = IFRAME_SRC + '?app=1&api_key=' + API_KEY + '&url=' + encodeURIComponent(url);\r\n // // alternatively, use &key= instead of &api_key with the MD5 hash of your api_key\r\n // // more about it: https://iframely.com/docs/allow-origins\r\n\r\n // return (\r\n // // If you need, set maxwidth and other styles for 'iframely-embed' class - it's yours to customize\r\n // '<div class=\"iframely-embed\">' +\r\n // '<div class=\"iframely-responsive\">' +\r\n // `<iframe src=\"${iframeUrl}\" ` +\r\n // 'frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen>' +\r\n // '</iframe>' +\r\n // '</div>' +\r\n // '</div>'\r\n // );\r\n // }\r\n // }\r\n // ]\r\n },\r\n link: {\r\n addTargetToExternalLinks: false,\r\n decorators: [\r\n {\r\n mode: 'manual',\r\n label: 'New window',\r\n attributes: {\r\n target: '_blank',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Topmost window',\r\n attributes: {\r\n target: '_top',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Same window',\r\n attributes: {\r\n target: '_self',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Parent window',\r\n attributes: {\r\n target: '_parent',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n // alway put this one a the bottom\r\n mode: 'manual',\r\n label: 'Select range',\r\n attributes: {\r\n selectedRange: true\r\n }\r\n }\r\n ]\r\n }\r\n };\r\n\r\n if (itemToolbar) {\r\n const itemArray = itemToolbar.split(',');\r\n itemArray.forEach(i => {\r\n ckeditorConfig.toolbar.items.push(i);\r\n });\r\n }\r\n\r\n return ckeditorConfig;\r\n}\r\n\r\nconst CKEditorCommonFunctions = {\r\n getCKEditorConfiguration\r\n};\r\nexport default CKEditorCommonFunctions;\r\n","export class FlowChartConst {\r\n public static EXIST_DATA = 'IS_LINKED_DATA';\r\n\r\n public static CHANGING_TEMPLATE = 'CHANGING_TEMPLATE';\r\n\r\n public static SELECTED_JSON_CONTENT = 'SELECTED_JSON_CONTENT';\r\n\r\n public static IS_SELECTED_TEMPLATE = 'IS_SELECTED_TEMPLATE';\r\n\r\n public static PROCESS_FLOWCHART_ID = 'PROCESS_FLOWCHART_ID';\r\n\r\n public static SELECTED_FLOWCHART_ID = 'SELECTED_FLOWCHART_ID';\r\n\r\n public static SELECTED_SHAPE_ID = 'shapeId';\r\n\r\n public static SELECT_TEMPLATE = 'Select Template';\r\n\r\n public static GRAPH = 'graph';\r\n\r\n public static PAPER = 'paper';\r\n\r\n public static PAPER_SCROLLER = 'paperScroller';\r\n\r\n public static MUST_SELECT_TEMPLATE = 'MUST_SELECT_TEMPLATE';\r\n\r\n public static NEXT_CHANGING_TEMPLATE = 'NEXT_CHANGING_TEMPLATE';\r\n\r\n public static IS_NOT_SHOW_AGAIN = 'IS_NOT_SHOW_AGAIN';\r\n\r\n public static BLANK_FLOWCHART = '{\"type\":\"bpmn\",\"cells\":[]}';\r\n\r\n public static SHAPE_FLOWCHART = 'shapeFlowChart';\r\n\r\n public static PROCESS_SHAPE_FLOWCHART = 'processShapeFlowChart';\r\n\r\n public static SHAPE_FLOWCHART_LOADING = 'SHAPE_FLOWCHART_LOADING';\r\n\r\n public static IS_SHOW_CONNECTYPE = 'isShowConnectType';\r\n\r\n public static SHAPE_TYPE = 'shapeType';\r\n\r\n public static EDIT_MODE = 'EDIT_MODE';\r\n\r\n public static PROCESS_SHAPE_DETAIL_MODEL = 'PROCESS_SHAPE_DETAIL_MODEL';\r\n\r\n public static SHAPE_DETAIL_MODEL = 'SHAPE_DETAIL_MODEL';\r\n\r\n public static TAB_NAME = 'TAB_NAME';\r\n public static TAB_BPMN_CHOREOGRAPHY = 'TAB_BPMN_CHOREOGRAPHY';\r\n public static TAB_CONNECTION = 'TAB_CONNECTION';\r\n public static DIAGRAM_LOADED = 'DIAGRAM_LOADED';\r\n public static NOT_ALLOW_CREATE_DELETE_FLOW_TEMPLATE = 'NOT_ALLOW_CREATE_DELETE_FLOW_TEMPLATE';\r\n\r\n /*CKEdior */\r\n public static SAVE_AS_TEMPLATE = 'SAVE_AS_TEMPLATE';\r\n public static DELETE_TEMPLATE = 'DELETE_TEMPLATE';\r\n public static RESET_TEMPLATE = 'RESET_TEMPLATE';\r\n public static ORG_JSONCONTENT = 'ORG_JSONCONTENT';\r\n}\r\n","function create() {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n return `${s4() + s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;\r\n}\r\n\r\nconst guidHelper = {\r\n create,\r\n empty: '00000000-0000-0000-0000-000000000000'\r\n};\r\nexport default guidHelper;\r\n","\r\nexport class QMSCKEditorBpmn {\r\n id: string;\r\n jsonContent: string;\r\n isTemplate: boolean;\r\n templateName: string;\r\n\r\n constructor() {\r\n this.id = '';\r\n this.jsonContent = '';\r\n this.isTemplate = false;\r\n this.templateName = '';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { QMSCKEditorBpmnTemplate } from '../common/models/qms-ckeditor-bpmn-template.model';\r\nimport { QMSCKEditorBpmn } from '../common/models/qms-ckeditor-bpmn.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorBpmnApiService extends QMSCKEditorBaseService {\r\n public bpmnModifying(bpmn: QMSCKEditorBpmn): Observable<string> {\r\n return this.post('ckeditorBpmn/BpmnModifying', bpmn);\r\n }\r\n\r\n public getBpmnById(id: string): Observable<QMSCKEditorBpmn> {\r\n return this.get('ckeditorBpmn/GetBpmnById', { id });\r\n }\r\n\r\n public bpmnGetTemplates(): Observable<QMSCKEditorBpmnTemplate[]> {\r\n return this.get('ckeditorBpmn/BpmnGetTemplates');\r\n }\r\n\r\n public bpmnDeleteTemplate(id: string): Observable<boolean> {\r\n return this.delete('ckeditorBpmn/BpmnDeleteTemplate', { id });\r\n }\r\n}\r\n","\r\nfunction getOptions(icons) {\r\n // eslint-disable-next-line func-names\r\n return Object.keys(icons).map(function (icon) {\r\n return { value: icon, content: icon };\r\n });\r\n}\r\n\r\nconst labelInputs = {\r\n '0/attrs/label/text': {\r\n type: 'text',\r\n label: 'Label',\r\n group: 'general'\r\n }\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getInspectorConfiguration(bpmn2: any, LANG: any) {\r\n return {\r\n 'bpmn2.Gateway': {\r\n attrs: {\r\n 'icon/iconType': {\r\n type: 'select',\r\n options: getOptions(bpmn2.Gateway.GATEWAY_ICONS),\r\n label: `${LANG.BPMN.TYPE}`,\r\n group: 'general',\r\n index: 2\r\n },\r\n 'label/text': {\r\n type: 'textarea',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n 'text/style/text-inside': {\r\n type: 'toggle',\r\n label: `${LANG.BPMN.TEXT_INSIDE_SHAPE}`,\r\n group: 'general',\r\n index: 3\r\n },\r\n 'text/style/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 4,\r\n defaultValue: 'middle'\r\n },\r\n 'text/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'Calibri'\r\n },\r\n 'text/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 6,\r\n defaultValue: 12\r\n },\r\n 'label/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'labelBackground/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_BACKGROUND_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n },\r\n 'body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: 'appearance',\r\n index: 2\r\n },\r\n 'body/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 3\r\n },\r\n 'icon/iconColor': {\r\n type: 'color',\r\n label: 'Icon Color',\r\n group: 'appearance',\r\n index: 4\r\n }\r\n }\r\n },\r\n\r\n 'bpmn2.Activity': {\r\n attrs: {\r\n 'border/borderType': {\r\n type: 'select',\r\n options: [\r\n {\r\n value: 'single',\r\n content: 'Task'\r\n },\r\n {\r\n value: 'double',\r\n content: 'Transaction'\r\n },\r\n {\r\n value: 'thick',\r\n content: 'Call Activity'\r\n }\r\n ],\r\n group: 'general',\r\n label: `${LANG.BPMN.TYPE}`,\r\n index: 2\r\n },\r\n 'border/borderStyle': {\r\n type: 'select',\r\n options: [\r\n {\r\n value: 'solid',\r\n content: 'No'\r\n },\r\n {\r\n value: 'dotted',\r\n content: 'Yes'\r\n }\r\n ],\r\n group: 'general',\r\n label: 'Sub-Process',\r\n index: 3\r\n },\r\n 'icon/iconType': {\r\n type: 'select',\r\n options: getOptions(bpmn2.Activity.ACTIVITY_TYPE_ICONS),\r\n label: 'Icon',\r\n group: 'general',\r\n index: 4\r\n },\r\n 'markers/iconTypes': {\r\n type: 'select',\r\n multiple: true,\r\n overwrite: true,\r\n options: getOptions(bpmn2.Activity.ACTIVITY_MARKER_ICONS),\r\n label: 'Markers',\r\n group: 'general',\r\n index: 9\r\n },\r\n 'label/text': {\r\n type: 'textarea',\r\n label: 'Content',\r\n group: 'general',\r\n index: 1\r\n },\r\n 'text/style/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'middle'\r\n },\r\n 'text/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6,\r\n defaultValue: 'Calibri'\r\n },\r\n 'text/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 7,\r\n defaultValue: 12\r\n },\r\n 'label/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'background/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n },\r\n 'border/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 2\r\n },\r\n 'icon/iconColor': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TYPE_COLOR}`,\r\n group: 'appearance',\r\n index: 3\r\n },\r\n 'markers/iconColor': {\r\n type: 'color',\r\n label: `${LANG.BPMN.MARKER_COLOR}`,\r\n group: 'appearance',\r\n index: 4\r\n }\r\n }\r\n },\r\n\r\n 'bpmn2.Event': {\r\n attrs: {\r\n 'text/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 7,\r\n defaultValue: 12\r\n },\r\n 'text/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6,\r\n defaultValue: 'Calibri'\r\n },\r\n 'text/style/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'middle'\r\n },\r\n 'text/style/text-inside': {\r\n type: 'toggle',\r\n label: `${LANG.BPMN.TEXT_INSIDE_SHAPE}`,\r\n group: 'general',\r\n index: 4\r\n },\r\n 'icon/iconType': {\r\n type: 'select',\r\n options: getOptions(bpmn2.Event.EVENT_ICONS),\r\n label: 'Icon',\r\n group: 'general',\r\n index: 3\r\n },\r\n 'border/borderType': {\r\n type: 'select',\r\n options: [\r\n {\r\n value: 'single',\r\n content: 'Start'\r\n },\r\n {\r\n value: 'double',\r\n content: 'Intermediate'\r\n },\r\n {\r\n value: 'thick',\r\n content: 'End'\r\n }\r\n ],\r\n group: 'general',\r\n label: `${LANG.BPMN.TYPE}`,\r\n index: 2\r\n },\r\n 'border/borderStyle': {\r\n type: 'select',\r\n options: [\r\n {\r\n value: 'solid',\r\n content: 'Yes'\r\n },\r\n {\r\n value: 'dashed',\r\n content: 'No'\r\n }\r\n ],\r\n group: 'general',\r\n label: 'Interrupting',\r\n index: 2\r\n },\r\n 'label/text': {\r\n type: 'textarea',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n 'label/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'labelBackground/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_BACKGROUND_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n },\r\n 'background/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: 'appearance',\r\n index: 2\r\n },\r\n 'border/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 3\r\n },\r\n 'icon/iconColor': {\r\n type: 'color',\r\n label: 'Icon Color',\r\n group: 'appearance',\r\n index: 4\r\n }\r\n }\r\n },\r\n\r\n 'bpmn2.Annotation': {\r\n attrs: {\r\n 'label/text': {\r\n type: 'textarea',\r\n label: 'Content',\r\n group: 'general',\r\n index: 1\r\n },\r\n 'label/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 2,\r\n defaultValue: 'start'\r\n },\r\n 'label/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 3,\r\n defaultValue: 'Calibri'\r\n },\r\n 'label/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 4,\r\n defaultValue: 12\r\n },\r\n 'label/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n },\r\n 'border/stroke': {\r\n type: 'color',\r\n label: 'Border Color',\r\n group: 'appearance',\r\n index: 2\r\n }\r\n }\r\n },\r\n\r\n 'bpmn2.Group': {\r\n attrs: {\r\n 'label/text': {\r\n type: 'textarea',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n 'text/style/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 2,\r\n defaultValue: 'middle'\r\n },\r\n 'text/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 3,\r\n defaultValue: 'Calibri'\r\n },\r\n 'text/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 4,\r\n defaultValue: 12\r\n },\r\n 'label/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'body/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n }\r\n }\r\n },\r\n\r\n 'bpmn2.Conversation': {\r\n attrs: {\r\n 'text/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 6,\r\n defaultValue: 12\r\n },\r\n 'text/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'Calibri'\r\n },\r\n 'text/style/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 4,\r\n defaultValue: 'middle'\r\n },\r\n 'text/style/text-inside': {\r\n type: 'toggle',\r\n label: `${LANG.BPMN.TEXT_INSIDE_SHAPE}`,\r\n group: 'general',\r\n index: 3\r\n },\r\n 'body/strokeWidth': {\r\n type: 'select',\r\n options: [\r\n {\r\n value: 2,\r\n content: 'No'\r\n },\r\n {\r\n value: 5,\r\n content: 'Yes'\r\n }\r\n ],\r\n group: 'general',\r\n label: 'Call',\r\n index: 2\r\n },\r\n 'markers/iconTypes': {\r\n type: 'select',\r\n multiple: true,\r\n overwrite: true,\r\n options: getOptions(bpmn2.Conversation.CONVERSATION_MARKER_ICONS),\r\n label: `${LANG.BPMN.MARKER}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'label/text': {\r\n type: 'textarea',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n 'label/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'labelBackground/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_BACKGROUND_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n },\r\n 'body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: 'appearance',\r\n index: 2\r\n },\r\n 'body/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 3\r\n }\r\n }\r\n },\r\n\r\n 'bpmn2.DataObject': {\r\n attrs: {\r\n 'label/text': {\r\n type: 'textarea',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n 'dataTypeIcon/iconType': {\r\n type: 'select',\r\n options: getOptions(bpmn2.DataObject.DATA_OBJECT_TYPE_ICONS),\r\n label: `${LANG.BPMN.TYPE}`,\r\n group: 'general',\r\n index: 3\r\n },\r\n 'collectionIcon/collection': {\r\n type: 'toggle',\r\n label: `${LANG.BPMN.COLLECTION}`,\r\n group: 'general',\r\n index: 3\r\n },\r\n 'text/style/text-inside': {\r\n type: 'toggle',\r\n label: `${LANG.BPMN.TEXT_INSIDE_SHAPE}`,\r\n group: 'general',\r\n index: 4\r\n },\r\n 'text/style/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'middle'\r\n },\r\n 'text/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6,\r\n defaultValue: 'Calibri'\r\n },\r\n 'text/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 7,\r\n defaultValue: 12\r\n },\r\n 'label/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'labelBackground/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_BACKGROUND_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n },\r\n 'body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: 'appearance',\r\n index: 2\r\n },\r\n 'body/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 3\r\n },\r\n 'dataTypeIcon/iconColor': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TYPE_COLOR}`,\r\n group: 'appearance',\r\n index: 4\r\n },\r\n 'collectionIcon/iconColor': {\r\n type: 'color',\r\n label: `${LANG.BPMN.COLLECTION_COLOR}`,\r\n group: 'appearance',\r\n index: 5\r\n }\r\n }\r\n },\r\n\r\n 'bpmn2.DataStore': {\r\n attrs: {\r\n 'label/text': {\r\n type: 'textarea',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n 'text/style/text-inside': {\r\n type: 'toggle',\r\n label: `${LANG.BPMN.TEXT_INSIDE_SHAPE}`,\r\n group: 'general',\r\n index: 2\r\n },\r\n 'text/style/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 3,\r\n defaultValue: 'middle'\r\n },\r\n 'text/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 4,\r\n defaultValue: 'Calibri'\r\n },\r\n 'text/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 12\r\n },\r\n 'label/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'labelBackground/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_BACKGROUND_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n },\r\n 'body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: 'appearance',\r\n index: 2\r\n },\r\n 'body/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 3\r\n },\r\n 'top/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TOP_COLOR}`,\r\n group: 'appearance',\r\n index: 4\r\n },\r\n 'top/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TOP_LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 5\r\n }\r\n }\r\n },\r\n\r\n // BPMN Legacy\r\n\r\n 'bpmn2.HeaderedPool': {\r\n lanes: {\r\n type: 'list',\r\n group: 'general',\r\n index: 2,\r\n item: {\r\n type: 'object',\r\n properties: {\r\n label: {\r\n type: 'text',\r\n label: 'Label'\r\n },\r\n size: {\r\n type: 'number',\r\n label: `${LANG.BPMN.SIZE}`,\r\n attrs: {\r\n label: {\r\n style: 'margin-right:4px;margin-top:20px;'\r\n },\r\n input: {\r\n style: 'width:216px;'\r\n }\r\n }\r\n },\r\n headerSize: {\r\n type: 'number',\r\n label: `${LANG.BPMN.HEADER_SIZE}`,\r\n attrs: {\r\n label: {\r\n style: 'text-align:end;margin-right:4px;margin-top:16px;'\r\n },\r\n input: {\r\n style: 'width:163px;'\r\n }\r\n }\r\n },\r\n sublanes: {\r\n type: 'list',\r\n label: 'Add lanes',\r\n item: {\r\n type: 'object',\r\n properties: {\r\n label: {\r\n type: 'text',\r\n label: 'Label'\r\n },\r\n size: {\r\n type: 'number',\r\n label: `${LANG.BPMN.SIZE}`,\r\n attrs: {\r\n label: {\r\n style: 'margin-right:4px;margin-top:20px;'\r\n },\r\n input: {\r\n style: 'width:216px;'\r\n }\r\n }\r\n },\r\n headerSize: {\r\n type: 'number',\r\n label: `${LANG.BPMN.HEADER_SIZE}`,\r\n attrs: {\r\n label: {\r\n style: 'text-align:end;margin-right:4px;margin-top:16px;'\r\n },\r\n input: {\r\n style: 'width:163px;'\r\n }\r\n }\r\n },\r\n sublanes: {\r\n type: 'list',\r\n label: `${LANG.BPMN.ADD_SUBLANES}`,\r\n item: {\r\n type: 'object',\r\n properties: {\r\n label: {\r\n type: 'text',\r\n label: 'Label'\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n milestones: {\r\n type: 'list',\r\n group: 'general',\r\n index: 3,\r\n attrs: {},\r\n item: {\r\n type: 'object',\r\n properties: {\r\n label: {\r\n type: 'text',\r\n label: 'Label'\r\n },\r\n size: {\r\n type: 'number',\r\n label: `${LANG.BPMN.SIZE}`,\r\n attrs: {\r\n label: {\r\n style: 'margin-right:20px;margin-top:20px;'\r\n }\r\n }\r\n },\r\n milestonesSize: {\r\n type: 'number',\r\n label: `${LANG.BPMN.HEADER_SIZE}`,\r\n attrs: {\r\n label: {\r\n style: 'text-align:end;margin-right:4px;margin-top:16px;'\r\n },\r\n input: {\r\n style: 'width:163px;'\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n milestonesSize: {\r\n type: 'number',\r\n label: 'Milestones Size',\r\n attrs: {\r\n label: {\r\n style: 'width:150px;'\r\n }\r\n },\r\n group: 'defaults',\r\n index: 1\r\n },\r\n headerSize: {\r\n type: 'number',\r\n label: 'Lane Header Size',\r\n attrs: {\r\n label: {\r\n style: 'width:150px;'\r\n }\r\n },\r\n group: 'defaults',\r\n index: 2\r\n },\r\n attrs: {\r\n 'headerLabel/text': {\r\n type: 'text',\r\n label: `${LANG.BPMN.HEADER}`,\r\n attrs: {\r\n label: {\r\n style: 'width:55px;margin-top:1px;'\r\n }\r\n },\r\n group: 'general',\r\n index: 1\r\n },\r\n 'header/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.HEADER_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n },\r\n 'header/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.HEADER_STROKE_COLOR}`,\r\n group: 'appearance',\r\n index: 2\r\n },\r\n 'headerLabel/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.HEADER_LABEL_COLOR}`,\r\n group: 'appearance',\r\n index: 3\r\n },\r\n 'lanes/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LANE_BODY_COLOR}`,\r\n group: 'appearance',\r\n index: 4\r\n },\r\n 'lanes/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LANE_STROKE_COLOR}`,\r\n group: 'appearance',\r\n index: 5\r\n },\r\n 'laneHeaders/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LANE_HEADER_COLOR}`,\r\n group: 'appearance',\r\n index: 6\r\n },\r\n 'laneHeaders/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LANE_HEADER_STROKE}`,\r\n group: 'appearance',\r\n index: 7\r\n },\r\n 'laneLabels/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LANE_LABEL_COLOR}`,\r\n group: 'appearance',\r\n index: 8\r\n },\r\n 'milestoneHeaders/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.MILESTONE_HEADER_FILL}`,\r\n group: 'appearance',\r\n index: 9\r\n },\r\n 'milestoneHeaders/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.MILESTONE_STROKE}`,\r\n group: 'appearance',\r\n index: 10\r\n },\r\n 'milestoneLabels/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.MILESTONE_LABEL_COLOR}`,\r\n group: 'appearance',\r\n index: 11\r\n },\r\n 'milestoneLines/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.MILESTONE_LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 12\r\n },\r\n 'headerLabel/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.HEADER_ALIGNMENT}`,\r\n group: 'fontsize',\r\n index: 1,\r\n defaultValue: 'middle'\r\n },\r\n 'headerLabel/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.HEADER_FONT_FAMILY}`,\r\n group: 'fontsize',\r\n index: 2,\r\n defaultValue: 'Calibri'\r\n },\r\n 'headerLabel/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.HEADER_FONT_SIZE}`,\r\n group: 'fontsize',\r\n index: 3,\r\n defaultValue: 12\r\n },\r\n 'laneLabels/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.LANE_ALIGNMENT}`,\r\n group: 'fontsize',\r\n index: 4,\r\n defaultValue: 'middle'\r\n },\r\n 'laneLabels/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.LANE_FONT_FAMILY}`,\r\n group: 'fontsize',\r\n index: 5,\r\n defaultValue: 'Calibri'\r\n },\r\n 'laneLabels/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.LANE_FONT_SIZE}`,\r\n group: 'fontsize',\r\n index: 6,\r\n defaultValue: 12\r\n },\r\n 'milestoneLabels/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'end', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.MILESTONE_ALIGNMENT}`,\r\n group: 'fontsize',\r\n index: 7,\r\n defaultValue: 'middle'\r\n },\r\n 'milestoneLabels/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.MILESTONE_FONT_FAMILY}`,\r\n group: 'fontsize',\r\n index: 8,\r\n defaultValue: 'Calibri'\r\n },\r\n 'milestoneLabels/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.MILESTONE_FONT_SIZE}`,\r\n group: 'fontsize',\r\n index: 9,\r\n defaultValue: 12\r\n }\r\n }\r\n },\r\n\r\n 'bpmn2.Flow': {\r\n attrs: {\r\n 'line/flowType': {\r\n type: 'select',\r\n options: ['sequence', 'default', 'conditional', 'message'],\r\n label: `${LANG.BPMN.TYPE}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n 'text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 2,\r\n defaultValue: 12\r\n },\r\n 'text/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'line/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n }\r\n },\r\n labels: labelInputs\r\n },\r\n\r\n 'bpmn2.DataAssociation': {\r\n attrs: {\r\n 'text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 2,\r\n defaultValue: 12\r\n },\r\n 'text/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'line/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n }\r\n },\r\n labels: labelInputs\r\n },\r\n\r\n 'bpmn2.AnnotationLink': {\r\n attrs: {\r\n 'text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 2,\r\n defaultValue: 12\r\n },\r\n 'text/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'line/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n }\r\n },\r\n labels: labelInputs\r\n },\r\n\r\n 'bpmn2.ConversationLink': {\r\n attrs: {\r\n 'text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 2,\r\n defaultValue: 12\r\n },\r\n 'text/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: 'appearance',\r\n index: 0\r\n },\r\n 'line/stroke': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LINE_COLOR}`,\r\n group: 'appearance',\r\n index: 1\r\n },\r\n 'outline/stroke': {\r\n type: 'color',\r\n label: 'Outline Color',\r\n group: 'appearance',\r\n index: 2\r\n }\r\n },\r\n labels: labelInputs\r\n },\r\n\r\n // ===================================================================================================\r\n // BPMN Version 3.2\r\n // ===================================================================================================\r\n 'bpmn.Gateway': {\r\n icon: {\r\n type: 'select',\r\n options: [\r\n { value: 'none', content: `${LANG.BPMN.DEFAULT}` },\r\n { value: 'cross', content: `${LANG.BPMN.EXCLUSIVE}` },\r\n { value: 'circle', content: `${LANG.BPMN.INCLUSIVE}` },\r\n { value: 'plus', content: `${LANG.BPMN.PARALLEL}` }\r\n ],\r\n label: `${LANG.BPMN.TYPE}`,\r\n group: 'general',\r\n index: 2\r\n },\r\n attrs: {\r\n '.label/text': {\r\n type: 'text',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n '.body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n }\r\n },\r\n 'attrs/text/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'end', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'start', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'middle'\r\n },\r\n 'attrs/text/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'attrs/text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n }\r\n },\r\n\r\n 'bpmn.Activity': {\r\n content: {\r\n type: 'textarea',\r\n label: `${LANG.BPMN.CONTENT}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n icon: {\r\n type: 'select',\r\n options: [\r\n { value: 'none', content: `${LANG.BPMN.NONE}` },\r\n { value: 'message', content: `${LANG.BPMN.MESSAGE}` },\r\n { value: 'user', content: `${LANG.BPMN.USER}` }\r\n ],\r\n label: `${LANG.BPMN.ICON}`,\r\n group: 'general',\r\n index: 2\r\n },\r\n activityType: {\r\n type: 'select',\r\n options: [\r\n { value: 'task', content: `${LANG.BPMN.TASK}` },\r\n { value: 'transaction', content: `${LANG.BPMN.TRANSACTION}` },\r\n { value: 'event-sub-process', content: `${LANG.BPMN.EVENT_SUB_PROCESS}` },\r\n { value: 'call-activity', content: `${LANG.BPMN.CALL_ACTIVITY}` }\r\n ],\r\n label: `${LANG.BPMN.TYPE}`,\r\n group: 'general',\r\n index: 3\r\n },\r\n subProcess: {\r\n type: 'toggle',\r\n label: `${LANG.BPMN.SUB_PROCESS}`,\r\n group: 'general',\r\n index: 4\r\n },\r\n attrs: {\r\n '.body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n }\r\n },\r\n 'attrs/div/style/text-align': {\r\n type: 'select',\r\n options: [\r\n { value: 'left', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'center', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'right', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'left'\r\n },\r\n 'attrs/div/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'attrs/div/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n }\r\n },\r\n\r\n 'bpmn.Event': {\r\n eventType: {\r\n type: 'select',\r\n options: [\r\n { value: 'start', content: `${LANG.BPMN.START}` },\r\n { value: 'end', content: `${LANG.BPMN.END}` },\r\n { value: 'intermediate', content: `${LANG.BPMN.INTERMEDIATE}` }\r\n ],\r\n group: 'general',\r\n label: `${LANG.BPMN.TYPE}`,\r\n index: 2\r\n },\r\n icon: {\r\n type: 'select',\r\n options: [\r\n { value: 'none', content: `${LANG.BPMN.NONE}` },\r\n // { value: 'cross', content: `${LANG.BPMN.CANCEL}` },\r\n { value: 'cancel1', content: `${LANG.BPMN.CANCEL_OULINED}` },\r\n { value: 'cancel2', content: `${LANG.BPMN.CANCEL_FILLED}` },\r\n { value: 'compensation1', content: `${LANG.BPMN.COMPENSATION_OULINED}` },\r\n { value: 'compensation2', content: `${LANG.BPMN.COMPENSATION_FILLED}` },\r\n { value: 'conditional1', content: `${LANG.BPMN.CONDITIONAL}` },\r\n { value: 'error1', content: `${LANG.BPMN.ERROR_OULINED}` },\r\n { value: 'error2', content: `${LANG.BPMN.ERROR_FILLED}` },\r\n { value: 'escalation1', content: `${LANG.BPMN.ESCALATION_OULINED}` },\r\n { value: 'escalation2', content: `${LANG.BPMN.ESCALATION_FILLED}` },\r\n { value: 'link1', content: `${LANG.BPMN.LINK_OULINED}` },\r\n { value: 'link2', content: `${LANG.BPMN.LINK_FILLED}` },\r\n // { value: 'message', content: `${LANG.BPMN.MESSAGE}` },\r\n { value: 'message1', content: `${LANG.BPMN.MESSAGE_OULINED}` },\r\n { value: 'message2', content: `${LANG.BPMN.MESSAGE_FILLED}` },\r\n { value: 'multiple1', content: `${LANG.BPMN.MULTIPLE_OULINED}` },\r\n { value: 'multiple2', content: `${LANG.BPMN.MULTIPLE_FILLED}` },\r\n { value: 'plus', content: `${LANG.BPMN.PARALLEL_MULTIPLE}` },\r\n { value: 'termination1', content: `${LANG.BPMN.TERMINATION_OULINED}` },\r\n { value: 'termination2', content: `${LANG.BPMN.TERMINATION_FILLED}` },\r\n { value: 'timer1', content: `${LANG.BPMN.TIMER}` },\r\n { value: 'signal1', content: `${LANG.BPMN.SIGNAL_OULINED}` },\r\n { value: 'signal2', content: `${LANG.BPMN.SIGNAL_FILLED}` },\r\n { value: 'parallel1', content: `${LANG.BPMN.PARALLEL_OULINED}` },\r\n { value: 'parallel2', content: `${LANG.BPMN.PARALLEL_FILLED}` }\r\n ],\r\n label: `${LANG.BPMN.SUB_TYPE}`,\r\n group: 'general',\r\n index: 3\r\n },\r\n attrs: {\r\n '.label/text': {\r\n type: 'text',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n '.body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n }\r\n },\r\n 'attrs/text/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'end', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'start', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'middle'\r\n },\r\n 'attrs/text/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'attrs/text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n }\r\n },\r\n\r\n 'bpmn.Annotation': {\r\n content: {\r\n type: 'textarea',\r\n label: `${LANG.BPMN.CONTENT}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n attrs: {\r\n '.body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n },\r\n '.body/fill-opacity': {\r\n type: 'range',\r\n min: 0,\r\n max: 1,\r\n step: 0.1,\r\n label: `${LANG.BPMN.TRANSPARENCY}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 2\r\n }\r\n },\r\n 'attrs/div/style/text-align': {\r\n type: 'select',\r\n options: [\r\n { value: 'left', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'center', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'right', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'middle'\r\n },\r\n 'attrs/div/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'attrs/div/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n }\r\n },\r\n\r\n 'bpmn.Pool': {\r\n lanes: {\r\n type: 'object',\r\n group: 'general',\r\n index: 1,\r\n attrs: {\r\n label: {\r\n style: 'display:none;'\r\n }\r\n },\r\n properties: {\r\n label: {\r\n type: 'text',\r\n label: `${LANG.BPMN.LABEL}`\r\n },\r\n sublanes: {\r\n type: 'list',\r\n label: `${LANG.BPMN.ADD_LANES}`,\r\n item: {\r\n type: 'object',\r\n properties: {\r\n label: {\r\n type: 'text',\r\n label: `${LANG.BPMN.LABEL}`,\r\n attrs: {\r\n label: {\r\n style: 'display:none;'\r\n }\r\n }\r\n },\r\n ratio: {\r\n type: 'number',\r\n label: `${LANG.BPMN.PERCENTAGE}`\r\n },\r\n sublanes: {\r\n type: 'list',\r\n label: `${LANG.BPMN.ADD_SUBLANES}`,\r\n item: {\r\n type: 'object',\r\n properties: {\r\n label: {\r\n type: 'text',\r\n label: `${LANG.BPMN.LABEL}`,\r\n attrs: {\r\n label: {\r\n style: 'display:none;'\r\n }\r\n }\r\n },\r\n ratio: {\r\n type: 'number',\r\n label: `${LANG.BPMN.ADD_SUBLANES}`\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n attrs: {\r\n '.body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n },\r\n '.header/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.HEADER_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 2\r\n },\r\n '.lane-body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LANE_BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 3\r\n },\r\n '.lane-header/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.LANE_HEADER_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 4\r\n },\r\n '.label/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n '.label/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n }\r\n }\r\n },\r\n\r\n 'bpmn.Group': {\r\n attrs: {\r\n '.label/text': {\r\n type: 'text',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n '.label-rect/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n }\r\n },\r\n 'attrs/text/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'end', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'start', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'middle'\r\n },\r\n 'attrs/text/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'attrs/text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n }\r\n },\r\n\r\n 'bpmn.Conversation': {\r\n conversationType: {\r\n type: 'select',\r\n options: [\r\n { value: 'conversation', content: `${LANG.BPMN.CONVERSATION}` },\r\n { value: 'call-conversation', content: `${LANG.BPMN.CALL_CONVERSATION}` }\r\n ],\r\n label: `${LANG.BPMN.TYPE}`,\r\n group: 'general',\r\n index: 2\r\n },\r\n subProcess: {\r\n type: 'toggle',\r\n label: `${LANG.BPMN.SUB_PROCESS}`,\r\n group: 'general',\r\n index: 3\r\n },\r\n attrs: {\r\n '.label/text': {\r\n type: 'text',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n '.body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n }\r\n },\r\n 'attrs/text/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'end', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'start', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'middle'\r\n },\r\n 'attrs/text/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'attrs/text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n }\r\n },\r\n\r\n 'bpmn.Choreography': {\r\n participants: {\r\n type: 'list',\r\n label: `${LANG.BPMN.PARTICPANTS}`,\r\n item: {\r\n type: 'text'\r\n },\r\n group: 'general',\r\n index: 1\r\n },\r\n initiatingParticipant: {\r\n type: 'select',\r\n label: `${LANG.BPMN.INITIATING_PARTICIPANT}`,\r\n options: 'participants',\r\n group: 'general',\r\n index: 2\r\n },\r\n subProcess: {\r\n type: 'toggle',\r\n label: `${LANG.BPMN.SUB_PROCESS}`,\r\n group: 'general',\r\n index: 3\r\n },\r\n content: {\r\n type: 'textarea',\r\n label: `${LANG.BPMN.CONTENT}`,\r\n group: 'general',\r\n index: 4\r\n },\r\n attrs: {\r\n 'text/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_HEADER_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 0\r\n },\r\n '.body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.PRIMARY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 2\r\n },\r\n '.participant-rect/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.SECONDARY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 3\r\n }\r\n },\r\n 'attrs/div/style/text-align': {\r\n type: 'select',\r\n options: [\r\n { value: 'left', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'center', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'right', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'center'\r\n },\r\n 'attrs/div/style/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'attrs/div/style/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n },\r\n 'attrs/div/style/color': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n }\r\n },\r\n\r\n 'bpmn.DataObject': {\r\n attrs: {\r\n '.label/text': {\r\n type: 'text',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n '.body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n }\r\n },\r\n 'attrs/text/text-anchor': {\r\n type: 'select',\r\n options: [\r\n { value: 'end', content: `${LANG.BPMN.LEFT}` },\r\n { value: 'middle', content: `${LANG.BPMN.CENTER}` },\r\n { value: 'start', content: `${LANG.BPMN.RIGHT}` }\r\n ],\r\n label: `${LANG.BPMN.TEXT_ALIGNMENT}`,\r\n group: 'general',\r\n index: 5,\r\n defaultValue: 'middle'\r\n },\r\n 'attrs/text/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'attrs/text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n }\r\n },\r\n\r\n 'bpmn.Message': {\r\n attrs: {\r\n '.label/text': {\r\n type: 'text',\r\n label: `${LANG.BPMN.NAME}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n 'text/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.TEXT_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 0\r\n },\r\n '.body/fill': {\r\n type: 'color',\r\n label: `${LANG.BPMN.BODY_COLOR}`,\r\n group: `${LANG.BPMN.APPEARANCE}`,\r\n index: 1\r\n }\r\n },\r\n 'attrs/text/font-family': {\r\n type: 'select',\r\n options: [\r\n 'Calibri',\r\n 'Cambria',\r\n 'Arial',\r\n 'Helvetica',\r\n 'Times New Roman',\r\n 'Courier New',\r\n 'Georgia',\r\n 'Garamond',\r\n 'Tahoma',\r\n 'Lucida Console',\r\n 'Comic Sans MS'\r\n ],\r\n label: `${LANG.BPMN.FONT_FAMILY}`,\r\n group: 'general',\r\n index: 6\r\n },\r\n 'attrs/text/font-size': {\r\n type: 'range',\r\n min: 7,\r\n max: 80,\r\n unit: 'px',\r\n label: `${LANG.BPMN.FONT_SIZE}`,\r\n group: 'general',\r\n index: 8,\r\n defaultValue: 14\r\n }\r\n },\r\n\r\n 'bpmn.Flow': {\r\n flowType: {\r\n type: 'select',\r\n options: [\r\n { value: 'default', content: `${LANG.BPMN.DEFAULT}` },\r\n { value: 'conditional', content: `${LANG.BPMN.CONDITIONAL}` },\r\n { value: 'normal', content: `${LANG.BPMN.NORMAL}` },\r\n { value: 'message', content: `${LANG.BPMN.MESSAGE}` },\r\n { value: 'association', content: `${LANG.BPMN.ASSOCIATION}` },\r\n { value: 'conversation', content: `${LANG.BPMN.CONVERSATION}` }\r\n ],\r\n label: `${LANG.BPMN.TYPE}`,\r\n group: 'general',\r\n index: 1\r\n },\r\n labels: {\r\n type: 'list',\r\n group: `${LANG.BPMN.LABLES}`,\r\n attrs: {\r\n label: {\r\n type: 'text',\r\n label: `${LANG.BPMN.LABEL}`\r\n }\r\n },\r\n index: 2,\r\n item: {\r\n type: 'object',\r\n properties: {\r\n position: {\r\n type: 'range',\r\n min: 0.1,\r\n max: 0.9,\r\n step: 0.1,\r\n defaultValue: 0.5,\r\n label: `${LANG.BPMN.POSITION}`,\r\n index: 2,\r\n attrs: {\r\n label: {\r\n type: 'text',\r\n label: `${LANG.BPMN.POSITION}`\r\n }\r\n }\r\n },\r\n attrs: {\r\n text: {\r\n text: {\r\n type: 'text',\r\n label: `${LANG.BPMN.TEXT}`,\r\n defaultValue: 'label',\r\n index: 1,\r\n attrs: {\r\n label: {\r\n type: 'text',\r\n label: `${LANG.BPMN.LABEL}`\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\nconst InspectorFunction = {\r\n getInspectorConfiguration\r\n};\r\nexport default InspectorFunction;\r\n","import { TranslateService } from '@ngx-translate/core';\r\n\r\nfunction getToolbarConfiguration(LANG: any) {\r\n return {\r\n tools: [\r\n {\r\n type: 'button',\r\n name: 'print',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.OPEN_A_PRINT_DIALOG}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'button',\r\n name: 'tojson',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.OPEN_AS_JSON}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'zoom-in',\r\n name: 'zoom-in',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.ZOOM_IN}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'zoom-out',\r\n name: 'zoom-out',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.ZOOM_OUT}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'zoom-to-fit',\r\n name: 'zoom-to-fit',\r\n group: 'zoom',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.ZOOM_TO_FIT}`,\r\n 'data-tooltip-position': 'top',\r\n 'data-tooltip-position-selector': '.toolbar-container'\r\n }\r\n }\r\n },\r\n {\r\n type: 'button',\r\n name: 'to-front',\r\n group: 'order',\r\n text: `${LANG.BPMN.SEND_TO_FRONT}`,\r\n attrs: {\r\n button: {\r\n id: 'btn-to-front',\r\n 'data-tooltip': `${LANG.BPMN.BRING_OBJECT_TO_FRONT}`,\r\n 'data-tooltip-position': 'top',\r\n 'data-tooltip-position-selector': '.toolbar-container'\r\n }\r\n }\r\n },\r\n {\r\n type: 'button',\r\n name: 'to-back',\r\n group: 'order',\r\n text: `${LANG.BPMN.SEND_TO_BACK}`,\r\n attrs: {\r\n button: {\r\n id: 'btn-to-back',\r\n 'data-tooltip': `${LANG.BPMN.BRING_OBJECT_TO_BACK}`,\r\n 'data-tooltip-position': 'top',\r\n 'data-tooltip-position-selector': '.toolbar-container'\r\n }\r\n }\r\n },\r\n {\r\n type: 'button',\r\n name: 'clear',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.CLEAR_PAPER}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'undo',\r\n name: 'undo',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.UNDO}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'redo',\r\n name: 'redo',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.UNDO}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'select-box',\r\n name: 'selectTemplate',\r\n width: 190,\r\n options: [\r\n {\r\n index: 0,\r\n content: `${LANG.BPMN.SELECT_TEMPLATE}`,\r\n flowChartId: '',\r\n name: '',\r\n jsonContent: '',\r\n selected: true\r\n }\r\n ]\r\n },\r\n {\r\n type: 'button',\r\n name: 'deleteTemplate',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.DELETE_TEMPLATE}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'button',\r\n name: 'saveAsTemplate',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.SAVE_AS_TEMPLATE}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'button',\r\n name: 'resetToTempTemplate',\r\n attrs: {\r\n button: {\r\n 'data-tooltip': `${LANG.BPMN.RESET_TO_LAST_SAVE}`\r\n }\r\n }\r\n },\r\n {\r\n type: 'label',\r\n name: 'grid-size-label',\r\n group: 'grid',\r\n text: `${LANG.BPMN.GRID_SIZE}`,\r\n attrs: {\r\n label: {\r\n 'data-tooltip': `${LANG.BPMN.CHANGE_GRID_SIZE}`,\r\n 'data-tooltip-position': 'top',\r\n 'data-tooltip-position-selector': '.toolbar-container'\r\n }\r\n }\r\n },\r\n {\r\n type: 'range',\r\n name: 'grid-size',\r\n group: 'grid',\r\n text: `${LANG.BPMN.GRID_SIZE}`,\r\n min: 1,\r\n max: 50,\r\n step: 1,\r\n value: 10\r\n },\r\n {\r\n type: 'separator',\r\n group: 'snapline'\r\n },\r\n {\r\n type: 'checkbox',\r\n name: 'snapline',\r\n group: 'snapline',\r\n label: 'Snaplines', //'BPMN.SNAPLINES',\r\n value: true,\r\n attrs: {\r\n input: {\r\n id: 'snapline-switch'\r\n },\r\n label: {\r\n 'data-tooltip': `${LANG.BPMN.ENABLE_DISABLE_SNAPLINES}`,\r\n 'data-tooltip-position': 'top',\r\n 'data-tooltip-position-selector': '.toolbar-container'\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n}\r\nconst ToolbarFunction = {\r\n getToolbarConfiguration\r\n};\r\nexport default ToolbarFunction;\r\n","export enum FlowchartViewMode {\r\n Edit = 1,\r\n View = 2\r\n}\r\n","/* eslint-disable no-use-before-define */\r\n/* eslint-disable @typescript-eslint/no-use-before-define */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @typescript-eslint/no-shadow */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable no-new */\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as $ from 'jquery';\r\nimport * as _ from 'lodash';\r\nimport InspectorFunction from '../common/bpmn/inspector.function';\r\nimport ToolbarFunction from '../common/bpmn/toolbar.function';\r\nimport { FlowChartConst } from '../common/constants/ckeditorFlowchart.const';\r\nimport { FlowchartViewMode } from '../common/enums/flowchart-view-mode.enum';\r\nimport guidHelper from '../common/helper/guidHelper';\r\n\r\n/* Declare jointjs object */\r\ndeclare var joint: any;\r\nlet graph: any;\r\nlet paper: any;\r\nlet toolbarConfig: any;\r\nconst bpmn2 = joint.shapes.bpmn2;\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BpmnService {\r\n public isSaveAsTemplate = false;\r\n public isDeleteTemplate = false;\r\n public isDisableToolbar = false;\r\n public isTemp = true;\r\n public jsonTempContent = '';\r\n public isReset = false;\r\n public isSelectedTemplate = false;\r\n public jsonOriginalContent = '';\r\n\r\n buildDiagram(\r\n diagramTemplates: any,\r\n diagramTemplate: any,\r\n bpmnTheme: string,\r\n jsonContent: any,\r\n editMode: any,\r\n LANG: any\r\n ) {\r\n window[`IS_NOT_SHOW_AGAIN`] = false;\r\n window[FlowChartConst.EDIT_MODE] = editMode;\r\n joint.setTheme(bpmnTheme);\r\n\r\n if (jsonContent) {\r\n jsonContent = JSON.parse(jsonContent);\r\n } else {\r\n jsonContent = '';\r\n }\r\n\r\n const gdAuth = window[`gdAuth`];\r\n const gdLoad = window[`gdLoad`];\r\n const gdSave = window[`gdSave`];\r\n const inputs = InspectorFunction.getInspectorConfiguration(bpmn2, LANG);\r\n\r\n let freeTransform = null;\r\n\r\n toolbarConfig = ToolbarFunction.getToolbarConfiguration(LANG);\r\n /* QMS-1404: Customization: Add template list */\r\n if (toolbarConfig.tools && diagramTemplates) {\r\n const arrSelect = toolbarConfig.tools.filter((item) => {\r\n return item.type === 'select-box';\r\n });\r\n if (arrSelect) {\r\n diagramTemplates.forEach((item) => {\r\n const option = {\r\n index: item.index,\r\n content: item.templateName,\r\n flowChartId: item.id,\r\n name: item.templateName,\r\n jsonContent: item.jsonContent,\r\n selected: false\r\n };\r\n const index = arrSelect[0].options.findIndex((x) => {\r\n return x.index === option.index;\r\n });\r\n if (index < 0) {\r\n arrSelect[0].options.push(option);\r\n }\r\n });\r\n }\r\n }\r\n\r\n graph = new joint.dia.Graph({ type: 'bpmn' });\r\n const commandManager = new joint.dia.CommandManager({ graph });\r\n const keyboard = new joint.ui.Keyboard();\r\n const clipboard = new joint.ui.Clipboard();\r\n\r\n paper = new joint.dia.Paper({\r\n width: 800,\r\n height: 600,\r\n model: graph,\r\n gridSize: 10,\r\n drawGrid: true,\r\n async: true,\r\n sorting: joint.dia.Paper.sorting.APPROX,\r\n interactive: { linkMove: false },\r\n snapLabels: true,\r\n // Connections\r\n defaultLink(elementView) {\r\n return new bpmn2.Flow({\r\n z: elementView.model.get('z') - 1,\r\n attrs: {\r\n line: {\r\n flowType: 'sequence'\r\n }\r\n }\r\n });\r\n },\r\n validateConnection(cellViewS, magnetS, cellViewT, magnetT, end) {\r\n const source = cellViewS.model;\r\n const target = cellViewT.model;\r\n // don't allow loop links\r\n if (source === target) {\r\n return false;\r\n }\r\n // don't allow link to link connection\r\n if (source.isLink()) {\r\n return false;\r\n }\r\n if (target.isLink()) {\r\n return false;\r\n }\r\n // don't allow group connections\r\n const sourceType = source.get('type');\r\n const targetType = target.get('type');\r\n if (sourceType === 'bpmn2.Group' || targetType === 'bpmn2.Group') {\r\n return false;\r\n }\r\n return true;\r\n },\r\n defaultAnchor: {\r\n name: 'perpendicular'\r\n },\r\n defaultConnectionPoint: {\r\n name: 'boundary',\r\n args: { stroke: true }\r\n },\r\n // Embedding\r\n embeddingMode: true,\r\n frontParentOnly: false,\r\n validateEmbedding(childView, parentView) {\r\n const parentType = parentView.model.get('type');\r\n const childType = childView.model.get('type');\r\n if (parentType === 'bpmn2.HeaderedPool' && childType !== 'bpmn2.HeaderedPool') {\r\n return true;\r\n }\r\n if (parentType === 'bpmn2.Activity' && childType === 'bpmn2.Event') {\r\n return true;\r\n }\r\n return false;\r\n },\r\n // Highlighting\r\n highlighting: {\r\n default: {\r\n name: 'mask',\r\n options: {\r\n attrs: {\r\n stroke: '#3498db',\r\n 'stroke-width': 3,\r\n 'stroke-linejoin': 'round'\r\n }\r\n }\r\n }\r\n }\r\n }).on({\r\n 'blank:pointerdown': (evt, x, y) => {\r\n closeTools();\r\n // selection.startSelecting(evt, x, y);\r\n if (keyboard.isActive('shift', evt)) {\r\n selection.startSelecting(evt, x, y);\r\n } else {\r\n selection.cancelSelection();\r\n paperScroller.startPanning(evt, x, y);\r\n }\r\n },\r\n\r\n 'blank:contextmenu': (evt, x, y) => {\r\n paperScroller.startPanning(evt, x, y);\r\n },\r\n\r\n 'cell:pointerup': (cellView) => {\r\n openTools(cellView);\r\n },\r\n\r\n 'link:mouseenter': (linkView) => {\r\n // Open tool only if there is none yet\r\n if (linkView.hasTools()) {\r\n return;\r\n }\r\n\r\n const ns = joint.linkTools;\r\n const toolsView = new joint.dia.ToolsView({\r\n name: 'link-hover',\r\n tools: [\r\n new ns.Vertices({ vertexAdding: false }),\r\n new ns.SourceArrowhead(),\r\n new ns.TargetArrowhead()\r\n ]\r\n });\r\n\r\n linkView.addTools(toolsView);\r\n },\r\n\r\n 'link:mouseleave': (linkView) => {\r\n // Remove only the hover tool, not the pointerdown tool\r\n if (linkView.hasTools('link-hover')) {\r\n linkView.removeTools();\r\n }\r\n },\r\n\r\n 'link:connect': (linkView) => {\r\n // Change the link type based on the connected elements\r\n const link = linkView.model;\r\n const source = link.getSourceCell();\r\n const target = link.getTargetCell();\r\n if (!source || !target) {\r\n return;\r\n }\r\n link.set('z', -1);\r\n const types = [source.get('type'), target.get('type')];\r\n const linkType = link.get('type');\r\n if (types.indexOf('bpmn2.Annotation') > -1) {\r\n if (linkType === 'bpmn2.AnnotationLink') {\r\n return;\r\n }\r\n replaceLink(graph, link, bpmn2.AnnotationLink);\r\n return;\r\n }\r\n if (types.indexOf('bpmn2.Conversation') > -1) {\r\n if (linkType === 'bpmn2.ConversationLink') {\r\n return;\r\n }\r\n replaceLink(graph, link, bpmn2.ConversationLink);\r\n return;\r\n }\r\n if (types.indexOf('bpmn2.DataObject') > -1) {\r\n if (linkType === 'bpmn2.DataAssociation') {\r\n return;\r\n }\r\n replaceLink(graph, link, bpmn2.DataAssociation);\r\n return;\r\n }\r\n if (types.indexOf('bpmn2.DataStore') > -1) {\r\n if (linkType === 'bpmn2.DataAssociation') {\r\n return;\r\n }\r\n replaceLink(graph, link, bpmn2.DataAssociation);\r\n return;\r\n }\r\n if (linkType !== 'bpmn2.Flow') {\r\n replaceLink(graph, link, bpmn2.Flow);\r\n }\r\n }\r\n });\r\n\r\n const snaplines = new joint.ui.Snaplines({ paper });\r\n\r\n const paperScroller = new joint.ui.PaperScroller({\r\n autoResizePaper: true,\r\n padding: 20,\r\n paper,\r\n scrollWhileDragging: true\r\n });\r\n\r\n paperScroller.$el.appendTo('#paper-container');\r\n paperScroller.setCursor('grab');\r\n paperScroller.render().center();\r\n\r\n paper.on('blank:mousewheel', _.partial(onMousewheel, null), this);\r\n paper.on('cell:mousewheel', onMousewheel, this);\r\n function onMousewheel(cellView, evt, x, y, delta) {\r\n paperScroller.zoom(delta * 0.1, { min: 0.2, max: 5, grid: 0.1, ox: x, oy: y });\r\n }\r\n\r\n /* SELECTION */\r\n const selection = new joint.ui.Selection({\r\n paper,\r\n graph,\r\n useModelGeometry: true,\r\n filter: ['bpmn2.HeaderedPool'] // don't allow to select a pool\r\n });\r\n\r\n /* STENCIL */\r\n\r\n const stencil = new joint.ui.Stencil({\r\n graph,\r\n paper,\r\n width: '100%',\r\n height: '100%',\r\n dragEndClone(cell) {\r\n const clone = cell.clone();\r\n const type = clone.get('type');\r\n\r\n // some types of the elements need resizing after they are dropped\r\n const sizeMultiplier = { 'bpmn2.HeaderedPool': 8, 'bpmn.Choreography': 2 }[type];\r\n if (sizeMultiplier) {\r\n const originalSize = clone.get('size');\r\n clone.set('size', {\r\n width: originalSize.width * sizeMultiplier,\r\n height: originalSize.height * sizeMultiplier\r\n });\r\n if (type === 'bpmn2.HeaderedPool') {\r\n clone.set('padding', { top: 0, left: 30, right: 0, bottom: 0 });\r\n }\r\n }\r\n return clone;\r\n }\r\n });\r\n\r\n stencil.render().$el.appendTo('#stencil-container');\r\n\r\n stencil.load([\r\n new bpmn2.Activity({\r\n attrs: {\r\n label: {\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n }),\r\n new bpmn2.Gateway({\r\n attrs: {\r\n label: {\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n }),\r\n new bpmn2.Event({\r\n attrs: {\r\n label: {\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n }),\r\n new bpmn2.Conversation({\r\n attrs: {\r\n label: {\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n }),\r\n new bpmn2.DataObject({\r\n attrs: {\r\n label: {\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n }),\r\n new bpmn2.DataStore({\r\n attrs: {\r\n label: {\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n }),\r\n new bpmn2.Annotation({\r\n attrs: {\r\n body: {\r\n fill: '#ffffff'\r\n },\r\n label: {\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n }),\r\n new bpmn2.Group({\r\n size: {\r\n width: 80,\r\n height: 80\r\n },\r\n attrs: {\r\n label: {\r\n text: 'Group',\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n }),\r\n // Legacy BPMN Shapes\r\n new bpmn2.HeaderedPool({\r\n padding: { top: 0, left: 15, right: 0, bottom: 0 },\r\n size: { width: 80, height: 50 },\r\n lanes: [{ label: 'Lane 1' }, { label: 'Lane 2' }],\r\n attrs: {\r\n body: { fill: '#FFFFFF' },\r\n headerLabel: { text: 'Header' }\r\n }\r\n }),\r\n new joint.shapes.bpmn.Choreography({\r\n participants: ['Participant 1', 'Participant 2'],\r\n attrs: {\r\n label: {\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n }),\r\n new joint.shapes.bpmn.Message({\r\n attrs: {\r\n text: {\r\n stroke: 'white',\r\n strokeWidth: 2,\r\n paintOrder: 'stroke'\r\n }\r\n }\r\n })\r\n ]);\r\n\r\n joint.layout.GridLayout.layout(stencil.getGraph(), {\r\n columns: 100,\r\n columnWidth: 'compact',\r\n marginX: 20,\r\n marginY: 20,\r\n columnGap: 40,\r\n verticalGap: 20,\r\n resizeToFit: false\r\n });\r\n\r\n // Create tooltips for all the shapes in stencil.\r\n stencil.on('element:drop', (elementView) => {\r\n // open inspector after a new element dropped from stencil\r\n openTools(elementView);\r\n });\r\n\r\n /* KEYBOARD */\r\n if (editMode === FlowchartViewMode.Edit) {\r\n initializeKeyboardShortcuts();\r\n }\r\n\r\n function initializeKeyboardShortcuts() {\r\n keyboard.on(\r\n {\r\n 'ctrl+c': () => {\r\n // Copy all selected elements and their associated links.\r\n clipboard.copyElements(selection.collection, graph);\r\n },\r\n\r\n 'ctrl+v': () => {\r\n const pastedCells = clipboard.pasteCells(graph, {\r\n translate: { dx: 20, dy: 20 },\r\n useLocalStorage: true\r\n });\r\n\r\n const elements = _.filter(pastedCells, (cell) => {\r\n return cell.isElement();\r\n });\r\n\r\n // Make sure pasted elements get selected immediately. This makes the UX better as\r\n // the user can immediately manipulate the pasted elements.\r\n selection.collection.reset(elements);\r\n },\r\n\r\n 'ctrl+x shift+delete': () => {\r\n clipboard.cutElements(selection.collection, graph);\r\n },\r\n\r\n 'delete backspace': (evt) => {\r\n evt.preventDefault();\r\n graph.removeCells(selection.collection.toArray());\r\n },\r\n\r\n 'ctrl+z': () => {\r\n commandManager.undo();\r\n selection.cancelSelection();\r\n },\r\n\r\n 'ctrl+y': () => {\r\n commandManager.redo();\r\n selection.cancelSelection();\r\n },\r\n\r\n 'ctrl+a': () => {\r\n selection.collection.reset(graph.getElements());\r\n },\r\n\r\n 'ctrl+plus': (evt) => {\r\n evt.preventDefault();\r\n paperScroller.zoom(0.2, { max: 5, grid: 0.2 });\r\n },\r\n\r\n 'ctrl+minus': (evt) => {\r\n evt.preventDefault();\r\n paperScroller.zoom(-0.2, { min: 0.2, grid: 0.2 });\r\n },\r\n\r\n 'keydown:shift': (evt) => {\r\n paperScroller.setCursor('crosshair');\r\n },\r\n\r\n 'keyup:shift': () => {\r\n paperScroller.setCursor('grab');\r\n }\r\n },\r\n this\r\n );\r\n }\r\n\r\n function openTools(cellView) {\r\n if (!cellView) {\r\n return;\r\n }\r\n closeTools();\r\n window[`my_cellView`] = cellView;\r\n const cell = cellView.model;\r\n const type = cell.get('type');\r\n // const tablName = window[FlowChartConst.TAB_NAME];\r\n // if (tablName === FlowChartConst.TAB_BPMN_CHOREOGRAPHY) {\r\n // const inspector = joint.ui.Inspector.create('#inspector-container', {\r\n // cell,\r\n // inputs: inputs[type],\r\n // groups: {\r\n // general: { label: type, index: 1 },\r\n // defaults: { index: 2 },\r\n // fontsize: { index: 3 },\r\n // appearance: { index: 4 }\r\n // }\r\n // });\r\n // }\r\n\r\n const inspector = joint.ui.Inspector.create('#inspector-container', {\r\n cell,\r\n inputs: inputs[type],\r\n groups: {\r\n general: { label: type, index: 1 },\r\n defaults: { index: 2 },\r\n fontsize: { index: 3 },\r\n appearance: { index: 4 }\r\n }\r\n });\r\n\r\n selection.collection.reset([]);\r\n // Add the cell into the selection collection silently\r\n // so no selection box is rendered above the cellView.\r\n selection.collection.add(cell, { silent: true });\r\n\r\n if (cell.isElement()) {\r\n let minSize;\r\n\r\n if (cell instanceof bpmn2.HeaderedPool) {\r\n minSize = cell.getMinimalSize();\r\n } else {\r\n minSize = { width: 30, height: 30 };\r\n }\r\n\r\n freeTransform = new joint.ui.FreeTransform({\r\n cellView,\r\n allowOrthogonalResize: false,\r\n allowRotation: false,\r\n minWidth: minSize.width,\r\n minHeight: minSize.height\r\n }).render();\r\n\r\n const halo = new joint.ui.Halo({\r\n cellView,\r\n theme: 'default',\r\n type: 'toolbar',\r\n useModelGeometry: true,\r\n boxContent: (cellView) => {\r\n return cellView.model.get('type');\r\n }\r\n });\r\n\r\n if (type === 'bpmn2.HeaderedPool') {\r\n halo.removeHandle('link');\r\n halo.removeHandle('fork');\r\n halo.removeHandle('unlink');\r\n }\r\n halo.render();\r\n }\r\n\r\n if (cell.isLink()) {\r\n const ns = joint.linkTools;\r\n const toolsView = new joint.dia.ToolsView({\r\n name: 'link-pointerdown',\r\n tools: [\r\n new ns.Vertices(),\r\n new ns.SourceAnchor(),\r\n new ns.TargetAnchor(),\r\n new ns.SourceArrowhead(),\r\n new ns.TargetArrowhead(),\r\n new ns.Segments(),\r\n new ns.Boundary({ padding: 15 }),\r\n new ns.Remove({ offset: -20, distance: 40 })\r\n ]\r\n });\r\n\r\n cellView.addTools(toolsView);\r\n }\r\n\r\n /* QMS-2364: show link and poiter change to hand */\r\n // if (window[`event`][`type`] === 'mouseover' && editMode === FlowchartViewMode.View) {\r\n // const list = document.getElementsByClassName(`joint-element`);\r\n // if (list && list.length > 0) {\r\n // const shapeId = cellView.model.attributes.id;\r\n // // tslint:disable-next-line:prefer-for-of\r\n // for (let i = 0; i < list.length; i++) {\r\n // if (list[i].attributes[0].nodeValue !== shapeId) {\r\n // list[i][`style`].cursor = 'move';\r\n // continue;\r\n // }\r\n // const shapeDetailModel = window[`SHAPE_DETAIL_MODEL`];\r\n // if (!shapeDetailModel) {\r\n // list[i][`style`].cursor = 'move';\r\n // continue;\r\n // }\r\n // const index = shapeDetailModel.findIndex((x) => {\r\n // return x.shapeId === shapeId;\r\n // });\r\n // if (index < 0) {\r\n // list[i][`style`].cursor = 'move';\r\n // continue;\r\n // }\r\n // const shapeDetail = shapeDetailModel[index];\r\n // let connectionName = '';\r\n // if (shapeDetail.connectionTypeId === ShapeFlowChartConnectionType.Activity) {\r\n // list[i][`style`].cursor = 'move';\r\n // connectionName = translate.instant('PROCESS.LINK_TO_ACTIVITY');\r\n // } else if (shapeDetail.connectionTypeId === ShapeFlowChartConnectionType.Link) {\r\n // connectionName = translate.instant('PROCESS.LINK');\r\n // } else if (shapeDetail.connectionTypeId === ShapeFlowChartConnectionType.DocumentOrProcess) {\r\n // // eslint-disable-next-line default-case\r\n // switch (shapeDetail.documentModel.relatedItems[0].itemType) {\r\n // case RelatedItemType.document:\r\n // connectionName = translate.instant('PROCESS.LINK_TO_DOCUMENT');\r\n // break;\r\n // case RelatedItemType.process:\r\n // connectionName = translate.instant('PROCESS.LINK_TO_PROCESS');\r\n // break;\r\n // case RelatedItemType.area:\r\n // connectionName = translate.instant('PROCESS.LINK_TO_AREA');\r\n // break;\r\n // case RelatedItemType.handbook:\r\n // connectionName = translate.instant('PROCESS.LINK_TO_FOLDER');\r\n // break;\r\n // }\r\n // }\r\n // if (shapeDetail.connectionTypeId !== ShapeFlowChartConnectionType.Activity) {\r\n // list[i][`style`].cursor = 'pointer';\r\n // }\r\n // const halo = new joint.ui.Halo({\r\n // cellView,\r\n // theme: 'default',\r\n // boxContent: connectionName\r\n // });\r\n // halo.render();\r\n // halo.removeHandle('remove');\r\n // halo.removeHandle('resize');\r\n // halo.removeHandle('clone');\r\n // halo.removeHandle('link');\r\n // halo.removeHandle('fork');\r\n // halo.removeHandle('unlink');\r\n // halo.removeHandle('rotate');\r\n // }\r\n // }\r\n\r\n // const shapeElement = document.getElementsByClassName('no-rotation');\r\n // if (shapeElement && shapeElement.length > 0) {\r\n // for (let i = 0; i < shapeElement.length; i++) {\r\n // if (!shapeElement[i].classList.contains('joint-free-transform')) {\r\n // shapeElement[i].classList.add('joint-free-transform');\r\n // }\r\n // }\r\n // }\r\n // } else if (window[`event`][`type`] === 'mouseout' && editMode === FlowchartViewMode.View) {\r\n // const halo = new joint.ui.Halo({\r\n // cellView,\r\n // theme: 'default',\r\n // boxContent: ''\r\n // });\r\n // halo.render();\r\n // halo.removeHandle('remove');\r\n // halo.removeHandle('resize');\r\n // halo.removeHandle('clone');\r\n // halo.removeHandle('link');\r\n // halo.removeHandle('fork');\r\n // halo.removeHandle('unlink');\r\n // halo.removeHandle('rotate');\r\n // const shapeElement = document.getElementsByClassName('no-rotation');\r\n // if (shapeElement && shapeElement.length > 0) {\r\n // for (let i = 0; i < shapeElement.length; i++) {\r\n // shapeElement[i].classList.remove('joint-free-transform');\r\n // }\r\n // }\r\n // } else {\r\n // /* QMS-2125: Show process connect type */\r\n // window[FlowChartConst.IS_SHOW_CONNECTYPE] = true;\r\n // window[FlowChartConst.SELECTED_SHAPE_ID] = cellView.model.attributes.id;\r\n // window[FlowChartConst.SHAPE_TYPE] = cellView.model.attributes.type;\r\n // window[FlowChartConst.SHAPE_FLOWCHART_LOADING] = true;\r\n // }\r\n /* QMS-2125: Show process connect type */\r\n window[FlowChartConst.IS_SHOW_CONNECTYPE] = true;\r\n window[FlowChartConst.SELECTED_SHAPE_ID] = cellView.model.attributes.id;\r\n window[FlowChartConst.SHAPE_TYPE] = cellView.model.attributes.type;\r\n window[FlowChartConst.SHAPE_FLOWCHART_LOADING] = true;\r\n /* QMS-1404: Customization */\r\n window[FlowChartConst.PAPER] = paper;\r\n }\r\n\r\n function closeTools() {\r\n paper.removeTools();\r\n joint.ui.Inspector.close();\r\n joint.ui.FreeTransform.clear(paper);\r\n freeTransform = null;\r\n joint.ui.Halo.clear(paper);\r\n }\r\n\r\n function showStatus(message, type) {\r\n $('.status').removeClass('info error success').addClass(type).html(message);\r\n $('#statusbar-container')\r\n .dequeue()\r\n .addClass('active')\r\n .delay(3000)\r\n .queue(() => {\r\n $(this).removeClass('active');\r\n });\r\n }\r\n\r\n function replaceLink(graph, link, linkConstructor) {\r\n // eslint-disable-next-line new-cap\r\n const link2 = new linkConstructor({\r\n source: link.source(),\r\n target: link.target(),\r\n vertices: link.vertices()\r\n });\r\n link.remove();\r\n link2.set('z', -1);\r\n link2.addTo(graph);\r\n }\r\n\r\n graph.on('change', (cell, opt) => {\r\n this.onChangeTextInside(cell);\r\n this.onChangeLinkLabel(cell, 12);\r\n this.onChangeAlligment(cell, opt);\r\n if (!opt.inspector || !freeTransform || cell.get('type') !== 'bpmn2.HeaderedPool') {\r\n return;\r\n }\r\n const minSize = cell.getMinimalSize();\r\n freeTransform.options.minWidth = minSize.width;\r\n freeTransform.options.minHeight = minSize.height;\r\n });\r\n\r\n /* TOOLBAR */\r\n const toolbar = new joint.ui.Toolbar({\r\n tools: toolbarConfig.tools,\r\n references: {\r\n paperScroller,\r\n commandManager\r\n }\r\n });\r\n\r\n const toolbarCommands = {\r\n toJSON: () => {\r\n const windowFeatures = 'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no';\r\n const windowName = _.uniqueId('json_output');\r\n const jsonWindow = window.open('', windowName, windowFeatures);\r\n\r\n jsonWindow.document.write(JSON.stringify(graph.toJSON()));\r\n },\r\n loadGraph: () => {\r\n gdAuth(() => {\r\n showStatus('loading..', 'info');\r\n gdLoad((name, content) => {\r\n try {\r\n const json = JSON.parse(content);\r\n graph.fromJSON(json);\r\n const elFileName = <HTMLButtonElement>document.getElementById('fileName');\r\n elFileName.value = name.replace(/.json$/, '');\r\n showStatus('loaded.', 'success');\r\n } catch (e) {\r\n showStatus('failed.', 'error');\r\n }\r\n });\r\n }, true);\r\n },\r\n\r\n saveGraph: () => {\r\n gdAuth(() => {\r\n showStatus('saving..', 'info');\r\n // let name = document.getElementById('fileName').value;\r\n const name = <HTMLButtonElement>document.getElementById('fileName');\r\n gdSave(name.value, JSON.stringify(graph.toJSON()), (file) => {\r\n if (file) {\r\n showStatus('saved.', 'success');\r\n } else {\r\n showStatus('failed.', 'error');\r\n }\r\n });\r\n }, true);\r\n },\r\n onSelected: (event) => {\r\n if (event.jsonContent) {\r\n window[FlowChartConst.SELECTED_FLOWCHART_ID] = event.flowChartId;\r\n window[FlowChartConst.SELECTED_JSON_CONTENT] = event.jsonContent;\r\n window[FlowChartConst.IS_SELECTED_TEMPLATE] = true;\r\n this.jsonOriginalContent = JSON.stringify(graph.toJSON());\r\n window[FlowChartConst.ORG_JSONCONTENT] = this.jsonOriginalContent;\r\n window.postMessage(FlowChartConst.CHANGING_TEMPLATE, this.getOriginForSelf());\r\n }\r\n },\r\n\r\n onDeleteTemplate: () => {\r\n this.isSelectedTemplate = window[FlowChartConst.IS_SELECTED_TEMPLATE];\r\n if (this.isSelectedTemplate) {\r\n window.postMessage(FlowChartConst.DELETE_TEMPLATE, this.getOriginForSelf());\r\n } else {\r\n window.postMessage(FlowChartConst.MUST_SELECT_TEMPLATE, this.getOriginForSelf());\r\n }\r\n },\r\n\r\n onSaveAsTemplate: () => {\r\n window.postMessage(FlowChartConst.SAVE_AS_TEMPLATE, this.getOriginForSelf());\r\n },\r\n\r\n onResetToTempTemplate: () => {\r\n this.isSelectedTemplate = window[FlowChartConst.IS_SELECTED_TEMPLATE];\r\n if (this.isSelectedTemplate) {\r\n window.postMessage(FlowChartConst.RESET_TEMPLATE, this.getOriginForSelf());\r\n }\r\n },\r\n\r\n changeSnapLines(checked) {\r\n if (checked) {\r\n snaplines.startListening();\r\n stencil.options.snaplines = this.snaplines;\r\n } else {\r\n snaplines.stopListening();\r\n stencil.options.snaplines = null;\r\n }\r\n },\r\n\r\n applyOnSelection(method) {\r\n graph.startBatch('selection');\r\n selection.collection.models.forEach((model) => {\r\n model[method]();\r\n });\r\n graph.stopBatch('selection');\r\n }\r\n };\r\n toolbar.on({\r\n 'tojson:pointerclick': toolbarCommands.toJSON,\r\n 'load:pointerclick': toolbarCommands.loadGraph,\r\n 'save:pointerclick': toolbarCommands.saveGraph,\r\n 'clear:pointerclick': _.bind(graph.clear, graph),\r\n 'print:pointerclick': _.bind(paper.print, paper),\r\n 'saveAsTemplate:pointerclick': toolbarCommands.onSaveAsTemplate,\r\n 'selectTemplate:option:select': toolbarCommands.onSelected,\r\n 'deleteTemplate:pointerclick': toolbarCommands.onDeleteTemplate,\r\n 'resetToTempTemplate:pointerclick': toolbarCommands.onResetToTempTemplate,\r\n 'to-front:pointerclick': toolbarCommands.applyOnSelection.bind(this, 'toFront'),\r\n 'to-back:pointerclick': toolbarCommands.applyOnSelection.bind(this, 'toBack'),\r\n 'snapline:change': toolbarCommands.changeSnapLines.bind(this),\r\n 'grid-size:change': paper.setGridSize.bind(paper)\r\n });\r\n\r\n toolbar.render().$el.appendTo('#toolbar-container');\r\n\r\n // const zoomTool = new joint.ui.Toolbar({\r\n // // initi alize tools with default settings\r\n // tools: ['zoomToFit', 'zoomIn', 'zoomOut'],\r\n // references: {\r\n // paperScroller,\r\n // commandManager\r\n // }\r\n // });\r\n\r\n // zoomTool.render().$el.appendTo('#zoomToolbar');\r\n\r\n new joint.ui.Tooltip({\r\n target: '[data-tooltip]',\r\n content(el) {\r\n return el.dataset.tooltip;\r\n },\r\n top: '.joint-toolbar',\r\n padding: 10,\r\n direction: 'top'\r\n });\r\n\r\n // Create tooltips for all the shapes in stencil.\r\n stencil\r\n .getGraph()\r\n .get('cells')\r\n .each((cell) => {\r\n new joint.ui.Tooltip({\r\n target: `.joint-stencil [model-id=\"${cell.id}\"]`,\r\n content: cell.get('type').split('.')[1],\r\n bottom: '.joint-stencil',\r\n direction: 'bottom',\r\n padding: 0\r\n });\r\n });\r\n\r\n Object.assign(joint.shapes.bpmn.icons, this.buildNewIcons());\r\n /* Load process digram */\r\n this.loadProcessDiagram(jsonContent);\r\n this.jsonOriginalContent = JSON.stringify(graph.toJSON());\r\n paperScroller.positionContent('top-left', { padding: 50, useModelGeometry: true });\r\n\r\n /* Set g raph object */\r\n window[FlowChartConst.GRAPH] = graph;\r\n window[FlowChartConst.PAPER] = paper;\r\n window[FlowChartConst.PAPER_SCROLLER] = paperScroller;\r\n window[FlowChartConst.ORG_JSONCONTENT] = this.jsonOriginalContent;\r\n window.postMessage(FlowChartConst.DIAGRAM_LOADED, this.getOriginForSelf());\r\n }\r\n\r\n buildNewIcons({ color = '#000' } = {}) {\r\n const svgIcons = {\r\n message1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"12 12 16 16\"><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.2\" d=\"M12.5 15.313v9.374h15v-9.375zm0 0l7.5 5.624 7.5-5.625\"/></svg>`,\r\n message2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"12 12 16 16\"><path fill=\"${color}\" d=\"M12.5 14.344l7.5 5.625 7.5-5.625zm0 .937v9.375h15v-9.375L20 20.906z\"/></svg>`,\r\n timer1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><g fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><circle cx=\"20\" cy=\"20\" r=\"10\"/><path d=\"M20 10v3m5-2l-1.5 3m5.5 1l-3 1.5m4 3.5h-3m2 5l-3-1.5M25 29l-1.5-3M20 30v-3m-5 2l1.5-3M11 25l3-1.5M10 20h3m-2-5l3 1.5m1-5.5l1.5 3m5.5-1l-2 7h4\"/></g></svg>`,\r\n conditional1: `<svg xmlns=\"http://www.w3.org/2000/svg\" ><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M11.563 11.563h16.874v16.874H11.563V11.563m2.813 2.813h11.25m-11.25 3.75h11.25m-11.25 3.75h11.25m-11.25 3.75h11.25z\"/></svg>`,\r\n link1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M14.406 18.125h8.438v-2.813L27.53 20l-4.687 4.688v-2.813h-9.375v-3.75\"/></svg>`,\r\n link2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"${color}\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M14.406 18.125h8.438v-2.813L27.53 20l-4.687 4.688v-2.813h-9.375v-3.75\"/></svg>`,\r\n signal1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M13.17 24.851h13.706l-6.853-11.879-6.854 11.88z\"/></svg>`,\r\n signal2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"${color}\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M13.17 24.851h13.706l-6.853-11.879-6.854 11.88z\"/></svg>`,\r\n error1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M26.4 15.455l-3.238 12.58L17.7 18.37 13.76 23.8l3.478-12.412 5.576 8.72 3.586-4.652z\"/></svg>`,\r\n error2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"${color}\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M26.4 15.455l-3.238 12.58L17.7 18.37 13.76 23.8l3.478-12.412 5.576 8.72 3.586-4.652z\"/></svg>`,\r\n escalation1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M20 13.219l5.625 14.062L20 20.953l-5.625 6.328z\"/></svg>`,\r\n escalation2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"${color}\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M20 13.219l5.625 14.062L20 20.953l-5.625 6.328z\"/></svg>`,\r\n termination1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><circle cx=\"20\" cy=\"20\" r=\"10.5\" fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/></svg>`,\r\n termination2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><circle cx=\"20\" cy=\"20\" r=\"10.5\" fill=\"${color}\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/></svg>`,\r\n compensation1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M19 13.438v13.124L12.437 20 19 13.437m6.563 0v13.126L19 20l6.563-6.563z\"/></svg>`,\r\n compensation2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"${color}\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M19 13.438v13.124L12.437 20 19 13.437m6.563 0v13.126L19 20l6.563-6.563z\"/></svg>`,\r\n cancel1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M11.284 14.274l2.867-2.868 5.735 5.735 5.735-5.735 2.868 2.868-5.735 5.735 5.735 5.735-2.868 2.867-5.735-5.735-5.735 5.735-2.867-2.867 5.735-5.735-5.735-5.735z\"/></svg>`,\r\n cancel2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"${color}\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M11.284 14.274l2.867-2.868 5.735 5.735 5.735-5.735 2.868 2.868-5.735 5.735 5.735 5.735-2.868 2.867-5.735-5.735-5.735 5.735-2.867-2.867 5.735-5.735-5.735-5.735z\"/></svg>`,\r\n multiple1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M24.52 26.39h-9.443l-2.918-8.982 7.64-5.55 7.64 5.551-2.919 8.98z\"/></svg>`,\r\n multiple2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"${color}\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M24.52 26.39h-9.443l-2.918-8.982 7.64-5.55 7.64 5.551-2.919 8.98z\"/></svg>`,\r\n parallel1: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"none\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M11.344 17.203v5.625h5.86v6.328h5.624v-6.328h6.328v-5.625h-6.328v-5.86h-5.625v5.86z\"/></svg>`,\r\n parallel2: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"8 8 24 24\"><path fill=\"${color}\" stroke=\"${color}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M11.344 17.203v5.625h5.86v6.328h5.624v-6.328h6.328v-5.625h-6.328v-5.86h-5.625v5.86z\"/></svg>`\r\n };\r\n\r\n const icons = {};\r\n\r\n Object.keys(svgIcons).forEach((iconName) => {\r\n icons[iconName] = `data:image/svg+xml,${encodeURIComponent(svgIcons[iconName])}`;\r\n });\r\n return icons;\r\n }\r\n\r\n loadProcessDiagram(jsonContent?: string) {\r\n if (!jsonContent) {\r\n return;\r\n }\r\n graph.fromJSON(jsonContent);\r\n }\r\n\r\n addItemTemplate(flowChartId?: string, diagramTemplate?: any) {\r\n if (toolbarConfig.tools) {\r\n const arrSelect = toolbarConfig.tools.filter((item) => {\r\n return item.type === 'select-box';\r\n });\r\n if (arrSelect) {\r\n const option = {\r\n index: 1,\r\n content: diagramTemplate.templateName,\r\n flowChartId,\r\n name: diagramTemplate.name,\r\n jsonContent: diagramTemplate.jsonContent,\r\n selected: false\r\n };\r\n arrSelect[0].options.push(option);\r\n }\r\n }\r\n }\r\n\r\n removeSelectItem(flowChartId?: string) {\r\n if (toolbarConfig.tools) {\r\n const arrSelect = toolbarConfig.tools.filter((item) => {\r\n return item.type === 'select-box';\r\n });\r\n if (arrSelect) {\r\n arrSelect[0].options.splice(\r\n arrSelect[0].options.findIndex((i) => {\r\n return i.flowChartId === flowChartId;\r\n }),\r\n 1\r\n );\r\n }\r\n }\r\n }\r\n\r\n getTempGraph() {\r\n if (this.jsonTempContent) {\r\n this.loadProcessDiagram(JSON.parse(this.jsonTempContent));\r\n }\r\n this.isTemp = true;\r\n this.isReset = false;\r\n this.isDisableToolbar = false;\r\n }\r\n\r\n getOriginForSelf() {\r\n return '*';\r\n }\r\n\r\n setDefaultSelectedValue() {\r\n if (toolbarConfig.tools) {\r\n const arrSelect = toolbarConfig.tools.filter((item) => {\r\n return item.type === 'select-box';\r\n });\r\n if (arrSelect) {\r\n arrSelect[0].options[0].selected = true;\r\n const list = document.getElementsByClassName(`select-box-selection`)[0];\r\n list.getElementsByClassName(`select-box-option-content`)[0].innerHTML = FlowChartConst.SELECT_TEMPLATE;\r\n }\r\n }\r\n }\r\n\r\n\r\n isShowConfirmMessage() {\r\n const myGraph = window[FlowChartConst.GRAPH];\r\n const json = myGraph.toJSON();\r\n if (json.cells.length === 0) {\r\n window[FlowChartConst.IS_NOT_SHOW_AGAIN] = true;\r\n return false;\r\n }\r\n if (!window[FlowChartConst.IS_NOT_SHOW_AGAIN]) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n setTransitionPoint(jsonContent: object, paperScroller: any) {\r\n if (jsonContent) {\r\n const cells = jsonContent[`cells`];\r\n if (cells) {\r\n let x = 0;\r\n let y = 0;\r\n cells.forEach((e) => {\r\n if (e.position && e.position) {\r\n if (x === 0 && y === 0) {\r\n x = e.position.x;\r\n y = e.position.y;\r\n }\r\n if (e.position.x < x) {\r\n x = e.position.x;\r\n }\r\n if (e.position.y < y) {\r\n y = e.position.y;\r\n }\r\n }\r\n });\r\n\r\n if (x !== 0 && y !== 0) {\r\n x = x > 20 ? x - 20 : x;\r\n y = y > 20 ? y - 20 : y;\r\n paperScroller.transitionToPoint(x, y);\r\n }\r\n }\r\n }\r\n }\r\n\r\n openShapeFunctionality(LANG: any) {\r\n const myCellView = window[`my_cellView`];\r\n const inputs = InspectorFunction.getInspectorConfiguration(bpmn2, LANG);\r\n const cell = myCellView.model;\r\n const type = cell.get('type');\r\n const inspector = joint.ui.Inspector.create('#inspector-container', {\r\n cell,\r\n inputs: inputs[type],\r\n groups: {\r\n general: { label: type, index: 1 },\r\n defaults: { index: 2 },\r\n fontsize: { index: 3 },\r\n appearance: { index: 4 }\r\n }\r\n });\r\n }\r\n\r\n setZoomToFit(editMode: number) {\r\n if (editMode === FlowchartViewMode.View) {\r\n const paperScroller = window[FlowChartConst.PAPER_SCROLLER];\r\n paperScroller.zoomToFit({ padding: 20, scaleGrid: 0.2, minScale: 0.2, maxScale: 5 });\r\n }\r\n }\r\n\r\n setPaperCenter(editMode: number) {\r\n if (editMode === FlowchartViewMode.View) {\r\n const paperScroller = window[FlowChartConst.PAPER_SCROLLER];\r\n paperScroller.contentToCenter({ padding: 20, scaleGrid: 0.2, minScale: 0.2, maxScale: 5 });\r\n }\r\n }\r\n\r\n setPaperTopLeft(editMode: number) {\r\n if (editMode === FlowchartViewMode.View) {\r\n const paperScroller = window[FlowChartConst.PAPER_SCROLLER];\r\n paperScroller.contentToTopLeft({ padding: 50, scaleGrid: 0.2, minScale: 0.2, maxScale: 5 });\r\n }\r\n }\r\n\r\n setScrollToContent() {\r\n const graph = window[`graph`];\r\n const paperScroller = window[FlowChartConst.PAPER_SCROLLER];\r\n if (graph && paperScroller) {\r\n const jsonContentObj = graph.toJSON();\r\n if (jsonContentObj && jsonContentObj.cells.length > 0) {\r\n paperScroller.scrollToContent();\r\n } else {\r\n paperScroller.center();\r\n }\r\n }\r\n }\r\n\r\n onChangeTextInside(cell: any) {\r\n if (cell.get('type') === 'bpmn2.Event') {\r\n if (cell.attributes.attrs.text.style['text-inside']) {\r\n cell.attributes.attrs.label.textVerticalAnchor = 'middle';\r\n cell.attributes.attrs.icon.refWidth = '20%';\r\n cell.attributes.attrs.icon.refHeight = '20%';\r\n } else {\r\n cell.attributes.attrs.label.textVerticalAnchor = 'top';\r\n cell.attributes.attrs.icon.refWidth = '70%';\r\n cell.attributes.attrs.icon.refHeight = '70%';\r\n }\r\n } else if (\r\n cell.get('type') === 'bpmn2.Gateway' ||\r\n cell.get('type') === 'bpmn2.Conversation' ||\r\n cell.get('type') === 'bpmn2.DataObject' ||\r\n cell.get('type') === 'bpmn2.DataStore'\r\n ) {\r\n if (cell.attributes.attrs.text.style['text-inside']) {\r\n cell.attributes.attrs.label.textVerticalAnchor = 'middle';\r\n } else {\r\n cell.attributes.attrs.label.textVerticalAnchor = 'top';\r\n }\r\n }\r\n }\r\n\r\n onChangeLinkLabel(cell: any, defSize: number) {\r\n if (cell.isLink()) {\r\n let size = defSize;\r\n let refPos = 0;\r\n const linkId = cell.id;\r\n // eslint-disable-next-line func-names\r\n graph.getLinks().every(function (e) {\r\n if (linkId === e.id) {\r\n return false;\r\n }\r\n refPos += 1;\r\n return true;\r\n });\r\n if (\r\n graph.getLinks()[refPos].attributes.attrs.text &&\r\n graph.getLinks()[refPos].attributes.attrs.text['font-size']\r\n ) {\r\n size = graph.getLinks()[refPos].attributes.attrs.text['font-size'];\r\n }\r\n graph.getLinks()[refPos].prop('labels/0/attrs/label/fontSize', size);\r\n }\r\n }\r\n\r\n onChangeAlligment(cell: any, opt: any) {\r\n if (cell.get('type') !== 'bpmn2.HeaderedPool') {\r\n return;\r\n }\r\n\r\n if (\r\n opt.direction &&\r\n (opt.direction === 'top-right' ||\r\n opt.direction === 'top-right' ||\r\n opt.direction === 'bottom-right' ||\r\n opt.direction === 'bottom-left')\r\n ) {\r\n const height = cell.attributes.size.height;\r\n const headerLabelAnchor = cell.attributes.attrs.headerLabel['text-anchor'];\r\n this.setHeaderAttribute(cell, headerLabelAnchor, height);\r\n\r\n // update last lane value\r\n if (!this.isUndefinedSize(cell.attributes)) {\r\n const h = cell.attributes.size.height;\r\n const t = this.getTotalLaneHeight(cell.attributes);\r\n const b = h - t;\r\n if (b > 0) {\r\n const s = cell.attributes.lanes.slice(-1)[0].size + b;\r\n const index = cell.attributes.lanes.length - 1;\r\n cell.attributes.lanes[index].size = s;\r\n\r\n const lane = `lanes_${index}`;\r\n cell.metrics.lanes[lane].size = s;\r\n cell.metrics.lanes[lane].takenUpSpaceByLaneAndSublanes = s;\r\n } else {\r\n const s = cell.attributes.lanes.slice(-1)[0].size + b;\r\n const index = cell.attributes.lanes.length - 1;\r\n cell.attributes.lanes[index].size = s;\r\n\r\n const lane = `lanes_${index}`;\r\n cell.metrics.lanes[lane].size = s;\r\n cell.metrics.lanes[lane].takenUpSpaceByLaneAndSublanes = s;\r\n }\r\n }\r\n } else if (opt.propertyPath && opt.propertyPath === 'attrs/headerLabel/text-anchor') {\r\n const height = cell.attributes.size.height;\r\n const textAnchor = opt.propertyValue;\r\n this.setHeaderAttribute(cell, textAnchor, height);\r\n }\r\n }\r\n\r\n setHeaderAttribute(cell: any, textAnchor: string, height: number) {\r\n switch (textAnchor) {\r\n case 'end':\r\n cell.attributes.attrs.headerLabel.refY = 8;\r\n break;\r\n case 'middle':\r\n cell.attributes.attrs.headerLabel.refY = height / 2;\r\n break;\r\n case 'start':\r\n cell.attributes.attrs.headerLabel.refY = height - 8;\r\n break;\r\n default:\r\n cell.attributes.attrs.headerLabel.refY = height / 2;\r\n break;\r\n }\r\n }\r\n\r\n isUndefinedSize(attributes) {\r\n let bResult = false;\r\n if (attributes && attributes.lanes.length > 0) {\r\n attributes.lanes.every((e) => {\r\n if (!e.size) {\r\n bResult = true;\r\n return false;\r\n }\r\n return true;\r\n });\r\n }\r\n return bResult;\r\n }\r\n\r\n getTotalLaneHeight(attributes) {\r\n let total = 0;\r\n if (attributes && attributes.lanes.length > 0) {\r\n attributes.lanes.forEach((e) => {\r\n if (e.size) {\r\n total += e.size;\r\n }\r\n });\r\n }\r\n return total;\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { TranslateLibraryService } from \"../../../../services/translation-registry.service\";\r\nimport { QMSCKEditorBpmn } from \"../../../common/models/qms-ckeditor-bpmn.model\";\r\nimport { QMSCKEditorToastService } from \"../../../common/toast/qms-ckeditor-toast.service\";\r\nimport { QMSCKEditorBaseComponent } from \"../../../qms-ckeditor-base.component\";\r\nimport { QMSCKEditorBpmnApiService } from \"../../../services/qms-ckeditor-bpmn-api.service\";\r\nimport { BpmnService } from \"../../../services/qms-ckeditor-bpmn.service\";\r\n\r\n@Component({\r\n selector: 'save-template',\r\n templateUrl: './save-template.component.html',\r\n styleUrls: ['./save-template.component.scss']\r\n})\r\n\r\nexport class SaveTemplateComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n saveFormGroup: FormGroup = new FormGroup({\r\n templateName: new FormControl('', [Validators.required])\r\n });\r\n templateName = '';\r\n bpmn: QMSCKEditorBpmn = new QMSCKEditorBpmn();\r\n\r\n constructor(\r\n private translate: TranslateLibraryService,\r\n private bmpnService: BpmnService,\r\n private bpmnApiService: QMSCKEditorBpmnApiService,\r\n public dialogRef: MatDialogRef<SaveTemplateComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorBpmn\r\n ) {\r\n super();\r\n this.bpmn = data;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n saveTemplate() {\r\n this.bpmn.templateName = this.templateName;\r\n this.bpmnApiService\r\n .bpmnModifying(this.bpmn)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.bmpnService.addItemTemplate(result, this.bpmn);\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);\r\n this.onCloseDialog();\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);\r\n }\r\n });\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Component, HostListener, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { TranslateLibraryService } from \"../../../services/translation-registry.service\";\r\nimport { CKEditorEventConst } from \"../../common/constants/ckeditorEvent.constant\";\r\nimport { FlowChartConst } from \"../../common/constants/ckeditorFlowchart.const\";\r\nimport guidHelper from \"../../common/helper/guidHelper\";\r\nimport { QMSCKEditorBpmnTemplate } from \"../../common/models/qms-ckeditor-bpmn-template.model\";\r\nimport { QMSCKEditorBpmn } from \"../../common/models/qms-ckeditor-bpmn.model\";\r\nimport { QMSCKEditorDialogData } from \"../../common/models/qms-ckeditor-dialog.model\";\r\nimport { QMSCKEditorConfirmComponent } from \"../../common/module/confirm/qms-ckeditor-confirm.component\";\r\nimport { QMSCKEditorToastService } from \"../../common/toast/qms-ckeditor-toast.service\";\r\nimport { QMSCKEditorBaseComponent } from \"../../qms-ckeditor-base.component\";\r\nimport { QMSCKEditorBpmnApiService } from \"../../services/qms-ckeditor-bpmn-api.service\";\r\nimport { BpmnService } from \"../../services/qms-ckeditor-bpmn.service\";\r\nimport { SaveTemplateComponent } from \"./save-template/save-template.component\";\r\n\r\n@Component({\r\n selector: 'qms-bpmn',\r\n templateUrl: './qms-ckeditor-bpmn.component.html',\r\n styleUrls: ['./qms-ckeditor-bpmn.component.scss']\r\n})\r\nexport class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n jsonContent: string;\r\n expandedPanel = true;\r\n id = '';\r\n bpmn: QMSCKEditorBpmn = new QMSCKEditorBpmn();\r\n bpmnTemlates: QMSCKEditorBpmnTemplate[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private bmpnService: BpmnService,\r\n private bpmnApiService: QMSCKEditorBpmnApiService,\r\n public dialogRef: MatDialogRef<QMSCKEditorBpmnComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: string\r\n ) {\r\n super();\r\n this.id = data;\r\n }\r\n\r\n @HostListener('window:message', ['$event'])\r\n onMessage(event) {\r\n if (event.data === FlowChartConst.SAVE_AS_TEMPLATE) {\r\n this.onSaveAsTemplate();\r\n }\r\n else if (event.data === FlowChartConst.DELETE_TEMPLATE) {\r\n this.onDeleteTemplate(this.LANG.BPMN.DELETE_TEMPLATE, this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE)\r\n }\r\n else if (event.data === FlowChartConst.MUST_SELECT_TEMPLATE) {\r\n this.showInfoMessage(this.LANG.BPMN.SELECT_TEMPLATE, this.LANG.BPMN.SELECT_TEMPLATE_INFORMATION);\r\n }\r\n else if (event.data === FlowChartConst.CHANGING_TEMPLATE) {\r\n this.onSelectedTemplate();\r\n }\r\n else if (event.data === FlowChartConst.RESET_TEMPLATE) {\r\n this.onResetTemplate();\r\n }\r\n }\r\n\r\n async ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.bpmnTemlates = await this.getTemplates();\r\n if (this.id) {\r\n this.jsonContent = await this.getJsonContent(this.id);\r\n }\r\n this.bmpnService.buildDiagram(\r\n this.bpmnTemlates,\r\n null,\r\n CKEditorEventConst.QMSCK_BPMN,\r\n this.jsonContent,\r\n 1,\r\n this.LANG\r\n );\r\n }\r\n\r\n expandPanel() {\r\n this.expandedPanel = !this.expandedPanel;\r\n const panelStencil = document.getElementById('panel-stencil-container');\r\n const paperContainer = document.getElementById('paperpanel');\r\n const stencilContainer = document.getElementById('stencilpanel');\r\n if (panelStencil) {\r\n if (!this.expandedPanel) {\r\n stencilContainer.style.height = '50px';\r\n panelStencil.style.height = '50px';\r\n paperContainer.style.height = '500px';\r\n } else {\r\n stencilContainer.style.height = '150px';\r\n panelStencil.style.height = '150px';\r\n paperContainer.style.height = '400px';\r\n }\r\n }\r\n }\r\n\r\n async getTemplates(): Promise<QMSCKEditorBpmnTemplate[]> {\r\n return new Promise((resolve) => {\r\n this.bpmnApiService\r\n .bpmnGetTemplates()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n resolve(result);\r\n })\r\n })\r\n }\r\n\r\n async getJsonContent(id: string): Promise<string> {\r\n return new Promise((resolve) => {\r\n this.bpmnApiService\r\n .getBpmnById(id)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n resolve(result.jsonContent);\r\n }\r\n });\r\n })\r\n }\r\n\r\n async saveImageContent() {\r\n return new Promise((resolve) => {\r\n const graph = window[FlowChartConst.GRAPH];\r\n const jsonContent = JSON.stringify(graph.toJSON());\r\n this.bpmn = {\r\n id: this.id ? this.id : guidHelper.empty,\r\n jsonContent: jsonContent,\r\n isTemplate: false,\r\n templateName: ''\r\n }\r\n\r\n this.bpmnApiService\r\n .bpmnModifying(this.bpmn)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n resolve(result);\r\n }\r\n });\r\n })\r\n }\r\n\r\n async getImageContent(paper: any) {\r\n return new Promise((resolve) => {\r\n paper.toPNG((imageData) => {\r\n const arrString = imageData.split(',');\r\n resolve(arrString[1]);\r\n });\r\n });\r\n }\r\n\r\n async onInsertImage() {\r\n const id = await this.saveImageContent();\r\n const paper = window[`paper`];\r\n const imageContent = 'data:image/png;base64,' + await this.getImageContent(paper);\r\n const result = { key: `${CKEditorEventConst.QMSCK_BPMN}#${id}`, values: imageContent }\r\n this.dialogRef.close(result);\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n onSaveAsTemplate() {\r\n const graph = window[FlowChartConst.GRAPH];\r\n const jsonContent = JSON.stringify(graph.toJSON());\r\n let data = new QMSCKEditorBpmn();\r\n data = {\r\n id: guidHelper.empty,\r\n jsonContent: jsonContent,\r\n isTemplate: true,\r\n templateName: ''\r\n }\r\n const dialogTemplate = this.dialog.open(SaveTemplateComponent, {\r\n width: '450px',\r\n height: '220px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n // TDO\r\n }\r\n });\r\n }\r\n\r\n onSelectedTemplate() {\r\n const selectedJsonContent = window[FlowChartConst.SELECTED_JSON_CONTENT];\r\n if (selectedJsonContent) {\r\n const graph = window[FlowChartConst.GRAPH];\r\n if (graph) {\r\n graph.fromJSON(JSON.parse(selectedJsonContent));\r\n }\r\n }\r\n }\r\n\r\n onDeleteTemplate(title: string, content: string) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = title;\r\n data.content = content;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const id = window[FlowChartConst.SELECTED_FLOWCHART_ID];\r\n this.bpmnApiService\r\n .bpmnDeleteTemplate(id)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.bmpnService.removeSelectItem(id);\r\n this.bmpnService.setDefaultSelectedValue();\r\n window[FlowChartConst.IS_SELECTED_TEMPLATE] = false;\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);\r\n }\r\n else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);\r\n }\r\n })\r\n }\r\n });\r\n }\r\n\r\n onResetTemplate() {\r\n const ogrJsonContent = window[FlowChartConst.ORG_JSONCONTENT];\r\n if (ogrJsonContent) {\r\n const graph = window[FlowChartConst.GRAPH];\r\n if (graph) {\r\n graph.fromJSON(JSON.parse(ogrJsonContent));\r\n this.bmpnService.setDefaultSelectedValue();\r\n window[FlowChartConst.IS_SELECTED_TEMPLATE] = false;\r\n }\r\n }\r\n }\r\n\r\n showInfoMessage(title: string, content: string) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = title;\r\n data.content = content;\r\n data.isMessage = true;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n //TODO\r\n }\r\n });\r\n }\r\n}\r\n","export class QMSCKEditorImageMap {\r\n name: string;\r\n imageUrl: string;\r\n areas: QMSCKEditorImageArea[];\r\n module: number;\r\n entityId: string;\r\n editorContent: string;\r\n linkJavaScriptLinksAllowed: boolean;\r\n imageHeight: number;\r\n imageWidth: number;\r\n\r\n constructor() {\r\n this.name = '';\r\n this.imageUrl = '';\r\n this.areas = [];\r\n this.entityId = '';\r\n this.editorContent = '';\r\n this.imageHeight = 0;\r\n this.imageWidth = 0;\r\n this.linkJavaScriptLinksAllowed = true;\r\n }\r\n}\r\n\r\nexport class QMSCKEditorImageArea {\r\n shape: \"rect\" | \"circle\" | \"poly\" | \"\";\r\n coords: string;\r\n href: string;\r\n target: string;\r\n alt: string;\r\n\r\n constructor() {\r\n this.shape = '';\r\n this.coords = '';\r\n this.alt = '';\r\n this.href = '';\r\n this.target = '';\r\n }\r\n}\r\n","export enum ImageModeName {\r\n Pointer = 'pointer',\r\n Rectangle = 'rect',\r\n Circle = 'circle',\r\n Polygon = 'poly',\r\n Remove = 'remove'\r\n}\r\n","export class IconSvg {\r\n public static VECTOR_POINTER = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"#000000\" d=\"M13.75,10.19L14.38,10.32L18.55,12.4C19.25,12.63 19.71,13.32 19.65,14.06V14.19L19.65,14.32L18.75,20.44C18.69,20.87 18.5,21.27 18.15,21.55C17.84,21.85 17.43,22 17,22H10.12C9.63,22 9.18,21.82 8.85,21.47L2.86,15.5L3.76,14.5C4,14.25 4.38,14.11 4.74,14.13H5.03L9,15V4.5A2,2 0 0,1 11,2.5A2,2 0 0,1 13,4.5V10.19H13.75Z\" /></svg>`;\r\n public static VECTOR_RECTANGLE = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"#000000\" d=\"M2,2H8V4H16V2H22V8H20V16H22V22H16V20H8V22H2V16H4V8H2V2M16,8V6H8V8H6V16H8V18H16V16H18V8H16M4,4V6H6V4H4M18,4V6H20V4H18M4,18V20H6V18H4M18,18V20H20V18H18Z\" /></svg>`;\r\n public static VECTOR_CIRCLE = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"#000000\" d=\"M9,2V4.06C6.72,4.92 4.92,6.72 4.05,9H2V15H4.06C4.92,17.28 6.72,19.09 9,19.95V22H15V19.94C17.28,19.08 19.09,17.28 19.95,15H22V9H19.94C19.08,6.72 17.28,4.92 15,4.05V2M11,4H13V6H11M9,6.25V8H15V6.25C16.18,6.86 17.14,7.82 17.75,9H16V15H17.75C17.14,16.18 16.18,17.14 15,17.75V16H9V17.75C7.82,17.14 6.86,16.18 6.25,15H8V9H6.25C6.86,7.82 7.82,6.86 9,6.25M4,11H6V13H4M18,11H20V13H18M11,18H13V20H11\" /></svg>`;\r\n public static VECTOR_POLYGON = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"#000000\" d=\"M2,2V8H4.28L5.57,16H4V22H10V20.06L15,20.05V22H21V16H19.17L20,9H22V3H16V6.53L14.8,8H9.59L8,5.82V2M4,4H6V6H4M18,5H20V7H18M6.31,8H7.11L9,10.59V14H15V10.91L16.57,9H18L17.16,16H15V18.06H10V16H7.6M11,10H13V12H11M6,18H8V20H6M17,18H19V20H17\" /></svg>`;\r\n public static VECTOR_REMOVE = `<svg width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"#000000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\" color=\"#000000\"><path fill=\"#000000\" d=\"M17,12 L7,12\"/> <circle cx=\"12\" cy=\"12\" r=\"10\"/> </svg>`;\r\n}\r\n","/**\r\n *\tImage Map Editor (imgmap) - in-browser imagemap editor\r\n *\tCopyright (C) 2006 - 2008 Adam Maschek (adam.maschek @ gmail.com)\r\n *\r\n *\tThis program is free software; you can redistribute it and/or\r\n *\tmodify it under the terms of the GNU General Public License\r\n *\tas published by the Free Software Foundation; either version 2\r\n *\tof the License, or (at your option) any later version.\r\n *\r\n *\tThis program is distributed in the hope that it will be useful,\r\n *\tbut WITHOUT ANY WARRANTY; without even the implied warranty of\r\n *\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n *\tGNU General Public License for more details.\r\n *\r\n *\tYou should have received a copy of the GNU General Public License\r\n *\talong with this program; if not, write to the Free Software\r\n *\tFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r\n */\r\n/**\r\n *\t@fileoverview\r\n *\tOnline Image Map Editor - main script file.\r\n *\tThis is the main script file of the Online Image Map Editor.\r\n *\r\n *\t@date\t26-02-2007 2:24:50\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@copyright\r\n *\t@version 2.2\r\n *\r\n */\r\n/*jslint browser: true, newcap: false, white: false, onevar: false, plusplus: false, eqeqeq: false, nomen: false */\r\n/*global imgmapStrings:true, window:false, G_vmlCanvasManager:false */\r\n\r\n/**\r\n *\t@author\tAdam Maschek\r\n *\t@constructor\r\n *\t@param config\tThe config object.\r\n */\r\ninterface IImageMapConfig {\r\n custom_callbacks: object;\r\n CL_DRAW_SHAPE: string;\r\n CL_DRAW_BG: string;\r\n CL_NORM_SHAPE: string;\r\n CL_NORM_BG: string;\r\n CL_HIGHLIGHT_SHAPE: string;\r\n CL_HIGHLIGHT_BG: string;\r\n CL_KNOB: string;\r\n bounding_box: boolean;\r\n label: string; //the format string of the area labels - possible values: %n - number, %c - coords, %h - href, %a - alt, %t - title\r\n label_class: string; //the css class to apply on labels\r\n label_style: string; //the css style(s) to apply on labels\r\n hint: string; //the format string of the area mouseover hints - possible values: %n - number, %c - coords, %h - href, %a - alt, %t - title\r\n draw_opacity: string; //the opacity value of the area while drawing, moving or resizing - possible values 0 - 100 or range \"(x)-y\"\r\n norm_opacity: string; //the opacity value of the area while relaxed - possible values 0 - 100\tor range \"(x)-y\"\r\n highlight_opacity: string; //the opacity value of the area while highlighted - possible values 0 - 100 or range \"(x)-y\"\r\n cursor_default: string; //the css cursor while hovering over the image\r\n}\r\n\r\nexport interface IImageMapOptions {\r\n imageElement: HTMLElement;\r\n custom_callbacks: Object;//TODO: typing\r\n bounding_box: boolean;\r\n CL_DRAW_SHAPE: string;\r\n CL_NORM_SHAPE: string;\r\n CL_HIGHLIGHT_SHAPE: string;\r\n strings: Object;\r\n}\r\n\r\nexport interface IImageMapData {\r\n name: string;\r\n id?: string;\r\n areas: IImageMapArea[];\r\n imageWidth?: number;\r\n imageHeight?: number;\r\n}\r\n\r\nexport interface IImageMapArea {\r\n shape: \"rect\" | \"circle\" | \"poly\" | \"\";\r\n coords: string;\r\n href: string;\r\n target: string;\r\n alt: string;\r\n}\r\n\r\nexport class QMSCKEditorImageMapLib {\r\n /** Version string of imgmap */\r\n version = \"2.2\";\r\n\r\n /** Build date of imgmap */\r\n buildDate = \"2009/08/12 22:18\";\r\n\r\n /** Sequential build number of imgmap */\r\n buildNumber = \"113\";\r\n\r\n /** Config object of the imgmap instance */\r\n config: IImageMapConfig;\r\n\r\n /** Status flag to indicate current drawing mode */\r\n is_drawing = 0;\r\n\r\n /**\tArray to hold language strings */\r\n strings = [];\r\n\r\n /** Helper array for some drawing operations */\r\n memory = [];\r\n\r\n /**\tArray to hold reference to all areas (canvases) */\r\n public areas = [];\r\n\r\n imageElement: HTMLElement;\r\n parentImageElement: HTMLElement;\r\n\r\n /**\tAssociative array to hold bound event handlers */\r\n eventHandlers = {};\r\n\r\n currentid = 0;\r\n draggedId = null;\r\n selectedId = null;\r\n nextShape = 'rect';\r\n\r\n /**\tCallback events that you can handle in your GUI. */\r\n event_types = [\r\n 'onAddArea',\r\n 'onRemoveArea',\r\n 'onDrawArea',\r\n 'onResizeArea',\r\n 'onMoveArea',\r\n 'onLoadImage',\r\n 'onSelectArea',\r\n 'onStatusMessage',\r\n 'onAreaChanged'\r\n ];\r\n\r\n isLoaded = false;\r\n\r\n /**\tholds the name of the actively edited map, use getMapName to read it */\r\n mapname = '';\r\n\r\n /**\tholds the id of the actively edited map, use getMapIdto read it */\r\n mapid = '';\r\n\r\n /** global scale of areas (1-normal, 2-doubled, 0.5-half, etc.) */\r\n globalscale = 1;\r\n\r\n /** is_drawing draw mode constant */\r\n DM_RECTANGLE_DRAW = 1;\r\n /** is_drawing draw mode constant */\r\n DM_RECTANGLE_MOVE = 11;\r\n /** is_drawing draw mode constant */\r\n DM_RECTANGLE_RESIZE_TOP = 12;\r\n /** is_drawing draw mode constant */\r\n DM_RECTANGLE_RESIZE_RIGHT = 13;\r\n /** is_drawing draw mode constant */\r\n DM_RECTANGLE_RESIZE_BOTTOM = 14;\r\n /** is_drawing draw mode constant */\r\n DM_RECTANGLE_RESIZE_LEFT = 15;\r\n\r\n /** is_drawing draw mode constant */\r\n DM_SQUARE_DRAW = 2;\r\n /** is_drawing draw mode constant */\r\n DM_SQUARE_MOVE = 21;\r\n /** is_drawing draw mode constant */\r\n DM_SQUARE_RESIZE_TOP = 22;\r\n /** is_drawing draw mode constant */\r\n DM_SQUARE_RESIZE_RIGHT = 23;\r\n /** is_drawing draw mode constant */\r\n DM_SQUARE_RESIZE_BOTTOM = 24;\r\n /** is_drawing draw mode constant */\r\n DM_SQUARE_RESIZE_LEFT = 25;\r\n\r\n /** is_drawing draw mode constant */\r\n DM_POLYGON_DRAW = 3;\r\n /** is_drawing draw mode constant */\r\n DM_POLYGON_LASTDRAW = 30;\r\n /** is_drawing draw mode constant */\r\n DM_POLYGON_MOVE = 31;\r\n\r\n //browser sniff\r\n isMSIE = false;\r\n isSafari = false;\r\n constructor(options: IImageMapOptions) {\r\n this.config = {\r\n custom_callbacks: {}, //possible values: see below!\r\n //default color values\r\n CL_DRAW_SHAPE: '#d00',\r\n CL_DRAW_BG: '#fff',\r\n CL_NORM_SHAPE: '#d00',\r\n CL_NORM_BG: '#fff',\r\n CL_HIGHLIGHT_SHAPE: '#d00',\r\n CL_HIGHLIGHT_BG: '#fff',\r\n CL_KNOB: '#555',\r\n bounding_box: true,\r\n label: '%n',//the format string of the area labels - possible values: %n - number, %c - coords, %h - href, %a - alt, %t - title\r\n label_class: 'imgmap_label',//the css class to apply on labels\r\n label_style: 'font: bold 10px Arial',//the css style(s) to apply on labels\r\n hint: '#%n %h',//the format string of the area mouseover hints - possible values: %n - number, %c - coords, %h - href, %a - alt, %t - title\r\n draw_opacity: '35',//the opacity value of the area while drawing, moving or resizing - possible values 0 - 100 or range \"(x)-y\"\r\n norm_opacity: '50',//the opacity value of the area while relaxed - possible values 0 - 100\tor range \"(x)-y\"\r\n highlight_opacity: '70',//the opacity value of the area while highlighted - possible values 0 - 100 or range \"(x)-y\"\r\n cursor_default: 'crosshair' //the css cursor while hovering over the image\r\n };\r\n //browser sniff\r\n const navigator = window.navigator;\r\n const userAgent = window.navigator.userAgent;\r\n this.isMSIE = (navigator.appName == \"Microsoft Internet Explorer\");\r\n this.isSafari = userAgent.indexOf('Safari') != -1;\r\n this.setup(options);\r\n }\r\n\r\n /**\r\n *\tMain setup function.\r\n *\tCan be called manually or constructor will call it.\r\n *\t@date\t22-02-2007 0:15:42\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@param\tconfig\tconfig object\r\n *\t@return\tTrue if all went ok.\r\n */\r\n setup = function (options: IImageMapOptions) {\r\n //copy non-default options parameters to this.config\r\n for (var i in options) {\r\n if (options.hasOwnProperty(i)) {\r\n this.config[i] = options[i];\r\n }\r\n }\r\n\r\n //set document event hooks\r\n this.addEvent(document, 'keydown', this.eventHandlers.doc_keydown = this.doc_keydown.bind(this));\r\n this.addEvent(document, 'keyup', this.eventHandlers.doc_keyup = this.doc_keyup.bind(this));\r\n this.addEvent(document, 'mousedown', this.eventHandlers.doc_mousedown = this.doc_mousedown.bind(this));\r\n\r\n //set imageElement element - supposedly it already exists in the DOM\r\n this.imageElement = options.imageElement;\r\n if (!this.imageElement) {\r\n throw 'The image element must be existed in the DOM';\r\n }\r\n if (!this.imageElement.parentElement) {\r\n throw 'The parent of the image element must be existed in the DOM';\r\n }\r\n\r\n this.parentImageElement = this.imageElement.parentElement\r\n this.disableSelection(this.parentImageElement);\r\n\r\n //wipe all\r\n this.removeAllAreas();\r\n\r\n //reset scale\r\n this.globalscale = 1;\r\n\r\n //setup events\r\n this.addEvent(this.imageElement, \"dragstart\", this.eventHandlers.img_dragstart = this.img_dragstart.bind(this));\r\n this.addEvent(this.imageElement, 'mousedown', this.eventHandlers.img_mousedown = this.img_mousedown.bind(this));\r\n this.addEvent(this.imageElement, 'mouseup', this.eventHandlers.img_mouseup = this.img_mouseup.bind(this));\r\n this.addEvent(this.imageElement, 'mousemove', this.eventHandlers.img_mousemove = this.img_mousemove.bind(this));\r\n this.imageElement.style.cursor = this.config.cursor_default;\r\n\r\n //Load strings from a key:value object\r\n if (options.strings) {\r\n for (var key in options.strings) {\r\n if (options.strings.hasOwnProperty(key)) {\r\n this.strings[key] = options.strings[key];\r\n }\r\n }\r\n }\r\n //validate event hooks\r\n var found, j, le;\r\n for (i in this.config.custom_callbacks) {\r\n if (this.config.custom_callbacks.hasOwnProperty(i)) {\r\n found = false;\r\n for (j = 0, le = this.event_types.length; j < le; j++) {\r\n if (i == this.event_types[j]) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n //TODO: remove invalid callback\r\n if (!found) {\r\n this.log(\"Unknown custom callback: \" + i, 1);\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n\r\n /**\r\n *\tAttach new 'evt' event handler 'callback' to 'obj'\r\n *\t@date\t24-02-2007 21:16:20\r\n *\t@param\tobj\tThe object on which the handler is defined.\r\n *\t@param\tevt\tThe name of the event, like mousedown.\r\n *\t@param\tcallback\tThe callback function (named if you want it to be removed).\r\n */\r\n addEvent = function (obj, evt, callback) {\r\n if (obj.addEventListener) {\r\n //W3C style model\r\n obj.addEventListener(evt, callback, false);\r\n return true;\r\n }\r\n else {\r\n //Microsoft style registration model\r\n return obj.attachEvent(\"on\" + evt, callback);\r\n }\r\n };\r\n\r\n /**\r\n *\tDetach 'evt' event handled by 'callback' from 'obj' object.\r\n *\tCallback must be a non anonymous function, see eventHandlers.\r\n *\t@see\t#eventHandlers\r\n *\tExample: myimgmap.removeEvent(myimgmap.pic, 'mousedown', myimgmap.eventHandlers.img_mousedown);\r\n *\t@date\t24-11-2007 15:22:17\r\n *\t@param\tobj\tThe object on which the handler is defined.\r\n *\t@param\tevt\tThe name of the event, like mousedown.\r\n *\t@param\tcallback\tThe named callback function.\r\n */\r\n removeEvent = function (obj, evt, callback) {\r\n if (obj.removeEventListener) {\r\n //W3C style model\r\n obj.removeEventListener(evt, callback, false);\r\n return true;\r\n }\r\n else {\r\n //Microsoft style detach model\r\n return obj.detachEvent(\"on\" + evt, callback);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tFires custom hook onStatusMessage, passing the status string.\r\n *\tUse this to update your GUI.\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@date\t26-07-2008 13:22:54\r\n *\t@param\tstr\tThe status string\r\n */\r\n statusMessage = function (str) {\r\n this.fireEvent('onStatusMessage', str);\r\n };\r\n\r\n\r\n /**\r\n *\tAdds basic logging functionality using firebug console object if available.\r\n *\t@date\t20-02-2007 17:55:18\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@param\tobj\tThe object or string you want to debug/echo.\r\n */\r\n log = function (obj, level) {\r\n };\r\n\r\n\r\n /**\r\n *\tGet the map name of the current imagemap.\r\n *\tIf doesnt exist, nor map id, generate a new name based on timestamp.\r\n *\tThe most portable solution is to use the same value for id and name.\r\n *\tThis also conforms the HTML 5 specification, that says:\r\n *\t\"If the id attribute is also specified, both attributes must have the same value.\"\r\n *\t@link\thttp://www.w3.org/html/wg/html5/#the-map-element\r\n *\t@author\tadam\r\n *\t@see\t#getMapId\r\n *\t@return The name of the map.\r\n */\r\n getMapName = function () {\r\n if (!this.mapname) {\r\n if (!!this.mapid) { return this.mapid; }\r\n var now = new Date();\r\n this.mapname = 'imagemap' + now.getFullYear() + (now.getMonth() + 1) + now.getDate() + now.getHours() + now.getMinutes() + now.getSeconds();\r\n }\r\n return this.mapname;\r\n };\r\n\r\n\r\n /**\r\n *\tGet the map id of the current imagemap.\r\n *\tIf doesnt exist, use map name.\r\n *\t@author\tadam\r\n *\t@see\t#getMapName\r\n *\t@return\tThe id of the map.\r\n */\r\n getMapId = function () {\r\n if (!this.mapid) {\r\n this.mapid = this.getMapName();\r\n }\r\n return this.mapid;\r\n };\r\n\r\n getMapJson = function () {\r\n var mapJson: IImageMapData = {\r\n name: this.getMapName(),\r\n id: this.getMapId(),\r\n areas: []\r\n }\r\n for (var i = 0; i < this.areas.length; i++) {\r\n const area = this.areas[i];\r\n if (area && area.lastInput && area.shape) {\r\n const areaJson: IImageMapArea = {\r\n coords: area.lastInput,\r\n shape: area.shape,\r\n target: area.atarget,\r\n alt: area.aalt,\r\n href: area.ahref\r\n };\r\n mapJson.areas.push(areaJson);\r\n }\r\n }\r\n return mapJson;\r\n }\r\n\r\n /**\r\n *\tConvert wild shape names to normal ones.\r\n *\t@date\t25-12-2008 19:27:06\r\n *\t@param\tshape\tThe name of the shape to convert.\r\n *\t@return\tThe normalized shape name, rect as default.\r\n */\r\n _normShape = function (shape) {\r\n if (!shape) { return 'rect'; }\r\n shape = trim(shape).toLowerCase();\r\n if (shape.substring(0, 4) == 'rect') { return 'rect'; }\r\n if (shape.substring(0, 4) == 'circ') { return 'circle'; }\r\n if (shape.substring(0, 4) == 'poly') { return 'poly'; }\r\n return 'rect';\r\n };\r\n\r\n\r\n /**\r\n *\tTry to normalize coordinates that came from:\r\n *\t1. html textarea\r\n *\t2. user input in the active area's input field\r\n *\t3. from the html source in case of plugins or highlighter\r\n *\tExample of inputs that need to be handled:\r\n *\t\t035,035 075,062\r\n *\t\t150,217, 190,257, 150,297,110,257\r\n *\t@author\tadam\r\n *\t@param\tcoords\tThe coordinates in a string.\r\n *\t@param\tshape\tThe shape of the object (rect, circle, poly).\r\n *\t@param\tflag\tFlags that modify the operation. (fromcircle, frompoly, fromrect, preserve)\r\n *\t@returns The normalized coordinates.\r\n */\r\n _normCoords = function (coords, shape, flag) {\r\n //function level var declarations\r\n var i; //generic cycle counter\r\n var sx; //smallest x\r\n var sy; //smallest y\r\n var gx; //greatest x\r\n var gy; //greatest y\r\n var temp, le;\r\n\r\n coords = trim(coords);\r\n if (coords === '') { return ''; }\r\n var oldcoords = coords;\r\n //replace some general junk\r\n coords = coords.replace(/(\\d)([^\\d\\.])+(\\d)/g, \"$1,$3\"); // Other software might create decimal points, respect them\r\n coords = coords.replace(/,\\D+(\\d)/g, \",$1\"); //cut leading junk\r\n coords = coords.replace(/,0+(\\d)/g, \",$1\"); //cut leading zeros\r\n coords = coords.replace(/(\\d)(\\D)+,/g, \"$1,\");\r\n coords = coords.replace(/^\\D+(\\d)/g, \"$1\"); //cut leading junk\r\n coords = coords.replace(/^0+(\\d)/g, \"$1\"); //cut leading zeros\r\n coords = coords.replace(/(\\d)(\\D)+$/g, \"$1\"); //cut trailing junk\r\n\r\n //now fix other issues\r\n var parts = coords.split(',');\r\n if (shape == 'rect') {\r\n if (flag == 'fromcircle') {\r\n var r = parts[2];\r\n parts[0] = parts[0] - r;\r\n parts[1] = parts[1] - r;\r\n parts[2] = parseInt(parts[0], 10) + 2 * r;\r\n parts[3] = parseInt(parts[1], 10) + 2 * r;\r\n }\r\n else if (flag == 'frompoly') {\r\n sx = parseInt(parts[0], 10); gx = parseInt(parts[0], 10);\r\n sy = parseInt(parts[1], 10); gy = parseInt(parts[1], 10);\r\n for (i = 0, le = parts.length; i < le; i++) {\r\n if (i % 2 === 0 && parseInt(parts[i], 10) < sx) {\r\n sx = parseInt(parts[i], 10);\r\n }\r\n if (i % 2 === 1 && parseInt(parts[i], 10) < sy) {\r\n sy = parseInt(parts[i], 10);\r\n }\r\n if (i % 2 === 0 && parseInt(parts[i], 10) > gx) {\r\n gx = parseInt(parts[i], 10);\r\n }\r\n if (i % 2 === 1 && parseInt(parts[i], 10) > gy) {\r\n gy = parseInt(parts[i], 10);\r\n }\r\n }\r\n parts[0] = sx; parts[1] = sy;\r\n parts[2] = gx; parts[3] = gy;\r\n }\r\n if (!(parseInt(parts[1], 10) >= 0)) { parts[1] = parts[0]; }\r\n if (!(parseInt(parts[2], 10) >= 0)) { parts[2] = parseInt(parts[0], 10) + 10; }\r\n if (!(parseInt(parts[3], 10) >= 0)) { parts[3] = parseInt(parts[1], 10) + 10; }\r\n if (parseInt(parts[0], 10) > parseInt(parts[2], 10)) {\r\n temp = parts[0];\r\n parts[0] = parts[2];\r\n parts[2] = temp;\r\n }\r\n if (parseInt(parts[1], 10) > parseInt(parts[3], 10)) {\r\n temp = parts[1];\r\n parts[1] = parts[3];\r\n parts[3] = temp;\r\n }\r\n coords = parts[0] + \",\" + parts[1] + \",\" + parts[2] + \",\" + parts[3];\r\n }\r\n else if (shape == 'circle') {\r\n if (flag == 'fromrect') {\r\n sx = parseInt(parts[0], 10); gx = parseInt(parts[2], 10);\r\n sy = parseInt(parts[1], 10); gy = parseInt(parts[3], 10);\r\n //use smaller side\r\n parts[2] = (gx - sx < gy - sy) ? gx - sx : gy - sy;\r\n parts[2] = Math.floor(parts[2] / 2); //radius\r\n parts[0] = sx + parts[2];\r\n parts[1] = sy + parts[2];\r\n }\r\n else if (flag == 'frompoly') {\r\n sx = parseInt(parts[0], 10); gx = parseInt(parts[0], 10);\r\n sy = parseInt(parts[1], 10); gy = parseInt(parts[1], 10);\r\n for (i = 0, le = parts.length; i < le; i++) {\r\n if (i % 2 === 0 && parseInt(parts[i], 10) < sx) {\r\n sx = parseInt(parts[i], 10);\r\n }\r\n if (i % 2 === 1 && parseInt(parts[i], 10) < sy) {\r\n sy = parseInt(parts[i], 10);\r\n }\r\n if (i % 2 === 0 && parseInt(parts[i], 10) > gx) {\r\n gx = parseInt(parts[i], 10);\r\n }\r\n if (i % 2 === 1 && parseInt(parts[i], 10) > gy) {\r\n gy = parseInt(parts[i], 10);\r\n }\r\n }\r\n //use smaller side\r\n parts[2] = (gx - sx < gy - sy) ? gx - sx : gy - sy;\r\n parts[2] = Math.floor(parts[2] / 2); //radius\r\n parts[0] = sx + parts[2];\r\n parts[1] = sy + parts[2];\r\n }\r\n if (!(parseInt(parts[1], 10) > 0)) { parts[1] = parts[0]; }\r\n if (!(parseInt(parts[2], 10) > 0)) { parts[2] = 10; }\r\n coords = parts[0] + \",\" + parts[1] + \",\" + parts[2];\r\n }\r\n else if (shape == 'poly') {\r\n if (flag == 'fromrect') {\r\n parts[4] = parts[2];\r\n parts[5] = parts[3];\r\n parts[2] = parts[0];\r\n parts[6] = parts[4];\r\n parts[7] = parts[1];\r\n }\r\n else if (flag == 'fromcircle') {\r\n // @ url http://www.pixelwit.com/blog/2007/06/29/basic-circle-drawing-actionscript/\r\n var centerX = parseInt(parts[0], 10);\r\n var centerY = parseInt(parts[1], 10);\r\n var radius = parseInt(parts[2], 10);\r\n var j = 0;\r\n parts[j++] = centerX + radius;\r\n parts[j++] = centerY;\r\n var sides = 60; //constant = sides the fake circle will have\r\n for (i = 0; i <= sides; i++) {\r\n var pointRatio = i / sides;\r\n var xSteps = Math.cos(pointRatio * 2 * Math.PI);\r\n var ySteps = Math.sin(pointRatio * 2 * Math.PI);\r\n var pointX = centerX + xSteps * radius;\r\n var pointY = centerY + ySteps * radius;\r\n parts[j++] = Math.round(pointX);\r\n parts[j++] = Math.round(pointY);\r\n }\r\n }\r\n coords = parts.join(',');\r\n }\r\n\r\n if (flag == 'preserve' && oldcoords != coords) {\r\n //return original and throw error\r\n //throw \"invalid coords\";\r\n return oldcoords;\r\n }\r\n return coords;\r\n };\r\n\r\n\r\n /**\r\n *\tSets the coordinates according to the given JSON map code or DOM object.\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@date\t2006-06-07 11:47:16\r\n *\t@param\tmap\tDOM object or string of a map you want to apply.\r\n *\t@return\tTrue on success\r\n */\r\n setMapJson = function (map: IImageMapData) {\r\n this.fireEvent('onSetMap', map);\r\n\r\n //remove all areas\r\n this.removeAllAreas();\r\n\r\n this.mapname = map.name;\r\n this.mapid = map.id;\r\n var shape, coords, href, alt, title, target, id;\r\n for (var i = 0, le = map.areas.length; i < le; i++) {\r\n shape = coords = href = alt = title = target = '';\r\n\r\n id = this.addNewArea(); //btw id == this.currentid, just this form is a bit clearer\r\n\r\n shape = this._normShape(map.areas[i].shape);\r\n\r\n this.initArea(id, shape);\r\n\r\n if (map.areas[i].coords) {\r\n //normalize coords\r\n coords = this._normCoords(map.areas[i].coords, shape);\r\n this.areas[id].lastInput = coords;\r\n //for area this one will be set in recalculate\r\n }\r\n\r\n href = map.areas[i].href;\r\n if (href) {\r\n this.areas[id].ahref = href;\r\n }\r\n\r\n alt = map.areas[i].alt;\r\n if (alt) {\r\n this.areas[id].aalt = alt;\r\n }\r\n\r\n target = map.areas[i].target;\r\n if (target) { target = target.toLowerCase(); }\r\n\r\n this.areas[id].atarget = target;\r\n\r\n this._recalculate(id, coords); //contains repaint\r\n this.relaxArea(id);\r\n\r\n this.fireEvent('onAreaChanged', this.areas[id]);\r\n\r\n } //end for areas\r\n }\r\n\r\n /**\r\n *\tAdds a new area. It will later become a canvas.\r\n *\tGUI should use the onAddArea callback to act accordingly.\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@date\t2006-06-06 16:49:25\r\n *\t@see\t#initArea\r\n */\r\n addNewArea = function () {\r\n var lastarea = this._getLastArea();\r\n var id = (lastarea) ? lastarea.aid + 1 : 0;\r\n\r\n //insert new possibly? unknown area (will be initialized at mousedown)\r\n var area: any = this.areas[id] = document.createElement('DIV');\r\n area.id = this.mapname + 'area' + id;\r\n area.aid = id;\r\n area.shape = \"undefined\";\r\n\r\n this.blurArea(this.currentid);\r\n\r\n this.currentid = id;\r\n return id;\r\n };\r\n\r\n\r\n /**\r\n *\tInitialize a new area.\r\n *\tCreate the canvas, initialize it.\r\n *\tReset area parameters.\r\n *\t@param\tid\tThe id of the area (already existing with undefined shape)\r\n *\t@param\tshape\tThe shape the area will have (rect, circle, poly)\r\n */\r\n initArea = function (id, shape) {\r\n var area = this.areas[id];\r\n if (!area) { return; } //if all was erased, return\r\n //remove preinited dummy div or already placed canvas\r\n if (area.parentNode) { area.parentNode.removeChild(area); }\r\n if (area.label) { area.label.parentNode.removeChild(area.label); }\r\n\r\n //create CANVAS node\r\n area = this.areas[id] = document.createElement('CANVAS');\r\n\r\n this.parentImageElement.appendChild(area);\r\n this.parentImageElement.style.position = 'relative';\r\n\r\n // if (typeof G_vmlCanvasManager != \"undefined\") {\r\n // //override CANVAS with VML object\r\n // area = this.areas[id] = G_vmlCanvasManager.initElement(area);\r\n // }\r\n area.id = this.mapname + 'area' + id;\r\n area.aid = id;\r\n area.shape = shape;\r\n area.ahref = '';\r\n area.atitle = '';\r\n area.aalt = '';\r\n area.atarget = '';\r\n area.style.position = 'absolute';\r\n area.style.top = this.imageElement.offsetTop + 'px';\r\n area.style.left = this.imageElement.offsetLeft + 'px';\r\n this._setopacity(area, this.config.CL_DRAW_BG, this.config.draw_opacity);\r\n //hook event handlers\r\n\r\n area.onmousedown = this.area_mousedown.bind(this);\r\n area.onmouseup = this.area_mouseup.bind(this);\r\n area.onmousemove = this.area_mousemove.bind(this);\r\n area.onmouseover = this.area_mouseover.bind(this);\r\n area.onmouseout = this.area_mouseout.bind(this);\r\n //initialize memory object\r\n this.memory[id] = {};\r\n this.memory[id].downx = 0;\r\n this.memory[id].downy = 0;\r\n this.memory[id].left = 0;\r\n this.memory[id].top = 0;\r\n this.memory[id].width = 0;\r\n this.memory[id].height = 0;\r\n this.memory[id].xpoints = [];\r\n this.memory[id].ypoints = [];\r\n //create label node\r\n area.label = document.createElement('DIV');\r\n this.parentImageElement.appendChild(area.label);\r\n area.label.className = this.config.label_class;\r\n this.assignCSS(area.label, this.config.label_style);\r\n area.label.style.position = 'absolute';\r\n\r\n this.fireEvent('onAddArea', id);\r\n };\r\n\r\n\r\n /**\r\n *\tResets area border and opacity to a normal state after drawing.\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@date\t15-02-2007 22:07:28\r\n *\t@param\tid\tThe id of the area.\r\n\r\n */\r\n relaxArea = function (id) {\r\n var area = this.areas[id];\r\n if (!area) { return; }\r\n\r\n if (id != this.currentid) {\r\n this._setBorder(area, 'NORM');\r\n this._setopacity(area, this.config.CL_NORM_BG, this.config.norm_opacity);\r\n }\r\n else\r\n this.highlightArea(id);\r\n };\r\n\r\n\r\n /**\r\n *\tSet border of a given area according to style flag.\r\n *\tPossible values of style: NORM, HIGHLIGHT, DRAW.\r\n *\tNon-rectangle shapes wont get a border if config.bounding_box is false.\r\n *\t@date\t26-12-2008 22:34:41\r\n *\t@param\tid\tThe id of the area to set the border on.\r\n *\t@param\tstyle\tColoring style (NORM, HIGHLIGHT, DRAW), see relevant colors in config.\r\n *\t@since\t2.1\r\n */\r\n _setBorder = function (area, style) {\r\n if (area.shape == 'rect' || this.config.bounding_box) {\r\n area.style.borderWidth = '1px';\r\n area.style.borderStyle = (style == 'DRAW' ? 'dotted' : 'solid');\r\n area.style.borderColor = this.config['CL_' + style + '_' + (area.shape == 'rect' ? 'SHAPE' : 'BOX')];\r\n }\r\n else {\r\n //clear border\r\n area.style.border = '';\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tSet opacity of area to the given percentage, as well as set the background color.\r\n *\tIf percentage contains a dash(-), the setting of the opacity will be gradual.\r\n *\t@param\tarea\tThe area object.\r\n *\t@param\tbgcolor\tNew background color\r\n *\t@param\tpct\t\tPercentage of the opacity.\r\n */\r\n _setopacity = function (area, bgcolor, pct) {\r\n if (bgcolor) { area.style.backgroundColor = bgcolor; }\r\n if (pct && typeof pct == 'string' && pct.match(/^\\d*\\-\\d+$/)) {\r\n //gradual fade\r\n var parts: any = pct.split('-');\r\n if (typeof parts[0] != 'undefined') {\r\n //set initial opacity\r\n parts[0] = parseInt(parts[0], 10);\r\n this._setopacity(area, bgcolor, parts[0]);\r\n }\r\n if (typeof parts[1] != 'undefined') {\r\n parts[1] = parseInt(parts[1], 10);\r\n var curr = this._getopacity(area);\r\n\r\n var _this = this;\r\n var diff = Math.round(parts[1] - curr);\r\n if (diff > 5) {\r\n window.setTimeout(function () { _this._setopacity(area, null, '-' + parts[1]); }, 20);\r\n pct = 1 * curr + 5;\r\n }\r\n else if (diff < -3) {\r\n window.setTimeout(function () { _this._setopacity(area, null, '-' + parts[1]); }, 20);\r\n pct = 1 * curr - 3;\r\n }\r\n else {\r\n //final set\r\n pct = parts[1];\r\n }\r\n }\r\n }\r\n if (!isNaN(pct)) {\r\n pct = Math.round(parseInt(pct, 10));\r\n\r\n area.style.opacity = pct / 100;\r\n area.style.filter = 'alpha(opacity=' + pct + ')';\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tGet the currently set opacity of a given area.\r\n *\t@author\tadam\r\n *\t@param\tarea\tThe area (canvas) you want to get opacity info from.\r\n *\t@return\tOpacity value in a range of 0-100.\r\n */\r\n _getopacity = function (area) {\r\n if (area.style.opacity <= 1) {\r\n return area.style.opacity * 100;\r\n }\r\n if (area.style.filter) {\r\n //alpha(opacity=NaN)\r\n return parseInt(area.style.filter.replace(/alpha\\(opacity\\=([^\\)]*)\\)/ig, \"$1\"), 10);\r\n }\r\n return 100; //default opacity\r\n };\r\n\r\n\r\n /**\r\n *\tRemoves the area marked by id.\r\n *\tCallback will call the GUI code to remove GUI elements.\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@date\t11-02-2007 20:40:58\r\n *\t@param\tid\tThe id of the area to remove.\r\n *\t@see\t#removeAllAreas\r\n */\r\n removeArea = function (id) {\r\n if (id === null || typeof id == \"undefined\") { return; } //exit if no id given\r\n\r\n try {\r\n //remove area and label\r\n //explicitly set some values to null to avoid IE circular reference memleak\r\n this.areas[id].label.parentNode.removeChild(this.areas[id].label);\r\n this.areas[id].parentNode.removeChild(this.areas[id]);\r\n this.areas[id].label.className = null;\r\n\r\n this.areas[id].label = null;\r\n this.areas[id].onmouseover = null;\r\n this.areas[id].onmouseout = null;\r\n this.areas[id].onmouseup = null;\r\n this.areas[id].onmousedown = null;\r\n this.areas[id].onmousemove = null;\r\n\r\n }\r\n catch (err) {\r\n }\r\n this.areas[id] = null;\r\n this.fireEvent('onRemoveArea', id);\r\n };\r\n\r\n\r\n /**\r\n *\tRemoves all areas.\r\n *\tWill call removeArea on all areas.\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@date\t2006-06-07 11:55:34\r\n *\t@see\t#removeArea\r\n */\r\n removeAllAreas = function () {\r\n for (var i = 0, le = this.areas.length; i < le; i++) {\r\n if (this.areas[i]) {\r\n this.removeArea(i);\r\n }\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tScales all areas.\r\n *\tWill store scale parameter in globalscale property.\r\n *\tThis is needed to know how to draw new areas on an already scaled canvas.\r\n *\t@author\tadam\r\n *\t@date\t02-11-2008 14:13:14\r\n *\t@param scale\tScale factor (1-original, 0.5-half, 2-double, etc.)\r\n */\r\n scaleAllAreas = function (scale) {\r\n var rscale = scale / this.globalscale; //relative scale\r\n this.globalscale = scale;\r\n for (var i = 0, le = this.areas.length; i < le; i++) {\r\n if (this.areas[i] && this.areas[i].shape != 'undefined') {\r\n this.scaleArea(i, rscale);\r\n }\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tScales one area.\r\n *\t@author\tadam\r\n *\t@date\t02-11-2008 14:13:14\r\n *\t@param rscale\tRelative scale factor (1-keep, 0.5-half, 2-double, etc.)\r\n */\r\n scaleArea = function (id, rscale) {\r\n var area = this.areas[id];\r\n //set position and new dimensions\r\n area.style.top = parseInt(area.style.top, 10) * rscale + 'px';\r\n area.style.left = parseInt(area.style.left, 10) * rscale + 'px';\r\n this.setAreaSize(id, area.width * rscale, area.height * rscale);\r\n\r\n //handle polygon coordinates scaling\r\n if (area.shape == 'poly') {\r\n for (var i = 0, le = area.xpoints.length; i < le; i++) {\r\n area.xpoints[i] *= rscale;\r\n area.ypoints[i] *= rscale;\r\n }\r\n }\r\n\r\n this._repaint(area, this.config.CL_NORM_SHAPE);\r\n this._updatecoords(id);\r\n };\r\n\r\n\r\n /**\r\n *\tPut label in the top left corner according to label config.\r\n *\tBy default it will contain the number of the area (area.aid)\r\n *\t@param\tid\tThe id of the area to add label to.\r\n */\r\n _putlabel = function (id) {\r\n var area = this.areas[id];\r\n if (!area.label) { return; } //not yet inited\r\n try {\r\n if (!this.config.label) {\r\n area.label.innerHTML = '';\r\n area.label.style.display = 'none';\r\n }\r\n else {\r\n area.label.style.display = '';\r\n var label = this.config.label;\r\n label = label.replace(/%n/g, String(id));\r\n label = label.replace(/%c/g, String(area.lastInput));\r\n label = label.replace(/%h/g, String(area.ahref));\r\n label = label.replace(/%a/g, String(area.aalt));\r\n label = label.replace(/%t/g, String(area.atitle));\r\n area.label.innerHTML = label;\r\n }\r\n //align to the top left corner\r\n area.label.style.top = area.style.top;\r\n area.label.style.left = area.style.left;\r\n }\r\n catch (err) {\r\n this.log(\"Error putting label\", 1);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tSet area title and alt (for IE) according to the hint configuration.\r\n *\tThis will show up in the usual yellow box when you hover over with the mouse.\r\n *\t@param\tid\tThe id of the area to set hint at.\r\n */\r\n _puthint = function (id) {\r\n try {\r\n if (!this.config.hint) {\r\n this.areas[id].title = '';\r\n this.areas[id].alt = '';\r\n }\r\n else {\r\n var hint = this.config.hint;\r\n hint = hint.replace(/%n/g, String(id));\r\n hint = hint.replace(/%c/g, String(this.areas[id].lastInput));\r\n hint = hint.replace(/%h/g, String(this.areas[id].ahref));\r\n hint = hint.replace(/%a/g, String(this.areas[id].aalt));\r\n hint = hint.replace(/%t/g, String(this.areas[id].atitle));\r\n this.areas[id].title = hint;\r\n this.areas[id].alt = hint;\r\n }\r\n }\r\n catch (err) {\r\n this.log(\"Error putting hint\", 1);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tWill call repaint on all areas.\r\n *\tUseful when you change labeling or hint config on the GUI.\r\n *\t@see #_repaint\r\n */\r\n _repaintAll = function () {\r\n for (var i = 0, le = this.areas.length; i < le; i++) {\r\n if (this.areas[i]) {\r\n this._repaint(this.areas[i], this.config.CL_NORM_SHAPE);\r\n }\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tRepaints the actual canvas content.\r\n *\tThis is the only canvas drawing magic that is happening.\r\n *\tIn fact rectangles will not have any canvas content, just a normal css border.\r\n *\tAfter repainting the canvas, it will call putlabel and puthint methods.\r\n *\t@param\tarea\tThe area object.\r\n *\t@param\tcolor\tColor of the line to draw on the canvas.\r\n *\t@param\tx\tOnly used for polygons as the newest control point x.\r\n *\t@param\ty\tOnly used for polygons as the newest control point y.\r\n */\r\n _repaint = function (area, color, x, y) {\r\n var ctx; //canvas context\r\n var width, height, left, top; //canvas properties\r\n var i, le; //loop counter\r\n if (area.shape == 'circle') {\r\n width = parseInt(area.style.width, 10);\r\n var radius = Math.floor(width / 2) - 1;\r\n if (radius < 0)\r\n radius = 0;\r\n\r\n //get canvas context\r\n ctx = area.getContext(\"2d\");\r\n //clear canvas\r\n ctx.clearRect(0, 0, width, width);\r\n //draw circle\r\n ctx.beginPath();\r\n ctx.strokeStyle = color;\r\n ctx.arc(radius, radius, radius, 0, Math.PI * 2, 0);\r\n ctx.stroke();\r\n ctx.closePath();\r\n //draw center\r\n ctx.strokeStyle = this.config.CL_KNOB;\r\n ctx.strokeRect(radius, radius, 1, 1);\r\n //put label\r\n this._putlabel(area.aid);\r\n this._puthint(area.aid);\r\n }\r\n else if (area.shape == 'rect') {\r\n //put label\r\n this._putlabel(area.aid);\r\n this._puthint(area.aid);\r\n }\r\n else if (area.shape == 'poly') {\r\n width = parseInt(area.style.width, 10);\r\n height = parseInt(area.style.height, 10);\r\n left = parseInt(area.style.left, 10);\r\n top = parseInt(area.style.top, 10);\r\n if (area.xpoints) {\r\n //get canvas context\r\n ctx = area.getContext(\"2d\");\r\n //clear canvas\r\n ctx.clearRect(0, 0, width, height);\r\n //draw polygon\r\n ctx.beginPath();\r\n ctx.strokeStyle = color;\r\n ctx.moveTo(area.xpoints[0] - left, area.ypoints[0] - top);\r\n for (i = 1, le = area.xpoints.length; i < le; i++) {\r\n ctx.lineTo(area.xpoints[i] - left, area.ypoints[i] - top);\r\n }\r\n if (this.is_drawing == this.DM_POLYGON_DRAW || this.is_drawing == this.DM_POLYGON_LASTDRAW) {\r\n //only draw to the current position if not moving\r\n ctx.lineTo(x - left, y - top);\r\n }\r\n ctx.lineTo(area.xpoints[0] - left, area.ypoints[0] - top);\r\n ctx.stroke();\r\n ctx.closePath();\r\n }\r\n //put label\r\n this._putlabel(area.aid);\r\n this._puthint(area.aid);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tUpdates Area coordinates.\r\n *\tCalled when needed, eg. on mousemove, mousedown.\r\n *\tAlso updates html container value (thru hook).\r\n *\tCalls callback onAreaChanged so that GUI can follow.\r\n *\tThis is an important hook to your GUI.\r\n *\tUses globalscale to scale real coordinates to area coordinates.\r\n *\t@date\t2006.10.24. 22:39:27\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@param\tid\tThe id of the area.\r\n */\r\n _updatecoords = function (id) {\r\n var area = this.areas[id];\r\n var left = Math.round(parseInt(area.style.left, 10) / this.globalscale);\r\n var top = Math.round(parseInt(area.style.top, 10) / this.globalscale);\r\n var height = Math.round(parseInt(area.style.height, 10) / this.globalscale);\r\n var width = Math.round(parseInt(area.style.width, 10) / this.globalscale);\r\n\r\n var value = '';\r\n if (area.shape == 'rect') {\r\n value = left + ',' + top + ',' + (left + width) + ',' + (top + height);\r\n area.lastInput = value;\r\n }\r\n else if (area.shape == 'circle') {\r\n var radius = Math.floor(width / 2) - 1;\r\n value = (left + radius) + ',' + (top + radius) + ',' + radius;\r\n area.lastInput = value;\r\n }\r\n else if (area.shape == 'poly') {\r\n if (area.xpoints) {\r\n for (var i = 0, le = area.xpoints.length; i < le; i++) {\r\n value += Math.round(area.xpoints[i] / this.globalscale) + ',' +\r\n Math.round(area.ypoints[i] / this.globalscale) + ',';\r\n }\r\n value = value.substring(0, value.length - 1);\r\n }\r\n area.lastInput = value;\r\n }\r\n\r\n this.fireEvent('onAreaChanged', area);\r\n };\r\n\r\n\r\n /**\r\n *\tUpdates the visual representation of the area with the given id according\r\n *\tto the new coordinates that typically come from an input on the GUI.\r\n *\tUses globalscale to scale area coordinates to real coordinates.\r\n *\t@date\t2006.10.24. 22:46:55\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@param\tid\tThe id of the area.\r\n *\t@param\tcoords\tThe new coords, they will be normalized.\r\n */\r\n _recalculate = function (id, coords) {\r\n var area = this.areas[id];\r\n try {\r\n if (coords) {\r\n coords = this._normCoords(coords, area.shape, 'preserve');\r\n }\r\n else {\r\n coords = area.lastInput || '';\r\n }\r\n\r\n var parts = coords.split(',');\r\n if (area.shape == 'rect') {\r\n if (parts.length != 4 ||\r\n parseInt(parts[0], 10) > parseInt(parts[2], 10) ||\r\n parseInt(parts[1], 10) > parseInt(parts[3], 10)) { throw \"invalid coords\"; }\r\n area.style.left = this.globalscale * (this.imageElement.offsetLeft + parseInt(parts[0], 10)) + 'px';\r\n area.style.top = this.globalscale * (this.imageElement.offsetTop + parseInt(parts[1], 10)) + 'px';\r\n this.setAreaSize(id, this.globalscale * (parts[2] - parts[0]), this.globalscale * (parts[3] - parts[1]));\r\n this._repaint(area, this.config.CL_NORM_SHAPE);\r\n }\r\n else if (area.shape == 'circle') {\r\n if (parts.length != 3 ||\r\n parseInt(parts[2], 10) < 0) { throw \"invalid coords\"; }\r\n var width = 2 * (parts[2]);\r\n this.setAreaSize(id, this.globalscale * width, this.globalscale * width);\r\n area.style.left = this.globalscale * (this.imageElement.offsetLeft + parseInt(parts[0], 10) - width / 2) + 'px';\r\n area.style.top = this.globalscale * (this.imageElement.offsetTop + parseInt(parts[1], 10) - width / 2) + 'px';\r\n this._repaint(area, this.config.CL_NORM_SHAPE);\r\n }\r\n else if (area.shape == 'poly') {\r\n if (parts.length < 2) { throw \"invalid coords\"; }\r\n area.xpoints = [];\r\n area.ypoints = [];\r\n for (var i = 0, le = parts.length; i < le; i += 2) {\r\n area.xpoints[area.xpoints.length] = this.globalscale * (this.imageElement.offsetLeft + parseInt(parts[i], 10));\r\n area.ypoints[area.ypoints.length] = this.globalscale * (this.imageElement.offsetTop + parseInt(parts[i + 1], 10));\r\n this._polygongrow(area, this.globalscale * parts[i], this.globalscale * parts[i + 1]);\r\n }\r\n this._polygonshrink(area); //includes repaint\r\n }\r\n }\r\n catch (err) {\r\n var msg = (err.message) ? err.message : 'error calculating coordinates';\r\n this.log(msg, 1);\r\n this.statusMessage(this.strings.ERR_INVALID_COORDS);\r\n if (area.lastInput) {\r\n this.fireEvent('onAreaChanged', area);\r\n }\r\n this._repaint(area, this.config.CL_NORM_SHAPE);\r\n return;\r\n }\r\n //on success update lastInput\r\n area.lastInput = coords;\r\n };\r\n\r\n\r\n /**\r\n *\tGrow polygon area to be able to contain the given new coordinates.\r\n *\t@author\tadam\r\n *\t@param\tarea\tThe area to grow.\r\n *\t@param\tnewx\tThe new coordinate x.\r\n *\t@param\tnewy\tThe new coordinate y.\r\n *\t@see\t#_polygonshrink\r\n */\r\n _polygongrow = function (area, newx, newy) {\r\n var xdiff = newx - parseInt(area.style.left, 10);\r\n var ydiff = newy - parseInt(area.style.top, 10);\r\n var pad = 0; //padding on the edges\r\n var pad2 = 0; //twice the padding\r\n\r\n if (newx < parseInt(area.style.left, 10)) {\r\n area.style.left = (newx - pad) + 'px';\r\n this.setAreaSize(area.aid, parseInt(area.style.width, 10) + Math.abs(xdiff) + pad2, null);\r\n }\r\n else if (newx > parseInt(area.style.left, 10) + parseInt(area.style.width, 10)) {\r\n this.setAreaSize(area.aid, newx - parseInt(area.style.left, 10) + pad2, null);\r\n }\r\n if (newy < parseInt(area.style.top, 10)) {\r\n area.style.top = (newy - pad) + 'px';\r\n this.setAreaSize(area.aid, null, parseInt(area.style.height, 10) + Math.abs(ydiff) + pad2);\r\n }\r\n else if (newy > parseInt(area.style.top, 10) + parseInt(area.style.height, 10)) {\r\n this.setAreaSize(area.aid, null, newy - parseInt(area.style.top, 10) + pad2);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tShrink the polygon bounding area to the necessary size, by first reducing it\r\n *\tto the minimum, and then gradually growing it.\r\n *\tWe need this because while we were drawing the polygon, it might have expanded\r\n *\tthe canvas more than needed.\r\n *\tWill repaint the area.\r\n *\t@author\tadam\r\n *\t@param\tarea\tThe area to shrink.\r\n *\t@see\t#_polygongrow\r\n */\r\n _polygonshrink = function (area) {\r\n area.style.left = (area.xpoints[0]) + 'px';\r\n area.style.top = (area.ypoints[0]) + 'px';\r\n this.setAreaSize(area.aid, 0, 0);\r\n for (var i = 0, le = area.xpoints.length; i < le; i++) {\r\n this._polygongrow(area, area.xpoints[i], area.ypoints[i]);\r\n }\r\n this._repaint(area, this.config.CL_NORM_SHAPE);\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles mousemove on the image.\r\n *\tThis is the main drawing routine.\r\n *\tDepending on the current shape, will draw the rect/circle/poly to the new position.\r\n *\t@param\te\tThe event object.\r\n */\r\n img_mousemove = function (e) {\r\n //function level var declarations\r\n var xdiff,\r\n ydiff,\r\n diff;\r\n\r\n //event.x is relative to parent element, but page.x is NOT\r\n //pos coordinates are the same absolute coords, offset coords are relative to parent\r\n const windowEvent: any = window.event;\r\n var pos = this._getPos(this.imageElement),\r\n x = (this.isMSIE) ? (windowEvent.x + this.parentImageElement.scrollLeft - this.imageElement.offsetLeft) : (e.clientX - pos.x),\r\n y = (this.isMSIE) ? (windowEvent.y + this.parentImageElement.scrollTop - this.imageElement.offsetTop) : (e.clientY - pos.y);\r\n x = Math.round(x);\r\n y = Math.round(y);\r\n\r\n //exit if outside image\r\n if (x < 0 || y < 0 || x > this.imageElement.width || y > this.imageElement.height) { return; }\r\n\r\n //old dimensions that need to be updated in this function\r\n if (this.memory[this.currentid]) {\r\n var top = this.memory[this.currentid].top;\r\n var left = this.memory[this.currentid].left;\r\n var height = this.memory[this.currentid].height;\r\n var width = this.memory[this.currentid].width;\r\n }\r\n\r\n var area = this.areas[this.currentid];\r\n // Handle shift state for Safari\r\n // Safari doesn't generate keyboard events for modifiers: http://bugs.webkit.org/show_bug.cgi?id=11696\r\n if (this.isSafari) {\r\n if (e.shiftKey) {\r\n if (this.is_drawing == this.DM_RECTANGLE_DRAW) {\r\n this.is_drawing = this.DM_SQUARE_DRAW;\r\n this.statusMessage(this.strings.SQUARE_DRAW);\r\n }\r\n }\r\n else {\r\n if (this.is_drawing == this.DM_SQUARE_DRAW && area.shape == 'rect') {\r\n //not for circle!\r\n this.is_drawing = this.DM_RECTANGLE_DRAW;\r\n this.statusMessage(this.strings.RECTANGLE_DRAW);\r\n }\r\n }\r\n }\r\n\r\n if (this.is_drawing == this.DM_RECTANGLE_DRAW) {\r\n //rectangle mode\r\n this.fireEvent('onDrawArea', this.currentid);\r\n xdiff = x - this.memory[this.currentid].downx;\r\n ydiff = y - this.memory[this.currentid].downy;\r\n\r\n this.setAreaSize(this.currentid, Math.abs(xdiff), Math.abs(ydiff));\r\n if (xdiff < 0) {\r\n area.style.left = (x + 1) + 'px';\r\n }\r\n if (ydiff < 0) {\r\n area.style.top = (y + 1) + 'px';\r\n }\r\n }\r\n else if (this.is_drawing == this.DM_SQUARE_DRAW) {\r\n //square mode - align to shorter side\r\n this.fireEvent('onDrawArea', this.currentid);\r\n xdiff = x - this.memory[this.currentid].downx;\r\n ydiff = y - this.memory[this.currentid].downy;\r\n if (Math.abs(xdiff) < Math.abs(ydiff)) {\r\n diff = Math.abs(parseInt(xdiff, 10));\r\n }\r\n else {\r\n diff = Math.abs(parseInt(ydiff, 10));\r\n }\r\n\r\n this.setAreaSize(this.currentid, diff, diff);\r\n if (xdiff < 0) {\r\n area.style.left = (this.memory[this.currentid].downx + diff * -1) + 'px';\r\n }\r\n if (ydiff < 0) {\r\n area.style.top = (this.memory[this.currentid].downy + diff * -1 + 1) + 'px';\r\n }\r\n }\r\n else if (this.is_drawing == this.DM_POLYGON_DRAW) {\r\n //polygon mode\r\n this.fireEvent('onDrawArea', this.currentid);\r\n this._polygongrow(area, x, y);\r\n }\r\n else if (this.is_drawing == this.DM_RECTANGLE_MOVE || this.is_drawing == this.DM_SQUARE_MOVE) {\r\n this.fireEvent('onMoveArea', this.currentid);\r\n x = x - this.memory[this.currentid].rdownx;\r\n y = y - this.memory[this.currentid].rdowny;\r\n if (x + width > this.imageElement.width || y + height > this.imageElement.height) { return; }\r\n if (x < 0 || y < 0) { return; }\r\n\r\n area.style.left = x + 1 + 'px';\r\n area.style.top = y + 1 + 'px';\r\n }\r\n else if (this.is_drawing == this.DM_POLYGON_MOVE) {\r\n this.fireEvent('onMoveArea', this.currentid);\r\n x = x - this.memory[this.currentid].rdownx;\r\n y = y - this.memory[this.currentid].rdowny;\r\n if (x + width > this.imageElement.width || y + height > this.imageElement.height) { return; }\r\n if (x < 0 || y < 0) { return; }\r\n xdiff = x - left;\r\n ydiff = y - top;\r\n if (area.xpoints) {\r\n for (var i = 0, le = area.xpoints.length; i < le; i++) {\r\n area.xpoints[i] = this.memory[this.currentid].xpoints[i] + xdiff;\r\n area.ypoints[i] = this.memory[this.currentid].ypoints[i] + ydiff;\r\n }\r\n }\r\n area.style.left = x + 'px';\r\n area.style.top = y + 'px';\r\n }\r\n else if (this.is_drawing == this.DM_SQUARE_RESIZE_LEFT) {\r\n this.fireEvent('onResizeArea', this.currentid);\r\n diff = x - left;\r\n\r\n if ((width + (-1 * diff)) > 0) {\r\n //real resize left\r\n area.style.left = x + 1 + 'px';\r\n area.style.top = (top + (diff / 2)) + 'px';\r\n this.setAreaSize(this.currentid, parseInt(width + (-1 * diff), 10), parseInt(height + (-1 * diff), 10));\r\n }\r\n else {\r\n //jump to another state\r\n this.memory[this.currentid].width = 0;\r\n this.memory[this.currentid].height = 0;\r\n this.memory[this.currentid].left = x;\r\n this.memory[this.currentid].top = y;\r\n this.is_drawing = this.DM_SQUARE_RESIZE_RIGHT;\r\n }\r\n }\r\n else if (this.is_drawing == this.DM_SQUARE_RESIZE_RIGHT) {\r\n this.fireEvent('onResizeArea', this.currentid);\r\n diff = x - left - width;\r\n if ((width + (diff)) - 1 > 0) {\r\n //real resize right\r\n area.style.top = (top + (-1 * diff / 2)) + 'px';\r\n this.setAreaSize(this.currentid, (width + (diff)) - 1, (height + (diff)));\r\n }\r\n else {\r\n //jump to another state\r\n this.memory[this.currentid].width = 0;\r\n this.memory[this.currentid].height = 0;\r\n this.memory[this.currentid].left = x;\r\n this.memory[this.currentid].top = y;\r\n this.is_drawing = this.DM_SQUARE_RESIZE_LEFT;\r\n }\r\n }\r\n else if (this.is_drawing == this.DM_SQUARE_RESIZE_TOP) {\r\n this.fireEvent('onResizeArea', this.currentid);\r\n diff = y - top;\r\n if ((width + (-1 * diff)) > 0) {\r\n //real resize top\r\n area.style.top = y + 1 + 'px';\r\n area.style.left = (left + (diff / 2)) + 'px';\r\n this.setAreaSize(this.currentid, (width + (-1 * diff)), (height + (-1 * diff)));\r\n }\r\n else {\r\n //jump to another state\r\n this.memory[this.currentid].width = 0;\r\n this.memory[this.currentid].height = 0;\r\n this.memory[this.currentid].left = x;\r\n this.memory[this.currentid].top = y;\r\n this.is_drawing = this.DM_SQUARE_RESIZE_BOTTOM;\r\n }\r\n }\r\n else if (this.is_drawing == this.DM_SQUARE_RESIZE_BOTTOM) {\r\n this.fireEvent('onResizeArea', this.currentid);\r\n diff = y - top - height;\r\n if ((width + (diff)) - 1 > 0) {\r\n //real resize bottom\r\n area.style.left = (left + (-1 * diff / 2)) + 'px';\r\n this.setAreaSize(this.currentid, (width + (diff)) - 1, (height + (diff)) - 1);\r\n }\r\n else {\r\n //jump to another state\r\n this.memory[this.currentid].width = 0;\r\n this.memory[this.currentid].height = 0;\r\n this.memory[this.currentid].left = x;\r\n this.memory[this.currentid].top = y;\r\n this.is_drawing = this.DM_SQUARE_RESIZE_TOP;\r\n }\r\n }\r\n else if (this.is_drawing == this.DM_RECTANGLE_RESIZE_LEFT) {\r\n this.fireEvent('onResizeArea', this.currentid);\r\n xdiff = x - left;\r\n if (width + (-1 * xdiff) > 0) {\r\n //real resize left\r\n area.style.left = x + 1 + 'px';\r\n this.setAreaSize(this.currentid, width + (-1 * xdiff), null);\r\n }\r\n else {\r\n //jump to another state\r\n this.memory[this.currentid].width = 0;\r\n this.memory[this.currentid].left = x;\r\n this.is_drawing = this.DM_RECTANGLE_RESIZE_RIGHT;\r\n }\r\n }\r\n else if (this.is_drawing == this.DM_RECTANGLE_RESIZE_RIGHT) {\r\n this.fireEvent('onResizeArea', this.currentid);\r\n xdiff = x - left - width;\r\n if ((width + (xdiff)) - 1 > 0) {\r\n //real resize right\r\n this.setAreaSize(this.currentid, (width + (xdiff)) - 1, null);\r\n }\r\n else {\r\n //jump to another state\r\n this.memory[this.currentid].width = 0;\r\n this.memory[this.currentid].left = x;\r\n this.is_drawing = this.DM_RECTANGLE_RESIZE_LEFT;\r\n }\r\n }\r\n else if (this.is_drawing == this.DM_RECTANGLE_RESIZE_TOP) {\r\n this.fireEvent('onResizeArea', this.currentid);\r\n ydiff = y - top;\r\n if ((height + (-1 * ydiff)) > 0) {\r\n //real resize top\r\n area.style.top = y + 1 + 'px';\r\n this.setAreaSize(this.currentid, null, (height + (-1 * ydiff)));\r\n }\r\n else {\r\n //jump to another state\r\n this.memory[this.currentid].height = 0;\r\n this.memory[this.currentid].top = y;\r\n this.is_drawing = this.DM_RECTANGLE_RESIZE_BOTTOM;\r\n }\r\n }\r\n else if (this.is_drawing == this.DM_RECTANGLE_RESIZE_BOTTOM) {\r\n this.fireEvent('onResizeArea', this.currentid);\r\n ydiff = y - top - height;\r\n if ((height + (ydiff)) - 1 > 0) {\r\n //real resize bottom\r\n this.setAreaSize(this.currentid, null, (height + (ydiff)) - 1);\r\n }\r\n else {\r\n //jump to another state\r\n this.memory[this.currentid].height = 0;\r\n this.memory[this.currentid].top = y;\r\n this.is_drawing = this.DM_RECTANGLE_RESIZE_TOP;\r\n }\r\n }\r\n\r\n //repaint canvas elements\r\n if (this.is_drawing) {\r\n this._repaint(area, this.config.CL_DRAW_SHAPE, x, y);\r\n this._updatecoords(this.currentid);\r\n }\r\n\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles mouseup on the image.\r\n *\tHandles dragging and resizing.\r\n *\t@param\te\tThe event object.\r\n */\r\n img_mouseup = function (e) {\r\n const windowEvent: any = window.event;\r\n var pos = this._getPos(this.imageElement),\r\n x = (this.isMSIE) ? (windowEvent.x + this.parentImageElement.scrollLeft - this.imageElement.offsetLeft) : (e.clientX - pos.x),\r\n y = (this.isMSIE) ? (windowEvent.y + this.parentImageElement.scrollTop - this.imageElement.offsetTop) : (e.clientY - pos.y);\r\n x = Math.round(x);\r\n y = Math.round(y);\r\n\r\n //for everything that is move or resize\r\n if (this.is_drawing != this.DM_RECTANGLE_DRAW &&\r\n this.is_drawing != this.DM_SQUARE_DRAW &&\r\n this.is_drawing != this.DM_POLYGON_DRAW &&\r\n this.is_drawing != this.DM_POLYGON_LASTDRAW) {\r\n //end dragging\r\n this.draggedId = null;\r\n //finish state\r\n this.is_drawing = 0;\r\n this.statusMessage(this.strings.READY);\r\n this.relaxArea(this.currentid);\r\n if (this.areas[this.currentid] == this._getLastArea()) {\r\n return;\r\n }\r\n this.memory[this.currentid].downx = x;\r\n this.memory[this.currentid].downy = y;\r\n }\r\n };\r\n\r\n\r\n img_dragstart = function (e) {\r\n e.preventDefault();\r\n }\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles mousedown on the image.\r\n *\tHandles beggining or end of draw, or polygon point set.\r\n *\t@param\te\tThe event object.\r\n */\r\n img_mousedown = function (e) {\r\n if (!e)\r\n\r\n e = window.event;\r\n\r\n var pos = this._getPos(this.imageElement),\r\n x = Math.round(e.clientX - pos.x),\r\n y = Math.round(e.clientY - pos.y);\r\n\r\n // Handle the Shift state\r\n if (e.shiftKey) {\r\n if (this.is_drawing == this.DM_POLYGON_DRAW) {\r\n this.is_drawing = this.DM_POLYGON_LASTDRAW;\r\n }\r\n }\r\n var area = this.areas[this.currentid];\r\n if (this.is_drawing == this.DM_POLYGON_DRAW) {\r\n //its not finish state yet\r\n area.xpoints[area.xpoints.length] = x;\r\n area.ypoints[area.ypoints.length] = y;\r\n this.memory[this.currentid].downx = x;\r\n this.memory[this.currentid].downy = y;\r\n return;\r\n }\r\n else if (this.is_drawing && this.is_drawing != this.DM_POLYGON_DRAW) {\r\n //finish any other state\r\n if (this.is_drawing == this.DM_POLYGON_LASTDRAW) {\r\n //add last controlpoint and update coords\r\n area.xpoints[area.xpoints.length] = x;\r\n area.ypoints[area.ypoints.length] = y;\r\n this._updatecoords(this.currentid);\r\n this.is_drawing = 0;\r\n this._polygonshrink(area);\r\n }\r\n this.is_drawing = 0;\r\n this.statusMessage(this.strings.READY);\r\n this.relaxArea(this.currentid);\r\n if (this.areas[this.currentid] == this._getLastArea()) {\r\n return;\r\n }\r\n return;\r\n }\r\n\r\n if (!this.nextShape) { return; }\r\n this.addNewArea();\r\n this.initArea(this.currentid, this.nextShape);\r\n\r\n if (this.areas[this.currentid].shape == 'poly') {\r\n this.is_drawing = this.DM_POLYGON_DRAW;\r\n this.statusMessage(this.strings.POLYGON_DRAW);\r\n\r\n this.areas[this.currentid].style.left = x + 'px';\r\n this.areas[this.currentid].style.top = y + 'px';\r\n this.areas[this.currentid].style.width = 0;\r\n this.areas[this.currentid].style.height = 0;\r\n this.areas[this.currentid].xpoints = [];\r\n this.areas[this.currentid].ypoints = [];\r\n this.areas[this.currentid].xpoints[0] = x;\r\n this.areas[this.currentid].ypoints[0] = y;\r\n }\r\n else if (this.areas[this.currentid].shape == 'rect') {\r\n this.is_drawing = this.DM_RECTANGLE_DRAW;\r\n this.statusMessage(this.strings.RECTANGLE_DRAW);\r\n\r\n this.areas[this.currentid].style.left = x + 'px';\r\n this.areas[this.currentid].style.top = y + 'px';\r\n this.areas[this.currentid].style.width = 0;\r\n this.areas[this.currentid].style.height = 0;\r\n }\r\n else if (this.areas[this.currentid].shape == 'circle') {\r\n this.is_drawing = this.DM_SQUARE_DRAW;\r\n this.statusMessage(this.strings.CIRCLE_DRAW);\r\n\r\n this.areas[this.currentid].style.left = x + 'px';\r\n this.areas[this.currentid].style.top = y + 'px';\r\n this.areas[this.currentid].style.width = 0;\r\n this.areas[this.currentid].style.height = 0;\r\n }\r\n\r\n this._setBorder(this.areas[this.currentid], 'DRAW');\r\n this.memory[this.currentid].downx = x;\r\n this.memory[this.currentid].downy = y;\r\n };\r\n\r\n\r\n /**\r\n *\tHighlights a given area.\r\n *\tSets opacity and repaints.\r\n *\t@date\t2007.12.28. 18:23:00\r\n *\t@param\tid\tThe id of the area to blur.\r\n\r\n */\r\n highlightArea = function (id) {\r\n if (this.is_drawing) { return; } //exit if in drawing state\r\n var area = this.areas[id];\r\n if (area && area.shape != 'undefined') {\r\n //area exists - highlight it\r\n this._setBorder(area, 'HIGHLIGHT');\r\n this._setopacity(area, this.config.CL_HIGHLIGHT_BG, '-' + this.config.highlight_opacity);\r\n this._repaint(area, this.config.CL_HIGHLIGHT_SHAPE);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tBlurs a given area.\r\n *\tSets opacity and repaints.\r\n *\t@date\t2007.12.28. 18:23:26\r\n *\t@param\tid\tThe id of the area to blur.\r\n\r\n */\r\n blurArea = function (id) {\r\n if (this.is_drawing) { return; } //exit if in drawing state\r\n var area = this.areas[id];\r\n if (area && area.shape != 'undefined') {\r\n //area exists - fade it back\r\n this._setBorder(area, 'NORM');\r\n this._setopacity(area, this.config.CL_NORM_BG, '-' + this.config.norm_opacity);\r\n this._repaint(area, this.config.CL_NORM_SHAPE);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles event of mousemove on imgmap areas.\r\n *\t- changes cursor depending where we are inside the area (buggy in opera)\r\n *\t- handles area resize\r\n *\t- handles area move\r\n *\t@url\thttp://evolt.org/article/Mission_Impossible_mouse_position/17/23335/index.html\r\n *\t@url\thttp://my.opera.com/community/forums/topic.dml?id=239498&t=1217158015&page=1\r\n *\t@author\tadam\r\n *\t@param\te\tThe event object.\r\n */\r\n area_mousemove = function (e) {\r\n if (!this.is_drawing) {\r\n if (!e)\r\n e = window.event;\r\n\r\n var obj = (this.isMSIE) ? window.event.srcElement : e.currentTarget;\r\n if (obj.tagName == 'DIV') {\r\n //do this because of label\r\n obj = obj.parentNode;\r\n }\r\n if (obj.tagName == 'image' || obj.tagName == 'group' ||\r\n obj.tagName == 'shape' || obj.tagName == 'stroke') {\r\n //do this because of excanvas\r\n obj = obj.parentNode.parentNode;\r\n }\r\n\r\n var target = e.target || e.srcElement,\r\n rect = target && target.getBoundingClientRect();\r\n\r\n const windowEvent: any = window.event;\r\n var xdiff = rect ? e.clientX - rect.left : windowEvent.offsetX;\r\n var ydiff = rect ? e.clientY - rect.top : windowEvent.offsetY;\r\n\r\n // Alfonso\r\n if (this.isSafari) {\r\n xdiff -= window.scrollX;\r\n ydiff -= window.scrollY;\r\n }\r\n var resizable = (obj.shape == 'rect' || obj.shape == 'circle');\r\n if (resizable && xdiff < 6 && ydiff > 6) {\r\n //move left\r\n obj.style.cursor = 'w-resize';\r\n }\r\n else if (resizable && xdiff > parseInt(obj.style.width, 10) - 6 && ydiff > 6) {\r\n //move right\r\n obj.style.cursor = 'e-resize';\r\n }\r\n else if (resizable && xdiff > 6 && ydiff < 6) {\r\n //move top\r\n obj.style.cursor = 'n-resize';\r\n }\r\n else if (resizable && ydiff > parseInt(obj.style.height, 10) - 6 && xdiff > 6) {\r\n //move bottom\r\n obj.style.cursor = 's-resize';\r\n }\r\n else {\r\n //move all\r\n obj.style.cursor = 'move';\r\n }\r\n if (obj.aid != this.draggedId) {\r\n //not dragged or different\r\n if (obj.style.cursor == 'move') { obj.style.cursor = 'default'; }\r\n return;\r\n }\r\n var area = this.areas[this.currentid];\r\n //moved here from mousedown\r\n if (xdiff < 6 && ydiff > 6) {\r\n //move left\r\n if (area.shape == 'circle') {\r\n this.is_drawing = this.DM_SQUARE_RESIZE_LEFT;\r\n this.statusMessage(this.strings.SQUARE_RESIZE_LEFT);\r\n }\r\n else if (area.shape == 'rect') {\r\n this.is_drawing = this.DM_RECTANGLE_RESIZE_LEFT;\r\n this.statusMessage(this.strings.RECTANGLE_RESIZE_LEFT);\r\n }\r\n }\r\n else if (xdiff > parseInt(area.style.width, 10) - 6 && ydiff > 6) {\r\n //move right\r\n if (area.shape == 'circle') {\r\n this.is_drawing = this.DM_SQUARE_RESIZE_RIGHT;\r\n this.statusMessage(this.strings.SQUARE_RESIZE_RIGHT);\r\n }\r\n else if (area.shape == 'rect') {\r\n this.is_drawing = this.DM_RECTANGLE_RESIZE_RIGHT;\r\n this.statusMessage(this.strings.RECTANGLE_RESIZE_RIGHT);\r\n }\r\n }\r\n else if (xdiff > 6 && ydiff < 6) {\r\n //move top\r\n if (area.shape == 'circle') {\r\n this.is_drawing = this.DM_SQUARE_RESIZE_TOP;\r\n this.statusMessage(this.strings.SQUARE_RESIZE_TOP);\r\n }\r\n else if (area.shape == 'rect') {\r\n this.is_drawing = this.DM_RECTANGLE_RESIZE_TOP;\r\n this.statusMessage(this.strings.RECTANGLE_RESIZE_TOP);\r\n }\r\n }\r\n else if (ydiff > parseInt(area.style.height, 10) - 6 && xdiff > 6) {\r\n //move bottom\r\n if (area.shape == 'circle') {\r\n this.is_drawing = this.DM_SQUARE_RESIZE_BOTTOM;\r\n this.statusMessage(this.strings.SQUARE_RESIZE_BOTTOM);\r\n }\r\n else if (area.shape == 'rect') {\r\n this.is_drawing = this.DM_RECTANGLE_RESIZE_BOTTOM;\r\n this.statusMessage(this.strings.RECTANGLE_RESIZE_BOTTOM);\r\n }\r\n }\r\n else/*if (xdiff < 10 && ydiff < 10 ) */ {\r\n //move all\r\n if (area.shape == 'circle') {\r\n this.is_drawing = this.DM_SQUARE_MOVE;\r\n this.statusMessage(this.strings.SQUARE_MOVE);\r\n this.memory[this.currentid].rdownx = xdiff;\r\n this.memory[this.currentid].rdowny = ydiff;\r\n }\r\n else if (area.shape == 'rect') {\r\n this.is_drawing = this.DM_RECTANGLE_MOVE;\r\n this.statusMessage(this.strings.RECTANGLE_MOVE);\r\n this.memory[this.currentid].rdownx = xdiff;\r\n this.memory[this.currentid].rdowny = ydiff;\r\n }\r\n else if (area.shape == 'poly') {\r\n if (area.xpoints) {\r\n for (var i = 0, le = area.xpoints.length; i < le; i++) {\r\n this.memory[this.currentid].xpoints[i] = area.xpoints[i];\r\n this.memory[this.currentid].ypoints[i] = area.ypoints[i];\r\n }\r\n }\r\n\r\n if (area.shape == 'poly') {\r\n this.is_drawing = this.DM_POLYGON_MOVE;\r\n this.statusMessage(this.strings.POLYGON_MOVE);\r\n }\r\n\r\n this.memory[this.currentid].rdownx = xdiff;\r\n this.memory[this.currentid].rdowny = ydiff;\r\n }\r\n }\r\n\r\n //common memory settings (preparing to move or resize)\r\n this.memory[this.currentid].width = parseInt(area.style.width, 10);\r\n this.memory[this.currentid].height = parseInt(area.style.height, 10);\r\n this.memory[this.currentid].top = parseInt(area.style.top, 10);\r\n this.memory[this.currentid].left = parseInt(area.style.left, 10);\r\n this._setBorder(area, 'DRAW');\r\n this._setopacity(area, this.config.CL_DRAW_BG, this.config.draw_opacity);\r\n }\r\n else {\r\n //if drawing and not ie, have to propagate to image event\r\n this.img_mousemove(e);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles event of mouseup on imgmap areas.\r\n *\tBasically clears draggedId.\r\n *\t@author\tadam\r\n *\t@param\te\tThe event object\r\n */\r\n area_mouseup = function (e) {\r\n if (!this.is_drawing) {\r\n var obj = (this.isMSIE) ? window.event.srcElement : e.currentTarget;\r\n if (obj.tagName == 'DIV') {\r\n //do this because of label\r\n obj = obj.parentNode;\r\n }\r\n if (obj.tagName == 'image' || obj.tagName == 'group' ||\r\n obj.tagName == 'shape' || obj.tagName == 'stroke') {\r\n //do this because of excanvas\r\n obj = obj.parentNode.parentNode;\r\n }\r\n if (this.areas[this.currentid] != obj) {\r\n //trying to draw on a different canvas,switch to this one\r\n if (typeof obj.aid == 'undefined') {\r\n this.log('Cannot identify target area', 1);\r\n return;\r\n }\r\n }\r\n this.draggedId = null;\r\n }\r\n else {\r\n //if drawing and not ie, have to propagate to image event\r\n this.img_mouseup(e);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles event of mouseover on imgmap areas.\r\n *\tCalls gradual highlight on the given area.\r\n *\t@author\tadam\r\n *\t@param\te\tThe event object\r\n */\r\n area_mouseover = function (e) {\r\n if (!this.is_drawing) {\r\n //identify source object\r\n var obj = (this.isMSIE) ? window.event.srcElement : e.currentTarget;\r\n if (obj.tagName == 'DIV') {\r\n //do this because of label\r\n obj = obj.parentNode;\r\n }\r\n if (obj.tagName == 'image' || obj.tagName == 'group' ||\r\n obj.tagName == 'shape' || obj.tagName == 'stroke') {\r\n //do this because of excanvas\r\n obj = obj.parentNode.parentNode;\r\n }\r\n this.highlightArea(obj.aid);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles event of mouseout on imgmap areas.\r\n *\tCalls gradient blur on the given area.\r\n *\t@author\tadam\r\n *\t@param\te\tThe event object\r\n */\r\n area_mouseout = function (e) {\r\n if (!this.is_drawing) {\r\n if (!e)\r\n e = window.event;\r\n\r\n if (this.isMSIE) {\r\n // When moving to a child, ignore this mouseout event\r\n if (e.toElement && e.srcElement == e.toElement.parentNode)\r\n return;\r\n }\r\n\r\n //identify source object\r\n var obj = (this.isMSIE) ? e.srcElement : e.currentTarget;\r\n var tagName = obj.tagName.toLowerCase();\r\n if (tagName == 'div') {\r\n //do this because of label\r\n obj = obj.parentNode;\r\n }\r\n if (tagName == 'image' || tagName == 'group' ||\r\n tagName == 'shape' || tagName == 'stroke') {\r\n //do this because of excanvas\r\n obj = obj.parentNode.parentNode;\r\n }\r\n\r\n // Only blur the area if it isn't the current one\r\n if (this.currentid != obj.aid)\r\n this.blurArea(obj.aid);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles event of mousedown on imgmap areas.\r\n *\tSets the variables draggedid, selectedid and currentid to the given area.\r\n *\t@author\tadam\r\n *\t@param\te\tThe event object\r\n */\r\n area_mousedown = function (e) {\r\n if (!this.is_drawing) {\r\n var obj = (this.isMSIE) ? window.event.srcElement : e.currentTarget;\r\n if (obj.tagName == 'DIV') {\r\n //do this because of label\r\n obj = obj.parentNode;\r\n }\r\n if (obj.tagName == 'image' || obj.tagName == 'group' ||\r\n obj.tagName == 'shape' || obj.tagName == 'stroke') {\r\n //do this because of excanvas\r\n obj = obj.parentNode.parentNode;\r\n }\r\n if (this.areas[this.currentid] != obj) {\r\n //trying to draw on a different canvas, switch to this one\r\n if (typeof obj.aid == 'undefined') {\r\n this.log('Cannot identify target area', 1);\r\n return;\r\n }\r\n\r\n this.blurArea(this.currentid);\r\n this.currentid = obj.aid;\r\n this.highlightArea(obj.aid);\r\n }\r\n\r\n this.draggedId = this.currentid;\r\n this.selectedId = this.currentid;\r\n this.fireEvent('onSelectArea', this.areas[this.currentid]);\r\n //stop event propagation to document level\r\n if (this.isMSIE) {\r\n window.event.cancelBubble = true;\r\n }\r\n else {\r\n e.stopPropagation();\r\n }\r\n }\r\n else {\r\n //if drawing and not ie, have to propagate to image event\r\n this.img_mousedown(e);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles event 'keydown' on document.\r\n *\tHandles SHIFT hold while drawing.\r\n *\tNote: Safari doesn't generate keyboard events for modifiers:\r\n *\t@url\thttp://bugs.webkit.org/show_bug.cgi?id=11696\r\n *\t@author\tadam\r\n *\t@param\te\tThe event object\r\n */\r\n doc_keydown = function (e) {\r\n if (e.keyCode == 46 || e.key == \"Delete\") {\r\n //delete key pressed\r\n if (this.selectedId !== null && !this.is_drawing) { this.removeArea(this.selectedId); }\r\n }\r\n else if (e.keyCode == 16 || e.key == \"Shift\") {\r\n //shift key pressed\r\n if (this.is_drawing == this.DM_RECTANGLE_DRAW) {\r\n this.is_drawing = this.DM_SQUARE_DRAW;\r\n this.statusMessage(this.strings.SQUARE_DRAW);\r\n }\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles event 'keyup' on document.\r\n *\tHandles SHIFT release while drawing.\r\n *\t@author\tadam\r\n *\t@param\te\tThe event object\r\n */\r\n doc_keyup = function (e) {\r\n if (e.keyCode == 16 || e.key == \"Shift\") {\r\n //shift key released\r\n if (this.is_drawing == this.DM_SQUARE_DRAW && this.areas[this.currentid].shape == 'rect') {\r\n //not for circle!\r\n this.is_drawing = this.DM_RECTANGLE_DRAW;\r\n this.statusMessage(this.strings.RECTANGLE_DRAW);\r\n }\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tEVENT HANDLER: Handles event 'mousedown' on document.\r\n *\t@author\tadam\r\n *\t@param\te\tThe event object\r\n */\r\n doc_mousedown = function (e) {\r\n if (!this.is_drawing) {\r\n this.selectedId = null;\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tGet the real position of the element.\r\n *\tDeal with browser differences when trying to get the position of an area.\r\n *\t@param\telement\tThe element you want the position of.\r\n *\t@return\tAn object with x and y members.\r\n */\r\n _getPos = function (element) {\r\n\r\n var bounding = element.getBoundingClientRect();\r\n return { x: bounding.left, y: bounding.top };\r\n };\r\n\r\n\r\n /**\r\n *\tGets the last (visible and editable) area.\r\n *\t@author\tAdam Maschek (adam.maschek(at)gmail.com)\r\n *\t@date\t2006-06-15 16:34:51\r\n *\t@returns\tThe last area object or null.\r\n */\r\n _getLastArea = function () {\r\n for (var i = this.areas.length - 1; i >= 0; i--) {\r\n if (this.areas[i]) {\r\n return this.areas[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n\r\n /**\r\n *\tParses cssText to single style declarations.\r\n *\t@author\tadam\r\n *\t@date\t25-09-2007 18:19:51\r\n *\t@param obj\tThe DOM object to apply styles on.\r\n *\t@param cssText\tThe css declarations to apply.\r\n */\r\n assignCSS = function (obj, cssText) {\r\n var parts = cssText.split(';');\r\n for (var i = 0; i < parts.length; i++) {\r\n var p = parts[i].split(':');\r\n //we need to camelcase by - signs\r\n var pp = trim(p[0]).split('-');\r\n var prop = pp[0];\r\n for (var j = 1; j < pp.length; j++) {\r\n //replace first letters to uppercase\r\n prop += pp[j].replace(/^\\w/, pp[j].substring(0, 1).toUpperCase());\r\n }\r\n obj.style[trim(prop)] = trim(p[1]);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tTo fire callback hooks on custom events, passing them the object of the event.\r\n *\t@author\tadam\r\n *\t@date\t13-10-2007 15:24:49\r\n *\t@param evt\tThe type of event\r\n *\t@param obj\tThe object of the event. (can be an id, a string, an object, whatever is most relevant)\r\n */\r\n fireEvent = function (evt, obj) {\r\n if (typeof this.config.custom_callbacks[evt] == 'function') {\r\n return this.config.custom_callbacks[evt](obj);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tTo set area dimensions.\r\n *\tThis is needed to achieve the same result in all browsers.\r\n *\t@author\tadam\r\n *\t@date\t10-12-2007 22:29:41\r\n *\t@param\tid\tThe id of the area (canvas) to resize.\r\n *\t@param\tw\tThe desired width in pixels.\r\n *\t@param\th\tThe desired height in pixels.\r\n */\r\n setAreaSize = function (id, w, h) {\r\n if (id === null) { id = this.currentid; }\r\n var area = this.areas[id];\r\n if (w !== null) {\r\n area.width = w;\r\n area.style.width = (w) + 'px';\r\n area.setAttribute('width', w);\r\n }\r\n if (h !== null) {\r\n area.height = h;\r\n area.style.height = (h) + 'px';\r\n area.setAttribute('height', h);\r\n }\r\n };\r\n\r\n\r\n /**\r\n *\tDisable selection on a given object.\r\n *\tThis is especially useful in Safari, where dragging around areas\r\n *\tkeeps selecting all sorts of things.\r\n *\t@author\tBret Taylor\r\n *\t@url\thttp://ajaxcookbook.org/disable-text-selection/\r\n *\t@date\t27-07-2008 1:57:45\r\n *\t@param\telement\tThe DOM element on which you want to disable selection.\r\n */\r\n disableSelection = function (element) {\r\n if (typeof element == 'undefined' || !element) { return false; }\r\n if (typeof element.onselectstart != \"undefined\") {\r\n element.onselectstart = function () {\r\n return false;\r\n };\r\n }\r\n if (typeof element.unselectable != \"undefined\") {\r\n element.unselectable = \"on\";\r\n }\r\n if (typeof element.style.MozUserSelect != \"undefined\") {\r\n element.style.MozUserSelect = \"none\";\r\n }\r\n };\r\n}\r\n\r\n/**\r\n *\tTrims a string.\r\n *\tChanged not to extend String but use own function for better compatibility.\r\n *\t@param str The string to trim.\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n};","import { AbstractControl, ValidationErrors, ValidatorFn } from \"@angular/forms\";\r\n\r\nexport function invalidURLValidator(regex: RegExp): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const invalid = regex.test(control.value);\r\n return invalid ? { invalidURL: { value: 'control.value' } } : null;\r\n };\r\n}","import { AfterViewChecked, ChangeDetectorRef, Component, ElementRef, Inject, OnInit, ViewChild, Renderer2 } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorImageMap } from '../../models/qms-ckeditor-imagemap.model';\r\nimport { LinkType } from '../../common/enums/link-type.enum';\r\nimport { ProtocolTypeName } from '../../common/enums/protocol-type.enum';\r\nimport { TargetTypeName } from '../../common/enums/target-type.enum';\r\nimport { ImageModeName } from '../../common/enums/image-mode.enum';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { IconSvg } from '../../common/constants/iconSvg.constants';\r\nimport { QMSCKEditorImageMapLib } from './qms-ckeditor-imagemap.lib';\r\nimport { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';\r\nimport QMSCKEditorParamter from '../../common/models/qms-ckeditor-parameter.model';\r\nimport { QMSCKEditorLinkService } from '../../services/qms-ckeditor-link.service';\r\nimport { QMSCKEditorRelatedComponent } from '../qms-ckeditor-relation/qmsckeditor-related.component';\r\nimport { LinkAttachmentComponent } from '../qms-ckeditor-link/attachments/link-attachment.component';\r\nimport { QMSCKEditorLinkAnchorDocument } from '../../common/models/qms-ckeditor-link-anchor-document.model';\r\nimport { LinkAnchor } from '../../common/enums/link-anchor.enum';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { invalidURLValidator } from './qms-ckeditor-imagemap.validator';\r\n\r\ninterface ILinkType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface ITarget {\r\n id: TargetTypeName;\r\n name: string;\r\n}\r\n\r\ninterface IProtocol {\r\n id: ProtocolTypeName;\r\n name: string;\r\n}\r\n\r\ninterface IMode {\r\n id: string;\r\n name: string;\r\n icon: string;\r\n}\r\n\r\ninterface IZoomType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface IAnchor {\r\n value: number;\r\n viewValue: string;\r\n anchorValue: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-qmsck-imagemap',\r\n templateUrl: './qms-ckeditor-imagemap.component.html',\r\n styleUrls: ['./qms-ckeditor-imagemap.component.scss']\r\n})\r\nexport class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n imageMapFormGroup: FormGroup;\r\n imageMapData: QMSCKEditorImageMap;\r\n linkTypes: ILinkType[] = [];\r\n targets: ITarget[] = [];\r\n protocols: IProtocol[] = [];\r\n modes: IMode[] = [];\r\n zoomTypes: IZoomType[] = [];\r\n url = '';\r\n processedUrl = '';\r\n selectedMode: ImageModeName = ImageModeName.Rectangle;\r\n selectedLinkType: LinkType = LinkType.url;\r\n selectedTarget: TargetTypeName = TargetTypeName.new;\r\n selectedProtocol: ProtocolTypeName | string = ProtocolTypeName.http;\r\n selectedZoom = 1.0;\r\n\r\n protocolRegex: RegExp = /^(http|https|ftp|news):\\/\\/(?=.)/i;\r\n javascriptLinkRegex: RegExp = /javascript\\:/i;\r\n\r\n documentId = 0;\r\n //anchorTitle = '';\r\n anchorText = '';\r\n //anchorByName = '';\r\n advisoryTitle = '';\r\n\r\n isUrlProcessing = false;\r\n naturalImageWidth = 0;\r\n naturalImageHeight = 0;\r\n currentAreaId = -1;\r\n myImageMap: QMSCKEditorImageMapLib;\r\n showImageMapInformation = false;\r\n\r\n anchorDocuments: QMSCKEditorLinkAnchorDocument[] = [];\r\n anchors: IAnchor[];\r\n editorAnchors: IAnchor[];\r\n //documentAnchors: IAnchor[];\r\n\r\n imageListeners: any[] = [];\r\n\r\n @ViewChild('myImage')\r\n myImageRef: ElementRef<HTMLImageElement>;\r\n\r\n @ViewChild('myStatus')\r\n myStatusRef: ElementRef<HTMLElement>;\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private cdr: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private linkService: QMSCKEditorLinkService,\r\n public dialogRef: MatDialogRef<QMSCKEditorImageMapComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorImageMap,\r\n iconRegistry: MatIconRegistry,\r\n sanitizer: DomSanitizer\r\n ) {\r\n super();\r\n this.imageMapData = data;\r\n this.naturalImageHeight = this.imageMapData.imageHeight;\r\n this.naturalImageWidth = this.imageMapData.imageWidth;\r\n this.initFormControl();\r\n this.initSvgIcons(iconRegistry, sanitizer);\r\n }\r\n\r\n\r\n initDefaultValues() {\r\n this.selectedLinkType = LinkType.url;\r\n this.selectedTarget = TargetTypeName.new;\r\n this.selectedProtocol = ProtocolTypeName.http;\r\n this.url = '';\r\n this.processedUrl = '';\r\n this.advisoryTitle = '';\r\n this.anchorText = '';\r\n }\r\n\r\n initSvgIcons(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {\r\n iconRegistry.addSvgIconLiteral('vector-pointer', sanitizer.bypassSecurityTrustHtml(IconSvg.VECTOR_POINTER));\r\n iconRegistry.addSvgIconLiteral('vector-circle', sanitizer.bypassSecurityTrustHtml(IconSvg.VECTOR_CIRCLE));\r\n iconRegistry.addSvgIconLiteral('vector-rectangle', sanitizer.bypassSecurityTrustHtml(IconSvg.VECTOR_RECTANGLE));\r\n iconRegistry.addSvgIconLiteral('vector-polygon', sanitizer.bypassSecurityTrustHtml(IconSvg.VECTOR_POLYGON));\r\n iconRegistry.addSvgIconLiteral('vector-remove', sanitizer.bypassSecurityTrustHtml(IconSvg.VECTOR_REMOVE));\r\n }\r\n\r\n initFormControl() {\r\n const valiationControls = {\r\n targetList: new FormControl(),\r\n protocolList: new FormControl(),\r\n anchorTextList: new FormControl(),\r\n modeList: new FormControl(),\r\n zoomList: new FormControl(),\r\n linkTypeList: new FormControl()\r\n };\r\n if (this.imageMapData.linkJavaScriptLinksAllowed == true) {\r\n valiationControls['url'] = new FormControl('', [Validators.required]);\r\n } else {\r\n valiationControls['url'] = new FormControl('', [Validators.required, invalidURLValidator(this.javascriptLinkRegex)]);\r\n }\r\n this.imageMapFormGroup = new FormGroup(valiationControls);\r\n }\r\n\r\n initLinkType() {\r\n if (this.linkTypes) {\r\n this.linkTypes.push({ id: LinkType.url, name: this.LANG.QMSCKEDITOR.LINK_URL });\r\n this.linkTypes.push({\r\n id: LinkType.anchorText,\r\n name: this.LANG.QMSCKEDITOR.LINK_ANCHOR_IN_TEXT\r\n });\r\n }\r\n }\r\n\r\n initTarget() {\r\n if (this.targets) {\r\n this.targets.push({ id: TargetTypeName.new, name: this.LANG.QMSCKEDITOR.TARTGET_NEW });\r\n this.targets.push({ id: TargetTypeName.same, name: this.LANG.QMSCKEDITOR.TARGET_SAME });\r\n }\r\n }\r\n\r\n initProtocol() {\r\n if (this.protocols) {\r\n this.protocols.push({ id: ProtocolTypeName.http, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTP });\r\n this.protocols.push({ id: ProtocolTypeName.https, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTPS });\r\n this.protocols.push({ id: ProtocolTypeName.ftp, name: this.LANG.QMSCKEDITOR.PROTOCOL_FTP });\r\n this.protocols.push({ id: ProtocolTypeName.news, name: this.LANG.QMSCKEDITOR.PROTOCOL_NEW });\r\n this.protocols.push({ id: ProtocolTypeName.other, name: this.LANG.QMSCKEDITOR.PROTOCOL_OTHER });\r\n }\r\n }\r\n\r\n initModes() {\r\n if (this.modes) {\r\n this.modes.push({ id: ImageModeName.Pointer, name: this.LANG.QMSCKEDITOR.IMAGE_MODE_POINTER, icon: \"vector-pointer\" });\r\n this.modes.push({ id: ImageModeName.Rectangle, name: this.LANG.QMSCKEDITOR.IMAGE_MODE_RECTANGLE, icon: \"vector-rectangle\" });\r\n this.modes.push({ id: ImageModeName.Circle, name: this.LANG.QMSCKEDITOR.IMAGE_MODE_CIRCLE, icon: \"vector-circle\" });\r\n this.modes.push({ id: ImageModeName.Polygon, name: this.LANG.QMSCKEDITOR.IMAGE_MODE_POLYGON, icon: \"vector-polygon\" });\r\n this.modes.push({ id: ImageModeName.Remove, name: this.LANG.QMSCKEDITOR.IMAGE_MODE_REMOVE, icon: \"vector-remove\" });\r\n }\r\n }\r\n\r\n initZoomTypes() {\r\n if (this.zoomTypes) {\r\n this.zoomTypes.push({ id: 0.25, name: \"25%\" });\r\n this.zoomTypes.push({ id: 0.5, name: \"50%\" });\r\n this.zoomTypes.push({ id: 1.0, name: \"100%\" });\r\n this.zoomTypes.push({ id: 2.0, name: \"200%\" });\r\n this.zoomTypes.push({ id: 3.0, name: \"300%\" });\r\n }\r\n }\r\n\r\n initAnchor() {\r\n this.anchors = [];\r\n this.anchors = [{ value: 0, viewValue: '', anchorValue: LinkAnchor.Blank }];\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.initLinkType();\r\n this.initTarget();\r\n this.initProtocol();\r\n this.initModes();\r\n this.initZoomTypes();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n if (this.imageListeners && this.imageListeners.length > 0) {\r\n this.imageListeners.forEach(listener => {\r\n listener();\r\n });\r\n }\r\n }\r\n\r\n onImageLoad() {\r\n this.naturalImageHeight = this.naturalImageHeight != 0 ? this.naturalImageHeight : this.myImageRef.nativeElement.naturalHeight;\r\n this.naturalImageWidth = this.naturalImageWidth != 0 ? this.naturalImageWidth : this.myImageRef.nativeElement.naturalWidth;\r\n\r\n this.setImageSize();\r\n\r\n this.myImageMap.setMapJson({\r\n name: this.imageMapData.name,\r\n areas: this.imageMapData.areas\r\n });\r\n\r\n if (this.imageMapData.areas && this.imageMapData.areas.length > 0) {\r\n this.myImageMap.blurArea(this.myImageMap.currentid);\r\n this.myImageMap.currentid = 0;\r\n this.myImageMap.selectedId = 0;\r\n this.onSelectArea(this.myImageMap.areas[0]);\r\n this.myImageMap.highlightArea(0);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.myImageRef) {\r\n this.imageListeners.push(this.renderer.listen(this.myImageRef.nativeElement, 'load', () => {\r\n this.onImageLoad();\r\n }));\r\n }\r\n\r\n // Avoid drag&drop of the image\r\n this.myImageMap = new QMSCKEditorImageMapLib({\r\n custom_callbacks: {\r\n \"onAddArea\": this.onAddArea.bind(this),\r\n 'onSelectArea': this.onSelectArea.bind(this),\r\n 'onRemoveArea': this.onRemoveArea.bind(this),\r\n 'onStatusMessage': this.onStatusMessage.bind(this)\r\n },\r\n imageElement: this.myImageRef.nativeElement,\r\n bounding_box: false,\r\n CL_DRAW_SHAPE: '#F00',\r\n CL_NORM_SHAPE: '#AAA',\r\n CL_HIGHLIGHT_SHAPE: '#F00',\r\n strings: {\r\n \"POLYGON_DRAW\": this.LANG.QMSCKEDITOR.POLYGON_DRAW,\r\n \"RECTANGLE_DRAW\": this.LANG.QMSCKEDITOR.RECTANGLE_DRAW,\r\n \"SQUARE_DRAW\": this.LANG.QMSCKEDITOR.SQUARE_DRAW,\r\n 'READY': '',\r\n 'RECTANGLE_MOVE': '',\r\n 'RECTANGLE_RESIZE_TOP': '',\r\n 'RECTANGLE_RESIZE_RIGHT': '',\r\n 'RECTANGLE_RESIZE_BOTTOM': '',\r\n 'RECTANGLE_RESIZE_LEFT': '',\r\n 'SQUARE_MOVE': '',\r\n 'SQUARE_RESIZE_TOP': '',\r\n 'SQUARE_RESIZE_RIGHT': '',\r\n 'SQUARE_RESIZE_BOTTOM': '',\r\n 'SQUARE_RESIZE_LEFT': '',\r\n 'POLYGON_MOVE': ''\r\n }\r\n });\r\n }\r\n\r\n parseLinkUrl(url: string, defaultProtocolName?: ProtocolTypeName) {\r\n const protocol = this.protocolRegex.exec(url);\r\n if (protocol) {\r\n this.processedUrl = url.substr(protocol[0].length);\r\n this.url = this.processedUrl;\r\n this.selectedProtocol = protocol[0].toLowerCase();\r\n } else if (this.javascriptLinkRegex.test(url) && !this.imageMapData.linkJavaScriptLinksAllowed) {\r\n this.selectedProtocol = ProtocolTypeName.http;\r\n this.processedUrl = '';\r\n this.url = this.processedUrl;\r\n } else {\r\n this.processedUrl = url;\r\n this.url = this.processedUrl;\r\n if (!!this.selectedProtocol) {\r\n this.selectedProtocol = defaultProtocolName || ProtocolTypeName.http;\r\n }\r\n }\r\n }\r\n\r\n onSelectArea(area) {\r\n this.currentAreaId = area.aid;\r\n this.showImageMapInformation = true;\r\n\r\n if (this.selectedMode == ImageModeName.Remove) {\r\n this.myImageMap.removeArea(this.currentAreaId);\r\n } else {\r\n if (area.ahref.match(/^#(.*)$/)) {\r\n this.anchorText = area.ahref.slice(1);\r\n this.selectedLinkType = LinkType.anchorText;\r\n } else {\r\n this.selectedLinkType = LinkType.url;\r\n this.parseLinkUrl(area.ahref);\r\n }\r\n this.selectedTarget = area.atarget;\r\n this.advisoryTitle = area.aalt;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n onRemoveArea() {\r\n this.currentAreaId = -1;\r\n this.showImageMapInformation = false;\r\n }\r\n\r\n removeMap() {\r\n this.currentAreaId = -1;\r\n this.showImageMapInformation = false;\r\n this.myImageMap.removeAllAreas();\r\n }\r\n\r\n onStatusMessage(text: string) {\r\n if (this.myStatusRef) {\r\n this.myStatusRef.nativeElement.innerHTML = text || '';\r\n }\r\n }\r\n\r\n onUrlKeyup() {\r\n this.isUrlProcessing = true;\r\n if (this.url != this.processedUrl) {\r\n this.parseLinkUrl(this.url);\r\n this.updateAreaValues();\r\n }\r\n\r\n this.isUrlProcessing = false;\r\n }\r\n\r\n onUrlChange() {\r\n if (!this.isUrlProcessing) {\r\n this.onUrlKeyup();\r\n }\r\n }\r\n\r\n onAnchorTextChange() {\r\n this.updateAreaValues();\r\n }\r\n\r\n onProtocolChange() {\r\n this.updateAreaValues();\r\n }\r\n\r\n onTargetChange() {\r\n this.updateAreaValues();\r\n }\r\n\r\n onAddArea(id: number) {\r\n this.currentAreaId = id;\r\n this.showImageMapInformation = true;\r\n this.initDefaultValues();\r\n this.updateAreaValues();\r\n }\r\n\r\n updateAreaValues() {\r\n if (this.currentAreaId > -1) {\r\n var ahref = this.buildUrlWithProtocol();\r\n if (this.selectedLinkType == LinkType.anchorText) {\r\n this.myImageMap.areas[this.currentAreaId].atarget = TargetTypeName.same;\r\n this.myImageMap.areas[this.currentAreaId].aalt = this.anchorText;\r\n }\r\n else {\r\n this.myImageMap.areas[this.currentAreaId].atarget = this.selectedTarget || TargetTypeName.new;\r\n this.myImageMap.areas[this.currentAreaId].aalt = this.advisoryTitle;\r\n }\r\n this.myImageMap.areas[this.currentAreaId].ahref = ahref;\r\n }\r\n }\r\n\r\n buildUrlWithProtocol() {\r\n if (this.selectedLinkType == LinkType.anchorText) {\r\n return '#' + (this.anchorText || '');\r\n }\r\n if (!!this.processedUrl) {\r\n return this.selectedProtocol + this.processedUrl;\r\n }\r\n return '';\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n onModeChange(e: any) {\r\n this.selectedMode = e.value;\r\n if (this.selectedMode == ImageModeName.Pointer || this.selectedMode == ImageModeName.Remove) {\r\n this.myImageMap.is_drawing = 0;\r\n this.myImageMap.nextShape = '';\r\n this.myImageRef.nativeElement.style.cursor = 'default';\r\n }\r\n else {\r\n this.myImageMap.nextShape = this.selectedMode;\r\n this.myImageRef.nativeElement.style.cursor = 'crosshair';\r\n }\r\n }\r\n\r\n onZoomChange() {\r\n this.setImageSize();\r\n if (this.myImageMap) {\r\n this.myImageMap.scaleAllAreas(this.selectedZoom);\r\n }\r\n }\r\n\r\n onLinkTypeChange() {\r\n if (this.selectedLinkType === LinkType.anchorText) {\r\n this.getEditorAnchor();\r\n }\r\n this.updateAreaValues();\r\n }\r\n\r\n getEditorAnchor() {\r\n this.anchorDocuments = [];\r\n if (this.imageMapData.editorContent) {\r\n this.anchorDocuments.push({\r\n id: 0,\r\n entityId: 0,\r\n documentId: 0,\r\n documentTypeId: 0,\r\n richText: this.imageMapData.editorContent\r\n });\r\n }\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.editorAnchors = this.anchors;\r\n }\r\n\r\n setImageSize() {\r\n if (this.myImageRef) {\r\n const width = this.naturalImageWidth * this.selectedZoom;\r\n const height = this.naturalImageHeight * this.selectedZoom;\r\n this.myImageRef.nativeElement.setAttribute(\"width\", `${width}px;`);\r\n this.myImageRef.nativeElement.setAttribute(\"height\", `${height}px;`);\r\n this.myImageRef.nativeElement.style.width = `${width}px`;\r\n this.myImageRef.nativeElement.style.height = `${height}px`;\r\n this.myImageRef.nativeElement.style.cursor = this.selectedMode == ImageModeName.Pointer || this.selectedMode == ImageModeName.Remove ? 'default' : 'crosshair';\r\n }\r\n }\r\n\r\n eHandbook(isOnlyDocument: boolean, isAnchorDocument: boolean) {\r\n const data = new QMSCKEditorRelation();\r\n data.isOnlyDocument = isOnlyDocument;\r\n data.isEnableFolder = !isOnlyDocument;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorRelatedComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n if (isAnchorDocument) {\r\n this.documentId = result.id;\r\n //this.anchorTitle = `${result.title}(${result.id})`;\r\n this.getAnchorDocument(result.id);\r\n } else {\r\n this.parseLinkUrl(result.url);\r\n this.selectedProtocol = ProtocolTypeName.other;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n }\r\n this.updateAreaValues();\r\n }\r\n });\r\n }\r\n\r\n getAnchorDocument(documentId: number) {\r\n this.linkService\r\n .getAnchorDocumentList(documentId)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.anchorDocuments = res;\r\n this.setAnchorDocument(this.anchorDocuments);\r\n //this.documentAnchors = this.anchors;\r\n } else {\r\n this.anchorDocuments = [];\r\n this.setAnchorDocument(this.anchorDocuments);\r\n //this.documentAnchors = this.anchors;\r\n }\r\n });\r\n }\r\n\r\n setAnchorDocument(anchorDocument: QMSCKEditorLinkAnchorDocument[]) {\r\n this.initAnchor();\r\n let id = 3;\r\n if (anchorDocument) {\r\n anchorDocument.forEach((e) => {\r\n const div = document.createElement('div');\r\n div.innerHTML = e.richText;\r\n const domContent = div;\r\n const aTags = domContent.getElementsByTagName('a');\r\n if (aTags) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < aTags.length; i++) {\r\n const tag = aTags[i];\r\n if (tag.name) {\r\n const index = this.anchors.findIndex((x) => {\r\n return x.anchorValue === tag.name;\r\n });\r\n if (index < 0) {\r\n this.anchors.push({\r\n value: id,\r\n viewValue: tag.name,\r\n anchorValue: tag.name\r\n });\r\n id += 1;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n // this.anchors.push({\r\n // value: 1,\r\n // viewValue: this.LANG.QMSCKEDITOR.ANCHOR_ATTACHMENT,\r\n // anchorValue: LinkAnchor.Attachment\r\n // });\r\n // this.anchors.push({\r\n // value: 2,\r\n // viewValue: this.LANG.QMSCKEDITOR.ANCHOR_RELATED_DOCUMENT,\r\n // anchorValue: LinkAnchor.Related\r\n // });\r\n }\r\n\r\n\r\n attachment() {\r\n const data = new QMSCKEditorParamter();\r\n data.module = this.imageMapData.module;\r\n data.entityId = this.imageMapData.entityId;\r\n const dialogTemplate = this.dialog.open(LinkAttachmentComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.parseLinkUrl(result.url);\r\n this.selectedProtocol = ProtocolTypeName.other;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n this.updateAreaValues();\r\n }\r\n });\r\n }\r\n\r\n save() {\r\n const data = this.myImageMap.getMapJson();\r\n data.imageHeight = this.naturalImageHeight;\r\n data.imageWidth = this.naturalImageWidth;\r\n this.dialogRef.close(data);\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export class QMSCKEditorTooltip {\r\n text: string;\r\n content: string;\r\n ckEditor:any;\r\n \r\n constructor() {\r\n this.text = '';\r\n this.content = '';\r\n }\r\n }\r\n ","import { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators, Validator } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTooltip } from '../../models/qms-ckeditor-tooltip.model';\r\n//import * as customEditor from '../../../../assets/qms-ckeditor-plugin/build/ckEditor';\r\nimport CKEditorCommonFunctions from '../../common/functions/common.function';\r\n\r\ninterface ITooltip {\r\n text: string;\r\n content: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-qmsck-tooltip',\r\n templateUrl: './qms-ckeditor-tooltip.component.html',\r\n styleUrls: ['./qms-ckeditor-tooltip.component.scss']\r\n})\r\nexport class QMSCKEditorTooltipComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n tooltipFormGroup: FormGroup = new FormGroup({\r\n title: new FormControl('', [Validators.required]),\r\n content: new FormControl('', [Validators.required])\r\n });\r\n tooltip: ITooltip;\r\n editor: any;\r\n editorConfig: any;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<QMSCKEditorTooltipComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorTooltip\r\n ) {\r\n super();\r\n this.tooltip = { text: data.text, content: data.content };\r\n this.editor = data.ckEditor;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.editorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(',heading,|,fontsize,fontfamily,fontColor,fontBackgroundColor,|,bold,italic,underline,strikethrough,|,alignment,|,bulletedList,numberedList,|,outdent,indent,|,subscript,superscript,|,undo,redo,|,specialCharacters,blockQuote,insertTable,|,link,anchor,|,timestamp,|,removeformat');\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getOutputContent(content: string) {\r\n this.tooltip.content = content;\r\n }\r\n\r\n public onChanged({ editor }) {\r\n this.tooltip.content = editor.getData();\r\n }\r\n\r\n public onBlur({ editor }) {\r\n this.tooltip.content = editor.getData();\r\n }\r\n\r\n public onReady(editor) {\r\n if (this.tooltip.text) {\r\n editor.setData(this.tooltip.text);\r\n }\r\n editor.ui.getEditableElement().parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n }\r\n\r\n saveTooltip() {\r\n const tooltip = new QMSCKEditorTooltip();\r\n tooltip.content = this.tooltip.content;\r\n tooltip.text = this.tooltip.text;\r\n this.dialogRef.close(tooltip);\r\n }\r\n\r\n cancelTooltip() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnInit, Output, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UploadAdapter } from './common/classes/uploadAdapter';\r\nimport { CKEditorEventConst } from './common/constants/ckeditorEvent.constant';\r\nimport CKEditorCommonFunctions from './common/functions/common.function';\r\nimport { QMSCKEditorData } from './common/models/qms-ckeditor-data.model';\r\nimport { QMSCKEditorPlugin } from './common/models/qms-ckeditor-plugin.model';\r\nimport QMSCKEditorLink from './common/models/qms-ckeditor-url.model';\r\nimport { QMSCKEditorBpmnComponent } from './components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component';\r\nimport { QMSCKEditorFullscreenComponent } from './components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nimport { QMSCKEditorImageMapComponent } from './components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component';\r\nimport { QMSCKEditorLinkComponent } from './components/qms-ckeditor-link/qms-ckeditor-link.component';\r\nimport { QMSCKEditorLoadTemplateComponent } from './components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nimport { QMSCKEditorTemplateComponent } from './components/qms-ckeditor-template/qms-ckeditor-template.component';\r\nimport { QMSCKEditorTooltipComponent } from './components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component';\r\nimport { QMSCKEditorImageMap } from './models/qms-ckeditor-imagemap.model';\r\nimport { QMSCKEditorTemplate } from './models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorTooltip } from './models/qms-ckeditor-tooltip.model';\r\nimport { QMSCKEditorBaseComponent } from './qms-ckeditor-base.component';\r\nimport { QMSCKEditorGlobalService } from './services/qms-ckeditor-global.service';\r\n@Component({\r\n selector: 'qms-ckeditor',\r\n templateUrl: './qms-ckeditor.component.html',\r\n styleUrls: ['./qms-ckeditor.component.scss'],\r\n providers: [\r\n QMSCKEditorFullscreenComponent,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSCKEditorComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QMSCKEditorComponent),\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class QMSCKEditorComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewInit, Validator {\r\n @Input() qmsckData: QMSCKEditorData;\r\n @Input() qmsckPlugin: QMSCKEditorPlugin;\r\n @Input() qmsckContentInput: string;\r\n @Input('disabled') isDisabled: boolean;\r\n @Input('required') required: boolean = false;\r\n @Output() qmsckContentOutput: EventEmitter<string> = new EventEmitter();\r\n\r\n ckEditor: any;\r\n name: string;\r\n ckeditorConfig: any;\r\n ckEditorEventConst = CKEditorEventConst;\r\n countWord: number;\r\n countChar: number;\r\n editorInstance: any;\r\n\r\n @HostListener('window:message', ['$event'])\r\n onMessage(event) {\r\n switch (event.data.eventName) {\r\n case this.ckEditorEventConst.QMSCK_FULLSCREEN_PLUGIN_MSG:\r\n this.fullscreenEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_TEMPLATE_PLUGIN_MSG:\r\n this.templateEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_LOAD_TEMPLATE_PLUGIN_MSG:\r\n this.loadTemplateEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_LINK_PLUGIN_MSG:\r\n this.linkEventHandling(event.data.value);\r\n break;\r\n case this.ckEditorEventConst.QMSCK_TOOLTIP_PLUGIN_MSG:\r\n this.tooltipEventHandling(event.data.value);\r\n break;\r\n case this.ckEditorEventConst.QMSCK_IMAGEMAP_PLUGIN_MSG:\r\n this.imageMapEventHandling(event.data.value);\r\n break;\r\n case this.ckEditorEventConst.QMSCK_BPMN_PLUGIN_MSG:\r\n this.bpmnEventHandling(event.data.value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Constructor\r\n */\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private globalService: QMSCKEditorGlobalService,\r\n private qmsCKEditorFullscreenComponent: QMSCKEditorFullscreenComponent,\r\n private renderer: Renderer2,\r\n private elRef: ElementRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.name = 'CKEditor custom build';\r\n this.ckEditor = this.qmsckPlugin.pluginObject;\r\n this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckPlugin.itemToolbar);\r\n this.globalService.setApiUrl(this.qmsckData.apiUrl);\r\n if (this.isEnabledCustomizingMathtypeService()) {\r\n this.customizeMathTypeService();\r\n }\r\n if (this.isEnabledCustomizingTimestampFormat()) {\r\n this.customizeTimestampFormat();\r\n }\r\n }\r\n\r\n onChange: (content: any) => void;\r\n onTouched: () => void;\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.isDisabled) {\r\n this.renderer.addClass(this.elRef.nativeElement, 'ck-disabled');\r\n }\r\n }\r\n\r\n isEnabledCustomizingTimestampFormat(): boolean {\r\n const pattern = /(timestamp)/gmi;\r\n return !!this.qmsckData.timestampFormat\r\n && this.qmsckData.timestampFormat !== ''\r\n && !!this.qmsckPlugin.itemToolbar\r\n && this.qmsckPlugin.itemToolbar.search(pattern) > -1;\r\n }\r\n\r\n customizeTimestampFormat() {\r\n const timestampConfig = {\r\n timestampConfig: {\r\n datetimeFormat: this.qmsckData.timestampFormat\r\n }\r\n };\r\n this.ckEditor.defaultConfig = Object.assign(this.ckEditor.defaultConfig || {}, timestampConfig);\r\n }\r\n\r\n isEnabledCustomizingMathtypeService(): boolean {\r\n const pattern = /(MathType)|(ChemType)/gmi;\r\n return !!this.qmsckData.mathtypeServiceUrl\r\n && this.qmsckData.mathtypeServiceUrl !== ''\r\n && !!this.qmsckPlugin.itemToolbar\r\n && this.qmsckPlugin.itemToolbar.search(pattern) > -1;\r\n }\r\n\r\n customizeMathTypeService() {\r\n const mathTypeConfig = {\r\n mathTypeParameters: {\r\n serviceProviderProperties: {\r\n URI: this.qmsckData.mathtypeServiceUrl,\r\n server: 'aspx'\r\n }\r\n }\r\n };\r\n this.ckEditor.defaultConfig = Object.assign(this.ckEditor.defaultConfig || {}, mathTypeConfig);\r\n }\r\n\r\n public onChanged({ editor }) {\r\n this.qmsckContentOutput.emit(this.qmsckContentInput);\r\n }\r\n\r\n public onBlur({ editor }) {\r\n this.qmsckContentOutput.emit(this.qmsckContentInput);\r\n }\r\n\r\n validate(c: FormControl) {\r\n if (!this.required) {\r\n return null;\r\n }\r\n return (this.qmsckContentInput && !this.required) ? null : {\r\n type: {\r\n valid: false,\r\n actual: c.value\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * onReady\r\n */\r\n public onReady(editor) {\r\n this.editorInstance = editor;\r\n if (this.qmsckContentInput) {\r\n editor.setData(this.qmsckContentInput);\r\n }\r\n\r\n this.initEditor(editor);\r\n\r\n }\r\n\r\n private initEditor(editor) {\r\n editor.ui\r\n .getEditableElement()\r\n .parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n\r\n editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {\r\n return new UploadAdapter(loader);\r\n };\r\n\r\n // Apped Wordcount to CKeditor\r\n editor.plugins.get('WordCount').on('update', (evt, stats) => {\r\n // Prints the current content statistics.\r\n const wordsBox = document.querySelector('.wordcount-content');\r\n wordsBox.textContent = `Words: ${stats.words} / Characters: ${stats.characters}`;\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Full screen - Restore down\r\n */\r\n public fullscreenEventHandling() {\r\n const ck = window.document.getElementById('qmsckeditor');\r\n if (ck) {\r\n if (!ck.classList.contains('qmsckeditor__fullscreen')) {\r\n this.qmsCKEditorFullscreenComponent.showFullScreen();\r\n } else {\r\n this.qmsCKEditorFullscreenComponent.hideFullScreen();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Add template - Load template\r\n */\r\n public templateEventHandling() {\r\n const data: QMSCKEditorTemplate = new QMSCKEditorTemplate();\r\n data.id = 0;\r\n data.content = this.qmsckContentInput;\r\n data.edit = false;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTemplateComponent, {\r\n width: '650px',\r\n height: '520px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n // TDO\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Add template - Load template\r\n */\r\n public loadTemplateEventHandling() {\r\n const dialogTemplate = this.dialog.open(QMSCKEditorLoadTemplateComponent, {\r\n width: '650px',\r\n height: '700px',\r\n data: this.qmsckContentInput,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LOAD_TEMPLATE_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Anchor - Link - Image mapping\r\n */\r\n public linkEventHandling(link) {\r\n let data = new QMSCKEditorLink();\r\n data = link;\r\n data.editorContent = this.qmsckContentInput;\r\n data.module = this.qmsckData.module;\r\n data.entityId = this.qmsckData.entityId;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorLinkComponent, {\r\n width: '650px',\r\n height: '660px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LINK_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Tooltip mapping\r\n */\r\n public tooltipEventHandling(value) {\r\n let data = new QMSCKEditorTooltip();\r\n data.text = value.text;\r\n data.content = value.content;\r\n data.ckEditor = this.qmsckPlugin.pluginObject;\r\n\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTooltipComponent, {\r\n width: '650px',\r\n height: '550px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_TOOLTIP_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * ImageMap mapping\r\n */\r\n public imageMapEventHandling(value) {\r\n let data = new QMSCKEditorImageMap();\r\n data.name = value.name;\r\n data.areas = value.areas;\r\n data.imageUrl = value.imageUrl;\r\n data.imageWidth = value.imageWidth;\r\n data.imageHeight = value.imageHeight;\r\n data.module = this.qmsckData.module;\r\n data.entityId = this.qmsckData.entityId;\r\n data.editorContent = this.qmsckContentInput;\r\n data.linkJavaScriptLinksAllowed = this.qmsckData.linkJavaScriptLinksAllowed;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorImageMapComponent, {\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_IMAGEMAP_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n\r\n /*\r\n Business Process Model and Notation\r\n */\r\n public bpmnEventHandling(id: string) {\r\n const dialogTemplate = this.dialog.open(QMSCKEditorBpmnComponent, {\r\n width: '89vw',\r\n maxWidth: '100vw',\r\n height: '700px',\r\n maxHeight: '100vw',\r\n data: id,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_BPMN_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n}\r\n\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { Injector, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { CKEditorModule } from '@ckeditor/ckeditor5-angular';\r\nimport { QMSCKEditorConfirmComponent } from './common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorTreeComponent } from './common/module/tree/qms-ckeditor-tree.component';\r\nimport { QMSCKEditorFullscreenComponent } from './components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nimport { LinkAttachmentComponent } from './components/qms-ckeditor-link/attachments/link-attachment.component';\r\nimport { QMSCKEditorLinkComponent } from './components/qms-ckeditor-link/qms-ckeditor-link.component';\r\nimport { QMSCKEditorLoadTemplateComponent } from './components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nimport { QMSCKEditorRelatedComponent } from './components/qms-ckeditor-relation/qmsckeditor-related.component';\r\nimport { QMSCKEditorTemplateComponent } from './components/qms-ckeditor-template/qms-ckeditor-template.component';\r\nimport { QMSCKEditorComponent } from './qms-ckeditor.component';\r\nimport { QMSCKEditorInjector } from './services/qms-ckeditor-injector.service';\r\nimport { SharedModule } from '../shared.module';\r\nimport { QMSCKEditorTooltipComponent } from './components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component';\r\nimport { QMSCKEditorImageMapComponent } from './components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QMSCKEditorBpmnComponent } from './components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component';\r\nimport { SaveTemplateComponent } from './components/qms-ckeditor-bpmn/save-template/save-template.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n QMSCKEditorFullscreenComponent,\r\n QMSCKEditorComponent,\r\n QMSCKEditorTemplateComponent,\r\n QMSCKEditorLoadTemplateComponent,\r\n QMSCKEditorConfirmComponent,\r\n QMSCKEditorLinkComponent,\r\n QMSCKEditorTreeComponent,\r\n QMSCKEditorRelatedComponent,\r\n LinkAttachmentComponent,\r\n QMSCKEditorTooltipComponent,\r\n QMSCKEditorImageMapComponent,\r\n QMSCKEditorBpmnComponent,\r\n SaveTemplateComponent\r\n ],\r\n imports: [\r\n CKEditorModule,\r\n CommonModule,\r\n MatCommonModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n MatCardModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatSnackBarModule,\r\n MatSelectModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n MatRadioModule,\r\n MatTreeModule,\r\n MatAutocompleteModule,\r\n ScrollingModule,\r\n HttpClientModule,\r\n SharedModule\r\n ],\r\n providers: [],\r\n exports: [QMSCKEditorComponent],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSCKEditorModule {\r\n constructor(private injectors: Injector) {\r\n QMSCKEditorInjector.setInjector(this.injectors);\r\n }\r\n}\r\n","export class QMSCKEditorData {\r\n apiUrl?: string;\r\n module?: number;\r\n entityId?: string;\r\n documentId?: number;\r\n mathtypeServiceUrl?: string;\r\n timestampFormat?: string;\r\n linkJavaScriptLinksAllowed?: boolean;\r\n}\r\n","export class QMSCKEdtiorInputData {\r\n apiUrl?: string;\r\n module?: number;\r\n entityId?: string;\r\n documentId?: number;\r\n mathtypeServiceUrl?: string;\r\n timestampFormat?: string;\r\n linkJavaScriptLinksAllowed?: boolean;\r\n}\r\n","export class QMSCKEditorLinkAnchorDocument {\r\n id: number;\r\n entityId: number;\r\n documentId: number;\r\n documentTypeId: number;\r\n richText: string;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.entityId = 0;\r\n this.documentId = 0;\r\n this.documentTypeId = 0;\r\n this.richText = '';\r\n }\r\n}\r\n","export default class QMSCKEditorLinkAttachment {\r\n itemId: string;\r\n fileName: string;\r\n placementId: number;\r\n processrelationTypeId: number;\r\n extension: string;\r\n description: string;\r\n sort: number;\r\n extraId: string;\r\n}\r\n","export default class QMSCKEditorTree {\r\n rootId: string;\r\n parentId: string;\r\n rootName: string;\r\n subName: string;\r\n childId: string;\r\n childName: string;\r\n statusId: number;\r\n displayId: number;\r\n}\r\n","export class QMSCKEditorPlugin {\r\n pluginObject: any;\r\n itemToolbar: string;\r\n\r\n constructor() {\r\n this.pluginObject = null;\r\n this.itemToolbar = '';\r\n }\r\n}\r\n","export enum RelatedItemType {\r\n document = 1,\r\n process = 2,\r\n area = 3,\r\n handbook = 4,\r\n deviation = 5,\r\n checklist = 6,\r\n risk = 7\r\n}\r\n","export class QMSCKEditorBpmnTemplate {\r\n index: number;\r\n id: string;\r\n templateName: string;\r\n jsonContent: string;\r\n\r\n constructor() {\r\n this.index = 0;\r\n this.id = '';\r\n this.templateName = '';\r\n this.jsonContent = '';\r\n }\r\n}\r\n","import { ViewChild } from '@angular/core';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { IconModel } from './qms-app-bar.model';\r\n\r\n@Component({\r\n selector: 'app-qms-app-bar',\r\n templateUrl: './qms-app-bar.component.html',\r\n styleUrls: ['./qms-app-bar.component.scss']\r\n})\r\nexport class QmsAppBarComponent implements OnInit {\r\n @ViewChild('menu', { static: true }) menu: MatButton;\r\n\r\n // nomal style\r\n @Input() isNomalType = false;\r\n @Input() leftFirstIcon = 'keyboard_backspace';\r\n @Input() title: string;\r\n @Input() cancelTitle: string;\r\n @Input() confirmTitle: string;\r\n @Input() disabledConfirmAction: boolean;\r\n @Output() onClickLeftFirstIconEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onCancelEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onConfirmEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n // modern style\r\n @Input() hideMenuDropdown: boolean;\r\n @Input() logoSvgPath: string;\r\n @Input() imgSvgPath: string;\r\n @Input() isImgSvgTransparent: boolean;\r\n @Input() rightIcons: IconModel[] = [];\r\n @Input() notifications = 0;\r\n @Output() onMenuClickedEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onRightIconClickedEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() { }\r\n \r\n ngOnInit(): void {\r\n }\r\n\r\n onCancel() {\r\n this.onCancelEvent.emit();\r\n }\r\n\r\n onClickLeftFirstIcon() {\r\n this.onClickLeftFirstIconEvent.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.onConfirmEvent.emit();\r\n }\r\n\r\n onMenuClicked() {\r\n this.onMenuClickedEvent.emit();\r\n }\r\n\r\n onRightIconClicked(icon: string) {\r\n this.onRightIconClickedEvent.emit(icon);\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsAppBarComponent } from './qms-app-bar.component';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { QMSButtonModule } from '../button/button.module';\r\n\r\n@NgModule(\r\n {\r\n declarations: [\r\n QmsAppBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatBadgeModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsAppBarComponent\r\n ]\r\n }\r\n)\r\n\r\nexport class QmsAppBarModule {\r\n}\r\n","export class IconModel {\r\n icon: string;\r\n tooltip: string;\r\n cssClass: string;\r\n svg: boolean;\r\n isShow: boolean;\r\n constructor(icon: string, tooltip: string, cssClass = '', svg = false, isShow = true) {\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n this.svg = svg;\r\n this.cssClass = cssClass;\r\n this.isShow = isShow;\r\n }\r\n}","import { MatDialogConfig } from \"@angular/material/dialog\";\r\n\r\nexport class ConfirmDialog {\r\n title: string;\r\n body: string;\r\n normalTitle: string;\r\n closeButton: boolean;\r\n buttonType: string;\r\n actionText: string;\r\n cancelText: string;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.body = '';\r\n this.normalTitle = '';\r\n this.buttonType = 'normal';\r\n this.closeButton = false;\r\n this.actionText = 'Confirm';\r\n this.cancelText = 'Cancel';\r\n }\r\n}\r\n\r\n\r\n\r\nexport class QMSDialogConfig extends MatDialogConfig {\r\n constructor(data: ConfirmDialog, width: string = '', minHeight: string = '', panelClass: string = '') {\r\n super();\r\n this.data = data;\r\n this.width = width;\r\n this.disableClose = false;\r\n this.panelClass = ['qms-dialog'];\r\n this.panelClass.push(panelClass);\r\n this.autoFocus = false;\r\n this.restoreFocus = false;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { QMSToolTipComponent } from './tooltip';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n CommonModule\r\n ],\r\n exports: [\r\n QMSToolTipComponent,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n \r\n ],\r\n declarations: [\r\n QMSToolTipComponent\r\n ],\r\n})\r\nexport class QMSTooltipModule { }","export class QmsBannerContent {\r\n text: string;\r\n tooltip?: string;\r\n bold?: boolean;\r\n}\r\n\r\nexport enum BannerType {\r\n primary = 'primary',\r\n warning = 'warning',\r\n success = 'success',\r\n error = 'error',\r\n light = 'light',\r\n none = 'none',\r\n}\r\n\r\nexport class QmsBannerConfirmButton {\r\n id: string | number;\r\n text: string;\r\n}\r\n\r\nexport class QmsBannerConfirmButtonClick {\r\n button: QmsBannerConfirmButton;\r\n event: PointerEvent;\r\n}","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BannerType, QmsBannerContent } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner',\r\n templateUrl: './qms-banner.component.html',\r\n styleUrls: ['./qms-banner.component.scss']\r\n})\r\nexport class QmsBannerComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() contents: QmsBannerContent[] = [];\r\n @Input() icon: string;\r\n @Input() buttonText: string;\r\n @Input() buttonMinWidth: number;\r\n\r\n @Output() buttonClick = new EventEmitter<PointerEvent>();\r\n\r\n public onClickButton(event: PointerEvent) {\r\n this.buttonClick.emit(event);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsBannerComponent } from './qms-banner.component';\r\nimport { QMSButtonModule } from '../../button/button.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsBannerComponent\r\n ]\r\n})\r\nexport class QmsBannerModule { }\r\n","import { Component, Input } from '@angular/core';\r\nimport { BannerType } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner-loading',\r\n templateUrl: './qms-banner-loading.component.html',\r\n styleUrls: ['./qms-banner-loading.component.scss']\r\n})\r\nexport class QmsBannerLoadingComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() title: string;\r\n @Input() percent: number;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { QmsBannerLoadingComponent } from './qms-banner-loading.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerLoadingComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n QmsBannerLoadingComponent\r\n ]\r\n})\r\nexport class QmsBannerLoadingModule { }\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BannerType, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerContent } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner-confirm',\r\n templateUrl: './qms-banner-confirm.component.html',\r\n styleUrls: ['./qms-banner-confirm.component.scss']\r\n})\r\nexport class QmsBannerConfirmComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() contents: QmsBannerContent[] = [];\r\n @Input() icon: string;\r\n @Input() title: string;\r\n @Input() buttons: QmsBannerConfirmButton[];\r\n\r\n @Output() buttonClick = new EventEmitter<QmsBannerConfirmButtonClick>();\r\n\r\n public onClickButton(event: PointerEvent, button: QmsBannerConfirmButton) {\r\n this.buttonClick.emit({\r\n event: event,\r\n button: button\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsBannerConfirmComponent } from './qms-banner-confirm.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { QMSButtonModule } from '../../button/button.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerConfirmComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsBannerConfirmComponent\r\n ]\r\n})\r\nexport class QmsBannerConfirmModule { }\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit, ChangeDetectionStrategy, Component,\r\n ContentChildren, Directive, ElementRef, HostListener, Input, OnInit,\r\n QueryList, Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\n\r\n\r\n@Component({\r\n selector: 'qms-table-action',\r\n templateUrl: 'table-action.html',\r\n styleUrls: ['table.scss'],\r\n host: { 'class': 'qms-table-action' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSTableAction implements OnInit {\r\n\r\n constructor(private elRef: ElementRef) { }\r\n ngOnInit() { }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-table-action-block',\r\n templateUrl: 'table-action-block.html',\r\n styleUrls: ['table.scss'],\r\n host: {\r\n 'class': 'qms-table-action-block',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSTableActionBlock implements AfterViewInit {\r\n\r\n constructor(private elRef: ElementRef<HTMLElement>, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n }\r\n}\r\n\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { QMSTableAction, QMSTableActionBlock } from './table-action';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSTableAction,\r\n QMSTableActionBlock,\r\n ],\r\n declarations: [\r\n QMSTableAction,\r\n QMSTableActionBlock,\r\n ],\r\n providers: []\r\n})\r\nexport class QMSTableModule { }\r\n","import { ItemIconType } from \"../../related/common/item-icon-type.enum\";\r\n\r\nexport class BreadcrumbNode {\r\n icon: string;\r\n iconColor: string;\r\n itemIcon: string;\r\n itemIconSvg: string;\r\n itemIconPath: string;\r\n itemIconBase64: string;\r\n name: string;\r\n isOverflow?: boolean;\r\n isShow?: boolean;\r\n displayType?: ItemIconType;\r\n}\r\n ","export class StepModel {\r\n id: string;\r\n name: string;\r\n disabled: boolean;\r\n selected: boolean;\r\n constructor(id: string, name: string, disabled: boolean, selected: boolean) {\r\n this.id = id;\r\n this.disabled = disabled;\r\n this.name = name;\r\n this.selected = selected;\r\n }\r\n}","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { StepModel } from './qms-stepper.model';\r\n\r\n@Component({\r\n selector: 'app-qms-stepper',\r\n templateUrl: './qms-stepper.component.html',\r\n styleUrls: ['./qms-stepper.component.scss']\r\n})\r\nexport class QmsStepperComponent implements OnInit {\r\n @ViewChild('stepper', { static: false }) stepper;\r\n @Input() steps: StepModel[] = [];\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() isHorizontal = false;\r\n @Input() currentStep = 0;\r\n @Input() labelPosition = 'end';\r\n @Output() selectionChangeEvent: EventEmitter<number> = new EventEmitter();\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n changeStep(selectedIndex: number): void {\r\n this.currentStep = selectedIndex;\r\n this.selectionChangeEvent.emit(selectedIndex);\r\n }\r\n}\r\n","import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { QmsStepperComponent } from './qms-stepper.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@NgModule(\r\n {\r\n declarations: [\r\n QmsStepperComponent\r\n ],\r\n imports: [\r\n MatStepperModule,\r\n CommonModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n QmsStepperComponent\r\n ],\r\n entryComponents: [\r\n QmsStepperComponent\r\n ],\r\n providers: [{\r\n provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\r\n }]\r\n }\r\n)\r\n\r\nexport class QmsStepperModule {\r\n}","import { MatSnackBarConfig, MatSnackBarHorizontalPosition } from \"@angular/material/snack-bar\";\r\n\r\nexport class QMSSnackbarConfig extends MatSnackBarConfig {\r\n constructor(duration: number = 3000, horizontalPosition: MatSnackBarHorizontalPosition = 'right', panelClass: string | string[] = ['c-snackbar-qms']) {\r\n super();\r\n this.duration = duration;\r\n this.horizontalPosition = horizontalPosition;\r\n this.panelClass = panelClass;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of qms-angular\r\n */\r\n\r\nimport { from } from 'rxjs';\r\n\r\nexport * from './lib/qms-angular.service';\r\nexport * from './lib/qms-angular.component';\r\nexport * from './lib/qms-angular.module';\r\n\r\n// directives\r\n// export * from './lib/directives/directive.module';\r\nexport * from './lib/directives/margin.directive';\r\nexport * from './lib/directives/form.directive';\r\n\r\n// //components\r\nexport * from './lib/components/test-only/test-only.component';\r\n\r\nexport * from './lib/components/button/button.module';\r\nexport * from './lib/components/button/button';\r\nexport * from './lib/components/button/color';\r\n\r\nexport * from './lib/components/comment/comment';\r\n\r\n\r\nexport * from './lib/directives/search-field.directive';\r\nexport * from './lib/directives/range-slider/range-slider.directive';\r\nexport * from './lib/directives/range-slider/range-slider-lockup.directive';\r\nexport * from './lib/components/list/list.module';\r\nexport * from './lib/components/list/list';\r\nexport * from './lib/components/suffix-field/suffix-field.directive';\r\n\r\nexport * from './lib/services/translation-registry.service';\r\nexport * from './lib/shared.module';\r\nexport * from './lib/model/en';\r\nexport * from './lib/model/no';\r\n\r\nexport * from './lib/components/rich-text/rich-text.module';\r\nexport * from './lib/components/rich-text/rich-text';\r\n\r\n\r\n\r\nexport * from './lib/directives/chips/chip.directive';\r\nexport * from './lib/directives/chips/chip-body.directive';\r\nexport * from './lib/components/edit-file-name-dialog/edit-file-name-dialog.module';\r\nexport * from './lib/components/edit-file-name-dialog/edit-file-name-dialog';\r\nexport * from './lib/components/upload-file-error-dialog/upload-file-error-dialog.module';\r\nexport * from './lib/components/upload-file-error-dialog/upload-file-error-dialog';\r\n\r\nexport * from './lib/directives/file-upload/file-upload.directive';\r\nexport * from './lib/directives/file-upload/file-upload-attachment-list.directive';\r\nexport * from './lib/directives/file-upload/file-upload-selector.directive';\r\nexport * from './lib/directives/file-upload/file-upload-display.directive';\r\nexport * from './lib/directives/file-upload/file-upload-scrollable-attachment-list.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple-selector.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple-display.directive';\r\nexport * from './lib/directives/file-upload/qms-file-upload-attachment.model';\r\n\r\n\r\nexport * from './lib/directives/dropdown-menu/dropdown-item.directive';\r\n\r\nexport * from './lib/directives/scrollbar/scrollbar.directive';\r\nexport * from './lib/directives/scroll-selected/scroll-to-selected.directive';\r\n\r\n// export * from './lib/components/substance-conflict/substance-conflict.module';\r\n// export * from './lib/components/substance-conflict/substaince-conflict.base';\r\n// export * from './lib/components/substance-conflict/substance-conflict.component';\r\n\r\nexport * from './lib/components/related/related.module';\r\nexport * from './lib/components/related/tree/tree.component';\r\nexport * from './lib/components/related/common/tree.function';\r\nexport * from './lib/components/related/model/tree-node.model';\r\nexport * from './lib/components/related/model/tree.model';\r\nexport * from './lib/components/related/popup/related-popup.component';\r\nexport * from './lib/components/related/model/popup-data.model';\r\nexport * from './lib/components/related/content/related-content.component';\r\nexport * from './lib/components/related/sidenav/sidenav.component';\r\nexport * from './lib/components/related/model/sidenav.model';\r\nexport * from './lib/components/related/risk/analysis/analysis.component';\r\nexport * from './lib/components/related/model/risk-analysis.model';\r\nexport * from './lib/components/related/model/tree-config.model';\r\nexport * from './lib/components/related/model/risk-danger.model';\r\nexport * from './lib/components/related/risk/result/result.component';\r\nexport * from './lib/components/related/model/risk-result.model';\r\nexport * from './lib/components/related/risk/list/list.component';\r\nexport * from './lib/components/related/list-other-related/list-related.component'\r\nexport * from './lib/components/related/service/related-global.service';\r\nexport * from './lib/components/related/common/qms-icon.const';\r\n/* qms-ckeditor */\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor.module';\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor-base.component';\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor.component';\r\n\r\nexport * from './lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant';\r\nexport * from './lib/qms-ckeditor-components/common/enums/document-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/link-anchor.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/link-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/protocol-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/target-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/module.enum';\r\nexport * from './lib/qms-ckeditor-components/common/functions/common.function';\r\nexport * from './lib/qms-ckeditor-components/common/functions/tree.function';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-dialog.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-link-anchor-document.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-link-attachment.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-relation.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-tree.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-url.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model';\r\nexport * from './lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component';\r\nexport * from './lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component';\r\nexport * from './lib/qms-ckeditor-components/common/toast/qms-ckeditor-toast.service';\r\n\r\nexport * from './lib/qms-ckeditor-components/models/qms-ckeditor-template.model';\r\n\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component';\r\n// export * from './lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component';\r\n\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-global.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-injector.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-base.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckedtior-template.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckedtior-template.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-link.service';\r\n/* Business Process Model and Notation */\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service';\r\nexport * from './lib/qms-ckeditor-components/common/bpmn/inspector.function';\r\nexport * from './lib/qms-ckeditor-components/common/bpmn/toolbar.function';\r\nexport * from './lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const';\r\nexport * from './lib/qms-ckeditor-components/common/enums/flowchart-view-mode.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/related-to-item-type';\r\nexport * from './lib/qms-ckeditor-components/common/helper/guidHelper';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-bpmn.model';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-bpmn-template.model';\r\n\r\nexport * from './lib/directives/text-block/text-block.directive';\r\nexport * from './lib/directives/text-block/text-block-line.directive';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.module';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.model';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.component';\r\n\r\nexport * from './lib/components/dialog/constant';\r\nexport * from './lib/components/dialog/dialog';\r\n\r\nexport * from './lib/directives/side-sheet/drawer.directive';\r\nexport * from './lib/directives/side-sheet/drawer-header.directive';\r\nexport * from './lib/directives/side-sheet/drawer-content.directive';\r\nexport * from './lib/directives/side-sheet/drawer-header-action.directive';\r\nexport * from './lib/directives/tooltip/tooltip-renderer.directive';\r\nexport * from './lib/directives/tooltip/tooltip-image.directive';\r\nexport * from './lib/components/tooltip/tooltip';\r\nexport * from './lib/components/tooltip/tooltip.module';\r\n\r\nexport * from './lib/directives/tab/tab-label.directive';\r\nexport * from './lib/directives/tab/tab-group.directive';\r\nexport * from './lib/directives/tab/tab-group-advanced.directive';\r\n\r\nexport * from './lib/components/banner/qms-banner/qms-banner.module';\r\nexport * from './lib/components/banner/qms-banner/qms-banner.component';\r\nexport * from './lib/components/banner/qms-banner-loading/qms-banner-loading.module';\r\nexport * from './lib/components/banner/qms-banner-loading/qms-banner-loading.component';\r\nexport * from './lib/components/banner/qms-banner-confirm/qms-banner-confirm.module';\r\nexport * from './lib/components/banner/qms-banner-confirm/qms-banner-confirm.component';\r\nexport * from './lib/components/banner/models/qms-banner.model';\r\n\r\nexport * from './lib/components/button/button-toggle';\r\nexport * from './lib/pipe/dateFormat.pipe';\r\n\r\nexport * from './lib/directives/chip-input/chip-input-field.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-field.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-trigger.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-dropdown.directive';\r\nexport * from './lib/directives/chip-input/chip-input-chip-list.directive';\r\nexport * from './lib/components/table/table.module';\r\nexport * from './lib/components/table/table-action';\r\n\r\n\r\nexport * from './lib/components/breadcrumb/breadcrumb';\r\nexport * from './lib/components/breadcrumb/breadcrumb.module';\r\nexport * from './lib/components/breadcrumb/breadcrumb-item.directive';\r\nexport * from './lib/components/breadcrumb/breadcrumb-direction-icon.directive';\r\nexport * from './lib/components/breadcrumb/model/breadcrumb-node.model';\r\n\r\nexport * from './lib/common/qms-icon.const';\r\n\r\nexport * from './lib/components/qms-stepper/qms-stepper.model';\r\nexport * from './lib/components/qms-stepper/qms-stepper.module';\r\nexport * from './lib/components/qms-stepper/qms-stepper.component';\r\nexport * from './lib/components/snackbar/snackbar';\r\n\r\nexport * from './lib/directives/scroll-selected/scroll-to-selected.directive';\r\n\r\nexport * from './lib/components/app-icon/icon-registry.service';\r\nexport * from './lib/components/app-icon/app-icon.module';\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SharedMaterialModule as ɵa} from './lib/material-module';\nexport {QMSCKEditorImageMapComponent as ɵg} from './lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component';\nexport {LinkAttachmentComponent as ɵd} from './lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component';\nexport {QMSCKEditorTemplateComponent as ɵb} from './lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component';\nexport {QMSCKEditorTooltipComponent as ɵe} from './lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component';\nexport {QMSCKEditorImageMap as ɵh} from './lib/qms-ckeditor-components/models/qms-ckeditor-imagemap.model';\nexport {QMSCKEditorTooltip as ɵf} from './lib/qms-ckeditor-components/models/qms-ckeditor-tooltip.model';\nexport {QMSCKEditorTreeService as ɵc} from './lib/qms-ckeditor-components/services/qms-ckeditor-tree.service';"],"names":["TreeNode","objData","buildArrayTree","buildObjectTree","findParent","findChild","CKEditorModule"],"mappings":"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"}
|