@dhasdk/simple-ui 1.0.8 → 1.0.10

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.
Files changed (228) hide show
  1. package/README.md +2 -2
  2. package/index.css +1 -0
  3. package/{src/index.ts → index.d.ts} +8 -15
  4. package/index.js +34 -0
  5. package/index.mjs +5473 -0
  6. package/lib/Accordion.d.ts +36 -0
  7. package/lib/AppointmentPicker.d.ts +21 -0
  8. package/lib/Badge.d.ts +11 -0
  9. package/lib/Breadcrumbs.d.ts +13 -0
  10. package/lib/Button.d.ts +15 -0
  11. package/lib/ButtonGroup.d.ts +8 -0
  12. package/lib/Card.d.ts +11 -0
  13. package/lib/CharacterCounter.d.ts +11 -0
  14. package/lib/CheckBox.d.ts +30 -0
  15. package/lib/DatePicker.d.ts +7 -0
  16. package/lib/Input.d.ts +16 -0
  17. package/lib/List.d.ts +22 -0
  18. package/lib/Modal.d.ts +18 -0
  19. package/lib/Pill.d.ts +13 -0
  20. package/lib/ProgressBar.d.ts +19 -0
  21. package/lib/RadioGroup.d.ts +16 -0
  22. package/lib/RadioIcon.d.ts +3 -0
  23. package/lib/Search.d.ts +26 -0
  24. package/lib/SearchContent.d.ts +6 -0
  25. package/lib/SectionHeader.d.ts +18 -0
  26. package/lib/Select.d.ts +19 -0
  27. package/lib/Shield.d.ts +12 -0
  28. package/lib/SideBarNav.d.ts +21 -0
  29. package/lib/Skeleton.d.ts +15 -0
  30. package/lib/SkipLink.d.ts +23 -0
  31. package/lib/Slider.d.ts +14 -0
  32. package/lib/Status.d.ts +10 -0
  33. package/lib/Tabs.d.ts +26 -0
  34. package/lib/Toggle.d.ts +11 -0
  35. package/lib/Tooltip.d.ts +14 -0
  36. package/package.json +1 -1
  37. package/.babelrc +0 -12
  38. package/.storybook/main.ts +0 -35
  39. package/.storybook/preview.ts +0 -4
  40. package/BAKpostcss.config.jsBAK +0 -15
  41. package/BAKtailwind.config.mjsBAK +0 -99
  42. package/coverage/storybook/coverage-storybook.json +0 -32411
  43. package/coverage/storybook/lcov-report/Accordion.tsx.html +0 -805
  44. package/coverage/storybook/lcov-report/Badge.tsx.html +0 -346
  45. package/coverage/storybook/lcov-report/Breadcrumbs.tsx.html +0 -742
  46. package/coverage/storybook/lcov-report/Button.tsx.html +0 -448
  47. package/coverage/storybook/lcov-report/ButtonGroup.tsx.html +0 -403
  48. package/coverage/storybook/lcov-report/Card.tsx.html +0 -292
  49. package/coverage/storybook/lcov-report/CharacterCounter.tsx.html +0 -253
  50. package/coverage/storybook/lcov-report/CheckBox.tsx.html +0 -1555
  51. package/coverage/storybook/lcov-report/DatePicker.tsx.html +0 -826
  52. package/coverage/storybook/lcov-report/Input.tsx.html +0 -1012
  53. package/coverage/storybook/lcov-report/List.tsx.html +0 -364
  54. package/coverage/storybook/lcov-report/Modal.tsx.html +0 -745
  55. package/coverage/storybook/lcov-report/Pill.tsx.html +0 -358
  56. package/coverage/storybook/lcov-report/Search.tsx.html +0 -997
  57. package/coverage/storybook/lcov-report/SearchContent.tsx.html +0 -235
  58. package/coverage/storybook/lcov-report/SectionHeader.tsx.html +0 -358
  59. package/coverage/storybook/lcov-report/Select.tsx.html +0 -1012
  60. package/coverage/storybook/lcov-report/Shield.tsx.html +0 -802
  61. package/coverage/storybook/lcov-report/SideBarNav.tsx.html +0 -490
  62. package/coverage/storybook/lcov-report/Skeleton.tsx.html +0 -394
  63. package/coverage/storybook/lcov-report/Slider.tsx.html +0 -385
  64. package/coverage/storybook/lcov-report/Status.tsx.html +0 -322
  65. package/coverage/storybook/lcov-report/Tabs.tsx.html +0 -610
  66. package/coverage/storybook/lcov-report/Toggle.tsx.html +0 -373
  67. package/coverage/storybook/lcov-report/Tooltip.tsx.html +0 -496
  68. package/coverage/storybook/lcov-report/base.css +0 -224
  69. package/coverage/storybook/lcov-report/block-navigation.js +0 -87
  70. package/coverage/storybook/lcov-report/favicon.png +0 -0
  71. package/coverage/storybook/lcov-report/index.html +0 -476
  72. package/coverage/storybook/lcov-report/prettify.css +0 -1
  73. package/coverage/storybook/lcov-report/prettify.js +0 -2
  74. package/coverage/storybook/lcov-report/sort-arrow-sprite.png +0 -0
  75. package/coverage/storybook/lcov-report/sorter.js +0 -196
  76. package/coverage/storybook/lcov.info +0 -2312
  77. package/dist/README.md +0 -1815
  78. package/eslint.config.mjs +0 -13
  79. package/project.json +0 -11
  80. package/src/assets/img/Frame.svg +0 -5
  81. package/src/assets/img/backArrowRight.svg +0 -10
  82. package/src/assets/img/bc-separator.png +0 -0
  83. package/src/assets/img/calendar.png +0 -0
  84. package/src/assets/img/calendar.svg +0 -4
  85. package/src/assets/img/check.svg +0 -5
  86. package/src/assets/img/check_box.svg +0 -10
  87. package/src/assets/img/check_box_empty.svg +0 -10
  88. package/src/assets/img/check_box_fill.svg +0 -10
  89. package/src/assets/img/check_box_fill_empty.svg +0 -10
  90. package/src/assets/img/chevron-down-white.svg +0 -2
  91. package/src/assets/img/chevron-down.svg +0 -2
  92. package/src/assets/img/chevron-left.svg +0 -1
  93. package/src/assets/img/chevron-right-light.svg +0 -4
  94. package/src/assets/img/chevron-right.svg +0 -3
  95. package/src/assets/img/chevron-up-white.svg +0 -1
  96. package/src/assets/img/chevron-up.svg +0 -1
  97. package/src/assets/img/clock.svg +0 -6
  98. package/src/assets/img/close.svg +0 -1
  99. package/src/assets/img/close2.svg +0 -6
  100. package/src/assets/img/closeModal.svg +0 -10
  101. package/src/assets/img/close_icon_dark.svg +0 -10
  102. package/src/assets/img/close_small.svg +0 -3
  103. package/src/assets/img/emergency_home.svg +0 -10
  104. package/src/assets/img/first-aid-kit.svg +0 -7
  105. package/src/assets/img/heartbeat.svg +0 -4
  106. package/src/assets/img/home-gray.svg +0 -3
  107. package/src/assets/img/home.svg +0 -3
  108. package/src/assets/img/hospital.jpg +0 -0
  109. package/src/assets/img/indeterminate_check_box.svg +0 -10
  110. package/src/assets/img/indeterminate_check_box_fill.svg +0 -10
  111. package/src/assets/img/info_24_ 1d4ed8.svg +0 -3
  112. package/src/assets/img/info_24_ 2c6441.svg +0 -3
  113. package/src/assets/img/marker_check_by_default.svg +0 -10
  114. package/src/assets/img/marker_check_by_default_fill.svg +0 -10
  115. package/src/assets/img/minus-accordion.svg +0 -5
  116. package/src/assets/img/minus.svg +0 -3
  117. package/src/assets/img/open.svg +0 -1
  118. package/src/assets/img/pill-white.svg +0 -7
  119. package/src/assets/img/pill.svg +0 -5
  120. package/src/assets/img/plus-accordion.svg +0 -5
  121. package/src/assets/img/plus.svg +0 -4
  122. package/src/assets/img/prescription.svg +0 -6
  123. package/src/assets/img/search.svg +0 -10
  124. package/src/assets/img/search_icon_light.svg +0 -10
  125. package/src/assets/img/separator.svg +0 -3
  126. package/src/assets/img/stethoscope-white.svg +0 -8
  127. package/src/assets/img/stethoscope.svg +0 -8
  128. package/src/assets/img/thumb_up.svg +0 -10
  129. package/src/assets/img/vector.svg +0 -3
  130. package/src/assets/img/warning-badge-disabled.svg +0 -11
  131. package/src/assets/img/warning-badge-green.svg +0 -11
  132. package/src/assets/img/warning-badge-red.svg +0 -11
  133. package/src/assets/img/warning-badge-yellow.svg +0 -11
  134. package/src/assets/img/warning.svg +0 -10
  135. package/src/global.d.ts +0 -13
  136. package/src/lib/Accordian--Accordian.stories.tsx +0 -312
  137. package/src/lib/Accordion.spec.tsx +0 -384
  138. package/src/lib/Accordion.tsx +0 -240
  139. package/src/lib/AppointmentPicker.spec.tsx +0 -138
  140. package/src/lib/AppointmentPicker.tsx +0 -97
  141. package/src/lib/Badge--Badge.stories.tsx +0 -60
  142. package/src/lib/Badge.spec.tsx +0 -70
  143. package/src/lib/Badge.tsx +0 -87
  144. package/src/lib/Breadcrumbs-Breadcrumbs.stories.tsx +0 -114
  145. package/src/lib/Breadcrumbs.spec.tsx +0 -218
  146. package/src/lib/Breadcrumbs.tsx +0 -219
  147. package/src/lib/Button--Button.stories.tsx +0 -220
  148. package/src/lib/Button.spec.tsx +0 -241
  149. package/src/lib/Button.tsx +0 -121
  150. package/src/lib/ButtonGroup--ButtonGroup.stories.tsx +0 -129
  151. package/src/lib/ButtonGroup.spec.tsx +0 -89
  152. package/src/lib/ButtonGroup.tsx +0 -107
  153. package/src/lib/Card--Card.stories.tsx +0 -113
  154. package/src/lib/Card.spec.tsx +0 -112
  155. package/src/lib/Card.tsx +0 -69
  156. package/src/lib/CharacterCounter--CharacterCounter.stories.tsx +0 -169
  157. package/src/lib/CharacterCounter.spec.tsx +0 -123
  158. package/src/lib/CharacterCounter.tsx +0 -56
  159. package/src/lib/CheckBox--CheckBox.stories.tsx +0 -107
  160. package/src/lib/CheckBox.spec.tsx +0 -412
  161. package/src/lib/CheckBox.tsx +0 -491
  162. package/src/lib/DatePicker--DatePicker.stories.tsx +0 -228
  163. package/src/lib/DatePicker.spec.tsx +0 -424
  164. package/src/lib/DatePicker.tsx +0 -247
  165. package/src/lib/Input--Input.stories.tsx +0 -449
  166. package/src/lib/Input.spec.tsx +0 -281
  167. package/src/lib/Input.tsx +0 -309
  168. package/src/lib/List--List.stories.tsx +0 -157
  169. package/src/lib/List.spec.tsx +0 -211
  170. package/src/lib/List.tsx +0 -93
  171. package/src/lib/Modal--Modal.stories.tsx +0 -454
  172. package/src/lib/Modal.spec.tsx +0 -202
  173. package/src/lib/Modal.tsx +0 -220
  174. package/src/lib/Pill--Pill.stories.tsx +0 -98
  175. package/src/lib/Pill.spec.tsx +0 -103
  176. package/src/lib/Pill.tsx +0 -91
  177. package/src/lib/ProgressBar.spec.tsx +0 -106
  178. package/src/lib/ProgressBar.tsx +0 -112
  179. package/src/lib/RadioGroup.spec.tsx +0 -84
  180. package/src/lib/RadioGroup.tsx +0 -74
  181. package/src/lib/RadioIcon.tsx +0 -13
  182. package/src/lib/Search--Search.stories.tsx +0 -67
  183. package/src/lib/Search.spec.tsx +0 -182
  184. package/src/lib/Search.tsx +0 -304
  185. package/src/lib/SearchContent.tsx +0 -51
  186. package/src/lib/SectionHeader--SectionHeader.stories.tsx +0 -98
  187. package/src/lib/SectionHeader.spec.tsx +0 -60
  188. package/src/lib/SectionHeader.tsx +0 -91
  189. package/src/lib/Select--Select.stories.tsx +0 -387
  190. package/src/lib/Select.spec.tsx +0 -493
  191. package/src/lib/Select.tsx +0 -311
  192. package/src/lib/Shield--Shield.stories.tsx +0 -196
  193. package/src/lib/Shield.spec.tsx +0 -275
  194. package/src/lib/Shield.tsx +0 -239
  195. package/src/lib/SideBarNav--SideBarNav.stories.tsx +0 -136
  196. package/src/lib/SideBarNav.spec.tsx +0 -178
  197. package/src/lib/SideBarNav.tsx +0 -135
  198. package/src/lib/Skeleton--Skeleton.stories.tsx +0 -77
  199. package/src/lib/Skeleton.module.css +0 -16
  200. package/src/lib/Skeleton.spec.tsx +0 -83
  201. package/src/lib/Skeleton.tsx +0 -103
  202. package/src/lib/SkipLink.spec.tsx +0 -76
  203. package/src/lib/SkipLink.tsx +0 -48
  204. package/src/lib/Slider--Slider.stories.tsx +0 -108
  205. package/src/lib/Slider.module.css +0 -109
  206. package/src/lib/Slider.spec.tsx +0 -67
  207. package/src/lib/Slider.tsx +0 -101
  208. package/src/lib/Status--Status.stories.tsx +0 -93
  209. package/src/lib/Status.spec.tsx +0 -118
  210. package/src/lib/Status.tsx +0 -79
  211. package/src/lib/Tabs--Tabs.stories.tsx +0 -294
  212. package/src/lib/Tabs.spec.tsx +0 -249
  213. package/src/lib/Tabs.tsx +0 -188
  214. package/src/lib/Tester.spec.tsx +0 -17
  215. package/src/lib/Toggle--Toggle.stories.tsx +0 -162
  216. package/src/lib/Toggle.spec.tsx +0 -122
  217. package/src/lib/Toggle.tsx +0 -96
  218. package/src/lib/Tooltip--Tooltip.stories.tsx +0 -315
  219. package/src/lib/Tooltip.spec.tsx +0 -307
  220. package/src/lib/Tooltip.tsx +0 -137
  221. package/src/lib/bak-simple-ui.stories.tsx-bak +0 -24
  222. package/src/styles.css +0 -190
  223. package/tsconfig.json +0 -25
  224. package/tsconfig.lib.json +0 -42
  225. package/tsconfig.spec.json +0 -29
  226. package/tsconfig.storybook.json +0 -36
  227. package/vite.config.mts +0 -87
  228. package/vitest.setup.ts +0 -12
