apostrophe 2.220.9 → 2.221.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nyc_output/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +1 -0
- package/.nyc_output/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +1 -0
- package/.nyc_output/99acae99-becc-463d-ba35-9333f88d2694.json +1 -0
- package/.nyc_output/d071f9e0-3b11-44e6-9817-69f184dd064d.json +1 -0
- package/.nyc_output/ed000bec-7ff7-49bf-a109-d17bfe883433.json +1 -0
- package/.nyc_output/processinfo/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +1 -0
- package/.nyc_output/processinfo/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +1 -0
- package/.nyc_output/processinfo/99acae99-becc-463d-ba35-9333f88d2694.json +1 -0
- package/.nyc_output/processinfo/d071f9e0-3b11-44e6-9817-69f184dd064d.json +1 -0
- package/.nyc_output/processinfo/ed000bec-7ff7-49bf-a109-d17bfe883433.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -0
- package/CHANGELOG.md +12 -0
- package/coverage/a3/defaults.js.html +253 -0
- package/coverage/a3/index.html +131 -0
- package/coverage/a3/index.js.html +2338 -0
- package/coverage/a3/lib/escape-host.js.html +109 -0
- package/coverage/a3/lib/index.html +176 -0
- package/coverage/a3/lib/mongodb-connect.js.html +250 -0
- package/coverage/a3/lib/moog-require.js.html +790 -0
- package/coverage/a3/lib/moog.js.html +1711 -0
- package/coverage/a3/lib/opentelemetry.js.html +517 -0
- package/coverage/a3/modules/@apostrophecms/admin-bar/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/admin-bar/index.js.html +931 -0
- package/coverage/a3/modules/@apostrophecms/any-doc-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/any-doc-type/index.js.html +115 -0
- package/coverage/a3/modules/@apostrophecms/any-page-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/any-page-type/index.js.html +1105 -0
- package/coverage/a3/modules/@apostrophecms/archive-page/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/archive-page/index.js.html +97 -0
- package/coverage/a3/modules/@apostrophecms/area/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/area/index.js.html +2104 -0
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/area.js.html +469 -0
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/widget.js.html +286 -0
- package/coverage/a3/modules/@apostrophecms/asset/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/asset/index.js.html +3982 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/globalIcons.js.html +346 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.scss.js.html +289 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.vue.js.html +148 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.es5.js.html +184 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.scss.js.html +238 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/utils.js.html +958 -0
- package/coverage/a3/modules/@apostrophecms/attachment/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/attachment/index.js.html +3676 -0
- package/coverage/a3/modules/@apostrophecms/attachment/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/attachment/lib/legacy-migrations.js.html +205 -0
- package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/rescale.js.html +328 -0
- package/coverage/a3/modules/@apostrophecms/busy/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/busy/index.js.html +145 -0
- package/coverage/a3/modules/@apostrophecms/cache/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/cache/index.js.html +424 -0
- package/coverage/a3/modules/@apostrophecms/db/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/db/index.js.html +640 -0
- package/coverage/a3/modules/@apostrophecms/doc/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/doc/index.js.html +3937 -0
- package/coverage/a3/modules/@apostrophecms/doc/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/doc/lib/legacy-migrations.js.html +622 -0
- package/coverage/a3/modules/@apostrophecms/doc-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/doc-type/index.js.html +8638 -0
- package/coverage/a3/modules/@apostrophecms/doc-type/lib/autocomplete.js.html +319 -0
- package/coverage/a3/modules/@apostrophecms/doc-type/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/email/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/email/index.js.html +301 -0
- package/coverage/a3/modules/@apostrophecms/error/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/error/index.js.html +202 -0
- package/coverage/a3/modules/@apostrophecms/express/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/express/index.js.html +2116 -0
- package/coverage/a3/modules/@apostrophecms/file/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/file/index.js.html +367 -0
- package/coverage/a3/modules/@apostrophecms/file-tag/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/file-tag/index.js.html +127 -0
- package/coverage/a3/modules/@apostrophecms/global/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/global/index.js.html +535 -0
- package/coverage/a3/modules/@apostrophecms/home-page/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/home-page/index.js.html +94 -0
- package/coverage/a3/modules/@apostrophecms/html-widget/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/html-widget/index.js.html +271 -0
- package/coverage/a3/modules/@apostrophecms/http/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/http/index.js.html +976 -0
- package/coverage/a3/modules/@apostrophecms/i18n/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/i18n/index.js.html +2083 -0
- package/coverage/a3/modules/@apostrophecms/image/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/image/index.js.html +1486 -0
- package/coverage/a3/modules/@apostrophecms/image-tag/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/image-tag/index.js.html +127 -0
- package/coverage/a3/modules/@apostrophecms/image-widget/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/image-widget/index.js.html +145 -0
- package/coverage/a3/modules/@apostrophecms/job/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/job/index.js.html +1321 -0
- package/coverage/a3/modules/@apostrophecms/launder/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/launder/index.js.html +124 -0
- package/coverage/a3/modules/@apostrophecms/lock/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/lock/index.js.html +676 -0
- package/coverage/a3/modules/@apostrophecms/login/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/login/index.js.html +2617 -0
- package/coverage/a3/modules/@apostrophecms/migration/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/migration/index.js.html +970 -0
- package/coverage/a3/modules/@apostrophecms/modal/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/modal/index.js.html +193 -0
- package/coverage/a3/modules/@apostrophecms/module/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/module/index.js.html +2500 -0
- package/coverage/a3/modules/@apostrophecms/module/lib/events.js.html +547 -0
- package/coverage/a3/modules/@apostrophecms/module/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/notification/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/notification/index.js.html +1315 -0
- package/coverage/a3/modules/@apostrophecms/oembed/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/oembed/index.js.html +781 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/index.html +161 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/infogram.js.html +178 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/vimeo.js.html +124 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/wufoo.js.html +256 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/youtube.js.html +322 -0
- package/coverage/a3/modules/@apostrophecms/oembed-field/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/oembed-field/index.js.html +268 -0
- package/coverage/a3/modules/@apostrophecms/page/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/page/index.js.html +6955 -0
- package/coverage/a3/modules/@apostrophecms/page/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/page/lib/legacy-migrations.js.html +568 -0
- package/coverage/a3/modules/@apostrophecms/page-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/page-type/index.js.html +1501 -0
- package/coverage/a3/modules/@apostrophecms/pager/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/pager/index.js.html +232 -0
- package/coverage/a3/modules/@apostrophecms/permission/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/permission/index.js.html +1057 -0
- package/coverage/a3/modules/@apostrophecms/permission/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/permission/lib/legacy-migrations.js.html +160 -0
- package/coverage/a3/modules/@apostrophecms/piece-page-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/piece-page-type/index.js.html +1051 -0
- package/coverage/a3/modules/@apostrophecms/piece-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/piece-type/index.js.html +3103 -0
- package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.js.html +157 -0
- package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.js.html +1363 -0
- package/coverage/a3/modules/@apostrophecms/schema/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/schema/index.js.html +4603 -0
- package/coverage/a3/modules/@apostrophecms/schema/lib/addFieldTypes.js.html +3502 -0
- package/coverage/a3/modules/@apostrophecms/schema/lib/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/schema/lib/joinr.js.html +703 -0
- package/coverage/a3/modules/@apostrophecms/search/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/search/index.js.html +1222 -0
- package/coverage/a3/modules/@apostrophecms/soft-redirect/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/soft-redirect/index.js.html +343 -0
- package/coverage/a3/modules/@apostrophecms/submitted-draft/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/submitted-draft/index.js.html +595 -0
- package/coverage/a3/modules/@apostrophecms/task/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/task/index.js.html +1147 -0
- package/coverage/a3/modules/@apostrophecms/template/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/template/index.js.html +2731 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/bundlesLoader.js.html +559 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/component.js.html +310 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/fragment.js.html +325 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/index.html +146 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/render.js.html +490 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/nunjucksLoader.js.html +658 -0
- package/coverage/a3/modules/@apostrophecms/ui/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/ui/index.js.html +181 -0
- package/coverage/a3/modules/@apostrophecms/uploadfs/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/uploadfs/index.js.html +286 -0
- package/coverage/a3/modules/@apostrophecms/url/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/url/index.js.html +733 -0
- package/coverage/a3/modules/@apostrophecms/user/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/user/index.js.html +1684 -0
- package/coverage/a3/modules/@apostrophecms/user/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/user/lib/legacy-migrations.js.html +157 -0
- package/coverage/a3/modules/@apostrophecms/util/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/util/index.js.html +3424 -0
- package/coverage/a3/modules/@apostrophecms/util/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/util/lib/logger.js.html +319 -0
- package/coverage/a3/modules/@apostrophecms/video-widget/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/video-widget/index.js.html +178 -0
- package/coverage/a3/modules/@apostrophecms/widget-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/widget-type/index.js.html +1225 -0
- package/coverage/a3/test-lib/index.html +131 -0
- package/coverage/a3/test-lib/test.js.html +232 -0
- package/coverage/a3/test-lib/util.js.html +373 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +1256 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/lib/modules/apostrophe-assets/index.js +3 -1
- package/lib/modules/apostrophe-pages/lib/api.js +8 -6
- package/package.json +1 -1
- package/test/package.json +0 -75
|
@@ -0,0 +1,931 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for a3/modules/@apostrophecms/admin-bar/index.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">a3/modules/@apostrophecms/admin-bar</a> index.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">73.25% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>63/86</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">68.11% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>47/69</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">88.23% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>15/17</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">73.25% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>63/86</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 oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line medium'></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>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-yes">90x</span>
|
|
355
|
+
<span class="cline-any cline-yes">90x</span>
|
|
356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
357
|
+
<span class="cline-any cline-yes">90x</span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </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-yes">90x</span>
|
|
365
|
+
<span class="cline-any cline-yes">90x</span>
|
|
366
|
+
<span class="cline-any cline-yes">90x</span>
|
|
367
|
+
<span class="cline-any cline-yes">90x</span>
|
|
368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
370
|
+
<span class="cline-any cline-yes">90x</span>
|
|
371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
373
|
+
<span class="cline-any cline-yes">90x</span>
|
|
374
|
+
<span class="cline-any cline-yes">90x</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-yes">90x</span>
|
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
383
|
+
<span class="cline-any cline-neutral"> </span>
|
|
384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </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-neutral"> </span>
|
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
|
422
|
+
<span class="cline-any cline-neutral"> </span>
|
|
423
|
+
<span class="cline-any cline-neutral"> </span>
|
|
424
|
+
<span class="cline-any cline-yes">576x</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-neutral"> </span>
|
|
431
|
+
<span class="cline-any cline-yes">576x</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-no"> </span>
|
|
436
|
+
<span class="cline-any cline-neutral"> </span>
|
|
437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
438
|
+
<span class="cline-any cline-yes">576x</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-yes">29x</span>
|
|
444
|
+
<span class="cline-any cline-yes">29x</span>
|
|
445
|
+
<span class="cline-any cline-no"> </span>
|
|
446
|
+
<span class="cline-any cline-neutral"> </span>
|
|
447
|
+
<span class="cline-any cline-yes">29x</span>
|
|
448
|
+
<span class="cline-any cline-yes">188x</span>
|
|
449
|
+
<span class="cline-any cline-neutral"> </span>
|
|
450
|
+
<span class="cline-any cline-yes">29x</span>
|
|
451
|
+
<span class="cline-any cline-yes">1x</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-yes">28x</span>
|
|
457
|
+
<span class="cline-any cline-yes">28x</span>
|
|
458
|
+
<span class="cline-any cline-yes">28x</span>
|
|
459
|
+
<span class="cline-any cline-yes">177x</span>
|
|
460
|
+
<span class="cline-any cline-neutral"> </span>
|
|
461
|
+
<span class="cline-any cline-neutral"> </span>
|
|
462
|
+
<span class="cline-any cline-no"> </span>
|
|
463
|
+
<span class="cline-any cline-no"> </span>
|
|
464
|
+
<span class="cline-any cline-no"> </span>
|
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
466
|
+
<span class="cline-any cline-no"> </span>
|
|
467
|
+
<span class="cline-any cline-neutral"> </span>
|
|
468
|
+
<span class="cline-any cline-neutral"> </span>
|
|
469
|
+
<span class="cline-any cline-neutral"> </span>
|
|
470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
471
|
+
<span class="cline-any cline-yes">177x</span>
|
|
472
|
+
<span class="cline-any cline-no"> </span>
|
|
473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
474
|
+
<span class="cline-any cline-neutral"> </span>
|
|
475
|
+
<span class="cline-any cline-neutral"> </span>
|
|
476
|
+
<span class="cline-any cline-neutral"> </span>
|
|
477
|
+
<span class="cline-any cline-neutral"> </span>
|
|
478
|
+
<span class="cline-any cline-no"> </span>
|
|
479
|
+
<span class="cline-any cline-neutral"> </span>
|
|
480
|
+
<span class="cline-any cline-yes">177x</span>
|
|
481
|
+
<span class="cline-any cline-neutral"> </span>
|
|
482
|
+
<span class="cline-any cline-neutral"> </span>
|
|
483
|
+
<span class="cline-any cline-yes">28x</span>
|
|
484
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
491
|
+
<span class="cline-any cline-neutral"> </span>
|
|
492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
494
|
+
<span class="cline-any cline-neutral"> </span>
|
|
495
|
+
<span class="cline-any cline-yes">90x</span>
|
|
496
|
+
<span class="cline-any cline-yes">90x</span>
|
|
497
|
+
<span class="cline-any cline-yes">90x</span>
|
|
498
|
+
<span class="cline-any cline-yes">576x</span>
|
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
500
|
+
<span class="cline-any cline-yes">90x</span>
|
|
501
|
+
<span class="cline-any cline-yes">90x</span>
|
|
502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
503
|
+
<span class="cline-any cline-no"> </span>
|
|
504
|
+
<span class="cline-any cline-no"> </span>
|
|
505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
506
|
+
<span class="cline-any cline-yes">90x</span>
|
|
507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
508
|
+
<span class="cline-any cline-yes">90x</span>
|
|
509
|
+
<span class="cline-any cline-no"> </span>
|
|
510
|
+
<span class="cline-any cline-no"> </span>
|
|
511
|
+
<span class="cline-any cline-no"> </span>
|
|
512
|
+
<span class="cline-any cline-no"> </span>
|
|
513
|
+
<span class="cline-any cline-neutral"> </span>
|
|
514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
515
|
+
<span class="cline-any cline-neutral"> </span>
|
|
516
|
+
<span class="cline-any cline-neutral"> </span>
|
|
517
|
+
<span class="cline-any cline-neutral"> </span>
|
|
518
|
+
<span class="cline-any cline-neutral"> </span>
|
|
519
|
+
<span class="cline-any cline-neutral"> </span>
|
|
520
|
+
<span class="cline-any cline-neutral"> </span>
|
|
521
|
+
<span class="cline-any cline-neutral"> </span>
|
|
522
|
+
<span class="cline-any cline-neutral"> </span>
|
|
523
|
+
<span class="cline-any cline-neutral"> </span>
|
|
524
|
+
<span class="cline-any cline-neutral"> </span>
|
|
525
|
+
<span class="cline-any cline-neutral"> </span>
|
|
526
|
+
<span class="cline-any cline-neutral"> </span>
|
|
527
|
+
<span class="cline-any cline-neutral"> </span>
|
|
528
|
+
<span class="cline-any cline-yes">90x</span>
|
|
529
|
+
<span class="cline-any cline-neutral"> </span>
|
|
530
|
+
<span class="cline-any cline-yes">90x</span>
|
|
531
|
+
<span class="cline-any cline-yes">4x</span>
|
|
532
|
+
<span class="cline-any cline-no"> </span>
|
|
533
|
+
<span class="cline-any cline-neutral"> </span>
|
|
534
|
+
<span class="cline-any cline-neutral"> </span>
|
|
535
|
+
<span class="cline-any cline-yes">4x</span>
|
|
536
|
+
<span class="cline-any cline-neutral"> </span>
|
|
537
|
+
<span class="cline-any cline-yes">4x</span>
|
|
538
|
+
<span class="cline-any cline-yes">10x</span>
|
|
539
|
+
<span class="cline-any cline-yes">10x</span>
|
|
540
|
+
<span class="cline-any cline-yes">10x</span>
|
|
541
|
+
<span class="cline-any cline-neutral"> </span>
|
|
542
|
+
<span class="cline-any cline-no"> </span>
|
|
543
|
+
<span class="cline-any cline-neutral"> </span>
|
|
544
|
+
<span class="cline-any cline-neutral"> </span>
|
|
545
|
+
<span class="cline-any cline-neutral"> </span>
|
|
546
|
+
<span class="cline-any cline-yes">10x</span>
|
|
547
|
+
<span class="cline-any cline-yes">6x</span>
|
|
548
|
+
<span class="cline-any cline-yes">6x</span>
|
|
549
|
+
<span class="cline-any cline-no"> </span>
|
|
550
|
+
<span class="cline-any cline-neutral"> </span>
|
|
551
|
+
<span class="cline-any cline-yes">6x</span>
|
|
552
|
+
<span class="cline-any cline-yes">6x</span>
|
|
553
|
+
<span class="cline-any cline-neutral"> </span>
|
|
554
|
+
<span class="cline-any cline-yes">3x</span>
|
|
555
|
+
<span class="cline-any cline-yes">1x</span>
|
|
556
|
+
<span class="cline-any cline-neutral"> </span>
|
|
557
|
+
<span class="cline-any cline-yes">3x</span>
|
|
558
|
+
<span class="cline-any cline-yes">3x</span>
|
|
559
|
+
<span class="cline-any cline-neutral"> </span>
|
|
560
|
+
<span class="cline-any cline-neutral"> </span>
|
|
561
|
+
<span class="cline-any cline-neutral"> </span>
|
|
562
|
+
<span class="cline-any cline-neutral"> </span>
|
|
563
|
+
<span class="cline-any cline-neutral"> </span>
|
|
564
|
+
<span class="cline-any cline-neutral"> </span>
|
|
565
|
+
<span class="cline-any cline-neutral"> </span>
|
|
566
|
+
<span class="cline-any cline-neutral"> </span>
|
|
567
|
+
<span class="cline-any cline-neutral"> </span>
|
|
568
|
+
<span class="cline-any cline-neutral"> </span>
|
|
569
|
+
<span class="cline-any cline-neutral"> </span>
|
|
570
|
+
<span class="cline-any cline-yes">188x</span>
|
|
571
|
+
<span class="cline-any cline-neutral"> </span>
|
|
572
|
+
<span class="cline-any cline-no"> </span>
|
|
573
|
+
<span class="cline-any cline-neutral"> </span>
|
|
574
|
+
<span class="cline-any cline-neutral"> </span>
|
|
575
|
+
<span class="cline-any cline-neutral"> </span>
|
|
576
|
+
<span class="cline-any cline-neutral"> </span>
|
|
577
|
+
<span class="cline-any cline-yes">188x</span>
|
|
578
|
+
<span class="cline-any cline-neutral"> </span>
|
|
579
|
+
<span class="cline-any cline-neutral"> </span>
|
|
580
|
+
<span class="cline-any cline-neutral"> </span>
|
|
581
|
+
<span class="cline-any cline-yes">29x</span>
|
|
582
|
+
<span class="cline-any cline-no"> </span>
|
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
584
|
+
<span class="cline-any cline-yes">29x</span>
|
|
585
|
+
<span class="cline-any cline-yes">29x</span>
|
|
586
|
+
<span class="cline-any cline-neutral"> </span>
|
|
587
|
+
<span class="cline-any cline-neutral"> </span>
|
|
588
|
+
<span class="cline-any cline-yes">29x</span>
|
|
589
|
+
<span class="cline-any cline-yes">17x</span>
|
|
590
|
+
<span class="cline-any cline-neutral"> </span>
|
|
591
|
+
<span class="cline-any cline-neutral"> </span>
|
|
592
|
+
<span class="cline-any cline-yes">29x</span>
|
|
593
|
+
<span class="cline-any cline-yes">19x</span>
|
|
594
|
+
<span class="cline-any cline-yes">19x</span>
|
|
595
|
+
<span class="cline-any cline-neutral"> </span>
|
|
596
|
+
<span class="cline-any cline-no"> </span>
|
|
597
|
+
<span class="cline-any cline-neutral"> </span>
|
|
598
|
+
<span class="cline-any cline-neutral"> </span>
|
|
599
|
+
<span class="cline-any cline-yes">29x</span>
|
|
600
|
+
<span class="cline-any cline-neutral"> </span>
|
|
601
|
+
<span class="cline-any cline-neutral"> </span>
|
|
602
|
+
<span class="cline-any cline-neutral"> </span>
|
|
603
|
+
<span class="cline-any cline-neutral"> </span>
|
|
604
|
+
<span class="cline-any cline-neutral"> </span>
|
|
605
|
+
<span class="cline-any cline-neutral"> </span>
|
|
606
|
+
<span class="cline-any cline-neutral"> </span>
|
|
607
|
+
<span class="cline-any cline-neutral"> </span>
|
|
608
|
+
<span class="cline-any cline-neutral"> </span>
|
|
609
|
+
<span class="cline-any cline-neutral"> </span>
|
|
610
|
+
<span class="cline-any cline-neutral"> </span>
|
|
611
|
+
<span class="cline-any cline-neutral"> </span>
|
|
612
|
+
<span class="cline-any cline-neutral"> </span>
|
|
613
|
+
<span class="cline-any cline-neutral"> </span>
|
|
614
|
+
<span class="cline-any cline-neutral"> </span>
|
|
615
|
+
<span class="cline-any cline-neutral"> </span>
|
|
616
|
+
<span class="cline-any cline-neutral"> </span>
|
|
617
|
+
<span class="cline-any cline-neutral"> </span>
|
|
618
|
+
<span class="cline-any cline-neutral"> </span>
|
|
619
|
+
<span class="cline-any cline-neutral"> </span>
|
|
620
|
+
<span class="cline-any cline-neutral"> </span>
|
|
621
|
+
<span class="cline-any cline-neutral"> </span>
|
|
622
|
+
<span class="cline-any cline-neutral"> </span>
|
|
623
|
+
<span class="cline-any cline-neutral"> </span>
|
|
624
|
+
<span class="cline-any cline-neutral"> </span>
|
|
625
|
+
<span class="cline-any cline-neutral"> </span>
|
|
626
|
+
<span class="cline-any cline-neutral"> </span>
|
|
627
|
+
<span class="cline-any cline-neutral"> </span>
|
|
628
|
+
<span class="cline-any cline-neutral"> </span>
|
|
629
|
+
<span class="cline-any cline-neutral"> </span>
|
|
630
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">// The admin bar module implements Apostrophe's admin bar at the top of the screen. Any module
|
|
631
|
+
// can register a button (or more than one) for this bar by calling the `add` method of this
|
|
632
|
+
// module. Buttons can also be grouped into dropdown menus and restricted to those with
|
|
633
|
+
// particular permissions. [@apostrophecms/piece-type](../@apostrophecms/piece-type/index.html) automatically
|
|
634
|
+
// takes advantage of this module.
|
|
635
|
+
|
|
636
|
+
const _ = require('lodash');
|
|
637
|
+
const cuid = require('cuid');
|
|
638
|
+
|
|
639
|
+
module.exports = {
|
|
640
|
+
options: {
|
|
641
|
+
alias: 'adminBar',
|
|
642
|
+
// Do include a page tree button in the admin bar
|
|
643
|
+
pageTree: true
|
|
644
|
+
},
|
|
645
|
+
init(self) {
|
|
646
|
+
self.items = [];
|
|
647
|
+
self.groups = [];
|
|
648
|
+
self.groupLabels = {};
|
|
649
|
+
self.enableBrowserData();
|
|
650
|
+
},
|
|
651
|
+
handlers(self) {
|
|
652
|
+
return {
|
|
653
|
+
'apostrophe:ready': {
|
|
654
|
+
orderAndGroupItems() {
|
|
655
|
+
self.orderItems();
|
|
656
|
+
self.groupItems();
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
};
|
|
660
|
+
},
|
|
661
|
+
methods(self) {
|
|
662
|
+
return {
|
|
663
|
+
// Add an item to the admin bar.
|
|
664
|
+
//
|
|
665
|
+
// When the item is activated, the `name` argument will be emitted on
|
|
666
|
+
// `apos.bus` as the value of an `admin-menu-click` event. The
|
|
667
|
+
// `TheAposModals` app will typically catch this and respond by
|
|
668
|
+
// displaying the appropriate modal. So `name` should
|
|
669
|
+
// be the module name, with `:editor` or `:manager` suffix, depending
|
|
670
|
+
// on the case, such as `@apostrophecms/global:editor` or
|
|
671
|
+
// `@apostrophecms/page:manager`.
|
|
672
|
+
//
|
|
673
|
+
// Alternatively, an `href` option may be set to an ordinary URL in
|
|
674
|
+
// `options`. This creates a basic link in the admin menu.
|
|
675
|
+
//
|
|
676
|
+
// `permission` should be an object with `action` and `type`
|
|
677
|
+
// properties. This determines visibility of the option, securing
|
|
678
|
+
// actual actions is a separate concern.
|
|
679
|
+
//
|
|
680
|
+
// You can use the `after` option to specify an admin bar item name
|
|
681
|
+
// this item should appear immediately following.
|
|
682
|
+
//
|
|
683
|
+
// Usually just one admin bar item per module makes sense.
|
|
684
|
+
//
|
|
685
|
+
// On the browser side, it is possible to write
|
|
686
|
+
// `apos.bus.$on('admin-menu-click', (name) => { ... })` to catch
|
|
687
|
+
// these events and respond. You can use this mechanism if you
|
|
688
|
+
// wish to implement a custom admin bar item not powered by
|
|
689
|
+
// the `AposModals` app.
|
|
690
|
+
//
|
|
691
|
+
// If `options.contextUtility` is true the item will be displayed in a tray of
|
|
692
|
+
// icons just to the left of the page settings gear. If `options.toggle` is also true,
|
|
693
|
+
// then the button will have the `active` state until toggled
|
|
694
|
+
// off again. `options.openTooltip` and `options.closeTooltip` may be
|
|
695
|
+
// provided to offer a different tooltip during the active state. Otherwise
|
|
696
|
+
// `options.tooltip` is used. The regular label is also present for
|
|
697
|
+
// screenreaders only. The contextUtility functionality is typically used for
|
|
698
|
+
// experiences that temporarily change the current editing context.
|
|
699
|
+
//
|
|
700
|
+
// If an `options.when` function is provided, it will be invoked with
|
|
701
|
+
// `req` to test whether this admin bar item should be displayed or not.
|
|
702
|
+
|
|
703
|
+
add(name, label, permission, options) {
|
|
704
|
+
let index;
|
|
705
|
+
|
|
706
|
+
const item = {
|
|
707
|
+
name: name.indexOf(':') === -1 ? <span class="branch-0 cbranch-no" title="branch not covered" >name </span>: name.split(':')[0],
|
|
708
|
+
action: name,
|
|
709
|
+
label: label,
|
|
710
|
+
permission: permission,
|
|
711
|
+
options: options || {}
|
|
712
|
+
};
|
|
713
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (options && options.after) {
|
|
714
|
+
<span class="cstat-no" title="statement not covered" > index = _.findIndex(self.items, { name: options.after });</span>
|
|
715
|
+
<span class="cstat-no" title="statement not covered" > if (index !== -1) {</span>
|
|
716
|
+
<span class="cstat-no" title="statement not covered" > self.items.splice(index + 1, 0, item);</span>
|
|
717
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
self.items.push(item);
|
|
721
|
+
},
|
|
722
|
+
|
|
723
|
+
getVisibleItems(req) {
|
|
724
|
+
// Find the subset of admin bar items this user is permitted to see
|
|
725
|
+
const user = req.user;
|
|
726
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!user) {
|
|
727
|
+
<span class="cstat-no" title="statement not covered" > return [];</span>
|
|
728
|
+
}
|
|
729
|
+
const items = _.filter(self.items, function (item) {
|
|
730
|
+
return self.itemIsVisible(req, item);
|
|
731
|
+
});
|
|
732
|
+
if (!items.length) {
|
|
733
|
+
return [];
|
|
734
|
+
}
|
|
735
|
+
// Find the combined items and group them up into menus.
|
|
736
|
+
// groupedItems becomes an array that mixes standalone
|
|
737
|
+
// admin bar items with menus.
|
|
738
|
+
const groupedItems = [];
|
|
739
|
+
let menu = false;
|
|
740
|
+
items.forEach(function (item, i) {
|
|
741
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (menu) {
|
|
742
|
+
// We are already building up a grouped menu, but stop doing that
|
|
743
|
+
// if this next item isn't part of it
|
|
744
|
+
<span class="cstat-no" title="statement not covered" > if (item.menuLeader === menu.leader.name) {</span>
|
|
745
|
+
<span class="cstat-no" title="statement not covered" > menu.items.push(item);</span>
|
|
746
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
747
|
+
} else {
|
|
748
|
+
<span class="cstat-no" title="statement not covered" > menu = false;</span>
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
// Only build a menu if there are at least two items after filtering
|
|
752
|
+
// for permissions
|
|
753
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (item.menuLeader === item.name && (<span class="branch-1 cbranch-no" title="branch not covered" >items[i + 1] </span>&& <span class="branch-2 cbranch-no" title="branch not covered" >items[i + 1].menuLeader === item.name)</span>) {
|
|
754
|
+
<span class="cstat-no" title="statement not covered" > menu = {</span>
|
|
755
|
+
menu: true,
|
|
756
|
+
items: [ item ],
|
|
757
|
+
leader: item,
|
|
758
|
+
label: self.groupLabels[item.name] || item.label
|
|
759
|
+
};
|
|
760
|
+
<span class="cstat-no" title="statement not covered" > groupedItems.push(menu);</span>
|
|
761
|
+
} else {
|
|
762
|
+
groupedItems.push(item);
|
|
763
|
+
}
|
|
764
|
+
});
|
|
765
|
+
return groupedItems;
|
|
766
|
+
},
|
|
767
|
+
|
|
768
|
+
// Implement the `order` option. This insertion sort results
|
|
769
|
+
// in putting everything otherwise unspecified at the end, as desired.
|
|
770
|
+
// Items with the `last: true` option are moved to the end before the
|
|
771
|
+
// explicit order is applied.
|
|
772
|
+
//
|
|
773
|
+
// Called by `afterInit`
|
|
774
|
+
|
|
775
|
+
orderItems() {
|
|
776
|
+
// Items with a preference to go last go last...
|
|
777
|
+
const moving = [];
|
|
778
|
+
while (true) {
|
|
779
|
+
const moveIndex = _.findIndex(self.items, function (item) {
|
|
780
|
+
return item.options.last;
|
|
781
|
+
});
|
|
782
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (moveIndex === -1) {
|
|
783
|
+
break;
|
|
784
|
+
}
|
|
785
|
+
<span class="cstat-no" title="statement not covered" > moving.push(self.items[moveIndex]);</span>
|
|
786
|
+
<span class="cstat-no" title="statement not covered" > self.items.splice(moveIndex, 1);</span>
|
|
787
|
+
}
|
|
788
|
+
self.items = self.items.concat(moving);
|
|
789
|
+
// ... But then explicit order kicks in
|
|
790
|
+
_.each(self.options.order || [], <span class="fstat-no" title="function not covered" >fu</span>nction (name) {
|
|
791
|
+
const item = <span class="cstat-no" title="statement not covered" >_.find(self.items, { name: name });</span>
|
|
792
|
+
<span class="cstat-no" title="statement not covered" > if (item) {</span>
|
|
793
|
+
<span class="cstat-no" title="statement not covered" > self.items = [ item ].concat(_.filter(self.items, <span class="fstat-no" title="function not covered" >fu</span>nction (item) {</span>
|
|
794
|
+
<span class="cstat-no" title="statement not covered" > return item.name !== name;</span>
|
|
795
|
+
}));
|
|
796
|
+
}
|
|
797
|
+
});
|
|
798
|
+
},
|
|
799
|
+
|
|
800
|
+
// Marks items that have been grouped via the `groups` option — or via
|
|
801
|
+
// `group` calls from modules, combined with the `addGroups` option —
|
|
802
|
+
// with a `menuLeader` property and ensures that the items in a group
|
|
803
|
+
// are consecutive in the order. We'll figure out the final menus at
|
|
804
|
+
// render time so we can handle it properly if an individual
|
|
805
|
+
// user only sees one of them, etc. Called by `afterInit`
|
|
806
|
+
|
|
807
|
+
groupItems() {
|
|
808
|
+
// Implement the groups and addGroups options. Mark the grouped items
|
|
809
|
+
// with a `menuLeader` property.
|
|
810
|
+
const groups = self.options.groups || self.groups.concat(self.options.addGroups || []);
|
|
811
|
+
|
|
812
|
+
groups.forEach(function (group) {
|
|
813
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!group.label) {
|
|
814
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
self.groupLabels[group.items[0]] = group.label;
|
|
818
|
+
|
|
819
|
+
group.items.forEach(function (name, groupIndex) {
|
|
820
|
+
const item = _.find(self.items, { name: name });
|
|
821
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (item) {
|
|
822
|
+
item.menuLeader = group.items[0];
|
|
823
|
+
} else {
|
|
824
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
825
|
+
}
|
|
826
|
+
// Make sure the submenu items wind up following the leader
|
|
827
|
+
// in self.items in the appropriate order
|
|
828
|
+
if (name !== item.menuLeader) {
|
|
829
|
+
const indexLeader = _.findIndex(self.items, { name: item.menuLeader });
|
|
830
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (indexLeader === -1) {
|
|
831
|
+
<span class="cstat-no" title="statement not covered" > throw new Error('Admin bar grouping error: no match for ' + item.menuLeader + ' in menu item ' + item.name);</span>
|
|
832
|
+
}
|
|
833
|
+
let indexMe = _.findIndex(self.items, { name: name });
|
|
834
|
+
if (indexMe !== indexLeader + groupIndex) {
|
|
835
|
+
// Swap ourselves into the right position following our leader
|
|
836
|
+
if (indexLeader + groupIndex < indexMe) {
|
|
837
|
+
indexMe++;
|
|
838
|
+
}
|
|
839
|
+
self.items.splice(indexLeader + groupIndex, 0, item);
|
|
840
|
+
self.items.splice(indexMe, 1);
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
});
|
|
844
|
+
});
|
|
845
|
+
},
|
|
846
|
+
|
|
847
|
+
// Determine if the specified admin bar item object should
|
|
848
|
+
// be rendered or not, for the given req; based on item.permission
|
|
849
|
+
// if any. `req.user` is guaranteed to exist at this point.
|
|
850
|
+
|
|
851
|
+
itemIsVisible(req, item) {
|
|
852
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!item.permission) {
|
|
853
|
+
// Being logged in is good enough to see this
|
|
854
|
+
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
855
|
+
}
|
|
856
|
+
// Test the permission as if we were in draft mode, as when you actually
|
|
857
|
+
// manage the items those requests will be made in draft mode (when
|
|
858
|
+
// applicable to the content type)
|
|
859
|
+
return self.apos.permission.can(req, item.permission.action, item.permission.type, 'draft');
|
|
860
|
+
},
|
|
861
|
+
|
|
862
|
+
getBrowserData(req) {
|
|
863
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!req.user) {
|
|
864
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
865
|
+
}
|
|
866
|
+
const items = self.getVisibleItems(req);
|
|
867
|
+
const context = req.data.piece || req.data.page;
|
|
868
|
+
// Page caching is never desirable when possibly
|
|
869
|
+
// editing that page
|
|
870
|
+
if (context && context._edit) {
|
|
871
|
+
req.res.setHeader('Cache-Control', 'no-cache');
|
|
872
|
+
}
|
|
873
|
+
let contextEditorName;
|
|
874
|
+
if (context) {
|
|
875
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (self.apos.page.isPage(context)) {
|
|
876
|
+
contextEditorName = '@apostrophecms/page:editor';
|
|
877
|
+
} else {
|
|
878
|
+
<span class="cstat-no" title="statement not covered" > contextEditorName = `${context.type}:editor`;</span>
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
return {
|
|
882
|
+
items: items,
|
|
883
|
+
components: { the: 'TheAposAdminBar' },
|
|
884
|
+
context: context && {
|
|
885
|
+
_id: context._id,
|
|
886
|
+
title: context.title,
|
|
887
|
+
type: context.type,
|
|
888
|
+
_url: context._url,
|
|
889
|
+
slug: context.slug,
|
|
890
|
+
modified: context.modified,
|
|
891
|
+
updatedAt: context.updatedAt,
|
|
892
|
+
updatedBy: context.updatedBy,
|
|
893
|
+
submitted: context.submitted,
|
|
894
|
+
lastPublishedAt: context.lastPublishedAt,
|
|
895
|
+
_edit: context._edit,
|
|
896
|
+
aposMode: context.aposMode,
|
|
897
|
+
aposLocale: context.aposLocale,
|
|
898
|
+
aposDocId: context.aposDocId
|
|
899
|
+
},
|
|
900
|
+
// Base API URL appropriate to the context document
|
|
901
|
+
contextBar: context && self.apos.doc.getManager(context.type).options.contextBar,
|
|
902
|
+
// Simplifies frontend logic
|
|
903
|
+
contextId: context && context._id,
|
|
904
|
+
tabId: cuid(),
|
|
905
|
+
contextEditorName,
|
|
906
|
+
pageTree: self.options.pageTree && self.apos.permission.can(req, 'edit', '@apostrophecms/any-page-type', 'draft')
|
|
907
|
+
};
|
|
908
|
+
}
|
|
909
|
+
};
|
|
910
|
+
}
|
|
911
|
+
};
|
|
912
|
+
</pre></td></tr></table></pre>
|
|
913
|
+
|
|
914
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
915
|
+
</div><!-- /wrapper -->
|
|
916
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
917
|
+
Code coverage generated by
|
|
918
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
919
|
+
at Wed Jun 08 2022 11:06:49 GMT+0200 (Central European Summer Time)
|
|
920
|
+
</div>
|
|
921
|
+
<script src="../../../../prettify.js"></script>
|
|
922
|
+
<script>
|
|
923
|
+
window.onload = function () {
|
|
924
|
+
prettyPrint();
|
|
925
|
+
};
|
|
926
|
+
</script>
|
|
927
|
+
<script src="../../../../sorter.js"></script>
|
|
928
|
+
<script src="../../../../block-navigation.js"></script>
|
|
929
|
+
</body>
|
|
930
|
+
</html>
|
|
931
|
+
|