pixelize-design-library 2.3.10 → 2.3.12

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/dist/Components/NoteTextArea/NoteTextAreaProps.d.ts +2 -2
  2. package/dist/Components/NoteTextArea/NoteTextAreaProps.d.ts.map +1 -1
  3. package/dist/Components/Timeline/Timeline.d.ts +1 -1
  4. package/dist/Components/Timeline/Timeline.d.ts.map +1 -1
  5. package/dist/Components/Timeline/Timeline.js +31 -13
  6. package/dist/Components/Timeline/TimelineProps.d.ts +2 -0
  7. package/dist/Components/Timeline/TimelineProps.d.ts.map +1 -1
  8. package/package.json +1 -1
  9. package/.claude/settings.local.json +0 -51
  10. package/coverage/clover.xml +0 -405
  11. package/coverage/coverage-final.json +0 -16
  12. package/coverage/coverage-summary.json +0 -50
  13. package/coverage/lcov-report/Button/Button.tsx.html +0 -244
  14. package/coverage/lcov-report/Button/index.html +0 -116
  15. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
  16. package/coverage/lcov-report/Checkbox/index.html +0 -116
  17. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
  18. package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
  19. package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
  20. package/coverage/lcov-report/Common/index.html +0 -146
  21. package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
  22. package/coverage/lcov-report/Components/Button/index.html +0 -116
  23. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
  24. package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
  25. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
  26. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
  27. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
  28. package/coverage/lcov-report/Components/Common/index.html +0 -146
  29. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
  30. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
  31. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
  32. package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
  33. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
  34. package/coverage/lcov-report/Components/Divider/index.html +0 -116
  35. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
  36. package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
  37. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
  38. package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
  39. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
  40. package/coverage/lcov-report/Components/Header/index.html +0 -116
  41. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
  42. package/coverage/lcov-report/Components/Input/index.html +0 -116
  43. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
  44. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
  45. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
  46. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
  47. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
  48. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3598
  49. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
  50. package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
  51. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  52. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  53. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  54. package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
  55. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  56. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
  57. package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
  58. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
  59. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  60. package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
  61. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
  62. package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
  63. package/coverage/lcov-report/Components/Select/index.html +0 -116
  64. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
  65. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
  66. package/coverage/lcov-report/Components/SideBar/components/index.html +0 -116
  67. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
  68. package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
  69. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
  70. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
  71. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
  72. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
  73. package/coverage/lcov-report/Components/Table/components/index.html +0 -161
  74. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
  75. package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
  76. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
  77. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
  78. package/coverage/lcov-report/Components/Tag/index.html +0 -131
  79. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
  80. package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
  81. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
  82. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
  83. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
  84. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
  85. package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
  86. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
  87. package/coverage/lcov-report/EmptyState/index.html +0 -116
  88. package/coverage/lcov-report/Hooks/index.html +0 -116
  89. package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
  90. package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
  91. package/coverage/lcov-report/Input/index.html +0 -131
  92. package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
  93. package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
  94. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  95. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  96. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  97. package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
  98. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  99. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
  100. package/coverage/lcov-report/RolesPermission/index.html +0 -116
  101. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
  102. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  103. package/coverage/lcov-report/SearchSelect/index.html +0 -146
  104. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
  105. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  106. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  107. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  108. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  109. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  110. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  111. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  112. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  113. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  114. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  115. package/coverage/lcov-report/Table/Components/index.html +0 -266
  116. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  117. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  118. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  119. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  120. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  121. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  122. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  123. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  124. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  125. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  126. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  127. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  128. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  129. package/coverage/lcov-report/Table/index.html +0 -176
  130. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
  131. package/coverage/lcov-report/Table/settings/index.html +0 -116
  132. package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
  133. package/coverage/lcov-report/Tag/index.html +0 -116
  134. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
  135. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
  136. package/coverage/lcov-report/Theme/index.html +0 -131
  137. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
  138. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
  139. package/coverage/lcov-report/ToolTip/index.html +0 -116
  140. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
  141. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
  142. package/coverage/lcov-report/UserDetails/index.html +0 -116
  143. package/coverage/lcov-report/Utils/functions.ts.html +0 -106
  144. package/coverage/lcov-report/Utils/index.html +0 -116
  145. package/coverage/lcov-report/Utils/table.ts.html +0 -1189
  146. package/coverage/lcov-report/base.css +0 -224
  147. package/coverage/lcov-report/block-navigation.js +0 -87
  148. package/coverage/lcov-report/favicon.png +0 -0
  149. package/coverage/lcov-report/index.html +0 -251
  150. package/coverage/lcov-report/prettify.css +0 -1
  151. package/coverage/lcov-report/prettify.js +0 -2
  152. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  153. package/coverage/lcov-report/sorter.js +0 -210
  154. package/coverage/lcov.info +0 -981
  155. package/dist/Assets/defaultLogo.tsx +0 -30
