pixelize-design-library 2.3.8 → 2.3.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 (155) hide show
  1. package/.claude/settings.local.json +51 -0
  2. package/.cursor/plans/current.md +8 -11
  3. package/coverage/clover.xml +405 -0
  4. package/coverage/coverage-final.json +16 -0
  5. package/coverage/coverage-summary.json +50 -0
  6. package/coverage/lcov-report/Button/Button.tsx.html +244 -0
  7. package/coverage/lcov-report/Button/index.html +116 -0
  8. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +433 -0
  9. package/coverage/lcov-report/Checkbox/index.html +116 -0
  10. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +148 -0
  11. package/coverage/lcov-report/Common/FormLabel.tsx.html +331 -0
  12. package/coverage/lcov-report/Common/HelperText.tsx.html +124 -0
  13. package/coverage/lcov-report/Common/index.html +146 -0
  14. package/coverage/lcov-report/Components/Button/Button.tsx.html +244 -0
  15. package/coverage/lcov-report/Components/Button/index.html +116 -0
  16. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +433 -0
  17. package/coverage/lcov-report/Components/Checkbox/index.html +116 -0
  18. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +148 -0
  19. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +331 -0
  20. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +124 -0
  21. package/coverage/lcov-report/Components/Common/index.html +146 -0
  22. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +712 -0
  23. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +343 -0
  24. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +313 -0
  25. package/coverage/lcov-report/Components/CustomModulesTable/index.html +146 -0
  26. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +133 -0
  27. package/coverage/lcov-report/Components/Divider/index.html +116 -0
  28. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +994 -0
  29. package/coverage/lcov-report/Components/Dropdown/index.html +116 -0
  30. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +466 -0
  31. package/coverage/lcov-report/Components/EmptyState/index.html +116 -0
  32. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +373 -0
  33. package/coverage/lcov-report/Components/Header/index.html +116 -0
  34. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +487 -0
  35. package/coverage/lcov-report/Components/Input/index.html +116 -0
  36. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +205 -0
  37. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +547 -0
  38. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +190 -0
  39. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +247 -0
  40. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +116 -0
  41. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +3598 -0
  42. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +283 -0
  43. package/coverage/lcov-report/Components/KanbanBoard/index.html +161 -0
  44. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +511 -0
  45. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +334 -0
  46. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +1519 -0
  47. package/coverage/lcov-report/Components/OrganizationDetails/index.html +146 -0
  48. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +328 -0
  49. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +1732 -0
  50. package/coverage/lcov-report/Components/RolesPermission/index.html +131 -0
  51. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +2575 -0
  52. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +202 -0
  53. package/coverage/lcov-report/Components/SearchSelect/index.html +146 -0
  54. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +496 -0
  55. package/coverage/lcov-report/Components/Select/Select.tsx.html +361 -0
  56. package/coverage/lcov-report/Components/Select/index.html +116 -0
  57. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +562 -0
  58. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +346 -0
  59. package/coverage/lcov-report/Components/SideBar/components/index.html +116 -0
  60. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +490 -0
  61. package/coverage/lcov-report/Components/SignInActivityTable/index.html +116 -0
  62. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +595 -0
  63. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +2212 -0
  64. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +358 -0
  65. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +358 -0
  66. package/coverage/lcov-report/Components/Table/components/index.html +161 -0
  67. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +856 -0
  68. package/coverage/lcov-report/Components/Table/settings/index.html +116 -0
  69. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +331 -0
  70. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +256 -0
  71. package/coverage/lcov-report/Components/Tag/index.html +131 -0
  72. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +286 -0
  73. package/coverage/lcov-report/Components/ToolTip/index.html +116 -0
  74. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +709 -0
  75. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +505 -0
  76. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +379 -0
  77. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +1900 -0
  78. package/coverage/lcov-report/Components/UserDetails/index.html +161 -0
  79. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +466 -0
  80. package/coverage/lcov-report/EmptyState/index.html +116 -0
  81. package/coverage/lcov-report/Hooks/index.html +116 -0
  82. package/coverage/lcov-report/Hooks/usePreferences.ts.html +421 -0
  83. package/coverage/lcov-report/Input/TextInput.tsx.html +487 -0
  84. package/coverage/lcov-report/Input/index.html +131 -0
  85. package/coverage/lcov-report/Input/textInputIconSize.ts.html +205 -0
  86. package/coverage/lcov-report/KanbanBoard.tsx.html +3481 -0
  87. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +511 -0
  88. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +334 -0
  89. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +1519 -0
  90. package/coverage/lcov-report/OrganizationDetails/index.html +146 -0
  91. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +328 -0
  92. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +1732 -0
  93. package/coverage/lcov-report/RolesPermission/index.html +116 -0
  94. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +2575 -0
  95. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +202 -0
  96. package/coverage/lcov-report/SearchSelect/index.html +146 -0
  97. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +496 -0
  98. package/coverage/lcov-report/Table/CompactSelect.tsx.html +379 -0
  99. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +514 -0
  100. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +373 -0
  101. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +574 -0
  102. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +574 -0
  103. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +1027 -0
  104. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +397 -0
  105. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +1060 -0
  106. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +361 -0
  107. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +337 -0
  108. package/coverage/lcov-report/Table/Components/index.html +266 -0
  109. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +178 -0
  110. package/coverage/lcov-report/Table/Components/useTable.ts.html +778 -0
  111. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +1810 -0
  112. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +178 -0
  113. package/coverage/lcov-report/Table/Table.tsx.html +1567 -0
  114. package/coverage/lcov-report/Table/TableProps.tsx.html +658 -0
  115. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +619 -0
  116. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +229 -0
  117. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +532 -0
  118. package/coverage/lcov-report/Table/TableSettings/index.html +146 -0
  119. package/coverage/lcov-report/Table/TableToDo.tsx.html +973 -0
  120. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +271 -0
  121. package/coverage/lcov-report/Table/filterTypes.ts.html +97 -0
  122. package/coverage/lcov-report/Table/index.html +176 -0
  123. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +856 -0
  124. package/coverage/lcov-report/Table/settings/index.html +116 -0
  125. package/coverage/lcov-report/Tag/Tag.tsx.html +256 -0
  126. package/coverage/lcov-report/Tag/index.html +116 -0
  127. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +175 -0
  128. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +214 -0
  129. package/coverage/lcov-report/Theme/index.html +131 -0
  130. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +100 -0
  131. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +286 -0
  132. package/coverage/lcov-report/ToolTip/index.html +116 -0
  133. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +709 -0
  134. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +505 -0
  135. package/coverage/lcov-report/UserDetails/index.html +116 -0
  136. package/coverage/lcov-report/Utils/functions.ts.html +106 -0
  137. package/coverage/lcov-report/Utils/index.html +116 -0
  138. package/coverage/lcov-report/Utils/table.ts.html +1189 -0
  139. package/coverage/lcov-report/base.css +224 -0
  140. package/coverage/lcov-report/block-navigation.js +87 -0
  141. package/coverage/lcov-report/favicon.png +0 -0
  142. package/coverage/lcov-report/index.html +251 -0
  143. package/coverage/lcov-report/prettify.css +1 -0
  144. package/coverage/lcov-report/prettify.js +2 -0
  145. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  146. package/coverage/lcov-report/sorter.js +210 -0
  147. package/coverage/lcov.info +981 -0
  148. package/dist/Assets/defaultLogo.tsx +30 -0
  149. package/dist/Components/KanbanBoard/KanbanBoard.d.ts.map +1 -1
  150. package/dist/Components/KanbanBoard/KanbanBoard.js +38 -1
  151. package/dist/Components/Table/Table.d.ts.map +1 -1
  152. package/dist/Components/Table/Table.js +16 -7
  153. package/dist/Components/Table/settings/ManageColumns.d.ts.map +1 -1
  154. package/dist/Components/Table/settings/ManageColumns.js +2 -1
  155. package/package.json +1 -1
