pixelize-design-library 2.3.9 → 2.3.11

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 (153) hide show
  1. package/.cursor/plans/current.md +8 -11
  2. package/dist/Components/KanbanBoard/KanbanBoard.d.ts.map +1 -1
  3. package/dist/Components/KanbanBoard/KanbanBoard.js +38 -1
  4. package/dist/Components/Table/Table.d.ts.map +1 -1
  5. package/dist/Components/Table/Table.js +9 -3
  6. package/package.json +1 -1
  7. package/.claude/settings.local.json +0 -51
  8. package/coverage/clover.xml +0 -1613
  9. package/coverage/coverage-final.json +0 -49
  10. package/coverage/coverage-summary.json +0 -50
  11. package/coverage/lcov-report/Button/Button.tsx.html +0 -244
  12. package/coverage/lcov-report/Button/index.html +0 -116
  13. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
  14. package/coverage/lcov-report/Checkbox/index.html +0 -116
  15. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
  16. package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
  17. package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
  18. package/coverage/lcov-report/Common/index.html +0 -146
  19. package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
  20. package/coverage/lcov-report/Components/Button/index.html +0 -116
  21. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
  22. package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
  23. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
  24. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
  25. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
  26. package/coverage/lcov-report/Components/Common/index.html +0 -146
  27. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
  28. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
  29. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
  30. package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
  31. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
  32. package/coverage/lcov-report/Components/Divider/index.html +0 -116
  33. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
  34. package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
  35. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
  36. package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
  37. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
  38. package/coverage/lcov-report/Components/Header/index.html +0 -116
  39. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
  40. package/coverage/lcov-report/Components/Input/index.html +0 -131
  41. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
  42. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
  43. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
  44. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
  45. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
  46. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3481
  47. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
  48. package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
  49. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  50. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  51. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  52. package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
  53. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  54. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
  55. package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
  56. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
  57. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  58. package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
  59. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
  60. package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
  61. package/coverage/lcov-report/Components/Select/index.html +0 -116
  62. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
  63. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
  64. package/coverage/lcov-report/Components/SideBar/components/index.html +0 -131
  65. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
  66. package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
  67. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
  68. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
  69. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
  70. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
  71. package/coverage/lcov-report/Components/Table/components/index.html +0 -161
  72. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
  73. package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
  74. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
  75. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
  76. package/coverage/lcov-report/Components/Tag/index.html +0 -131
  77. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
  78. package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
  79. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
  80. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
  81. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
  82. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
  83. package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
  84. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
  85. package/coverage/lcov-report/EmptyState/index.html +0 -116
  86. package/coverage/lcov-report/Hooks/index.html +0 -116
  87. package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
  88. package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
  89. package/coverage/lcov-report/Input/index.html +0 -131
  90. package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
  91. package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
  92. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  93. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  94. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  95. package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
  96. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  97. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
  98. package/coverage/lcov-report/RolesPermission/index.html +0 -116
  99. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
  100. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  101. package/coverage/lcov-report/SearchSelect/index.html +0 -146
  102. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
  103. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  104. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  105. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  106. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  107. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  108. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  109. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  110. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  111. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  112. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  113. package/coverage/lcov-report/Table/Components/index.html +0 -266
  114. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  115. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  116. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  117. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  118. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  119. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  120. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  121. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  122. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  123. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  124. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  125. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  126. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  127. package/coverage/lcov-report/Table/index.html +0 -176
  128. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
  129. package/coverage/lcov-report/Table/settings/index.html +0 -116
  130. package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
  131. package/coverage/lcov-report/Tag/index.html +0 -116
  132. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
  133. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
  134. package/coverage/lcov-report/Theme/index.html +0 -131
  135. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
  136. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
  137. package/coverage/lcov-report/ToolTip/index.html +0 -116
  138. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
  139. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
  140. package/coverage/lcov-report/UserDetails/index.html +0 -116
  141. package/coverage/lcov-report/Utils/functions.ts.html +0 -106
  142. package/coverage/lcov-report/Utils/index.html +0 -131
  143. package/coverage/lcov-report/Utils/table.ts.html +0 -1189
  144. package/coverage/lcov-report/base.css +0 -224
  145. package/coverage/lcov-report/block-navigation.js +0 -87
  146. package/coverage/lcov-report/favicon.png +0 -0
  147. package/coverage/lcov-report/index.html +0 -476
  148. package/coverage/lcov-report/prettify.css +0 -1
  149. package/coverage/lcov-report/prettify.js +0 -2
  150. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  151. package/coverage/lcov-report/sorter.js +0 -210
  152. package/coverage/lcov.info +0 -4339
  153. package/dist/Assets/defaultLogo.tsx +0 -30
