@demos-europe/demosplan-ui 0.4.12 → 0.4.13
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/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +10 -0
- package/babel.config.js +9 -9
- package/dist/demosplan-ui.umd.js +1 -1
- package/eslint.config.js +104 -0
- package/jest/shallowMountWithGlobalMocks.js +8 -6
- package/jest.config.js +4 -4
- package/package.json +12 -5
- package/scripts/buildTokens.js +1 -1
- package/scripts/utils/transformTokens.js +2 -2
- package/src/components/DpAccordion/DpAccordion.vue +4 -4
- package/src/components/DpAnonymizeText/DpAnonymizeText.vue +4 -4
- package/src/components/DpBulkEditHeader/DpBulkEditHeader.stories.tsx +1 -1
- package/src/components/DpButton/DpButton.vue +51 -43
- package/src/components/DpButtonIcon/DpButtonIcon.vue +5 -5
- package/src/components/DpButtonRow/DpButtonRow.vue +5 -5
- package/src/components/DpCheckbox/DpCheckbox.vue +2 -2
- package/src/components/DpCheckboxGroup/DpCheckboxGroup.vue +4 -4
- package/src/components/DpColumnSelector/DpColumnSelector.vue +1 -1
- package/src/components/DpContextualHelp/DpContextualHelp.vue +4 -4
- package/src/components/DpDataTable/DpDataTable.vue +53 -49
- package/src/components/DpDataTable/DpResizableColumn.vue +1 -1
- package/src/components/DpDataTable/DpTableHeader.vue +6 -4
- package/src/components/DpDataTable/DpTableRow.vue +1 -1
- package/src/components/DpDataTableExtended/DpDataTableExtended.vue +8 -8
- package/src/components/DpDataTableExtended/DpSelectPageItemCount.vue +2 -2
- package/src/components/DpDatetimePicker/DpDatetimePicker.vue +6 -6
- package/src/components/DpDetails/DpDetails.vue +1 -1
- package/src/components/DpDraggable/DpDraggable.vue +10 -12
- package/src/components/DpEditor/DpEditor.vue +45 -45
- package/src/components/DpEditor/DpResizableImage.vue +6 -6
- package/src/components/DpEditor/DpUploadModal.vue +11 -12
- package/src/components/DpEditor/MentionList.vue +5 -3
- package/src/components/DpEditor/libs/editorObscure.js +2 -2
- package/src/components/DpFlyout/DpFlyout.vue +5 -5
- package/src/components/DpIcon/util/iconConfig.ts +28 -28
- package/src/components/DpInlineNotification/DpInlineNotification.vue +2 -2
- package/src/components/DpLabel/DpLabel.vue +5 -3
- package/src/components/DpModal/DpModal.vue +5 -5
- package/src/components/DpMultiselect/DpMultiselect.vue +23 -25
- package/src/components/DpMultistepNav/DpMultistepNav.vue +2 -2
- package/src/components/DpPager/DpPager.vue +12 -12
- package/src/components/DpResettableInput/DpResettableInput.vue +3 -3
- package/src/components/DpSearchField/DpSearchField.vue +7 -2
- package/src/components/DpSelect/DpSelect.vue +3 -3
- package/src/components/DpSkeletonBox/DpSkeletonBox.vue +1 -1
- package/src/components/DpSlidebar/DpSlidebar.vue +2 -2
- package/src/components/DpSplitButton/DpSplitButton.vue +2 -2
- package/src/components/DpStickyElement/DpStickyElement.vue +1 -1
- package/src/components/DpTabs/DpTabs.vue +1 -1
- package/src/components/DpTextArea/DpTextArea.vue +4 -4
- package/src/components/DpTimePicker/DpTimePicker.vue +14 -14
- package/src/components/DpToggle/DpToggle.vue +1 -1
- package/src/components/DpTooltip/DpTooltip.vue +4 -2
- package/src/components/DpTooltip/utils/tooltip.js +4 -4
- package/src/components/DpTooltipIcon/DpTooltipIcon.vue +2 -2
- package/src/components/DpTransitionExpand/DpTransitionExpand.vue +1 -1
- package/src/components/DpTreeList/DpTreeList.vue +4 -4
- package/src/components/DpTreeList/DpTreeListCheckbox.vue +1 -1
- package/src/components/DpTreeList/DpTreeListNode.vue +12 -12
- package/src/components/DpUploadFiles/DpUpload.vue +2 -2
- package/src/components/DpUploadFiles/DpUploadFiles.vue +10 -10
- package/src/components/DpUploadFiles/DpUploadedFile.vue +6 -6
- package/src/components/DpUploadFiles/DpUploadedFileList.vue +4 -4
- package/src/components/DpVideoPlayer/DpVideoPlayer.vue +7 -7
- package/src/directives/CleanHtml/CleanHtml.js +1 -1
- package/src/directives/Tooltip/Tooltip.js +1 -1
- package/src/lib/ActionMenu.js +48 -48
- package/src/lib/DpApi.js +2 -2
- package/src/lib/FileInfo.js +15 -15
- package/src/lib/validation/utils/assignHandlerForTrigger.js +8 -8
- package/src/lib/validation/utils/assignHandlersForInputs.js +51 -51
- package/src/lib/validation/utils/assignObserver.js +29 -29
- package/src/lib/validation/utils/helpers.js +4 -4
- package/src/lib/validation/utils/validateForm.js +15 -15
- package/src/lib/validation/utils/validateInputField.js +11 -11
- package/src/utils/index.js +2 -2
- package/tokens/dist/js/boxShadow.js +1 -1
- package/tokens/dist/js/breakpoints.js +1 -1
- package/tokens/dist/js/color.brand.js +1 -1
- package/tokens/dist/js/color.data.js +1 -1
- package/tokens/dist/js/color.palette.js +1 -1
- package/tokens/dist/js/color.ui.js +1 -1
- package/tokens/dist/js/fontSize.js +1 -1
- package/tokens/dist/js/rounded.js +1 -1
- package/tokens/dist/js/space.js +1 -1
- package/tokens/dist/js/zIndex.js +1 -1
- package/tokens/dist/scss/_boxShadow.scss +1 -1
- package/tokens/dist/scss/_breakpoints.scss +1 -1
- package/tokens/dist/scss/_color.brand.scss +1 -1
- package/tokens/dist/scss/_color.data.scss +1 -1
- package/tokens/dist/scss/_color.palette.scss +1 -1
- package/tokens/dist/scss/_color.ui.scss +1 -1
- package/tokens/dist/scss/_fontSize.scss +1 -1
- package/tokens/dist/scss/_rounded.scss +1 -1
- package/tokens/dist/scss/_space.scss +1 -1
- package/tokens/dist/scss/_zIndex.scss +1 -1
- package/types/icons.ts +26 -26
- package/coverage/clover.xml +0 -6
- package/coverage/coverage-final.json +0 -1
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/components/DpContextualHelp/DpContextualHelp.vue.html +0 -271
- package/coverage/lcov-report/components/DpContextualHelp/index.html +0 -116
- package/coverage/lcov-report/components/DpDataTableExtended/DataTableSearch.js.html +0 -190
- package/coverage/lcov-report/components/DpDataTableExtended/index.html +0 -116
- package/coverage/lcov-report/components/DpEditor/libs/handleWordPaste.js.html +0 -1138
- package/coverage/lcov-report/components/DpEditor/libs/index.html +0 -116
- package/coverage/lcov-report/components/DpIcon/DpIcon.vue.html +0 -256
- package/coverage/lcov-report/components/DpIcon/index.html +0 -131
- package/coverage/lcov-report/components/DpIcon/index.ts.html +0 -91
- package/coverage/lcov-report/components/DpIcon/util/iconVariables.js.html +0 -682
- package/coverage/lcov-report/components/DpIcon/util/index.html +0 -116
- package/coverage/lcov-report/components/DpTooltip/utils/index.html +0 -116
- package/coverage/lcov-report/components/DpTooltip/utils/tooltip.js.html +0 -490
- package/coverage/lcov-report/components/shared/index.html +0 -116
- package/coverage/lcov-report/components/shared/translations.js.html +0 -490
- package/coverage/lcov-report/directives/CleanHtml/CleanHtml.js.html +0 -265
- package/coverage/lcov-report/directives/CleanHtml/index.html +0 -116
- package/coverage/lcov-report/directives/Tooltip/Tooltip.js.html +0 -349
- package/coverage/lcov-report/directives/Tooltip/index.html +0 -116
- package/coverage/lcov-report/directives/index.html +0 -116
- package/coverage/lcov-report/directives/index.js.html +0 -109
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -101
- package/coverage/lcov-report/jest/index.html +0 -116
- package/coverage/lcov-report/jest/shallowMountWithGlobalMocks.js.html +0 -208
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/src/components/DpCheckbox/DpCheckbox.vue.html +0 -424
- package/coverage/lcov-report/src/components/DpCheckbox/index.html +0 -116
- package/coverage/lcov-report/src/components/DpContextualHelp/DpContextualHelp.vue.html +0 -361
- package/coverage/lcov-report/src/components/DpContextualHelp/index.html +0 -131
- package/coverage/lcov-report/src/components/DpContextualHelp/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpDataTableExtended/DataTableSearch.js.html +0 -190
- package/coverage/lcov-report/src/components/DpDataTableExtended/index.html +0 -116
- package/coverage/lcov-report/src/components/DpDraggable/DpDraggable.vue.html +0 -499
- package/coverage/lcov-report/src/components/DpDraggable/index.html +0 -131
- package/coverage/lcov-report/src/components/DpDraggable/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpEditor/libs/handleWordPaste.js.html +0 -1153
- package/coverage/lcov-report/src/components/DpEditor/libs/index.html +0 -116
- package/coverage/lcov-report/src/components/DpIcon/DpIcon.vue.html +0 -256
- package/coverage/lcov-report/src/components/DpIcon/index.html +0 -131
- package/coverage/lcov-report/src/components/DpIcon/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpIcon/util/iconVariables.js.html +0 -706
- package/coverage/lcov-report/src/components/DpIcon/util/index.html +0 -116
- package/coverage/lcov-report/src/components/DpInput/DpInput.vue.html +0 -937
- package/coverage/lcov-report/src/components/DpInput/index.html +0 -131
- package/coverage/lcov-report/src/components/DpInput/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpLabel/DpLabel.vue.html +0 -409
- package/coverage/lcov-report/src/components/DpLabel/index.html +0 -131
- package/coverage/lcov-report/src/components/DpLabel/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpModal/DpModal.vue.html +0 -739
- package/coverage/lcov-report/src/components/DpModal/index.html +0 -131
- package/coverage/lcov-report/src/components/DpModal/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpNotification/DpNotification.vue.html +0 -343
- package/coverage/lcov-report/src/components/DpNotification/index.html +0 -131
- package/coverage/lcov-report/src/components/DpNotification/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpObscure/DpObscure.vue.html +0 -148
- package/coverage/lcov-report/src/components/DpObscure/index.html +0 -131
- package/coverage/lcov-report/src/components/DpObscure/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpSelect/DpSelect.vue.html +0 -559
- package/coverage/lcov-report/src/components/DpSelect/index.html +0 -131
- package/coverage/lcov-report/src/components/DpSelect/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpTooltip/utils/index.html +0 -116
- package/coverage/lcov-report/src/components/DpTooltip/utils/tooltip.js.html +0 -490
- package/coverage/lcov-report/src/components/DpTreeList/DpTreeList.vue.html +0 -1099
- package/coverage/lcov-report/src/components/DpTreeList/DpTreeListCheckbox.vue.html +0 -301
- package/coverage/lcov-report/src/components/DpTreeList/DpTreeListNode.vue.html +0 -1144
- package/coverage/lcov-report/src/components/DpTreeList/DpTreeListToggle.vue.html +0 -382
- package/coverage/lcov-report/src/components/DpTreeList/index.html +0 -161
- package/coverage/lcov-report/src/components/DpTreeList/utils/constants.js.html +0 -100
- package/coverage/lcov-report/src/components/DpTreeList/utils/index.html +0 -116
- package/coverage/lcov-report/src/components/DpUploadFiles/DpUpload.vue.html +0 -979
- package/coverage/lcov-report/src/components/DpUploadFiles/DpUploadFiles.vue.html +0 -970
- package/coverage/lcov-report/src/components/DpUploadFiles/DpUploadedFile.vue.html +0 -340
- package/coverage/lcov-report/src/components/DpUploadFiles/DpUploadedFileList.vue.html +0 -202
- package/coverage/lcov-report/src/components/DpUploadFiles/index.html +0 -176
- package/coverage/lcov-report/src/components/DpUploadFiles/index.ts.html +0 -91
- package/coverage/lcov-report/src/components/DpUploadFiles/utils/UppyTranslations.js.html +0 -151
- package/coverage/lcov-report/src/components/DpUploadFiles/utils/index.html +0 -116
- package/coverage/lcov-report/src/components/shared/index.html +0 -116
- package/coverage/lcov-report/src/components/shared/translations.js.html +0 -508
- package/coverage/lcov-report/src/directives/CleanHtml/CleanHtml.js.html +0 -265
- package/coverage/lcov-report/src/directives/CleanHtml/index.html +0 -116
- package/coverage/lcov-report/src/directives/Tooltip/Tooltip.js.html +0 -349
- package/coverage/lcov-report/src/directives/Tooltip/index.html +0 -116
- package/coverage/lcov-report/src/directives/index.html +0 -116
- package/coverage/lcov-report/src/directives/index.js.html +0 -109
- package/coverage/lcov-report/src/lib/ActionMenu.js.html +0 -610
- package/coverage/lcov-report/src/lib/Detabinator.js.html +0 -304
- package/coverage/lcov-report/src/lib/DpApi.js.html +0 -748
- package/coverage/lcov-report/src/lib/DpConfirm.js.html +0 -118
- package/coverage/lcov-report/src/lib/DpGetCssVariable.js.html +0 -103
- package/coverage/lcov-report/src/lib/FileInfo.js.html +0 -574
- package/coverage/lcov-report/src/lib/HighlightHashLink.js.html +0 -160
- package/coverage/lcov-report/src/lib/MatchMedia.js.html +0 -220
- package/coverage/lcov-report/src/lib/SideNav.js.html +0 -712
- package/coverage/lcov-report/src/lib/Sticky.js.html +0 -223
- package/coverage/lcov-report/src/lib/TableWrapper.js.html +0 -214
- package/coverage/lcov-report/src/lib/index.html +0 -281
- package/coverage/lcov-report/src/lib/index.js.html +0 -190
- package/coverage/lcov-report/src/lib/validation/utils/assignHandlersForInputs.js.html +0 -400
- package/coverage/lcov-report/src/lib/validation/utils/helpers.js.html +0 -523
- package/coverage/lcov-report/src/lib/validation/utils/index.html +0 -236
- package/coverage/lcov-report/src/lib/validation/utils/validateDatepicker.js.html +0 -160
- package/coverage/lcov-report/src/lib/validation/utils/validateEmail.js.html +0 -136
- package/coverage/lcov-report/src/lib/validation/utils/validateFieldset.js.html +0 -163
- package/coverage/lcov-report/src/lib/validation/utils/validateForm.js.html +0 -205
- package/coverage/lcov-report/src/lib/validation/utils/validateInputField.js.html +0 -403
- package/coverage/lcov-report/src/lib/validation/utils/validateMultiselect.js.html +0 -121
- package/coverage/lcov-report/src/lib/validation/utils/validateTiptap.js.html +0 -160
- package/coverage/lcov-report/src/mixins/dpSelectAllMixin.js.html +0 -232
- package/coverage/lcov-report/src/mixins/dpValidateMixin.js.html +0 -460
- package/coverage/lcov-report/src/mixins/index.html +0 -176
- package/coverage/lcov-report/src/mixins/index.js.html +0 -124
- package/coverage/lcov-report/src/mixins/prefixClassMixin/index.html +0 -116
- package/coverage/lcov-report/src/mixins/prefixClassMixin/prefixClassMixin.js.html +0 -121
- package/coverage/lcov-report/src/mixins/sessionStorageMixin.js.html +0 -160
- package/coverage/lcov-report/src/mixins/tableSelectAllItems.js.html +0 -427
- package/coverage/lcov-report/src/shared/index.html +0 -116
- package/coverage/lcov-report/src/shared/index.js.html +0 -103
- package/coverage/lcov-report/src/shared/props/index.html +0 -116
- package/coverage/lcov-report/src/shared/props/props.js.html +0 -310
- package/coverage/lcov-report/src/utils/date.js.html +0 -208
- package/coverage/lcov-report/src/utils/debounce.js.html +0 -163
- package/coverage/lcov-report/src/utils/deepMerge.js.html +0 -175
- package/coverage/lcov-report/src/utils/formatBytes.js.html +0 -133
- package/coverage/lcov-report/src/utils/formatString.js.html +0 -109
- package/coverage/lcov-report/src/utils/fullscreen.js.html +0 -253
- package/coverage/lcov-report/src/utils/getAnimationEventName.js.html +0 -157
- package/coverage/lcov-report/src/utils/getScrollTop.js.html +0 -109
- package/coverage/lcov-report/src/utils/hasOwnProp.js.html +0 -142
- package/coverage/lcov-report/src/utils/hasPermission.js.html +0 -214
- package/coverage/lcov-report/src/utils/index.html +0 -341
- package/coverage/lcov-report/src/utils/index.js.html +0 -217
- package/coverage/lcov-report/src/utils/lengthHint/index.html +0 -116
- package/coverage/lcov-report/src/utils/lengthHint/lengthHint.js.html +0 -268
- package/coverage/lcov-report/src/utils/prefixClass.js.html +0 -199
- package/coverage/lcov-report/src/utils/resistFingerprintingDuckTest.js.html +0 -232
- package/coverage/lcov-report/src/utils/sortAlphabetically.js.html +0 -193
- package/coverage/lcov-report/src/utils/throttle.js.html +0 -145
- package/coverage/lcov-report/src/utils/uniqueArrayByObjectKey.js.html +0 -151
- package/coverage/lcov-report/utils/date.js.html +0 -208
- package/coverage/lcov-report/utils/debounce.js.html +0 -163
- package/coverage/lcov-report/utils/deepMerge.js.html +0 -175
- package/coverage/lcov-report/utils/formatBytes.js.html +0 -133
- package/coverage/lcov-report/utils/fullscreen.js.html +0 -253
- package/coverage/lcov-report/utils/getAnimationEventName.js.html +0 -157
- package/coverage/lcov-report/utils/getScrollTop.js.html +0 -109
- package/coverage/lcov-report/utils/hasOwnProp.js.html +0 -142
- package/coverage/lcov-report/utils/hasPermission.js.html +0 -214
- package/coverage/lcov-report/utils/index.html +0 -326
- package/coverage/lcov-report/utils/index.js.html +0 -211
- package/coverage/lcov-report/utils/lengthHint/index.html +0 -116
- package/coverage/lcov-report/utils/lengthHint/lengthHint.js.html +0 -268
- package/coverage/lcov-report/utils/prefixClass.js.html +0 -199
- package/coverage/lcov-report/utils/resistFingerprintingDuckTest.js.html +0 -232
- package/coverage/lcov-report/utils/sortAlphabetically.js.html +0 -193
- package/coverage/lcov-report/utils/throttle.js.html +0 -145
- package/coverage/lcov-report/utils/uniqueArrayByObjectKey.js.html +0 -151
- package/coverage/lcov.info +0 -0
- package/style/style.css +0 -1002
|
@@ -1,748 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/lib/DpApi.js</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/lib</a> DpApi.js</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">26.66% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>20/75</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">1.47% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>1/68</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">0% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/15</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">28.98% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>20/69</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line low'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
291
|
-
<span class="cline-any cline-yes">2x</span>
|
|
292
|
-
<span class="cline-any cline-yes">2x</span>
|
|
293
|
-
<span class="cline-any cline-yes">2x</span>
|
|
294
|
-
<span class="cline-any cline-neutral"> </span>
|
|
295
|
-
<span class="cline-any cline-yes">2x</span>
|
|
296
|
-
<span class="cline-any cline-no"> </span>
|
|
297
|
-
<span class="cline-any cline-no"> </span>
|
|
298
|
-
<span class="cline-any cline-neutral"> </span>
|
|
299
|
-
<span class="cline-any cline-no"> </span>
|
|
300
|
-
<span class="cline-any cline-no"> </span>
|
|
301
|
-
<span class="cline-any cline-no"> </span>
|
|
302
|
-
<span class="cline-any cline-neutral"> </span>
|
|
303
|
-
<span class="cline-any cline-neutral"> </span>
|
|
304
|
-
<span class="cline-any cline-neutral"> </span>
|
|
305
|
-
<span class="cline-any cline-yes">2x</span>
|
|
306
|
-
<span class="cline-any cline-neutral"> </span>
|
|
307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
308
|
-
<span class="cline-any cline-neutral"> </span>
|
|
309
|
-
<span class="cline-any cline-neutral"> </span>
|
|
310
|
-
<span class="cline-any cline-yes">2x</span>
|
|
311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
312
|
-
<span class="cline-any cline-neutral"> </span>
|
|
313
|
-
<span class="cline-any cline-neutral"> </span>
|
|
314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
315
|
-
<span class="cline-any cline-neutral"> </span>
|
|
316
|
-
<span class="cline-any cline-yes">2x</span>
|
|
317
|
-
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-neutral"> </span>
|
|
319
|
-
<span class="cline-any cline-neutral"> </span>
|
|
320
|
-
<span class="cline-any cline-yes">2x</span>
|
|
321
|
-
<span class="cline-any cline-no"> </span>
|
|
322
|
-
<span class="cline-any cline-neutral"> </span>
|
|
323
|
-
<span class="cline-any cline-neutral"> </span>
|
|
324
|
-
<span class="cline-any cline-neutral"> </span>
|
|
325
|
-
<span class="cline-any cline-neutral"> </span>
|
|
326
|
-
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-neutral"> </span>
|
|
328
|
-
<span class="cline-any cline-yes">2x</span>
|
|
329
|
-
<span class="cline-any cline-no"> </span>
|
|
330
|
-
<span class="cline-any cline-no"> </span>
|
|
331
|
-
<span class="cline-any cline-neutral"> </span>
|
|
332
|
-
<span class="cline-any cline-no"> </span>
|
|
333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
334
|
-
<span class="cline-any cline-neutral"> </span>
|
|
335
|
-
<span class="cline-any cline-no"> </span>
|
|
336
|
-
<span class="cline-any cline-neutral"> </span>
|
|
337
|
-
<span class="cline-any cline-neutral"> </span>
|
|
338
|
-
<span class="cline-any cline-yes">2x</span>
|
|
339
|
-
<span class="cline-any cline-no"> </span>
|
|
340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-neutral"> </span>
|
|
343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-no"> </span>
|
|
345
|
-
<span class="cline-any cline-no"> </span>
|
|
346
|
-
<span class="cline-any cline-no"> </span>
|
|
347
|
-
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-no"> </span>
|
|
349
|
-
<span class="cline-any cline-neutral"> </span>
|
|
350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
351
|
-
<span class="cline-any cline-no"> </span>
|
|
352
|
-
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
354
|
-
<span class="cline-any cline-no"> </span>
|
|
355
|
-
<span class="cline-any cline-no"> </span>
|
|
356
|
-
<span class="cline-any cline-no"> </span>
|
|
357
|
-
<span class="cline-any cline-no"> </span>
|
|
358
|
-
<span class="cline-any cline-no"> </span>
|
|
359
|
-
<span class="cline-any cline-neutral"> </span>
|
|
360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
361
|
-
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
364
|
-
<span class="cline-any cline-no"> </span>
|
|
365
|
-
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
368
|
-
<span class="cline-any cline-neutral"> </span>
|
|
369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-no"> </span>
|
|
373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-no"> </span>
|
|
375
|
-
<span class="cline-any cline-neutral"> </span>
|
|
376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
381
|
-
<span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-yes">2x</span>
|
|
383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
384
|
-
<span class="cline-any cline-yes">2x</span>
|
|
385
|
-
<span class="cline-any cline-yes">2x</span>
|
|
386
|
-
<span class="cline-any cline-yes">2x</span>
|
|
387
|
-
<span class="cline-any cline-yes">2x</span>
|
|
388
|
-
<span class="cline-any cline-yes">2x</span>
|
|
389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-neutral"> </span>
|
|
393
|
-
<span class="cline-any cline-neutral"> </span>
|
|
394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
396
|
-
<span class="cline-any cline-neutral"> </span>
|
|
397
|
-
<span class="cline-any cline-neutral"> </span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-yes">2x</span>
|
|
400
|
-
<span class="cline-any cline-no"> </span>
|
|
401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
404
|
-
<span class="cline-any cline-neutral"> </span>
|
|
405
|
-
<span class="cline-any cline-neutral"> </span>
|
|
406
|
-
<span class="cline-any cline-neutral"> </span>
|
|
407
|
-
<span class="cline-any cline-no"> </span>
|
|
408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-yes">2x</span>
|
|
421
|
-
<span class="cline-any cline-no"> </span>
|
|
422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
424
|
-
<span class="cline-any cline-neutral"> </span>
|
|
425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-neutral"> </span>
|
|
427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
430
|
-
<span class="cline-any cline-yes">2x</span>
|
|
431
|
-
<span class="cline-any cline-no"> </span>
|
|
432
|
-
<span class="cline-any cline-no"> </span>
|
|
433
|
-
<span class="cline-any cline-no"> </span>
|
|
434
|
-
<span class="cline-any cline-no"> </span>
|
|
435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-neutral"> </span>
|
|
439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
444
|
-
<span class="cline-any cline-neutral"> </span>
|
|
445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
458
|
-
<span class="cline-any cline-yes">2x</span>
|
|
459
|
-
<span class="cline-any cline-no"> </span>
|
|
460
|
-
<span class="cline-any cline-no"> </span>
|
|
461
|
-
<span class="cline-any cline-no"> </span>
|
|
462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
466
|
-
<span class="cline-any cline-no"> </span>
|
|
467
|
-
<span class="cline-any cline-no"> </span>
|
|
468
|
-
<span class="cline-any cline-no"> </span>
|
|
469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
473
|
-
<span class="cline-any cline-no"> </span>
|
|
474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
476
|
-
<span class="cline-any cline-no"> </span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-no"> </span>
|
|
479
|
-
<span class="cline-any cline-no"> </span>
|
|
480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
481
|
-
<span class="cline-any cline-no"> </span>
|
|
482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
484
|
-
<span class="cline-any cline-no"> </span>
|
|
485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
490
|
-
<span class="cline-any cline-no"> </span>
|
|
491
|
-
<span class="cline-any cline-neutral"> </span>
|
|
492
|
-
<span class="cline-any cline-no"> </span>
|
|
493
|
-
<span class="cline-any cline-no"> </span>
|
|
494
|
-
<span class="cline-any cline-no"> </span>
|
|
495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
496
|
-
<span class="cline-any cline-no"> </span>
|
|
497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
500
|
-
<span class="cline-any cline-no"> </span>
|
|
501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
505
|
-
<span class="cline-any cline-neutral"> </span>
|
|
506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import hasOwnProp from '../utils/hasOwnProp'
|
|
509
|
-
import { stringify } from 'qs'
|
|
510
|
-
import { v4 as uuid } from 'uuid'
|
|
511
|
-
|
|
512
|
-
let currentProcedureId = null
|
|
513
|
-
let jwtToken = null
|
|
514
|
-
let csrfToken = null
|
|
515
|
-
|
|
516
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (typeof dplan !== 'undefined') {
|
|
517
|
-
<span class="cstat-no" title="statement not covered" > if (hasOwnProp(dplan, 'procedureId')) {</span>
|
|
518
|
-
<span class="cstat-no" title="statement not covered" > currentProcedureId = dplan.procedureId</span>
|
|
519
|
-
}
|
|
520
|
-
<span class="cstat-no" title="statement not covered" > if (hasOwnProp(dplan, 'jwtToken')) {</span>
|
|
521
|
-
<span class="cstat-no" title="statement not covered" > jwtToken = dplan.jwtToken</span>
|
|
522
|
-
<span class="cstat-no" title="statement not covered" > csrfToken = dplan.csrfToken</span>
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
const apiDefaultHeaders = {
|
|
527
|
-
'X-JWT-Authorization': 'Bearer ' + jwtToken,
|
|
528
|
-
'x-csrf-token': csrfToken
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
const api2defaultHeaders = {
|
|
532
|
-
'Accept': 'application/vnd.api+json',
|
|
533
|
-
'Content-Type': 'application/vnd.api+json',
|
|
534
|
-
'X-JWT-Authorization': 'Bearer ' + jwtToken
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
const demosplanProcedureHeaders = {
|
|
538
|
-
'X-Demosplan-Procedure-Id': currentProcedureId
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
const getHeaders = <span class="fstat-no" title="function not covered" >fu</span>nction ({ headers, url }) {
|
|
542
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
543
|
-
...(url.includes('api/2.0/') ? api2defaultHeaders : apiDefaultHeaders),
|
|
544
|
-
...(currentProcedureId !== null ? demosplanProcedureHeaders : {}),
|
|
545
|
-
...headers
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
const appendSerializedUrlParams = <span class="fstat-no" title="function not covered" >(u</span>rl, params) => {
|
|
550
|
-
<span class="cstat-no" title="statement not covered" > if (!params || Object.keys(params).length === 0) {</span>
|
|
551
|
-
<span class="cstat-no" title="statement not covered" > return url</span>
|
|
552
|
-
}
|
|
553
|
-
<span class="cstat-no" title="statement not covered" > params = stringify(params, { encodeValuesOnly: true, arrayFormat: 'brackets' })</span>
|
|
554
|
-
|
|
555
|
-
// Url params may be already appended before passing it to dpApi, this must be handled accordingly.
|
|
556
|
-
<span class="cstat-no" title="statement not covered" > return url.includes('?') ? `${url}&${params}` : `${url}?${params}`</span>
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
const doRequest = (<span class="fstat-no" title="function not covered" >as</span>ync ({ method = <span class="branch-0 cbranch-no" title="branch not covered" >'GET',</span> url, data = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span> headers, params }) => {
|
|
560
|
-
const fetchOptions = <span class="cstat-no" title="statement not covered" >{</span>
|
|
561
|
-
headers: getHeaders({ headers, url }),
|
|
562
|
-
method
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
<span class="cstat-no" title="statement not covered" > if (method.toUpperCase() !== 'GET') {</span>
|
|
566
|
-
<span class="cstat-no" title="statement not covered" > if (data instanceof FormData) {</span>
|
|
567
|
-
<span class="cstat-no" title="statement not covered" > fetchOptions.body = data</span>
|
|
568
|
-
} else {
|
|
569
|
-
<span class="cstat-no" title="statement not covered" > fetchOptions.body = JSON.stringify(data)</span>
|
|
570
|
-
}
|
|
571
|
-
} else {
|
|
572
|
-
<span class="cstat-no" title="statement not covered" > url = appendSerializedUrlParams(url, params)</span>
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
576
|
-
const response = <span class="cstat-no" title="statement not covered" >await fetch(url, fetchOptions)</span>
|
|
577
|
-
const contentTypeHeader = <span class="cstat-no" title="statement not covered" >response.headers.get('Content-Type')</span>
|
|
578
|
-
const contentType = <span class="cstat-no" title="statement not covered" >contentTypeHeader ? contentTypeHeader.toLowerCase() : ''</span>
|
|
579
|
-
const content = <span class="cstat-no" title="statement not covered" >contentType.includes('json')</span>
|
|
580
|
-
? await response.json()
|
|
581
|
-
: contentType.includes('text')
|
|
582
|
-
? await response.text()
|
|
583
|
-
: null
|
|
584
|
-
|
|
585
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
586
|
-
data: content,
|
|
587
|
-
status: response.status,
|
|
588
|
-
ok: response.ok,
|
|
589
|
-
statusText: response.statusText,
|
|
590
|
-
url: response.url
|
|
591
|
-
}
|
|
592
|
-
} catch (error) {
|
|
593
|
-
<span class="cstat-no" title="statement not covered" > console.error('DpAPI[doRequest] failed: ', error, 'fetchOptions: ', fetchOptions)</span>
|
|
594
|
-
|
|
595
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
596
|
-
data: null,
|
|
597
|
-
status: '400',
|
|
598
|
-
ok: 'Bad Request'
|
|
599
|
-
}
|
|
600
|
-
}
|
|
601
|
-
})
|
|
602
|
-
|
|
603
|
-
const dpApi = doRequest
|
|
604
|
-
|
|
605
|
-
dpApi.post = <span class="fstat-no" title="function not covered" >(u</span>rl, params = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span> data = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> => <span class="cstat-no" title="statement not covered" >doRequest({ method: 'POST', url, data, params })</span>
|
|
606
|
-
dpApi.get = <span class="fstat-no" title="function not covered" >(u</span>rl, params = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> => <span class="cstat-no" title="statement not covered" >doRequest({ method: 'GET', url, params })</span>
|
|
607
|
-
dpApi.put = <span class="fstat-no" title="function not covered" >(u</span>rl, params = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span> data = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> => <span class="cstat-no" title="statement not covered" >doRequest({ method: 'PUT', url, data, params })</span>
|
|
608
|
-
dpApi.patch = <span class="fstat-no" title="function not covered" >(u</span>rl, params = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span> data = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> => <span class="cstat-no" title="statement not covered" >doRequest({ method: 'PATCH', url, data, params })</span>
|
|
609
|
-
dpApi.delete = <span class="fstat-no" title="function not covered" >(u</span>rl, params = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span> data = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> => <span class="cstat-no" title="statement not covered" >doRequest({ method: 'DELETE', url, params })</span>
|
|
610
|
-
|
|
611
|
-
/**
|
|
612
|
-
* Submit a request to the rpc_generic_post API, which implements JSON-RPC 2.0.
|
|
613
|
-
*
|
|
614
|
-
* @param {string} method This is the RPC method (aka. action) to be invoked,
|
|
615
|
-
* not the Http request method (which is "POST" in any case).
|
|
616
|
-
* @param {object} params Data to be used by the RPC method.
|
|
617
|
-
* @param {string|null} id Request id. Optional, defaults to a UUID v4.
|
|
618
|
-
* @return {Promise}
|
|
619
|
-
*/
|
|
620
|
-
const dpRpc = <span class="fstat-no" title="function not covered" >fu</span>nction (method, params, id = <span class="branch-0 cbranch-no" title="branch not covered" >null)</span> {
|
|
621
|
-
const data = <span class="cstat-no" title="statement not covered" >{</span>
|
|
622
|
-
jsonrpc: '2.0',
|
|
623
|
-
method,
|
|
624
|
-
params,
|
|
625
|
-
id: id === null ? uuid() : id
|
|
626
|
-
}
|
|
627
|
-
|
|
628
|
-
<span class="cstat-no" title="statement not covered" > return doRequest({</span>
|
|
629
|
-
method: 'POST',
|
|
630
|
-
url: Routing.generate('rpc_generic_post'),
|
|
631
|
-
data,
|
|
632
|
-
headers: {
|
|
633
|
-
'Content-Type': 'application/json'
|
|
634
|
-
}
|
|
635
|
-
})
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
/**
|
|
639
|
-
* Perform an external API call without any default headers
|
|
640
|
-
*/
|
|
641
|
-
const externalApi = <span class="fstat-no" title="function not covered" >as</span>ync (url, data) => {
|
|
642
|
-
<span class="cstat-no" title="statement not covered" > return await fetch(url, data)</span>
|
|
643
|
-
}
|
|
644
|
-
|
|
645
|
-
/**
|
|
646
|
-
* Turn messages into notifications
|
|
647
|
-
*
|
|
648
|
-
* @param responseMeta
|
|
649
|
-
* @return {boolean}
|
|
650
|
-
*/
|
|
651
|
-
const handleResponseMessages = <span class="fstat-no" title="function not covered" >fu</span>nction (responseMeta) {
|
|
652
|
-
<span class="cstat-no" title="statement not covered" > if (hasOwnProp(responseMeta, 'messages')) {</span>
|
|
653
|
-
<span class="cstat-no" title="statement not covered" > for (const type in responseMeta.messages) {</span>
|
|
654
|
-
<span class="cstat-no" title="statement not covered" > for (const message in responseMeta.messages[type]) {</span>
|
|
655
|
-
<span class="cstat-no" title="statement not covered" > dplan.notify.notify(type, Translator.trans(responseMeta.messages[type][message]))</span>
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
/**
|
|
662
|
-
* Perform rudimentary response validation, handle response messages.
|
|
663
|
-
*
|
|
664
|
-
* @param {Object} response
|
|
665
|
-
* The response provided by the fetch API.
|
|
666
|
-
* See https://developer.mozilla.org/en-US/docs/Web/API/Response
|
|
667
|
-
* @param {Object} [messages]
|
|
668
|
-
* Define messages to display with response codes that are expected to be returned
|
|
669
|
-
* from a certain endpoint.
|
|
670
|
-
* @param {Object} messages[(200|201|202|204)]
|
|
671
|
-
* The response status code this particular message should be displayed with is represented
|
|
672
|
-
* by the key of the respective property.
|
|
673
|
-
* @param {String} messages[(200|201|202|204)].text
|
|
674
|
-
* The actual text of the message.
|
|
675
|
-
* @param {String} messages[(200|201|202|204)].type
|
|
676
|
-
* The message type (may be 'confirm', 'error', 'info', or 'warning').
|
|
677
|
-
* @return {Promise<any>}
|
|
678
|
-
*/
|
|
679
|
-
const checkResponse = <span class="fstat-no" title="function not covered" >fu</span>nction (response, messages) {
|
|
680
|
-
<span class="cstat-no" title="statement not covered" > return new Promise(<span class="fstat-no" title="function not covered" >(r</span>esolve, reject) => {</span>
|
|
681
|
-
<span class="cstat-no" title="statement not covered" > if (hasOwnProp(response, 'data') && response.data && hasOwnProp(response.data, 'meta')) {</span>
|
|
682
|
-
<span class="cstat-no" title="statement not covered" > handleResponseMessages(response.data.meta)</span>
|
|
683
|
-
/*
|
|
684
|
-
* Sometimes we get response with status 400 and to display the error messages hidden there we have
|
|
685
|
-
* to pass response.meta (and not response.data.meta as above) to the messages handler
|
|
686
|
-
*/
|
|
687
|
-
} else <span class="cstat-no" title="statement not covered" >if (dplan !== undefined && dplan.debug && hasOwnProp(response, 'errors') && hasOwnProp(response, 'meta') && hasOwnProp(response.meta, 'messages')) {</span>
|
|
688
|
-
<span class="cstat-no" title="statement not covered" > handleResponseMessages(response.meta)</span>
|
|
689
|
-
} else <span class="cstat-no" title="statement not covered" >if (messages && hasOwnProp(messages, response.status)) {</span>
|
|
690
|
-
/*
|
|
691
|
-
* The generic api (/api/2.0/{resourceType}) does not specify success messages.
|
|
692
|
-
* Instead, custom messages passed by the calling component are displayed here.
|
|
693
|
-
*/
|
|
694
|
-
<span class="cstat-no" title="statement not covered" > dplan.notify.notify(messages[response.status].type, Translator.trans(messages[response.status].text))</span>
|
|
695
|
-
}
|
|
696
|
-
|
|
697
|
-
<span class="cstat-no" title="statement not covered" > if (response.status >= 400) {</span>
|
|
698
|
-
// @improve handle 404, 500 specially?
|
|
699
|
-
<span class="cstat-no" title="statement not covered" > reject(response.data)</span>
|
|
700
|
-
} else <span class="cstat-no" title="statement not covered" >if (response.status >= 200 && response.status < 400) {</span>
|
|
701
|
-
// Got data!
|
|
702
|
-
<span class="cstat-no" title="statement not covered" > resolve(response.data ? response.data : null)</span>
|
|
703
|
-
} else {
|
|
704
|
-
// Got no data
|
|
705
|
-
<span class="cstat-no" title="statement not covered" > resolve(null)</span>
|
|
706
|
-
}
|
|
707
|
-
})
|
|
708
|
-
}
|
|
709
|
-
|
|
710
|
-
function <span class="fstat-no" title="function not covered" >makeFormPost </span>(payload, url) {
|
|
711
|
-
const postData = <span class="cstat-no" title="statement not covered" >new FormData()</span>
|
|
712
|
-
|
|
713
|
-
<span class="cstat-no" title="statement not covered" > for (const [key, value] of Object.entries(payload)) {</span>
|
|
714
|
-
<span class="cstat-no" title="statement not covered" > if (Array.isArray(value)) {</span>
|
|
715
|
-
<span class="cstat-no" title="statement not covered" > value.forEach(<span class="fstat-no" title="function not covered" >el</span> => <span class="cstat-no" title="statement not covered" >postData.append(key + '[]', el))</span></span>
|
|
716
|
-
} else {
|
|
717
|
-
<span class="cstat-no" title="statement not covered" > postData.append(key, value)</span>
|
|
718
|
-
}
|
|
719
|
-
}
|
|
720
|
-
|
|
721
|
-
<span class="cstat-no" title="statement not covered" > return dpApi({</span>
|
|
722
|
-
method: 'POST',
|
|
723
|
-
url: url,
|
|
724
|
-
data: postData
|
|
725
|
-
})
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
export { dpApi, handleResponseMessages, checkResponse, dpRpc, makeFormPost, externalApi }
|
|
729
|
-
</pre></td></tr></table></pre>
|
|
730
|
-
|
|
731
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
732
|
-
</div><!-- /wrapper -->
|
|
733
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
734
|
-
Code coverage generated by
|
|
735
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
736
|
-
at 2024-12-02T14:13:18.182Z
|
|
737
|
-
</div>
|
|
738
|
-
<script src="../../prettify.js"></script>
|
|
739
|
-
<script>
|
|
740
|
-
window.onload = function () {
|
|
741
|
-
prettyPrint();
|
|
742
|
-
};
|
|
743
|
-
</script>
|
|
744
|
-
<script src="../../sorter.js"></script>
|
|
745
|
-
<script src="../../block-navigation.js"></script>
|
|
746
|
-
</body>
|
|
747
|
-
</html>
|
|
748
|
-
|