@@ -0,0 +1,994 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for Components/Dropdown/DropDown.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> / <a href="index.html">Components/Dropdown</a> DropDown.tsx</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">91.66% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>66/72</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">68.85% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>42/61</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>14/14</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">98.43% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>63/64</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 high'></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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
370
+ <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-yes">1x</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-yes">10x</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-yes">1x</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-yes">1x</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-neutral">&nbsp;</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-yes">23x</span>
425
+ <span class="cline-any cline-yes">23x</span>
426
+ <span class="cline-any cline-yes">23x</span>
427
+ <span class="cline-any cline-yes">23x</span>
428
+ <span class="cline-any cline-yes">23x</span>
429
+ <span class="cline-any cline-yes">23x</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-yes">23x</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-yes">2x</span>
436
+ <span class="cline-any cline-yes">2x</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">23x</span>
443
+ <span class="cline-any cline-yes">10x</span>
444
+ <span class="cline-any cline-yes">10x</span>
445
+ <span class="cline-any cline-yes">10x</span>
446
+ <span class="cline-any cline-yes">10x</span>
447
+ <span class="cline-any cline-yes">10x</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-yes">10x</span>
451
+ <span class="cline-any cline-yes">10x</span>
452
+ <span class="cline-any cline-neutral">&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-yes">10x</span>
456
+ <span class="cline-any cline-yes">10x</span>
457
+ <span class="cline-any cline-yes">10x</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-yes">10x</span>
462
+ <span class="cline-any cline-yes">10x</span>
463
+ <span class="cline-any cline-yes">10x</span>
464
+ <span class="cline-any cline-yes">10x</span>
465
+ <span class="cline-any cline-no">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-yes">10x</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-yes">10x</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-yes">23x</span>
473
+ <span class="cline-any cline-yes">13x</span>
474
+ <span class="cline-any cline-yes">5x</span>
475
+ <span class="cline-any cline-yes">5x</span>
476
+ <span class="cline-any cline-yes">5x</span>
477
+ <span class="cline-any cline-yes">5x</span>
478
+ <span class="cline-any cline-yes">5x</span>
479
+ <span class="cline-any cline-yes">5x</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-yes">23x</span>
484
+ <span class="cline-any cline-yes">5x</span>
485
+ <span class="cline-any cline-yes">1x</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-yes">1x</span>
488
+ <span class="cline-any cline-yes">1x</span>
489
+ <span class="cline-any cline-yes">1x</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-yes">5x</span>
492
+ <span class="cline-any cline-yes">5x</span>
493
+ <span class="cline-any cline-yes">5x</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-yes">23x</span>
498
+ <span class="cline-any cline-yes">10x</span>
499
+ <span class="cline-any cline-yes">10x</span>
500
+ <span class="cline-any cline-yes">10x</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-yes">10x</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-yes">23x</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-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-yes">23x</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-yes">23x</span>
519
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-neutral">&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-yes">23x</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&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-yes">23x</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-yes">23x</span>
563
+ <span class="cline-any cline-yes">15x</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-neutral">&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-yes">30x</span>
591
+ <span class="cline-any cline-neutral">&nbsp;</span>
592
+ <span class="cline-any cline-yes">2x</span>
593
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&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-yes">23x</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-neutral">&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-neutral">&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-yes">1x</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { forwardRef, useCallback, useEffect, useRef, useState } from "react";
673
+ import {
674
+ Box,
675
+ Flex,
676
+ Button,
677
+ useDisclosure,
678
+ List,
679
+ ListItem,
680
+ BoxProps,
681
+ Portal,
682
+ } from "@chakra-ui/react";
683
+ import { DropdownProps } from "./DropdownProps";
684
+ import { motion } from "framer-motion";
685
+ import { useCustomTheme } from "../../Theme/useCustomTheme";
686
+ import { ChevronDown } from "lucide-react";
687
+ import { CustomThemeProps } from "../../Theme/themeProps";
688
+ &nbsp;
689
+ const MotionBox = motion(
690
+ forwardRef&lt;HTMLDivElement, BoxProps&gt;((props, ref) =&gt; (
691
+ &lt;Box ref={ref} {...props} /&gt;
692
+ ))
693
+ );
694
+ &nbsp;
695
+ // Size scale (mirrors the Button sizes). `btn` is the Chakra Button size.
696
+ const SIZE_MAP = {
697
+ xs: { btn: "xs", fontSize: "0.75rem", py: 1, px: 2.5, img: "1rem", chevron: 13, minW: "8rem", gap: 1.5 },
698
+ sm: { btn: "sm", fontSize: "0.8125rem", py: 1.5, px: 3, img: "1.05rem", chevron: 14, minW: "9rem", gap: 2 },
699
+ md: { btn: "md", fontSize: "0.875rem", py: 2, px: 3, img: "1.15rem", chevron: 16, minW: "11rem", gap: 2 },
700
+ lg: { btn: "lg", fontSize: "0.9375rem", py: 2.5, px: 3.5, img: "1.25rem", chevron: 18, minW: "12rem", gap: 2.5 },
701
+ xl: { btn: "lg", fontSize: "1.0625rem", py: 3, px: 4, img: "1.4rem", chevron: 20, minW: "13rem", gap: 3 },
702
+ } as const;
703
+ &nbsp;
704
+ const Dropdown = forwardRef&lt;HTMLDivElement, DropdownProps&gt;(
705
+ (
706
+ {
707
+ dropDownButtonStyle,
708
+ ButtonText,
709
+ options,
710
+ handleOptionSelect,
711
+ dropdownType = "button",
712
+ text,
713
+ DropdownIcon,
714
+ isVisibleIconShow = true,
715
+ buttonProps,
716
+ headStyle,
717
+ ListStyle,
718
+ ItemStyle,
719
+ LabelStyle,
720
+ ImageStyle,
721
+ size,
722
+ optionsSize,
723
+ divider = false,
724
+ },
725
+ ref
726
+ ) =&gt; {
727
+ const theme: CustomThemeProps = useCustomTheme();
728
+ const { isOpen, onToggle, onClose } = useDisclosure();
729
+ const dropdownRef = useRef&lt;HTMLDivElement&gt;(null);
730
+ const menuRef = useRef&lt;HTMLDivElement | null&gt;(null);
731
+ const [menuPos, setMenuPos] = useState({ top: 0, left: 0, width: 0 });
732
+ const s = SIZE_MAP[size ?? optionsSize ?? "md"] ?? <span class="branch-1 cbranch-no" title="branch not covered" >SIZE_MAP.md;</span>
733
+ &nbsp;
734
+ const handleListItemClick = (
735
+ optionId: string | number,
736
+ optionLabel: string
737
+ ) =&gt; {
738
+ onClose();
739
+ handleOptionSelect(optionId, optionLabel);
740
+ };
741
+ &nbsp;
742
+ // The menu is portaled to &lt;body&gt; (so it sits above everything). Anchor it to
743
+ // the trigger, then clamp to the viewport so it never overflows off-screen
744
+ // (e.g. when the trigger sits near the right or bottom edge).
745
+ const updateMenuPos = useCallback(() =&gt; {
746
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!dropdownRef.current) <span class="cstat-no" title="statement not covered" >return;</span>
747
+ const r = dropdownRef.current.getBoundingClientRect();
748
+ const gutter = 8;
749
+ const vw = window.innerWidth;
750
+ const vh = window.innerHeight;
751
+ &nbsp;
752
+ // Use the rendered menu size when available; fall back to trigger width.
753
+ const menuW = menuRef.current?.offsetWidth || r.width;
754
+ const menuH = menuRef.current?.offsetHeight || 0;
755
+ &nbsp;
756
+ // Horizontal: prefer left-aligned to trigger; if it overflows the right
757
+ // edge, right-align to the trigger, then clamp within [gutter, vw-gutter].
758
+ let left = r.left;
759
+ if (left + menuW &gt; vw - gutter) left = r.right - menuW;
760
+ left = Math.min(Math.max(left, gutter), Math.max(gutter, vw - menuW - gutter));
761
+ &nbsp;
762
+ // Vertical: prefer below the trigger; flip above when it would overflow the
763
+ // bottom and there is more room above. Clamp within the viewport.
764
+ let top = r.bottom;
765
+ const spaceBelow = vh - r.bottom;
766
+ const spaceAbove = r.top;
767
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (menuH &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >top + menuH &gt; vh - gutter </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >spaceAbove &gt; spaceBelow)</span> {
768
+ <span class="cstat-no" title="statement not covered" > top = r.top - menuH;</span>
769
+ }
770
+ top = Math.min(Math.max(top, gutter), Math.max(gutter, vh - menuH - gutter));
771
+ &nbsp;
772
+ setMenuPos({ top, left, width: r.width });
773
+ }, []);
774
+ &nbsp;
775
+ useEffect(() =&gt; {
776
+ if (!isOpen) return;
777
+ updateMenuPos();
778
+ window.addEventListener("scroll", updateMenuPos, true);
779
+ window.addEventListener("resize", updateMenuPos);
780
+ return () =&gt; {
781
+ window.removeEventListener("scroll", updateMenuPos, true);
782
+ window.removeEventListener("resize", updateMenuPos);
783
+ };
784
+ }, [isOpen, updateMenuPos]);
785
+ &nbsp;
786
+ useEffect(() =&gt; {
787
+ const handleClickOutside = (event: MouseEvent) =&gt; {
788
+ const target = event.target as Node;
789
+ // Ignore clicks on the trigger or inside the (portaled) menu.
790
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (dropdownRef.current?.contains(target)) <span class="cstat-no" title="statement not covered" >return;</span>
791
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (menuRef.current?.contains(target)) <span class="cstat-no" title="statement not covered" >return;</span>
792
+ onClose();
793
+ };
794
+ document.addEventListener("mousedown", handleClickOutside);
795
+ return () =&gt; {
796
+ document.removeEventListener("mousedown", handleClickOutside);
797
+ };
798
+ }, [onClose]);
799
+ &nbsp;
800
+ const setMenuRef = (node: HTMLDivElement | null) =&gt; {
801
+ menuRef.current = node;
802
+ <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>
803
+ else <span class="missing-if-branch" title="if path not taken" >I</span>if (ref) <span class="cstat-no" title="statement not covered" >(ref as React.MutableRefObject&lt;HTMLDivElement | null&gt;).current = node;</span>
804
+ // Recompute once the menu has mounted so clamping uses its real size.
805
+ if (node) updateMenuPos();
806
+ };
807
+ &nbsp;
808
+ const Chevron = isVisibleIconShow ? (
809
+ &lt;Box
810
+ as="span"
811
+ display="inline-flex"
812
+ transition="transform 0.2s ease"
813
+ transform={isOpen ? "rotate(180deg)" : "rotate(0deg)"}
814
+ &gt;
815
+ &lt;ChevronDown size={s.chevron} /&gt;
816
+ &lt;/Box&gt;
817
+ ) : <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
818
+ &nbsp;
819
+ const dropDownToggleOption = () =&gt; {
820
+ const ButtonToggle = (
821
+ &lt;Button
822
+ onClick={onToggle}
823
+ size={s.btn}
824
+ colorScheme="primary"
825
+ borderRadius="0.5rem"
826
+ fontWeight={600}
827
+ aria-haspopup="menu"
828
+ aria-expanded={isOpen}
829
+ rightIcon={Chevron}
830
+ sx={{ transition: "all 0.15s ease", ...(dropDownButtonStyle) }}
831
+ {...buttonProps}
832
+ &gt;
833
+ &lt;Box as="span" display="inline-flex" alignItems="center" gap={DropdownIcon &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >ButtonText </span>? <span class="branch-0 cbranch-no" title="branch not covered" >s.gap </span>: 0}&gt;
834
+ {DropdownIcon}
835
+ {ButtonText}
836
+ &lt;/Box&gt;
837
+ &lt;/Button&gt;
838
+ );
839
+ &nbsp;
840
+ const TextToggle = (
841
+ &lt;Flex
842
+ onClick={onToggle}
843
+ align="center"
844
+ gap={1.5}
845
+ cursor="pointer"
846
+ fontSize={s.fontSize}
847
+ fontWeight={500}
848
+ color={theme.colors?.text?.[700]}
849
+ transition="color 0.15s ease"
850
+ _hover={{ color: theme.colors?.primary?.[600] }}
851
+ style={dropDownButtonStyle}
852
+ role="button"
853
+ aria-haspopup="menu"
854
+ aria-expanded={isOpen}
855
+ &gt;
856
+ {DropdownIcon}
857
+ {text}
858
+ {Chevron}
859
+ &lt;/Flex&gt;
860
+ );
861
+ &nbsp;
862
+ return dropdownType === "button" ? ButtonToggle : TextToggle;
863
+ };
864
+ &nbsp;
865
+ const DropdownContentRender = () =&gt; {
866
+ return (
867
+ &lt;List
868
+ bg={theme.colors?.white ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#fff"}</span>
869
+ border={`0.063rem solid ${theme.colors?.boxborder?.[200] ?? <span class="branch-1 cbranch-no" title="branch not covered" >theme.colors?.gray[200]}</span>`}
870
+ borderRadius="0.625rem"
871
+ boxShadow={theme.shadows?.lg}
872
+ py={1.5}
873
+ mt="0.375rem"
874
+ minWidth={s.minW}
875
+ maxH="18rem"
876
+ overflowY="auto"
877
+ overflowX="hidden"
878
+ sx={{
879
+ scrollbarWidth: "thin",
880
+ scrollbarColor: `${theme.colors?.gray?.[300]} transparent`,
881
+ "&amp;::-webkit-scrollbar": { width: "6px" },
882
+ "&amp;::-webkit-scrollbar-thumb": {
883
+ background: theme.colors?.gray?.[300],
884
+ borderRadius: "3px",
885
+ },
886
+ "&amp;::-webkit-scrollbar-thumb:hover": {
887
+ background: theme.colors?.gray?.[400],
888
+ },
889
+ }}
890
+ style={ListStyle}
891
+ &gt;
892
+ {options.map((option) =&gt; (
893
+ &lt;ListItem
894
+ key={option.id}
895
+ onClick={() =&gt; handleListItemClick(option.id, option.label)}
896
+ mx={1.5}
897
+ px={s.px}
898
+ py={s.py}
899
+ borderRadius="0.375rem"
900
+ display="flex"
901
+ alignItems="center"
902
+ gap={2}
903
+ cursor="pointer"
904
+ color={theme.colors?.text?.[700] ?? <span class="branch-1 cbranch-no" title="branch not covered" >theme.colors?.gray?.[700]}</span>
905
+ transition="background 0.12s ease, color 0.12s ease"
906
+ _hover={{
907
+ bg:
908
+ theme.colors?.primary?.opacity?.[8] ??
909
+ <span class="branch-1 cbranch-no" title="branch not covered" > theme.colors?.gray[100],</span>
910
+ color:
911
+ theme.colors?.primary?.[700] ?? <span class="branch-1 cbranch-no" title="branch not covered" >theme.colors?.primary?.[600],</span>
912
+ }}
913
+ borderBottom={
914
+ divider
915
+ ? `0.063rem solid ${theme.colors?.boxborder?.[100] ?? <span class="branch-1 cbranch-no" title="branch not covered" >theme.colors?.gray[200]}</span>`
916
+ : undefined
917
+ }
918
+ sx={{ "&amp;:last-child": { borderBottom: "none" } }}
919
+ style={ItemStyle}
920
+ fontWeight={500}
921
+ &gt;
922
+ {option?.image &amp;&amp; (
923
+ <span class="branch-1 cbranch-no" title="branch not covered" > &lt;Box</span>
924
+ as={option.image}
925
+ boxSize={s.img}
926
+ flexShrink={0}
927
+ color={theme.colors?.gray?.[500]}
928
+ style={ImageStyle}
929
+ /&gt;
930
+ )}
931
+ &lt;Box
932
+ as="span"
933
+ fontSize={s.fontSize}
934
+ isTruncated
935
+ // fontWeight={400}
936
+ style={LabelStyle}
937
+ &gt;
938
+ {option.label}
939
+ &lt;/Box&gt;
940
+ &lt;/ListItem&gt;
941
+ ))}
942
+ &lt;/List&gt;
943
+ );
944
+ };
945
+ &nbsp;
946
+ return (
947
+ &lt;Box ref={dropdownRef} position="relative" display="inline-block"&gt;
948
+ {dropDownToggleOption()}
949
+ {isOpen &amp;&amp; (
950
+ &lt;Portal&gt;
951
+ &lt;MotionBox
952
+ ref={setMenuRef}
953
+ position="fixed"
954
+ top={`${menuPos.top}px`}
955
+ left={`${menuPos.left}px`}
956
+ minW={`${menuPos.width}px`}
957
+ zIndex={1500}
958
+ initial={{ opacity: 0, y: -6 }}
959
+ animate={{ opacity: 1, y: 0 }}
960
+ exit={{ opacity: 0, y: -6 }}
961
+ style={headStyle}
962
+ &gt;
963
+ {DropdownContentRender()}
964
+ &lt;/MotionBox&gt;
965
+ &lt;/Portal&gt;
966
+ )}
967
+ &lt;/Box&gt;
968
+ );
969
+ }
970
+ );
971
+ &nbsp;
972
+ Dropdown.displayName = "Dropdown";
973
+ &nbsp;
974
+ export default Dropdown;
975
+ &nbsp;</pre></td></tr></table></pre>
976
+
977
+ <div class='push'></div><!-- for sticky footer -->
978
+ </div><!-- /wrapper -->
979
+ <div class='footer quiet pad2 space-top1 center small'>
980
+ Code coverage generated by
981
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
982
+ at 2026-06-13T07:33:44.377Z
983
+ </div>
984
+ <script src="../../prettify.js"></script>
985
+ <script>
986
+ window.onload = function () {
987
+ prettyPrint();
988
+ };
989
+ </script>
990
+ <script src="../../sorter.js"></script>
991
+ <script src="../../block-navigation.js"></script>
992
+ </body>
993
+ </html>
994
+