@@ -1,1732 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for Components/RolesPermission/RolesPermission.tsx</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">Components/RolesPermission</a> RolesPermission.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">81.39% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>35/43</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">57.35% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>39/68</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">70% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>14/20</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">83.33% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>35/42</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-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-yes">1x</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-yes">1x</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-yes">1x</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-yes">11x</span>
734
- <span class="cline-any cline-yes">11x</span>
735
- <span class="cline-any cline-yes">10x</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-yes">11x</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-yes">11x</span>
742
- <span class="cline-any cline-yes">11x</span>
743
- <span class="cline-any cline-yes">11x</span>
744
- <span class="cline-any cline-yes">11x</span>
745
- <span class="cline-any cline-yes">11x</span>
746
- <span class="cline-any cline-yes">11x</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-yes">11x</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-neutral">&nbsp;</span>
752
- <span class="cline-any cline-neutral">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-neutral">&nbsp;</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-yes">11x</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-neutral">&nbsp;</span>
767
- <span class="cline-any cline-yes">11x</span>
768
- <span class="cline-any cline-neutral">&nbsp;</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-yes">11x</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-yes">11x</span>
784
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
790
- <span class="cline-any cline-yes">11x</span>
791
- <span class="cline-any cline-yes">7x</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
803
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&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-no">&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-neutral">&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-neutral">&nbsp;</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-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-yes">12x</span>
868
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&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">1x</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-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</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-yes">11x</span>
941
- <span class="cline-any cline-yes">4x</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-neutral">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&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-no">&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-neutral">&nbsp;</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-yes">1x</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-neutral">&nbsp;</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-yes">1x</span>
995
- <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-neutral">&nbsp;</span>
998
- <span class="cline-any cline-neutral">&nbsp;</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-neutral">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1005
- <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</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-yes">24x</span>
1029
- <span class="cline-any cline-neutral">&nbsp;</span>
1030
- <span class="cline-any cline-neutral">&nbsp;</span>
1031
- <span class="cline-any cline-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-neutral">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-neutral">&nbsp;</span>
1037
- <span class="cline-any cline-neutral">&nbsp;</span>
1038
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-neutral">&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">8x</span>
1051
- <span class="cline-any cline-yes">8x</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-yes">48x</span>
1071
- <span class="cline-any cline-yes">48x</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</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">1x</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-yes">11x</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-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-no">&nbsp;</span>
1153
- <span class="cline-any cline-neutral">&nbsp;</span>
1154
- <span class="cline-any cline-no">&nbsp;</span>
1155
- <span class="cline-any cline-no">&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></td><td class="text"><pre class="prettyprint lang-js">import React, { useMemo, useState } from "react";
1165
- import {
1166
- Badge,
1167
- Box,
1168
- Checkbox,
1169
- Divider,
1170
- Flex,
1171
- Heading,
1172
- HStack,
1173
- IconButton,
1174
- Skeleton,
1175
- Table,
1176
- Tbody,
1177
- Td,
1178
- Text,
1179
- Th,
1180
- Thead,
1181
- Tooltip,
1182
- Tr,
1183
- VStack,
1184
- } from "@chakra-ui/react";
1185
- import {
1186
- ArrowLeft,
1187
- Check,
1188
- Pencil,
1189
- Plus,
1190
- ShieldCheck,
1191
- SquareArrowOutUpRight,
1192
- Trash2,
1193
- } from "lucide-react";
1194
- &nbsp;
1195
- import { useCustomTheme } from "../../Theme/useCustomTheme";
1196
- import Button from "../Button/Button";
1197
- import TextInput from "../Input/TextInput";
1198
- import EmptyState from "../EmptyState/EmptyState";
1199
- import DeleteRoleModal from "./DeleteRoleModal";
1200
- import {
1201
- PermissionKey,
1202
- RolesPermissionLabels,
1203
- RolesPermissionProps,
1204
- } from "./RolesPermissionProps";
1205
- &nbsp;
1206
- const DEFAULT_LABELS: Required&lt;RolesPermissionLabels&gt; = {
1207
- title: "Roles &amp; Permissions",
1208
- totalRoles: "Total Roles",
1209
- newRole: "New Role",
1210
- sNo: "S.No",
1211
- roleNameColumn: "Role name",
1212
- createdBy: "Created By",
1213
- createdTime: "Created Time",
1214
- actions: "Actions",
1215
- noRoles: "No roles found",
1216
- view: "View",
1217
- edit: "Edit",
1218
- delete: "Delete",
1219
- roleInformation: "Role &amp; Permission Information",
1220
- roleName: "Role Name",
1221
- roleNamePlaceholder: "Enter role name",
1222
- enableAllPermissions: "Enable All Permissions",
1223
- trackLocation: "Track Location",
1224
- showAllUserRecords: "Show All User Records",
1225
- permissionSettings: "Permission Settings",
1226
- moduleName: "Module Name",
1227
- read: "Read",
1228
- create: "Create",
1229
- editPermission: "Edit",
1230
- deletePermission: "Delete",
1231
- importPermission: "Import",
1232
- exportPermission: "Export",
1233
- noPermissions: "No permissions found",
1234
- cancel: "Cancel",
1235
- saveChanges: "Save Changes",
1236
- updateChanges: "Update Changes",
1237
- readOnly: "Read Only",
1238
- deleteRole: "Delete Role",
1239
- deleteRoleConfirm: "Are you sure you want to delete this role?",
1240
- };
1241
- &nbsp;
1242
- const DEFAULT_KEYS: PermissionKey[] = [
1243
- "read",
1244
- "create",
1245
- "edit",
1246
- "delete",
1247
- "import",
1248
- "export",
1249
- ];
1250
- &nbsp;
1251
- const RolesPermission: React.FC&lt;RolesPermissionProps&gt; = ({
1252
- view,
1253
- mode = "create",
1254
- roles,
1255
- isRolesLoading = false,
1256
- permissions,
1257
- permissionKeys = DEFAULT_KEYS,
1258
- roleName,
1259
- roleNameError,
1260
- isSuperAdmin,
1261
- isTrackLocation,
1262
- isShowRecords,
1263
- isEditing = false,
1264
- isSaving = false,
1265
- onNewRole,
1266
- onViewRole,
1267
- onEditRole,
1268
- onDeleteRole,
1269
- onBack,
1270
- onRoleNameChange,
1271
- onToggleSuperAdmin,
1272
- onToggleTrackLocation,
1273
- onToggleShowRecords,
1274
- onPermissionChange,
1275
- onSave,
1276
- onCancelForm,
1277
- footerSlot,
1278
- checkIcon,
1279
- labels: labelOverrides,
1280
- padding = "16px",
1281
- }) =&gt; {
1282
- const { colors } = useCustomTheme();
1283
- const labels = useMemo(
1284
- () =&gt; ({ ...DEFAULT_LABELS, ...labelOverrides }),
1285
- [labelOverrides]
1286
- );
1287
- &nbsp;
1288
- const [deleteId, setDeleteId] = useState&lt;number | null&gt;(null);
1289
- &nbsp;
1290
- const border = colors?.boxborder?.[200] ?? <span class="branch-1 cbranch-no" title="branch not covered" >colors?.gray?.[200] </span>?? <span class="branch-2 cbranch-no" title="branch not covered" >"#E2E8F0";</span>
1291
- const surface = colors?.white ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#FFFFFF";</span>
1292
- const muted = colors?.gray?.[500] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#64748B";</span>
1293
- const heading = colors?.gray?.[800] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#1E293B";</span>
1294
- const headBg = colors?.gray?.[50] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#F8FAFC";</span>
1295
- const isViewMode = mode === "view";
1296
- &nbsp;
1297
- const columnLabels: Record&lt;PermissionKey, string&gt; = {
1298
- read: labels.read,
1299
- create: labels.create,
1300
- edit: labels.editPermission,
1301
- delete: labels.deletePermission,
1302
- import: labels.importPermission,
1303
- export: labels.exportPermission,
1304
- automation: "Automation",
1305
- };
1306
- &nbsp;
1307
- const cardSx = {
1308
- backgroundColor: surface,
1309
- borderRadius: "xl",
1310
- border: "1px solid",
1311
- borderColor: border,
1312
- boxShadow: "0 1px 2px rgba(16,24,40,0.05)",
1313
- overflow: "hidden" as const,
1314
- };
1315
- &nbsp;
1316
- const cardHeaderSx = {
1317
- px: 4,
1318
- py: 3,
1319
- borderBottom: "1px solid",
1320
- borderColor: border,
1321
- };
1322
- &nbsp;
1323
- const thStyle = {
1324
- fontSize: "0.7rem",
1325
- textTransform: "uppercase" as const,
1326
- letterSpacing: "0.04em",
1327
- color: muted,
1328
- borderColor: border,
1329
- py: 3,
1330
- };
1331
- &nbsp;
1332
- const renderGrantedCheck = <span class="fstat-no" title="function not covered" >()</span> =&gt;
1333
- <span class="cstat-no" title="statement not covered" > checkIcon ?? (</span>
1334
- &lt;Box color={colors?.green?.[500] ?? "#22C55E"} display="inline-flex"&gt;
1335
- &lt;Check size={18} strokeWidth={3} /&gt;
1336
- &lt;/Box&gt;
1337
- );
1338
- &nbsp;
1339
- const renderListView = () =&gt; (
1340
- &lt;VStack align="stretch" spacing={4}&gt;
1341
- &lt;Box {...cardSx}&gt;
1342
- &lt;Flex
1343
- {...cardHeaderSx}
1344
- alignItems="center"
1345
- justifyContent="space-between"
1346
- &gt;
1347
- &lt;HStack spacing={2}&gt;
1348
- {onBack &amp;&amp; (
1349
- <span class="branch-1 cbranch-no" title="branch not covered" > &lt;IconButton</span>
1350
- aria-label="Go back"
1351
- icon={&lt;ArrowLeft size={16} /&gt;}
1352
- variant="ghost"
1353
- size="xs"
1354
- color={muted}
1355
- onClick={onBack}
1356
- /&gt;
1357
- )}
1358
- &lt;Heading size="sm" fontWeight={600} color={heading}&gt;
1359
- {labels.title}
1360
- &lt;/Heading&gt;
1361
- {!isRolesLoading &amp;&amp; (
1362
- &lt;Badge
1363
- colorScheme="blue"
1364
- variant="subtle"
1365
- borderRadius="full"
1366
- px={2}
1367
- py={0.5}
1368
- fontSize="0.65rem"
1369
- textTransform="none"
1370
- &gt;
1371
- {labels.totalRoles}: {roles.length}
1372
- &lt;/Badge&gt;
1373
- )}
1374
- &lt;/HStack&gt;
1375
- &lt;Button
1376
- label={labels.newRole}
1377
- onClick={onNewRole}
1378
- size="sm"
1379
- sx={{ fontSize: "xs" }}
1380
- colorScheme="primary"
1381
- leftIcon={&lt;Plus size={15} /&gt;}
1382
- /&gt;
1383
- &lt;/Flex&gt;
1384
- &nbsp;
1385
- &lt;Box overflowX="auto"&gt;
1386
- {isRolesLoading ? (
1387
- <span class="branch-0 cbranch-no" title="branch not covered" > &lt;VStack spacing={3} p={4} align="stretch"&gt;</span>
1388
- {Array.from({ length: 6 }).map(<span class="fstat-no" title="function not covered" >(_</span>, idx) =&gt; (
1389
- <span class="cstat-no" title="statement not covered" > &lt;Skeleton key={idx} height="18px" borderRadius="md" /&gt;</span>
1390
- ))}
1391
- &lt;/VStack&gt;
1392
- ) : roles.length === 0 ? (
1393
- &lt;EmptyState
1394
- icon={ShieldCheck}
1395
- title={labels.noRoles}
1396
- size="sm"
1397
- minH="200px"
1398
- /&gt;
1399
- ) : (
1400
- &lt;Table variant="simple" size="sm"&gt;
1401
- &lt;Thead bg={headBg}&gt;
1402
- &lt;Tr&gt;
1403
- &lt;Th {...thStyle} width="56px"&gt;
1404
- {labels.sNo}
1405
- &lt;/Th&gt;
1406
- &lt;Th {...thStyle}&gt;{labels.roleNameColumn}&lt;/Th&gt;
1407
- &lt;Th {...thStyle}&gt;{labels.createdBy}&lt;/Th&gt;
1408
- &lt;Th {...thStyle}&gt;{labels.createdTime}&lt;/Th&gt;
1409
- &lt;Th {...thStyle} textAlign="right"&gt;
1410
- {labels.actions}
1411
- &lt;/Th&gt;
1412
- &lt;/Tr&gt;
1413
- &lt;/Thead&gt;
1414
- &lt;Tbody&gt;
1415
- {roles.map((role, index) =&gt; (
1416
- &lt;Tr
1417
- key={role.roles_id ?? <span class="branch-1 cbranch-no" title="branch not covered" >role.roleName}</span>
1418
- _hover={{ bg: headBg }}
1419
- transition="background 0.15s ease"
1420
- &gt;
1421
- &lt;Td borderColor={border} color={muted} fontSize="sm"&gt;
1422
- {index + 1}
1423
- &lt;/Td&gt;
1424
- &lt;Td
1425
- borderColor={border}
1426
- maxW="160px"
1427
- whiteSpace="nowrap"
1428
- overflow="hidden"
1429
- textOverflow="ellipsis"
1430
- fontSize="sm"
1431
- fontWeight={600}
1432
- color={heading}
1433
- &gt;
1434
- {role.roleName}
1435
- &lt;/Td&gt;
1436
- &lt;Td borderColor={border} fontSize="sm" color={muted}&gt;
1437
- {role.createdBy}
1438
- &lt;/Td&gt;
1439
- &lt;Td borderColor={border} fontSize="sm" color={muted}&gt;
1440
- {role.created_at}
1441
- &lt;/Td&gt;
1442
- &lt;Td borderColor={border}&gt;
1443
- &lt;HStack spacing={1} justifyContent="flex-end"&gt;
1444
- &lt;Tooltip label={labels.view} hasArrow&gt;
1445
- &lt;IconButton
1446
- icon={&lt;SquareArrowOutUpRight size={15} /&gt;}
1447
- aria-label={labels.view}
1448
- variant="ghost"
1449
- size="xs"
1450
- color={muted}
1451
- onClick={() =&gt; onViewRole?.(role)}
1452
- /&gt;
1453
- &lt;/Tooltip&gt;
1454
- &lt;Tooltip label={labels.edit} hasArrow&gt;
1455
- &lt;IconButton
1456
- icon={&lt;Pencil size={15} /&gt;}
1457
- aria-label={labels.edit}
1458
- variant="ghost"
1459
- size="xs"
1460
- color={muted}
1461
- onClick={() =&gt; onEditRole?.(role)}
1462
- /&gt;
1463
- &lt;/Tooltip&gt;
1464
- &lt;Tooltip label={labels.delete} hasArrow&gt;
1465
- &lt;IconButton
1466
- icon={&lt;Trash2 size={15} /&gt;}
1467
- aria-label={labels.delete}
1468
- variant="ghost"
1469
- size="xs"
1470
- colorScheme="red"
1471
- color={colors?.red?.[400] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#F87171"}</span>
1472
- onClick={() =&gt; setDeleteId(Number(role.roles_id))}
1473
- /&gt;
1474
- &lt;/Tooltip&gt;
1475
- &lt;/HStack&gt;
1476
- &lt;/Td&gt;
1477
- &lt;/Tr&gt;
1478
- ))}
1479
- &lt;/Tbody&gt;
1480
- &lt;/Table&gt;
1481
- )}
1482
- &lt;/Box&gt;
1483
- &lt;/Box&gt;
1484
- &nbsp;
1485
- {footerSlot}
1486
- &lt;/VStack&gt;
1487
- );
1488
- &nbsp;
1489
- const renderFormView = () =&gt; (
1490
- &lt;VStack align="stretch" spacing={4}&gt;
1491
- {/* Role information card */}
1492
- &lt;Box {...cardSx}&gt;
1493
- &lt;Flex {...cardHeaderSx} alignItems="center" gap={2}&gt;
1494
- {onCancelForm &amp;&amp; (
1495
- &lt;IconButton
1496
- aria-label="Go back"
1497
- icon={&lt;ArrowLeft size={16} /&gt;}
1498
- variant="ghost"
1499
- size="xs"
1500
- color={muted}
1501
- onClick={onCancelForm}
1502
- /&gt;
1503
- )}
1504
- &lt;Heading size="sm" fontWeight={600} color={heading}&gt;
1505
- {labels.roleInformation}
1506
- &lt;/Heading&gt;
1507
- &lt;/Flex&gt;
1508
- &nbsp;
1509
- &lt;Box p={4}&gt;
1510
- &lt;Box maxW="320px"&gt;
1511
- &lt;Tooltip label={isViewMode ? <span class="branch-0 cbranch-no" title="branch not covered" >labels.readOnly </span>: ""} isDisabled={!isViewMode}&gt;
1512
- &lt;Box&gt;
1513
- &lt;TextInput
1514
- label={labels.roleName}
1515
- value={roleName}
1516
- placeholder={labels.roleNamePlaceholder}
1517
- error={!!roleNameError}
1518
- errorMessage={roleNameError}
1519
- onChange={<span class="fstat-no" title="function not covered" >(e</span>) =&gt; <span class="cstat-no" title="statement not covered" >onRoleNameChange?.(e.target.value)}</span>
1520
- isRequired
1521
- width="100%"
1522
- isDisabled={isViewMode}
1523
- /&gt;
1524
- &lt;/Box&gt;
1525
- &lt;/Tooltip&gt;
1526
- &lt;/Box&gt;
1527
- &nbsp;
1528
- &lt;VStack align="stretch" spacing={3} mt={4}&gt;
1529
- &lt;Checkbox
1530
- isChecked={isSuperAdmin}
1531
- isDisabled={isViewMode}
1532
- size="sm"
1533
- onChange={(e) =&gt; onToggleSuperAdmin?.(e.target.checked)}
1534
- &gt;
1535
- &lt;Text fontSize="sm" color={heading}&gt;
1536
- {labels.enableAllPermissions}
1537
- &lt;/Text&gt;
1538
- &lt;/Checkbox&gt;
1539
- &lt;Checkbox
1540
- isChecked={isTrackLocation}
1541
- isDisabled={isViewMode}
1542
- size="sm"
1543
- onChange={(e) =&gt; onToggleTrackLocation?.(e.target.checked)}
1544
- &gt;
1545
- &lt;Text fontSize="sm" color={heading}&gt;
1546
- {labels.trackLocation}
1547
- &lt;/Text&gt;
1548
- &lt;/Checkbox&gt;
1549
- &lt;Checkbox
1550
- isChecked={isShowRecords}
1551
- isDisabled={isViewMode}
1552
- size="sm"
1553
- onChange={<span class="fstat-no" title="function not covered" >(e</span>) =&gt; <span class="cstat-no" title="statement not covered" >onToggleShowRecords?.(e.target.checked)}</span>
1554
- &gt;
1555
- &lt;Text fontSize="sm" color={heading}&gt;
1556
- {labels.showAllUserRecords}
1557
- &lt;/Text&gt;
1558
- &lt;/Checkbox&gt;
1559
- &lt;/VStack&gt;
1560
- &lt;/Box&gt;
1561
- &lt;/Box&gt;
1562
- &nbsp;
1563
- {/* Permission matrix card */}
1564
- &lt;Box {...cardSx}&gt;
1565
- &lt;Flex {...cardHeaderSx} alignItems="center"&gt;
1566
- &lt;Heading size="sm" fontWeight={600} color={heading}&gt;
1567
- {labels.permissionSettings}
1568
- &lt;/Heading&gt;
1569
- &lt;/Flex&gt;
1570
- &nbsp;
1571
- &lt;Box overflowX="auto"&gt;
1572
- &lt;Table variant="simple" size="sm"&gt;
1573
- &lt;Thead bg={headBg}&gt;
1574
- &lt;Tr&gt;
1575
- &lt;Th {...thStyle}&gt;{labels.moduleName}&lt;/Th&gt;
1576
- {permissionKeys.map((key) =&gt; (
1577
- &lt;Th key={key} {...thStyle} textAlign="center"&gt;
1578
- {columnLabels[key]}
1579
- &lt;/Th&gt;
1580
- ))}
1581
- &lt;/Tr&gt;
1582
- &lt;/Thead&gt;
1583
- &lt;Tbody&gt;
1584
- {permissions.length === 0 ? (
1585
- <span class="branch-0 cbranch-no" title="branch not covered" > &lt;Tr&gt;</span>
1586
- &lt;Td
1587
- colSpan={permissionKeys.length + 1}
1588
- textAlign="center"
1589
- borderColor={border}
1590
- &gt;
1591
- &lt;Text color={muted} fontSize="sm" py={4}&gt;
1592
- {labels.noPermissions}
1593
- &lt;/Text&gt;
1594
- &lt;/Td&gt;
1595
- &lt;/Tr&gt;
1596
- ) : (
1597
- permissions.map((perm) =&gt; {
1598
- const isAutomationModule =
1599
- perm.module?.toLowerCase() === "automation";
1600
- return (
1601
- &lt;Tr
1602
- key={perm.module}
1603
- _hover={{ bg: headBg }}
1604
- transition="background 0.15s ease"
1605
- &gt;
1606
- &lt;Td
1607
- borderColor={border}
1608
- color={heading}
1609
- fontSize="sm"
1610
- fontWeight={500}
1611
- maxW="160px"
1612
- whiteSpace="nowrap"
1613
- overflow="hidden"
1614
- textOverflow="ellipsis"
1615
- &gt;
1616
- {perm.module}
1617
- &lt;/Td&gt;
1618
- {permissionKeys.map((key) =&gt; {
1619
- const isRead = key === "read";
1620
- return (
1621
- &lt;Td
1622
- key={key}
1623
- textAlign="center"
1624
- borderColor={border}
1625
- &gt;
1626
- &lt;Flex justify="center"&gt;
1627
- {isViewMode ? (
1628
- <span class="branch-0 cbranch-no" title="branch not covered" > isAutomationModule ? (</span>
1629
- isRead &amp;&amp;
1630
- perm.automation &amp;&amp;
1631
- renderGrantedCheck()
1632
- ) : (
1633
- perm[key] &amp;&amp; renderGrantedCheck()
1634
- )
1635
- ) : isAutomationModule &amp;&amp; !isRead ? null : (
1636
- &lt;Checkbox
1637
- size="sm"
1638
- isChecked={
1639
- isAutomationModule
1640
- ? perm.automation
1641
- : perm[key]
1642
- }
1643
- isDisabled={isAutomationModule &amp;&amp; !isRead}
1644
- onChange={() =&gt;
1645
- onPermissionChange?.(
1646
- perm.module,
1647
- isAutomationModule ? <span class="branch-0 cbranch-no" title="branch not covered" >"automation" </span>: key
1648
- )
1649
- }
1650
- /&gt;
1651
- )}
1652
- &lt;/Flex&gt;
1653
- &lt;/Td&gt;
1654
- );
1655
- })}
1656
- &lt;/Tr&gt;
1657
- );
1658
- })
1659
- )}
1660
- &lt;/Tbody&gt;
1661
- &lt;/Table&gt;
1662
- &lt;/Box&gt;
1663
- &nbsp;
1664
- {!isViewMode &amp;&amp; (
1665
- &lt;&gt;
1666
- &lt;Divider borderColor={border} /&gt;
1667
- &lt;Flex justifyContent="flex-end" gap={3} p={4}&gt;
1668
- &lt;Button
1669
- onClick={onCancelForm}
1670
- size="sm"
1671
- sx={{ fontSize: "xs" }}
1672
- label={labels.cancel}
1673
- colorScheme="red"
1674
- variant="outline"
1675
- /&gt;
1676
- &lt;Button
1677
- onClick={onSave}
1678
- size="sm"
1679
- sx={{ fontSize: "xs" }}
1680
- colorScheme="primary"
1681
- isLoading={isSaving}
1682
- label={isEditing ? <span class="branch-0 cbranch-no" title="branch not covered" >labels.updateChanges </span>: labels.saveChanges}
1683
- /&gt;
1684
- &lt;/Flex&gt;
1685
- &lt;/&gt;
1686
- )}
1687
- &lt;/Box&gt;
1688
- &lt;/VStack&gt;
1689
- );
1690
- &nbsp;
1691
- return (
1692
- &lt;Box
1693
- p={padding}
1694
- backgroundColor={colors?.gray?.[50] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#F8FAFC"}</span>
1695
- minHeight="100%"
1696
- &gt;
1697
- {view === "list" ? renderListView() : renderFormView()}
1698
- &nbsp;
1699
- &lt;DeleteRoleModal
1700
- isOpen={deleteId !== null}
1701
- onClose={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >setDeleteId(null)}</span>
1702
- onConfirm={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
1703
- <span class="cstat-no" title="statement not covered" > if (deleteId !== null) <span class="cstat-no" title="statement not covered" >onDeleteRole?.(deleteId);</span></span>
1704
- <span class="cstat-no" title="statement not covered" > setDeleteId(null);</span>
1705
- }}
1706
- labels={labels}
1707
- /&gt;
1708
- &lt;/Box&gt;
1709
- );
1710
- };
1711
- &nbsp;
1712
- export default RolesPermission;
1713
- &nbsp;</pre></td></tr></table></pre>
1714
-
1715
- <div class='push'></div><!-- for sticky footer -->
1716
- </div><!-- /wrapper -->
1717
- <div class='footer quiet pad2 space-top1 center small'>
1718
- Code coverage generated by
1719
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1720
- at 2026-06-13T07:33:44.377Z
1721
- </div>
1722
- <script src="../../prettify.js"></script>
1723
- <script>
1724
- window.onload = function () {
1725
- prettyPrint();
1726
- };
1727
- </script>
1728
- <script src="../../sorter.js"></script>
1729
- <script src="../../block-navigation.js"></script>
1730
- </body>
1731
- </html>
1732
-