@@ -1,997 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for Search.tsx</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> Search.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">33.89% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>20/59</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">25% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>8/32</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">21.42% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>3/14</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">33.33% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>19/57</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>
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>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">1x</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-yes">1x</span>
427
- <span class="cline-any cline-yes">1x</span>
428
- <span class="cline-any cline-yes">1x</span>
429
- <span class="cline-any cline-yes">1x</span>
430
- <span class="cline-any cline-yes">1x</span>
431
- <span class="cline-any cline-yes">1x</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-yes">1x</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-no">&nbsp;</span>
445
- <span class="cline-any cline-no">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-no">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-no">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-no">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-yes">1x</span>
459
- <span class="cline-any cline-no">&nbsp;</span>
460
- <span class="cline-any cline-no">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-yes">1x</span>
464
- <span class="cline-any cline-yes">1x</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-no">&nbsp;</span>
472
- <span class="cline-any cline-no">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-no">&nbsp;</span>
475
- <span class="cline-any cline-no">&nbsp;</span>
476
- <span class="cline-any cline-no">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-no">&nbsp;</span>
479
- <span class="cline-any cline-no">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-no">&nbsp;</span>
484
- <span class="cline-any cline-no">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-no">&nbsp;</span>
489
- <span class="cline-any cline-no">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-no">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">1x</span>
502
- <span class="cline-any cline-no">&nbsp;</span>
503
- <span class="cline-any cline-no">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-no">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-no">&nbsp;</span>
509
- <span class="cline-any cline-no">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-no">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-no">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-yes">1x</span>
519
- <span class="cline-any cline-no">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-no">&nbsp;</span>
523
- <span class="cline-any cline-no">&nbsp;</span>
524
- <span class="cline-any cline-no">&nbsp;</span>
525
- <span class="cline-any cline-no">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-no">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-yes">1x</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-yes">1x</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-no">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-yes">1x</span>
592
- <span class="cline-any cline-no">&nbsp;</span>
593
- <span class="cline-any cline-yes">1x</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-no">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-no">&nbsp;</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-yes">1x</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-yes">1x</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { ChangeEvent, forwardRef, InputHTMLAttributes, KeyboardEvent, useEffect, useRef, useState } from 'react';
675
- import SearchIconLg from '../assets/img/search_icon_light.svg';
676
- import SearchIcon from '../assets/img/search.svg';
677
- import CloseIcon from '../assets/img/close_icon_dark.svg';
678
- import { twMerge } from 'tailwind-merge';
679
- // import { useNavigate } from 'react-router-dom';
680
- &nbsp;
681
- // TODO: UX Question re no results
682
- // NOTE: UX (Sam) noted that a results page will be required for some cases. We talked, and we will
683
- // return an object or set a callback that supplies an object of results as they are presented
684
- // in the type-ahead results list at the point the user clicks the button
685
- // NOTE: UX (Sam) indicated that the 'X' clears the search content, does NOT shrink it. That should
686
- // probably be a state var like 'initial = icon', user then clicks to expand
687
- &nbsp;
688
- // Searchable Data must conform to an array of this interface
689
- export interface SearchDataItem {
690
- path: string;
691
- title?: string;
692
- content: string;
693
- }
694
- &nbsp;
695
- // Interface of search results - can use index to obtain path
696
- export interface DataSearchResults {
697
- input: string;
698
- pages: {
699
- title?: string;
700
- path?: string;
701
- results: {
702
- characters: string;
703
- index: number;
704
- }[]
705
- }[]
706
- }
707
- &nbsp;
708
- export interface SearchProps
709
- extends InputHTMLAttributes&lt;HTMLInputElement&gt; {
710
- className?: string;
711
- searchableData: SearchDataItem[];
712
- ariaLabel?: string;
713
- iconLink?: boolean;
714
- setSearchResults?: (res: DataSearchResults) =&gt; void;
715
- mobileOnly?: boolean;
716
- }
717
- &nbsp;
718
- export const Search = forwardRef&lt;HTMLInputElement, SearchProps&gt;(
719
- (
720
- {
721
- className,
722
- ariaLabel = "Search",
723
- iconLink = false,
724
- searchableData,
725
- setSearchResults,
726
- mobileOnly = false,
727
- ...props
728
- },
729
- ref
730
- ) =&gt; {
731
- const inputRef = useRef&lt;HTMLInputElement | null&gt;(null);
732
- const resultsRef = useRef&lt;HTMLDivElement&gt;(null); // TODO: necessary?
733
- const [value, setValue] = useState('');
734
- const [resultsList, setResultsList] = useState&lt;DataSearchResults&gt;();
735
- const [iconOnly, setIconOnly] = useState&lt;boolean&gt;(iconLink);
736
- // const [groupedResults, setGroupedResults] = useState();
737
- // const [navigatePath, setNavigatePath] = useState&lt;string&gt;();
738
- // const navigate = useNavigate();
739
- &nbsp;
740
- // useEffect (() =&gt; {
741
- // if (navigatePath) {
742
- // navigate(navigatePath);
743
- // }
744
- // }, [navigate, navigatePath]);
745
- &nbsp;
746
- const handleEnter = <span class="fstat-no" title="function not covered" >(e</span>: KeyboardEvent&lt;HTMLInputElement&gt;) =&gt; {
747
- // if returning results list:
748
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (e.key === 'Enter') {</span>
749
- <span class="cstat-no" title="statement not covered" > if (setSearchResults) {</span>
750
- // we are returning results - do that
751
- <span class="cstat-no" title="statement not covered" > handleSearchClick();</span>
752
- } else {
753
- // execute first result of real-time list
754
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (resultsList &amp;&amp; resultsList.pages[0].path) {</span>
755
- // console.log('resultsList[0]: ' + resultsList.pages[0].path);
756
- <span class="cstat-no" title="statement not covered" > window.location.href=resultsList.pages[0].path;</span>
757
- }
758
- }
759
- }
760
- }
761
- &nbsp;
762
- const selectX = <span class="fstat-no" title="function not covered" >() =&gt; {</span>
763
- <span class="cstat-no" title="statement not covered" > setValue(''); // if xClears, onClick clear content</span>
764
- <span class="cstat-no" title="statement not covered" > setResultsList(undefined);</span>
765
- }
766
- &nbsp;
767
- useEffect (() =&gt; {
768
- setIconOnly(iconLink);
769
- }, [iconLink]);
770
- &nbsp;
771
- // Search Function string input
772
- // returns 15 characters following searched term (add term plus return characters string)
773
- // as well as array index (from which we can retrieve the path value)
774
- function <span class="fstat-no" title="function not covered" >searchFilter(s</span>earchText: string): DataSearchResults {
775
- const lower = <span class="cstat-no" title="statement not covered" >searchText.toLowerCase();</span>
776
- const pages: DataSearchResults["pages"] = <span class="cstat-no" title="statement not covered" >[];</span>
777
- &nbsp;
778
- <span class="cstat-no" title="statement not covered" > searchableData.forEach(<span class="fstat-no" title="function not covered" >(p</span>age, pageIndex) =&gt; {</span>
779
- const pageResults: { characters: string; index: number }[] = <span class="cstat-no" title="statement not covered" >[];</span>
780
- let start = <span class="cstat-no" title="statement not covered" >page.content.toLowerCase().indexOf(lower);</span>
781
- &nbsp;
782
- <span class="cstat-no" title="statement not covered" > while (start !== -1) {</span>
783
- const snippet = <span class="cstat-no" title="statement not covered" >page.content.substring(</span>
784
- start + lower.length,
785
- start + lower.length + 15
786
- );
787
- <span class="cstat-no" title="statement not covered" > pageResults.push({ characters: snippet, index: pageIndex });</span>
788
- <span class="cstat-no" title="statement not covered" > start = page.content.toLowerCase().indexOf(lower, start + 1);</span>
789
- }
790
- &nbsp;
791
- // only emit a page entry if we found at least one match
792
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (pageResults.length) {</span>
793
- <span class="cstat-no" title="statement not covered" > pages.push({</span>
794
- title: page.title,
795
- path: page.path,
796
- results: pageResults,
797
- });
798
- }
799
- });
800
- &nbsp;
801
- <span class="cstat-no" title="statement not covered" > return { input: searchText, pages };</span>
802
- }
803
- &nbsp;
804
- // Call searchFilter() function w/ input data if appropriate
805
- const handleInputChange = <span class="fstat-no" title="function not covered" >(e</span>vent: ChangeEvent&lt;HTMLInputElement&gt;) =&gt; {
806
- const newValue = <span class="cstat-no" title="statement not covered" >event.target.value;</span>
807
- <span class="cstat-no" title="statement not covered" > setValue(newValue);</span>
808
- &nbsp;
809
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!newValue) {</span>
810
- // clear out search results when input is empty
811
- // setSearchResults?.({ input: "", pages: [] });
812
- <span class="cstat-no" title="statement not covered" > setResultsList(undefined);</span>
813
- <span class="cstat-no" title="statement not covered" > return;</span>
814
- }
815
- &nbsp;
816
- const results = <span class="cstat-no" title="statement not covered" >searchFilter(newValue);</span>
817
- // setSearchResults?.(results); // call-back for use in storybook (temp?)
818
- <span class="cstat-no" title="statement not covered" > setResultsList(results); // local results</span>
819
- };
820
- &nbsp;
821
- &nbsp;
822
- const handleSearchClick = <span class="fstat-no" title="function not covered" >() =&gt; {</span>
823
- const newValue = <span class="cstat-no" title="statement not covered" >inputRef.current?.value ?? '';</span>
824
- &nbsp;
825
- &nbsp;
826
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (setSearchResults) {</span>
827
- <span class="cstat-no" title="statement not covered" > if (newValue.length &gt; 0) {</span>
828
- const results = <span class="cstat-no" title="statement not covered" >searchFilter(newValue);</span>
829
- <span class="cstat-no" title="statement not covered" > setSearchResults?.(results);</span>
830
- } else {
831
- <span class="cstat-no" title="statement not covered" > setSearchResults({input: '', pages: [{results: []}]});</span>
832
- }
833
- }
834
- };
835
- &nbsp;
836
- // mobile - w: 309 h: 48 border: 0.5
837
- // input h-32px p: 8x8
838
- // tablet - w: 334 h: 50 border: 0.5
839
- // input h-34px p: 8x8
840
- // desk - w: 350 h: 56
841
- // input h: 56 p: 0
842
- &nbsp;
843
- const inputClasses = `grow appearance-none h-8 md:h-[32px] lg:h-14 py-2 lg:ps-[19px] rounded-tl rounded-bl
844
- rounded-br-none rounded-tr-none lg:border border-[#07192d]
845
- font-['Arial'] bg-white text-[#333234] text-base lg:text-lg
846
- hover:border-[#5992fa] focus:border-[#5992fa] outline-hidden `;
847
- &nbsp;
848
- // TODO: Border Color for FOCUS
849
- return (
850
- iconOnly ?
851
- // Display solo search icon button to expand search component
852
- <span class="branch-0 cbranch-no" title="branch not covered" > &lt;span className='w-[52px] h-[50px] p-2 rounded-sm border border-[#6a686b]</span>
853
- inline-flex flex-col justify-center items-center bg-white'&gt;
854
- &lt;button className="appearance-none p-0 m-0 border-0 flex items-center justify-center align-middle"
855
- onClick={<span class="fstat-no" title="function not covered" >() =&gt; <span class="cstat-no" title="statement not covered" >s</span>etIconOnly(false)} &gt;</span>
856
- &lt;img className='' src={SearchIcon} alt='search icon' /&gt;
857
- &lt;/button&gt;
858
- &lt;/span&gt;
859
- :
860
- &nbsp;
861
- // Container including input + output list box
862
- &lt;span className={`h-12 md:h-[50px] lg:h-14 flex items-center relative ${iconOnly &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >'hidden'}</span>`}&gt;
863
- &nbsp;
864
- {/* container for input + icon(s), displays border up to md only */}
865
- &lt;span className={`
866
- border-[#6a686b] w-[309px] md:w-[334px] lg:w-[350px]
867
- inline-flex bg-white items-center
868
- ${resultsList ?
869
- <span class="branch-0 cbranch-no" title="branch not covered" > ' border-t border-l border-r rounded-tl rounded-tr lg:border-none ' : // results, round top corners only</span>
870
- ' border lg:border-0 rounded ' // no results, box only rounded
871
- }
872
- `}&gt;
873
- {/* padding 12px */}
874
- {/* left search icon (small &amp; medium only */}
875
- &lt;button onClick={handleSearchClick}&gt;
876
- &lt;span className='lg:hidden rounded-tl px-2 rounded-bl '&gt;
877
- &lt;img className='' src={SearchIcon} alt='search icon' /&gt;
878
- &lt;/span&gt;
879
- &lt;/button&gt;
880
- &lt;input
881
- className={twMerge(inputClasses, className)}
882
- aria-label={ariaLabel}
883
- value={value}
884
- onChange={handleInputChange}
885
- placeholder='Search result'
886
- onKeyDown={<span class="fstat-no" title="function not covered" >(e</span>) =&gt; <span class="cstat-no" title="statement not covered" >handleEnter(e)}</span>
887
- // onKeyDown={(e) =&gt; {
888
- // if (e.key === 'Enter') {
889
- // handleSearchClick();
890
- // }
891
- // }}
892
- // disabled={disabled}
893
- // className={cn(inputVariants({variant, inputSize, className}))}
894
- ref={(node) =&gt; {
895
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof ref === 'function') <span class="cstat-no" title="statement not covered" >ref(node<span class="missing-if-branch" title="if path not taken" >I</span>);</span>
896
- else if (ref) <span class="cstat-no" title="statement not covered" >ref.current = node;</span>
897
- inputRef.current = node; // Maintain local reference
898
- }}
899
- {...props}
900
- /&gt;
901
- {/* p-[17px] vs p-4 due to the 1px border on the input */}
902
- {/* right search icon (large only) */}
903
- &lt;button onClick={handleSearchClick}&gt;
904
- &lt;span className='hidden lg:flex items-center size-14 p-[17px] bg-[#07192d]
905
- rounded-tr rounded-br '&gt;
906
- &lt;img className='' src={SearchIconLg} alt='search icon' /&gt;
907
- &lt;/span&gt;
908
- &lt;/button&gt;
909
- &lt;span className='lg:hidden items-center p-3'&gt;{/* padding 12px? */}
910
- {/* button --&gt; onClick handler for search */}
911
- &lt;button className="appearance-none p-0 m-0 border-0 flex items-center justify-center align-middle"
912
- onClick={ <span class="fstat-no" title="function not covered" >() =&gt; <span class="cstat-no" title="statement not covered" >s</span>electX() } &gt;</span>
913
- &lt;img className='' src={CloseIcon} alt='search icon' /&gt;
914
- &lt;/button&gt;
915
- &lt;/span&gt;
916
- &lt;/span&gt;
917
- {/* &lt;div&gt;setSearchResults: {setSearchResults ? 'defined' : 'undefined'}&lt;/div&gt; */}
918
- { (resultsList &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!setSearchResults) &amp;&amp; (</span>
919
- <span class="branch-2 cbranch-no" title="branch not covered" > &lt;&gt;</span>
920
- {/* Pads between input and results - allows bottom border of input to be displayed and not covered */}
921
- &lt;div
922
- className={`hidden lg:absolute w-[309px] md:w-[334px] lg:w-[293px] top-full -mt-1 pt-1
923
- focus:outline-hidden -z-10 ms overflow-hidden h-8
924
- bg-white lg:shadow-[0px_4px_4px_0px_rgba(0,0,0,0.25)]
925
- border-[#6a686b] border-l border-r lg:border-none
926
- `
927
- }
928
- &gt;&lt;/div&gt;
929
- &nbsp;
930
- &lt;div
931
- role="listbox"
932
- ref={resultsRef}
933
- aria-label="Select option"
934
- // onKeyDown={handleMenuKeyDown}
935
- className={`absolute w-[309px] md:w-[334px] lg:w-[293px] top-[calc(100%+4px)] -mt-1 pt-1
936
- focus:outline-hidden z-10 ms overflow-hidden
937
- bg-white lg:shadow-[0px_4px_4px_0px_rgba(0,0,0,0.25)]
938
- border-[#6a686b] border-l border-b border-r lg:border-none
939
- `
940
- &nbsp;
941
- // 350-56 - 294
942
- // inline-flex flex-col justify-start items-start"&gt;
943
- &nbsp;
944
- }
945
- &gt;
946
- &lt;hr className="mb-1 -mt-1 mx-2 border-b-0 border-[#A1A6A8] lg:border-none" /&gt;
947
- {/* item.index inside map denotes array index, can use to call out path and title for that item */}
948
- {resultsList.pages.map(<span class="fstat-no" title="function not covered" >(p</span>age, index) =&gt; (
949
- &nbsp;
950
- <span class="cstat-no" title="statement not covered" > &lt;div key={index} className="ms-4"&gt;</span>
951
- &lt;div className="font-bold text-sm"&gt;
952
- &lt;a role='option' href={page.path} className="text-blue-700 underline"&gt;
953
- {/* */}{page.title &amp;&amp; page.title}
954
- &lt;/a&gt;
955
- &lt;/div&gt;
956
- {page.results.map(<span class="fstat-no" title="function not covered" >(r</span>esult, index) =&gt; (
957
- <span class="cstat-no" title="statement not covered" > &lt;div className="ms-4"&gt;</span>
958
- &lt;span className="text-[#1c1d1f]"&gt;{resultsList.input}&lt;/span&gt;
959
- &lt;span className="text-[#A1A6A8] lg:text-[#4E4E4E]"&gt;{result.characters}&lt;/span&gt;
960
- &lt;/div&gt;
961
- ))}
962
- &lt;/div&gt;
963
- ))}
964
- &nbsp;
965
- { resultsList?.pages?.length &lt; 1 &amp;&amp;
966
- &lt;div className='ms-4 mb-1 text-[#1c1d1f]' &gt;no search results&lt;/div&gt;
967
- }
968
- &lt;/div&gt;
969
- &lt;/&gt;
970
- )}
971
- &lt;/span&gt;
972
- );
973
- }
974
- );
975
- &nbsp;
976
- Search.displayName = 'Search';
977
- &nbsp;
978
- &nbsp;</pre></td></tr></table></pre>
979
-
980
- <div class='push'></div><!-- for sticky footer -->
981
- </div><!-- /wrapper -->
982
- <div class='footer quiet pad2 space-top1 center small'>
983
- Code coverage generated by
984
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
985
- at 2025-05-29T21:55:20.662Z
986
- </div>
987
- <script src="prettify.js"></script>
988
- <script>
989
- window.onload = function () {
990
- prettyPrint();
991
- };
992
- </script>
993
- <script src="sorter.js"></script>
994
- <script src="block-navigation.js"></script>
995
- </body>
996
- </html>
997
-