@@ -1,1810 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for Table/LeftFilterPane.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">Table</a> LeftFilterPane.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">79.02% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>113/143</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">66.88% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>103/154</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">72.72% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>40/55</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">82.5% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>99/120</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 medium'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
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>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a>
593
- <a name='L528'></a><a href='#L528'>528</a>
594
- <a name='L529'></a><a href='#L529'>529</a>
595
- <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a>
597
- <a name='L532'></a><a href='#L532'>532</a>
598
- <a name='L533'></a><a href='#L533'>533</a>
599
- <a name='L534'></a><a href='#L534'>534</a>
600
- <a name='L535'></a><a href='#L535'>535</a>
601
- <a name='L536'></a><a href='#L536'>536</a>
602
- <a name='L537'></a><a href='#L537'>537</a>
603
- <a name='L538'></a><a href='#L538'>538</a>
604
- <a name='L539'></a><a href='#L539'>539</a>
605
- <a name='L540'></a><a href='#L540'>540</a>
606
- <a name='L541'></a><a href='#L541'>541</a>
607
- <a name='L542'></a><a href='#L542'>542</a>
608
- <a name='L543'></a><a href='#L543'>543</a>
609
- <a name='L544'></a><a href='#L544'>544</a>
610
- <a name='L545'></a><a href='#L545'>545</a>
611
- <a name='L546'></a><a href='#L546'>546</a>
612
- <a name='L547'></a><a href='#L547'>547</a>
613
- <a name='L548'></a><a href='#L548'>548</a>
614
- <a name='L549'></a><a href='#L549'>549</a>
615
- <a name='L550'></a><a href='#L550'>550</a>
616
- <a name='L551'></a><a href='#L551'>551</a>
617
- <a name='L552'></a><a href='#L552'>552</a>
618
- <a name='L553'></a><a href='#L553'>553</a>
619
- <a name='L554'></a><a href='#L554'>554</a>
620
- <a name='L555'></a><a href='#L555'>555</a>
621
- <a name='L556'></a><a href='#L556'>556</a>
622
- <a name='L557'></a><a href='#L557'>557</a>
623
- <a name='L558'></a><a href='#L558'>558</a>
624
- <a name='L559'></a><a href='#L559'>559</a>
625
- <a name='L560'></a><a href='#L560'>560</a>
626
- <a name='L561'></a><a href='#L561'>561</a>
627
- <a name='L562'></a><a href='#L562'>562</a>
628
- <a name='L563'></a><a href='#L563'>563</a>
629
- <a name='L564'></a><a href='#L564'>564</a>
630
- <a name='L565'></a><a href='#L565'>565</a>
631
- <a name='L566'></a><a href='#L566'>566</a>
632
- <a name='L567'></a><a href='#L567'>567</a>
633
- <a name='L568'></a><a href='#L568'>568</a>
634
- <a name='L569'></a><a href='#L569'>569</a>
635
- <a name='L570'></a><a href='#L570'>570</a>
636
- <a name='L571'></a><a href='#L571'>571</a>
637
- <a name='L572'></a><a href='#L572'>572</a>
638
- <a name='L573'></a><a href='#L573'>573</a>
639
- <a name='L574'></a><a href='#L574'>574</a>
640
- <a name='L575'></a><a href='#L575'>575</a>
641
- <a name='L576'></a><a href='#L576'>576</a></td><td class="line-coverage quiet"><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-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-neutral">&nbsp;</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>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-yes">2x</span>
723
- <span class="cline-any cline-neutral">&nbsp;</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-yes">25x</span>
726
- <span class="cline-any cline-yes">25x</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-yes">4x</span>
729
- <span class="cline-any cline-yes">4x</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-yes">4x</span>
732
- <span class="cline-any cline-yes">4x</span>
733
- <span class="cline-any cline-yes">4x</span>
734
- <span class="cline-any cline-neutral">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-yes">4x</span>
737
- <span class="cline-any cline-no">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-yes">4x</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-yes">2x</span>
752
- <span class="cline-any cline-yes">25x</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-yes">25x</span>
755
- <span class="cline-any cline-neutral">&nbsp;</span>
756
- <span class="cline-any cline-neutral">&nbsp;</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&nbsp;</span>
759
- <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-neutral">&nbsp;</span>
762
- <span class="cline-any cline-neutral">&nbsp;</span>
763
- <span class="cline-any cline-neutral">&nbsp;</span>
764
- <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-yes">25x</span>
767
- <span class="cline-any cline-neutral">&nbsp;</span>
768
- <span class="cline-any cline-yes">4x</span>
769
- <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-neutral">&nbsp;</span>
771
- <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-neutral">&nbsp;</span>
774
- <span class="cline-any cline-neutral">&nbsp;</span>
775
- <span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-neutral">&nbsp;</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-neutral">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-yes">2x</span>
790
- <span class="cline-any cline-yes">1x</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-yes">1x</span>
793
- <span class="cline-any cline-no">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-neutral">&nbsp;</span>
801
- <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-yes">1x</span>
803
- <span class="cline-any cline-yes">1x</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-neutral">&nbsp;</span>
807
- <span class="cline-any cline-neutral">&nbsp;</span>
808
- <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-no">&nbsp;</span>
812
- <span class="cline-any cline-no">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-no">&nbsp;</span>
819
- <span class="cline-any cline-no">&nbsp;</span>
820
- <span class="cline-any cline-no">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-neutral">&nbsp;</span>
823
- <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-no">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-neutral">&nbsp;</span>
828
- <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-no">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-no">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-yes">2x</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-yes">25x</span>
864
- <span class="cline-any cline-yes">3x</span>
865
- <span class="cline-any cline-yes">3x</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-yes">3x</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-yes">1x</span>
874
- <span class="cline-any cline-yes">1x</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-yes">3x</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-no">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-yes">22x</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-yes">22x</span>
906
- <span class="cline-any cline-yes">22x</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-yes">22x</span>
910
- <span class="cline-any cline-yes">22x</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-yes">22x</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-neutral">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-neutral">&nbsp;</span>
921
- <span class="cline-any cline-yes">2x</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-yes">1x</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-no">&nbsp;</span>
949
- <span class="cline-any cline-no">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-no">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-no">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-neutral">&nbsp;</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-yes">2x</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-neutral">&nbsp;</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-neutral">&nbsp;</span>
992
- <span class="cline-any cline-yes">56x</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-yes">56x</span>
996
- <span class="cline-any cline-yes">56x</span>
997
- <span class="cline-any cline-neutral">&nbsp;</span>
998
- <span class="cline-any cline-yes">56x</span>
999
- <span class="cline-any cline-yes">24x</span>
1000
- <span class="cline-any cline-yes">24x</span>
1001
- <span class="cline-any cline-no">&nbsp;</span>
1002
- <span class="cline-any cline-neutral">&nbsp;</span>
1003
- <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span>
1005
- <span class="cline-any cline-yes">56x</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-yes">56x</span>
1008
- <span class="cline-any cline-yes">5x</span>
1009
- <span class="cline-any cline-neutral">&nbsp;</span>
1010
- <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-yes">56x</span>
1012
- <span class="cline-any cline-yes">1x</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-yes">56x</span>
1016
- <span class="cline-any cline-yes">1x</span>
1017
- <span class="cline-any cline-yes">1x</span>
1018
- <span class="cline-any cline-yes">1x</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-neutral">&nbsp;</span>
1021
- <span class="cline-any cline-yes">1x</span>
1022
- <span class="cline-any cline-yes">1x</span>
1023
- <span class="cline-any cline-yes">1x</span>
1024
- <span class="cline-any cline-yes">1x</span>
1025
- <span class="cline-any cline-yes">1x</span>
1026
- <span class="cline-any cline-neutral">&nbsp;</span>
1027
- <span class="cline-any cline-neutral">&nbsp;</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-yes">56x</span>
1030
- <span class="cline-any cline-no">&nbsp;</span>
1031
- <span class="cline-any cline-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-yes">56x</span>
1033
- <span class="cline-any cline-yes">1x</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-yes">56x</span>
1036
- <span class="cline-any cline-yes">2x</span>
1037
- <span class="cline-any cline-yes">2x</span>
1038
- <span class="cline-any cline-yes">2x</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-yes">2x</span>
1042
- <span class="cline-any cline-yes">2x</span>
1043
- <span class="cline-any cline-yes">2x</span>
1044
- <span class="cline-any cline-yes">2x</span>
1045
- <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-no">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-neutral">&nbsp;</span>
1049
- <span class="cline-any cline-neutral">&nbsp;</span>
1050
- <span class="cline-any cline-yes">56x</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-yes">8x</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-yes">56x</span>
1058
- <span class="cline-any cline-yes">40x</span>
1059
- <span class="cline-any cline-yes">1x</span>
1060
- <span class="cline-any cline-yes">1x</span>
1061
- <span class="cline-any cline-yes">2x</span>
1062
- <span class="cline-any cline-yes">2x</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-neutral">&nbsp;</span>
1065
- <span class="cline-any cline-yes">56x</span>
1066
- <span class="cline-any cline-yes">53x</span>
1067
- <span class="cline-any cline-yes">9x</span>
1068
- <span class="cline-any cline-yes">7x</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-yes">56x</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-yes">56x</span>
1075
- <span class="cline-any cline-yes">1x</span>
1076
- <span class="cline-any cline-yes">1x</span>
1077
- <span class="cline-any cline-yes">1x</span>
1078
- <span class="cline-any cline-yes">1x</span>
1079
- <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-yes">56x</span>
1082
- <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-yes">56x</span>
1084
- <span class="cline-any cline-yes">56x</span>
1085
- <span class="cline-any cline-yes">36x</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-yes">20x</span>
1093
- <span class="cline-any cline-yes">5x</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-yes">10x</span>
1097
- <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-yes">10x</span>
1100
- <span class="cline-any cline-neutral">&nbsp;</span>
1101
- <span class="cline-any cline-neutral">&nbsp;</span>
1102
- <span class="cline-any cline-neutral">&nbsp;</span>
1103
- <span class="cline-any cline-neutral">&nbsp;</span>
1104
- <span class="cline-any cline-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-neutral">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-neutral">&nbsp;</span>
1108
- <span class="cline-any cline-neutral">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-yes">15x</span>
1116
- <span class="cline-any cline-yes">15x</span>
1117
- <span class="cline-any cline-neutral">&nbsp;</span>
1118
- <span class="cline-any cline-neutral">&nbsp;</span>
1119
- <span class="cline-any cline-neutral">&nbsp;</span>
1120
- <span class="cline-any cline-neutral">&nbsp;</span>
1121
- <span class="cline-any cline-neutral">&nbsp;</span>
1122
- <span class="cline-any cline-neutral">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-neutral">&nbsp;</span>
1125
- <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-neutral">&nbsp;</span>
1127
- <span class="cline-any cline-yes">56x</span>
1128
- <span class="cline-any cline-neutral">&nbsp;</span>
1129
- <span class="cline-any cline-neutral">&nbsp;</span>
1130
- <span class="cline-any cline-neutral">&nbsp;</span>
1131
- <span class="cline-any cline-neutral">&nbsp;</span>
1132
- <span class="cline-any cline-neutral">&nbsp;</span>
1133
- <span class="cline-any cline-neutral">&nbsp;</span>
1134
- <span class="cline-any cline-neutral">&nbsp;</span>
1135
- <span class="cline-any cline-neutral">&nbsp;</span>
1136
- <span class="cline-any cline-neutral">&nbsp;</span>
1137
- <span class="cline-any cline-neutral">&nbsp;</span>
1138
- <span class="cline-any cline-neutral">&nbsp;</span>
1139
- <span class="cline-any cline-neutral">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-neutral">&nbsp;</span>
1142
- <span class="cline-any cline-neutral">&nbsp;</span>
1143
- <span class="cline-any cline-neutral">&nbsp;</span>
1144
- <span class="cline-any cline-neutral">&nbsp;</span>
1145
- <span class="cline-any cline-neutral">&nbsp;</span>
1146
- <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-neutral">&nbsp;</span>
1148
- <span class="cline-any cline-neutral">&nbsp;</span>
1149
- <span class="cline-any cline-neutral">&nbsp;</span>
1150
- <span class="cline-any cline-neutral">&nbsp;</span>
1151
- <span class="cline-any cline-yes">1x</span>
1152
- <span class="cline-any cline-neutral">&nbsp;</span>
1153
- <span class="cline-any cline-neutral">&nbsp;</span>
1154
- <span class="cline-any cline-neutral">&nbsp;</span>
1155
- <span class="cline-any cline-neutral">&nbsp;</span>
1156
- <span class="cline-any cline-neutral">&nbsp;</span>
1157
- <span class="cline-any cline-neutral">&nbsp;</span>
1158
- <span class="cline-any cline-neutral">&nbsp;</span>
1159
- <span class="cline-any cline-neutral">&nbsp;</span>
1160
- <span class="cline-any cline-neutral">&nbsp;</span>
1161
- <span class="cline-any cline-neutral">&nbsp;</span>
1162
- <span class="cline-any cline-neutral">&nbsp;</span>
1163
- <span class="cline-any cline-neutral">&nbsp;</span>
1164
- <span class="cline-any cline-neutral">&nbsp;</span>
1165
- <span class="cline-any cline-neutral">&nbsp;</span>
1166
- <span class="cline-any cline-neutral">&nbsp;</span>
1167
- <span class="cline-any cline-neutral">&nbsp;</span>
1168
- <span class="cline-any cline-neutral">&nbsp;</span>
1169
- <span class="cline-any cline-neutral">&nbsp;</span>
1170
- <span class="cline-any cline-yes">1x</span>
1171
- <span class="cline-any cline-neutral">&nbsp;</span>
1172
- <span class="cline-any cline-neutral">&nbsp;</span>
1173
- <span class="cline-any cline-neutral">&nbsp;</span>
1174
- <span class="cline-any cline-neutral">&nbsp;</span>
1175
- <span class="cline-any cline-neutral">&nbsp;</span>
1176
- <span class="cline-any cline-neutral">&nbsp;</span>
1177
- <span class="cline-any cline-neutral">&nbsp;</span>
1178
- <span class="cline-any cline-neutral">&nbsp;</span>
1179
- <span class="cline-any cline-neutral">&nbsp;</span>
1180
- <span class="cline-any cline-no">&nbsp;</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-neutral">&nbsp;</span>
1183
- <span class="cline-any cline-neutral">&nbsp;</span>
1184
- <span class="cline-any cline-neutral">&nbsp;</span>
1185
- <span class="cline-any cline-neutral">&nbsp;</span>
1186
- <span class="cline-any cline-neutral">&nbsp;</span>
1187
- <span class="cline-any cline-neutral">&nbsp;</span>
1188
- <span class="cline-any cline-neutral">&nbsp;</span>
1189
- <span class="cline-any cline-neutral">&nbsp;</span>
1190
- <span class="cline-any cline-neutral">&nbsp;</span>
1191
- <span class="cline-any cline-neutral">&nbsp;</span>
1192
- <span class="cline-any cline-neutral">&nbsp;</span>
1193
- <span class="cline-any cline-neutral">&nbsp;</span>
1194
- <span class="cline-any cline-neutral">&nbsp;</span>
1195
- <span class="cline-any cline-neutral">&nbsp;</span>
1196
- <span class="cline-any cline-neutral">&nbsp;</span>
1197
- <span class="cline-any cline-neutral">&nbsp;</span>
1198
- <span class="cline-any cline-neutral">&nbsp;</span>
1199
- <span class="cline-any cline-neutral">&nbsp;</span>
1200
- <span class="cline-any cline-neutral">&nbsp;</span>
1201
- <span class="cline-any cline-neutral">&nbsp;</span>
1202
- <span class="cline-any cline-neutral">&nbsp;</span>
1203
- <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-neutral">&nbsp;</span>
1205
- <span class="cline-any cline-neutral">&nbsp;</span>
1206
- <span class="cline-any cline-neutral">&nbsp;</span>
1207
- <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-neutral">&nbsp;</span>
1209
- <span class="cline-any cline-neutral">&nbsp;</span>
1210
- <span class="cline-any cline-neutral">&nbsp;</span>
1211
- <span class="cline-any cline-neutral">&nbsp;</span>
1212
- <span class="cline-any cline-neutral">&nbsp;</span>
1213
- <span class="cline-any cline-neutral">&nbsp;</span>
1214
- <span class="cline-any cline-neutral">&nbsp;</span>
1215
- <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useEffect, useMemo, useRef, useState } from "react";
1217
- import {
1218
- Box,
1219
- Text,
1220
- Input,
1221
- InputGroup,
1222
- InputLeftElement,
1223
- InputRightElement,
1224
- Accordion,
1225
- AccordionItem,
1226
- AccordionButton,
1227
- AccordionPanel,
1228
- AccordionIcon,
1229
- VStack,
1230
- Button,
1231
- Flex,
1232
- Icon,
1233
- IconButton,
1234
- Tooltip,
1235
- HStack,
1236
- } from "@chakra-ui/react";
1237
- import { Search, X } from "lucide-react";
1238
- import { motion } from "framer-motion";
1239
- import { useOutsideClick } from "@chakra-ui/react";
1240
- import CheckBox from "../Checkbox/Checkbox";
1241
- import { RadioButtonGroup } from "../RadioButton/RadioButton";
1242
- import { TextOperationControls } from "./TextOperationControls";
1243
- import { SelectOperationControls } from "./SelectOperationControls";
1244
- import CompactSelect, { Options } from "./CompactSelect";
1245
- import DatePicker from "../DatePicker/DatePicker";
1246
- import type { CustomThemeProps } from "../../Theme/themeProps";
1247
- import type { FilterValues } from "./filterTypes";
1248
- &nbsp;
1249
- // ─── Types ────────────────────────────────────────────────────────────────────
1250
- &nbsp;
1251
- export type FilterItem = {
1252
- id: string;
1253
- label: string;
1254
- type?: "text" | "select" | "user" | "date";
1255
- option?: { id: string; label: string }[];
1256
- /** Alternate options key used by some consumers */
1257
- selectOption?: Options[];
1258
- };
1259
- &nbsp;
1260
- export type FilterSection = {
1261
- id: string;
1262
- label: string;
1263
- items?: FilterItem[];
1264
- initiallyExpanded?: boolean;
1265
- radio?: boolean;
1266
- };
1267
- &nbsp;
1268
- export type SelectedFilterValue =
1269
- | string
1270
- | number
1271
- | Date
1272
- | Options
1273
- | null
1274
- | undefined;
1275
- &nbsp;
1276
- export type SelectedFilterItem = {
1277
- id: string;
1278
- condition?: string;
1279
- value?: SelectedFilterValue;
1280
- type?: "text" | "select" | "user" | "date";
1281
- };
1282
- &nbsp;
1283
- export type LeftFilterPaneProps = {
1284
- title?: string;
1285
- height?: number | string;
1286
- sections: FilterSection[];
1287
- selected?: FilterValues;
1288
- onApply?: (selected: FilterValues) =&gt; void;
1289
- onClear?: () =&gt; void;
1290
- theme: CustomThemeProps;
1291
- isApplyLoading?: boolean;
1292
- filterMode?: "sidebar" | "modal";
1293
- };
1294
- &nbsp;
1295
- // ─── Helpers ──────────────────────────────────────────────────────────────────
1296
- &nbsp;
1297
- const LABEL_MAX_LENGTH = 18;
1298
- &nbsp;
1299
- function formatHeaderLabel(label: string): string {
1300
- const text = (label || <span class="branch-1 cbranch-no" title="branch not covered" >"")</span>.trim();
1301
- if (text.length &lt;= LABEL_MAX_LENGTH) return text;
1302
- &nbsp;
1303
- let parts = text.split(/\s+/);
1304
- <span class="missing-if-branch" title="if path not taken" >I</span>if (parts.length &lt; 2) <span class="cstat-no" title="statement not covered" >return text;</span>
1305
- &nbsp;
1306
- const removable = new Set(["filters", "fields", "modules", "status", "action"]);
1307
- <span class="missing-if-branch" title="else path not taken" >E</span>if (removable.has(parts[parts.length - 1].toLowerCase())) {
1308
- parts = parts.slice(0, -1);
1309
- }
1310
- &nbsp;
1311
- while (parts.join(" ").length &gt; LABEL_MAX_LENGTH &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >parts.length &gt; 2)</span> {
1312
- <span class="cstat-no" title="statement not covered" > parts = parts.slice(0, -1);</span>
1313
- }
1314
- &nbsp;
1315
- return `${parts.join(" ")}..`;
1316
- }
1317
- &nbsp;
1318
- // ─── Sub-components ───────────────────────────────────────────────────────────
1319
- &nbsp;
1320
- type SectionLabelProps = {
1321
- label: string;
1322
- flex?: boolean;
1323
- theme: CustomThemeProps;
1324
- };
1325
- &nbsp;
1326
- const SectionLabel = ({ label, flex = false, theme }: SectionLabelProps) =&gt; {
1327
- const needsTooltip = label.length &gt; LABEL_MAX_LENGTH;
1328
- const content = (
1329
- &lt;Box
1330
- as="span"
1331
- flex={flex ? "1" : undefined}
1332
- textAlign="left"
1333
- fontWeight="medium"
1334
- fontSize="sm"
1335
- sx={{ whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }}
1336
- &gt;
1337
- {formatHeaderLabel(label)}
1338
- &lt;/Box&gt;
1339
- );
1340
- &nbsp;
1341
- if (!needsTooltip) return content;
1342
- &nbsp;
1343
- return (
1344
- &lt;Tooltip
1345
- label={label}
1346
- hasArrow
1347
- placement="top"
1348
- bg={theme.colors.gray[600]}
1349
- color={theme.colors.white}
1350
- fontSize="0.75rem"
1351
- &gt;
1352
- {content}
1353
- &lt;/Tooltip&gt;
1354
- );
1355
- };
1356
- &nbsp;
1357
- type ActiveItemControlsProps = {
1358
- activeItem: SelectedFilterItem;
1359
- sec: FilterSection;
1360
- setTextOperator: (sectionId: string, itemId: string, op: string) =&gt; void;
1361
- setTextValue: (sectionId: string, itemId: string, val: SelectedFilterValue) =&gt; void;
1362
- };
1363
- &nbsp;
1364
- const ActiveItemControls = ({ activeItem, sec, setTextOperator, setTextValue }: ActiveItemControlsProps) =&gt; {
1365
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!activeItem) <span class="cstat-no" title="statement not covered" >return null;</span>
1366
- &nbsp;
1367
- <span class="missing-if-branch" title="if path not taken" >I</span>if (activeItem.type === "date") {
1368
- <span class="cstat-no" title="statement not covered" > return (</span>
1369
- &lt;DatePicker
1370
- size="sm"
1371
- selectedDate={activeItem!.value as Date | null | undefined}
1372
- onChange={<span class="fstat-no" title="function not covered" >(v</span>al) =&gt; <span class="cstat-no" title="statement not covered" >setTextValue(sec.id, activeItem.id, val)}</span>
1373
- /&gt;
1374
- );
1375
- }
1376
- &nbsp;
1377
- <span class="missing-if-branch" title="else path not taken" >E</span>if (activeItem.type === "text") {
1378
- return (
1379
- &lt;TextOperationControls
1380
- operator={activeItem.condition || <span class="branch-1 cbranch-no" title="branch not covered" >"contains"}</span>
1381
- value={
1382
- typeof activeItem.value === "string" || <span class="branch-1 cbranch-no" title="branch not covered" >typeof activeItem.value === "number"</span>
1383
- ? String(activeItem.value)
1384
- : <span class="branch-1 cbranch-no" title="branch not covered" >""</span>
1385
- }
1386
- onOperatorChange={<span class="fstat-no" title="function not covered" >(o</span>p) =&gt; <span class="cstat-no" title="statement not covered" >setTextOperator(sec.id, activeItem.id, op)}</span>
1387
- onValueChange={<span class="fstat-no" title="function not covered" >(v</span>al) =&gt; <span class="cstat-no" title="statement not covered" >setTextValue(sec.id, activeItem.id, val)}</span>
1388
- /&gt;
1389
- );
1390
- }
1391
- &nbsp;
1392
- <span class="cstat-no" title="statement not covered" > if (activeItem.type === "select" || activeItem.type === "user") {</span>
1393
- const def = <span class="cstat-no" title="statement not covered" >(sec.items || []).find(<span class="fstat-no" title="function not covered" >(i</span>) =&gt; <span class="cstat-no" title="statement not covered" >i.id === activeItem.id)</span>;</span>
1394
- const opts = <span class="cstat-no" title="statement not covered" >def?.selectOption || def?.option || [];</span>
1395
- <span class="cstat-no" title="statement not covered" > return (</span>
1396
- &lt;&gt;
1397
- &lt;SelectOperationControls
1398
- operator={activeItem.condition || "is"}
1399
- onOperatorChange={<span class="fstat-no" title="function not covered" >(o</span>p) =&gt; <span class="cstat-no" title="statement not covered" >setTextOperator(sec.id, activeItem.id, op)}</span>
1400
- size="xs"
1401
- ml="1.25rem"
1402
- mt={2}
1403
- /&gt;
1404
- &lt;Box mt={2} ml="1.25rem"&gt;
1405
- &lt;CompactSelect
1406
- placeholder={def?.label}
1407
- size="xs"
1408
- height="22px"
1409
- options={opts}
1410
- value={activeItem.value as Options | undefined}
1411
- onSelect={<span class="fstat-no" title="function not covered" >(o</span>ption: Options) =&gt; <span class="cstat-no" title="statement not covered" >setTextValue(sec.id, activeItem.id, option)}</span>
1412
- /&gt;
1413
- &lt;/Box&gt;
1414
- &lt;/&gt;
1415
- );
1416
- }
1417
- &nbsp;
1418
- <span class="cstat-no" title="statement not covered" > return null;</span>
1419
- };
1420
- &nbsp;
1421
- type SectionContentProps = {
1422
- sec: FilterSection;
1423
- selected: FilterValues;
1424
- toggleItem: (sectionId: string, itemId: string, checked: boolean, type?: FilterItem["type"]) =&gt; void;
1425
- setTextOperator: (sectionId: string, itemId: string, op: string) =&gt; void;
1426
- setTextValue: (sectionId: string, itemId: string, val: SelectedFilterValue) =&gt; void;
1427
- setSelected: (updater: React.SetStateAction&lt;FilterValues&gt;) =&gt; void;
1428
- };
1429
- &nbsp;
1430
- const SectionContent = ({
1431
- sec,
1432
- selected,
1433
- toggleItem,
1434
- setTextOperator,
1435
- setTextValue,
1436
- setSelected,
1437
- }: SectionContentProps) =&gt; {
1438
- if (sec.radio) {
1439
- const sectionRows = selected[sec.id];
1440
- const activeItem: SelectedFilterItem | undefined = Array.isArray(sectionRows)
1441
- ? (sectionRows as SelectedFilterItem[])[0]
1442
- : undefined;
1443
- return (
1444
- &lt;&gt;
1445
- &lt;RadioButtonGroup
1446
- value={activeItem?.id || ""}
1447
- onChange={(val: string) =&gt; {
1448
- const item = (sec.items || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.find((i) =&gt; i.id === val);
1449
- setSelected((prev: FilterValues) =&gt; ({
1450
- ...prev,
1451
- [sec.id]: val
1452
- ? [{ id: val, type: item?.type, condition: item?.type === "text" ? "contains" : <span class="branch-1 cbranch-no" title="branch not covered" >"is",</span> value: "" }]
1453
- : <span class="branch-1 cbranch-no" title="branch not covered" >[],</span>
1454
- }));
1455
- }}
1456
- options={(sec.items || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.map((it) =&gt; ({ label: it.label, id: it.id }))}
1457
- size="sm"
1458
- spacing="0.35rem"
1459
- direction="column"
1460
- align="start"
1461
- labelFontSize="0.75rem"
1462
- labelClampLines={1}
1463
- showLabelTooltip={<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.label.length &gt; LABEL_MAX_LENGTH}</span>
1464
- /&gt;
1465
- {activeItem &amp;&amp; (
1466
- &lt;ActiveItemControls
1467
- activeItem={activeItem}
1468
- sec={sec}
1469
- setTextOperator={setTextOperator}
1470
- setTextValue={setTextValue}
1471
- /&gt;
1472
- )}
1473
- &lt;/&gt;
1474
- );
1475
- }
1476
- &nbsp;
1477
- return (
1478
- &lt;VStack spacing={2} align="stretch"&gt;
1479
- {(sec.items || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.map((it) =&gt; {
1480
- const raw = selected[sec.id];
1481
- const sectionItems: SelectedFilterItem[] = Array.isArray(raw)
1482
- ? (raw as SelectedFilterItem[])
1483
- : [];
1484
- const activeItem = sectionItems.find((i) =&gt; i.id === it.id);
1485
- const checked = !!activeItem;
1486
- &nbsp;
1487
- return (
1488
- &lt;React.Fragment key={it.id}&gt;
1489
- &lt;CheckBox
1490
- label={it.label}
1491
- labelFontSize="0.75rem"
1492
- showLabelTooltip={it.label.length &gt; LABEL_MAX_LENGTH}
1493
- labelTooltip={it.label}
1494
- labelClampLines={1}
1495
- isChecked={checked}
1496
- onChange={(e) =&gt; toggleItem(sec.id, it.id, e.target.checked, it.type)}
1497
- size="sm"
1498
- iconSize="0.5rem"
1499
- spacing="0.5rem"
1500
- sx={{
1501
- ".chakra-checkbox__control": { width: "12px", height: "12px", mt: "2px" },
1502
- ".chakra-checkbox__label": { lineHeight: "1rem", whiteSpace: "normal", wordBreak: "break-word" },
1503
- }}
1504
- /&gt;
1505
- {checked &amp;&amp; it.type === "date" &amp;&amp; (
1506
- &lt;Box ml="1.25rem"&gt;
1507
- &lt;DatePicker
1508
- size="sm"
1509
- selectedDate={activeItem!.value as Date | null | undefined}
1510
- onChange={(val) =&gt; setTextValue(sec.id, it.id, val)}
1511
- /&gt;
1512
- &lt;/Box&gt;
1513
- )}
1514
- {checked &amp;&amp; it.type === "text" &amp;&amp; (
1515
- &lt;TextOperationControls
1516
- operator={activeItem!.condition || <span class="branch-1 cbranch-no" title="branch not covered" >"contains"}</span>
1517
- value={
1518
- typeof activeItem!.value === "string" ||
1519
- <span class="branch-1 cbranch-no" title="branch not covered" > typeof activeItem!.value === "number"</span>
1520
- ? String(activeItem!.value)
1521
- : <span class="branch-1 cbranch-no" title="branch not covered" >""</span>
1522
- }
1523
- onOperatorChange={<span class="fstat-no" title="function not covered" >(o</span>p) =&gt; <span class="cstat-no" title="statement not covered" >setTextOperator(sec.id, it.id, op)}</span>
1524
- onValueChange={<span class="fstat-no" title="function not covered" >(v</span>al) =&gt; <span class="cstat-no" title="statement not covered" >setTextValue(sec.id, it.id, val)}</span>
1525
- /&gt;
1526
- )}
1527
- {checked &amp;&amp; (it.type === "select" || it.type === "user") &amp;&amp; (
1528
- <span class="branch-3 cbranch-no" title="branch not covered" > &lt;Box&gt;</span>
1529
- &lt;SelectOperationControls
1530
- operator={activeItem!.condition || "is"}
1531
- onOperatorChange={<span class="fstat-no" title="function not covered" >(o</span>p) =&gt; <span class="cstat-no" title="statement not covered" >setTextOperator(sec.id, it.id, op)}</span>
1532
- size="xs"
1533
- ml="1.25rem"
1534
- /&gt;
1535
- &lt;Box mt={2} ml="1.25rem"&gt;
1536
- &lt;CompactSelect
1537
- placeholder={it.label}
1538
- size="xs"
1539
- height="30px"
1540
- options={it.selectOption || it.option || []}
1541
- value={activeItem!.value as Options | undefined}
1542
- onSelect={<span class="fstat-no" title="function not covered" >(o</span>ption: Options) =&gt; <span class="cstat-no" title="statement not covered" >setTextValue(sec.id, it.id, option)}</span>
1543
- /&gt;
1544
- &lt;/Box&gt;
1545
- &lt;/Box&gt;
1546
- )}
1547
- &lt;/React.Fragment&gt;
1548
- );
1549
- })}
1550
- &lt;/VStack&gt;
1551
- );
1552
- };
1553
- &nbsp;
1554
- // ─── Main Component ───────────────────────────────────────────────────────────
1555
- &nbsp;
1556
- const LeftFilterPane = ({
1557
- title = "Filter",
1558
- height = 300,
1559
- sections,
1560
- selected: selectedProp,
1561
- onApply,
1562
- onClear,
1563
- theme,
1564
- isApplyLoading = false,
1565
- filterMode = "sidebar",
1566
- }: LeftFilterPaneProps) =&gt; {
1567
- const [isSearching, setIsSearching] = useState(
1568
- typeof selectedProp?.search === "string" &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!!selectedProp.search</span>
1569
- );
1570
- const [localSelected, setLocalSelected] = useState&lt;FilterValues&gt;({});
1571
- const searchRef = useRef&lt;HTMLDivElement | null&gt;(null);
1572
- &nbsp;
1573
- useEffect(() =&gt; {
1574
- setLocalSelected(selectedProp || {});
1575
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof selectedProp?.search === "string" &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >selectedProp.search)</span>
1576
- <span class="cstat-no" title="statement not covered" > setIsSearching(true);</span>
1577
- }, [selectedProp]);
1578
- &nbsp;
1579
- const search =
1580
- typeof localSelected.search === "string" ? localSelected.search : "";
1581
- &nbsp;
1582
- const setSelected = (updater: React.SetStateAction&lt;FilterValues&gt;) =&gt; {
1583
- setLocalSelected((prev) =&gt; (typeof updater === "function" ? updater(prev) : <span class="branch-1 cbranch-no" title="branch not covered" >updater)</span>);
1584
- };
1585
- &nbsp;
1586
- const setSearch = (val: string) =&gt; {
1587
- setSelected((prev) =&gt; ({ ...prev, search: val }));
1588
- };
1589
- &nbsp;
1590
- const updateItem = (sectionId: string, itemId: string, updates: Partial&lt;SelectedFilterItem&gt;) =&gt; {
1591
- setSelected((prev) =&gt; {
1592
- const prevSection = prev[sectionId];
1593
- const items: SelectedFilterItem[] = Array.isArray(prevSection)
1594
- ? (prevSection as SelectedFilterItem[])
1595
- : <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
1596
- const idx = items.findIndex((i) =&gt; i.id === itemId);
1597
- <span class="missing-if-branch" title="if path not taken" >I</span>if (idx === -1) <span class="cstat-no" title="statement not covered" >return prev;</span>
1598
- const updated = [...items];
1599
- updated[idx] = { ...updated[idx], ...updates };
1600
- return { ...prev, [sectionId]: updated };
1601
- });
1602
- };
1603
- &nbsp;
1604
- const setTextOperator = <span class="fstat-no" title="function not covered" >(s</span>ectionId: string, itemId: string, operator: string) =&gt;
1605
- <span class="cstat-no" title="statement not covered" > updateItem(sectionId, itemId, { condition: operator });</span>
1606
- &nbsp;
1607
- const setTextValue = (sectionId: string, itemId: string, value: SelectedFilterValue) =&gt;
1608
- updateItem(sectionId, itemId, { value });
1609
- &nbsp;
1610
- const toggleItem = (sectionId: string, itemId: string, checked: boolean, type?: FilterItem["type"]) =&gt; {
1611
- setSelected((prev) =&gt; {
1612
- const prevSection = prev[sectionId];
1613
- const items: SelectedFilterItem[] = Array.isArray(prevSection)
1614
- ? (<span class="branch-0 cbranch-no" title="branch not covered" >prevSection as SelectedFilterItem[])</span>
1615
- : [];
1616
- <span class="missing-if-branch" title="else path not taken" >E</span>if (checked) {
1617
- <span class="missing-if-branch" title="if path not taken" >I</span>if (items.some(<span class="fstat-no" title="function not covered" >(i</span>) =&gt; <span class="cstat-no" title="statement not covered" >i.id === itemId)</span>) <span class="cstat-no" title="statement not covered" >return prev;</span>
1618
- const condition = type === "select" || type === "user" ? <span class="branch-0 cbranch-no" title="branch not covered" >"is" </span>: "contains";
1619
- return { ...prev, [sectionId]: [...items, { id: itemId, type, condition, value: "" }] };
1620
- }
1621
- <span class="cstat-no" title="statement not covered" > return { ...prev, [sectionId]: items.filter(<span class="fstat-no" title="function not covered" >(i</span>) =&gt; <span class="cstat-no" title="statement not covered" >i.id !== itemId)</span> };</span>
1622
- });
1623
- };
1624
- &nbsp;
1625
- useOutsideClick({
1626
- ref: searchRef,
1627
- handler: () =&gt; {
1628
- <span class="missing-if-branch" title="if path not taken" >I</span>if (isSearching &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!search.trim())</span> <span class="cstat-no" title="statement not covered" >setIsSearching(false);</span>
1629
- },
1630
- });
1631
- &nbsp;
1632
- const filteredSections = useMemo(() =&gt; {
1633
- if (!search.trim()) return sections;
1634
- const q = search.toLowerCase();
1635
- return sections
1636
- .map((sec) =&gt; ({ ...sec, items: (sec.items || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.filter((i) =&gt; i.label.toLowerCase().includes(q)) }))
1637
- .filter((sec) =&gt; (sec.items || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.length &gt; 0);
1638
- }, [search, sections]);
1639
- &nbsp;
1640
- const hasActiveFilters = useMemo(() =&gt; {
1641
- return Object.entries(localSelected).some(([key, value]) =&gt; {
1642
- if (key === "search") return !!(value &amp;&amp; typeof value === "string" &amp;&amp; value.trim());
1643
- return Array.isArray(value) &amp;&amp; value.length &gt; 0;
1644
- });
1645
- }, [localSelected]);
1646
- &nbsp;
1647
- const handleApply = () =&gt; onApply?.(localSelected);
1648
- &nbsp;
1649
- const handleClear = () =&gt; {
1650
- const cleared = { search: "" };
1651
- setLocalSelected(cleared);
1652
- onClear?.();
1653
- <span class="missing-if-branch" title="else path not taken" >E</span>if (filterMode === "sidebar") onApply?.(cleared);
1654
- };
1655
- &nbsp;
1656
- const sectionContentProps = { selected: localSelected, toggleItem, setTextOperator, setTextValue, setSelected };
1657
- &nbsp;
1658
- const renderSections = () =&gt; {
1659
- if (filteredSections.length === 0) {
1660
- return (
1661
- &lt;Box p={4} textAlign="center"&gt;
1662
- &lt;Text fontSize="xs" color="gray.500"&gt;No filters found&lt;/Text&gt;
1663
- &lt;/Box&gt;
1664
- );
1665
- }
1666
- &nbsp;
1667
- if (filteredSections.length &gt; 1) {
1668
- return (
1669
- &lt;Accordion
1670
- allowMultiple
1671
- defaultIndex={filteredSections.map((s, i) =&gt; (s.initiallyExpanded ? <span class="branch-0 cbranch-no" title="branch not covered" >i </span>: -1)).filter((i) =&gt; i &gt;= 0)}
1672
- &gt;
1673
- {filteredSections.map((sec) =&gt; (
1674
- &lt;AccordionItem key={sec.id} border="none"&gt;
1675
- &lt;h2&gt;
1676
- &lt;AccordionButton px={3} py={2} _expanded={{ bg: "gray.50" }}&gt;
1677
- &lt;SectionLabel label={sec.label} flex theme={theme} /&gt;
1678
- &lt;AccordionIcon /&gt;
1679
- &lt;/AccordionButton&gt;
1680
- &lt;/h2&gt;
1681
- &lt;AccordionPanel px={3} pt={2} pb={1}&gt;
1682
- &lt;SectionContent sec={sec} {...sectionContentProps} /&gt;
1683
- &lt;/AccordionPanel&gt;
1684
- &lt;/AccordionItem&gt;
1685
- ))}
1686
- &lt;/Accordion&gt;
1687
- );
1688
- }
1689
- &nbsp;
1690
- return filteredSections.map((sec) =&gt; (
1691
- &lt;Box key={sec.id}&gt;
1692
- &lt;Box px={3} py={2} borderBottom="1px solid" borderColor="gray.200"&gt;
1693
- &lt;SectionLabel label={sec.label} theme={theme} /&gt;
1694
- &lt;/Box&gt;
1695
- &lt;Box px={3} pt={2} pb={1}&gt;
1696
- &lt;SectionContent sec={sec} {...sectionContentProps} /&gt;
1697
- &lt;/Box&gt;
1698
- &lt;/Box&gt;
1699
- ));
1700
- };
1701
- &nbsp;
1702
- return (
1703
- &lt;Box
1704
- width={filterMode === "modal" ? "100%" : "180px"}
1705
- height={filterMode === "modal" ? "100%" : height}
1706
- minHeight={"32rem"}
1707
- bg="white"
1708
- borderRight="1px solid"
1709
- borderColor="gray.200"
1710
- borderRadius="md"
1711
- overflow="hidden"
1712
- display="flex"
1713
- flexDirection="column"
1714
- marginBottom={filterMode === "modal" &amp;&amp; hasActiveFilters ? '3.5rem' : 0}
1715
- &gt;
1716
- &lt;Box p={3} borderBottom="1px solid" borderColor="gray.200"&gt;
1717
- {!isSearching ? (
1718
- &lt;Flex align="center" justify="space-between"&gt;
1719
- &lt;Text fontWeight="semibold" fontSize="sm"&gt;{title}&lt;/Text&gt;
1720
- &lt;Icon
1721
- as={Search}
1722
- transform="scaleX(-1)"
1723
- cursor="pointer"
1724
- boxSize={4}
1725
- color={theme.colors?.text?.[500]}
1726
- onClick={() =&gt; setIsSearching(true)}
1727
- mr={filterMode === "modal" ? 8 : 2}
1728
- mt={filterMode === "modal" ? -1 : 0}
1729
- /&gt;
1730
- &lt;/Flex&gt;
1731
- ) : (
1732
- &lt;motion.div
1733
- ref={searchRef}
1734
- initial={{ opacity: 0, x: 40 }}
1735
- animate={{ opacity: 1, x: 0 }}
1736
- transition={{ type: "tween", duration: 0.2 }}
1737
- &gt;
1738
- &lt;InputGroup size="sm"&gt;
1739
- &lt;InputLeftElement pointerEvents="none"&gt;
1740
- &lt;Search size={16} color={theme.colors?.text?.[500]} /&gt;
1741
- &lt;/InputLeftElement&gt;
1742
- &lt;Input
1743
- placeholder="Search"
1744
- value={search}
1745
- onChange={(e) =&gt; setSearch(e.target.value)}
1746
- autoFocus
1747
- /&gt;
1748
- {search.length &gt; 0 &amp;&amp; (
1749
- &lt;InputRightElement&gt;
1750
- &lt;IconButton
1751
- aria-label="Clear"
1752
- size="xs"
1753
- variant="ghost"
1754
- icon={&lt;X size={14} /&gt;}
1755
- onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; { <span class="cstat-no" title="statement not covered" >setSearch(""); <span class="cstat-no" title="statement not covered" ></span>setIsSearching(false); </span>}}
1756
- /&gt;
1757
- &lt;/InputRightElement&gt;
1758
- )}
1759
- &lt;/InputGroup&gt;
1760
- &lt;/motion.div&gt;
1761
- )}
1762
- &lt;/Box&gt;
1763
- &nbsp;
1764
- &lt;Box flex="1" overflowY="auto"&gt;
1765
- {renderSections()}
1766
- &lt;/Box&gt;
1767
- &nbsp;
1768
- {hasActiveFilters &amp;&amp; (
1769
- &lt;HStack px={2} py={1} borderTop="1px solid" borderColor="gray.200" spacing={2} position={filterMode === "modal" ? "absolute" : "relative"} bottom={0} left={0} right={0} bg="white"&gt;
1770
- &lt;Button flex={1} variant="outline" size="sm" onClick={handleClear} fontSize="xs" colorScheme="red"&gt;
1771
- Clear All
1772
- &lt;/Button&gt;
1773
- &lt;Button
1774
- flex={1}
1775
- colorScheme="primary"
1776
- color="white"
1777
- size="sm"
1778
- onClick={handleApply}
1779
- fontSize="xs"
1780
- isLoading={isApplyLoading}
1781
- &gt;
1782
- Apply
1783
- &lt;/Button&gt;
1784
- &lt;/HStack&gt;
1785
- )}
1786
- &lt;/Box&gt;
1787
- );
1788
- };
1789
- &nbsp;
1790
- export default LeftFilterPane;
1791
- &nbsp;</pre></td></tr></table></pre>
1792
-
1793
- <div class='push'></div><!-- for sticky footer -->
1794
- </div><!-- /wrapper -->
1795
- <div class='footer quiet pad2 space-top1 center small'>
1796
- Code coverage generated by
1797
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1798
- at 2026-04-25T11:11:29.488Z
1799
- </div>
1800
- <script src="../prettify.js"></script>
1801
- <script>
1802
- window.onload = function () {
1803
- prettyPrint();
1804
- };
1805
- </script>
1806
- <script src="../sorter.js"></script>
1807
- <script src="../block-navigation.js"></script>
1808
- </body>
1809
- </html>
1810
-