@para-ui/core 4.0.0-rc.3 → 4.0.0-rc.5

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 (180) hide show
  1. package/AutoBox/index.js +72 -85
  2. package/AutoTips/index.js +72 -95
  3. package/Badge/index.js +18 -17
  4. package/Breadcrumbs/index.js +57 -73
  5. package/Button/index.js +89 -117
  6. package/ButtonGroup/index.js +30 -33
  7. package/Carousel/index.js +29 -33
  8. package/Cascader/index.js +7 -9
  9. package/Checkbox/index.js +28 -35
  10. package/CheckboxGroup/index.js +43 -58
  11. package/Collapse/index.js +52 -49
  12. package/CollapseBox/index.js +65 -70
  13. package/CollapseLayout/index.js +106 -101
  14. package/ColorPicker/index.js +3 -3
  15. package/ComboSelect/index.js +242 -330
  16. package/ComboSelect/utils.d.ts +0 -5
  17. package/Container/index.js +17 -21
  18. package/CopyText/index.js +50 -83
  19. package/DatePicker/index.js +22 -27
  20. package/Descriptions/index.js +50 -59
  21. package/Desktop/index.js +161 -180
  22. package/DragVerify/index.js +77 -113
  23. package/Drawer/index.js +82 -97
  24. package/Dropdown/index.js +3 -3
  25. package/DynamicMultiBox/index.js +219 -224
  26. package/DynamicMultiBox/interface.d.ts +7 -0
  27. package/Empty/index.js +26 -28
  28. package/Form/index.js +66 -74
  29. package/FormItem/index.js +14 -15
  30. package/FunctionModal/index.js +7 -14
  31. package/GlobalContext/index.js +17 -20
  32. package/Help/index.js +9 -12
  33. package/HelperText/index.js +11 -11
  34. package/InputLang/index.js +104 -124
  35. package/InputNumber/index.js +62 -81
  36. package/Label/index.js +19 -21
  37. package/Loading/index.js +11 -10
  38. package/Menu/index.js +302 -371
  39. package/Message/index.js +105 -114
  40. package/Modal/index.js +122 -148
  41. package/MultiBox/index.d.ts +5 -0
  42. package/MultiBox/index.js +111 -115
  43. package/Notification/index.js +105 -103
  44. package/OperateBtn/index.d.ts +3 -0
  45. package/OperateBtn/index.js +77 -107
  46. package/PageHeader/index.js +327 -406
  47. package/Pagination/index.js +107 -137
  48. package/ParauiProvider/index.js +20 -22
  49. package/PasswordRules/index.js +36 -40
  50. package/PopConfirm/index.js +62 -79
  51. package/Popover/index.js +12 -12
  52. package/Progress/index.js +72 -74
  53. package/Querying/index.js +52 -59
  54. package/README.md +2 -0
  55. package/Radio/index.js +27 -34
  56. package/RadioGroup/index.js +38 -52
  57. package/Search/index.js +35 -44
  58. package/Select/index.js +323 -364
  59. package/SelectInput/index.js +8 -13
  60. package/Selector/index.js +905 -796
  61. package/SelectorPicker/index.js +111 -133
  62. package/SingleBox/index.d.ts +5 -0
  63. package/SingleBox/index.js +92 -88
  64. package/Slider/index.js +46 -57
  65. package/Status/index.js +14 -13
  66. package/Stepper/index.js +25 -26
  67. package/Styles/theme.scss +9 -9
  68. package/Switch/index.js +32 -35
  69. package/Table/index.js +767 -963
  70. package/Tabs/index.js +102 -102
  71. package/Tag/index.js +115 -162
  72. package/TextEditor/index.js +81 -103
  73. package/TextField/index.js +142 -183
  74. package/TimePicker/index.js +27 -28
  75. package/Timeline/index.js +67 -58
  76. package/Title/index.js +32 -34
  77. package/ToggleButton/index.js +53 -52
  78. package/Tooltip/index.js +79 -82
  79. package/Transfer/index.js +160 -203
  80. package/Tree/index.js +7 -12
  81. package/Upload/index.js +527 -759
  82. package/Upload/interface.d.ts +5 -0
  83. package/_verture/{constant-0d9802f7.js → constant-5317fc89.js} +2 -2
  84. package/_verture/{index-f48d5ce6.js → index-0ced30f7.js} +1128 -1080
  85. package/_verture/{index-024bbc9b.js → index-775ad32d.js} +29 -25
  86. package/_verture/{index-05f7bf11.js → index-c568f272.js} +2 -2
  87. package/_verture/index-da9097d3.js +239 -0
  88. package/_verture/{index-56601c94.js → index-ef1235fb.js} +125 -134
  89. package/_verture/{index-de8f4428.js → index-f186b5e8.js} +315 -399
  90. package/_verture/intl-f2f27722.js +69 -0
  91. package/_verture/{modalContext-736ff215.js → modalContext-5df08980.js} +36 -64
  92. package/_verture/{slicedToArray-a8206399.js → slicedToArray-8223a2ef.js} +15 -2
  93. package/_verture/{useFormatMessage-703f8b20.js → useFormatMessage-eb13cf56.js} +5 -4
  94. package/_verture/{useGlobalProps-1b846a65.js → useGlobalProps-1e416658.js} +4 -3
  95. package/_verture/{usePopupContainer-87febeb9.js → usePopupContainer-635f66f4.js} +16 -15
  96. package/_verture/{util-7e1fb1e2.js → util-82646c4f.js} +5 -4
  97. package/_verture/{utils-06d86594.js → utils-46e99c9a.js} +34 -26
  98. package/index.js +21 -22
  99. package/locale/index.js +10 -10
  100. package/package.json +1 -1
  101. package/umd/AutoBox.js +9 -8
  102. package/umd/AutoTips.js +9 -8
  103. package/umd/Badge.js +1 -1
  104. package/umd/Breadcrumbs.js +9 -8
  105. package/umd/Button.js +9 -8
  106. package/umd/ButtonGroup.js +9 -8
  107. package/umd/Carousel.js +5 -5
  108. package/umd/Cascader.js +9 -8
  109. package/umd/Checkbox.js +9 -8
  110. package/umd/CheckboxGroup.js +9 -8
  111. package/umd/Collapse.js +8 -7
  112. package/umd/CollapseBox.js +1 -1
  113. package/umd/CollapseLayout.js +4 -4
  114. package/umd/ColorPicker.js +1 -1
  115. package/umd/ComboSelect.js +9 -8
  116. package/umd/Container.js +1 -1
  117. package/umd/CopyText.js +9 -8
  118. package/umd/DatePicker.js +9 -8
  119. package/umd/Descriptions.js +9 -8
  120. package/umd/Desktop.js +9 -8
  121. package/umd/DragVerify.js +4 -4
  122. package/umd/Drawer.js +9 -8
  123. package/umd/Dropdown.js +6 -5
  124. package/umd/DynamicMultiBox.js +11 -10
  125. package/umd/Empty.js +1 -1
  126. package/umd/Form.js +9 -8
  127. package/umd/FormItem.js +9 -8
  128. package/umd/FunctionModal.js +9 -8
  129. package/umd/GlobalContext.js +1 -1
  130. package/umd/Help.js +9 -8
  131. package/umd/HelperText.js +1 -1
  132. package/umd/InputLang.js +9 -8
  133. package/umd/InputNumber.js +9 -8
  134. package/umd/Label.js +9 -8
  135. package/umd/Loading.js +4 -4
  136. package/umd/Menu.js +4 -4
  137. package/umd/Message.js +4 -4
  138. package/umd/Modal.js +9 -8
  139. package/umd/MultiBox.js +9 -8
  140. package/umd/Notification.js +8 -7
  141. package/umd/OperateBtn.js +9 -8
  142. package/umd/PageHeader.js +9 -8
  143. package/umd/Pagination.js +9 -8
  144. package/umd/ParauiProvider.js +1 -1
  145. package/umd/PasswordRules.js +4 -4
  146. package/umd/PopConfirm.js +9 -8
  147. package/umd/Popover.js +9 -8
  148. package/umd/Progress.js +5 -5
  149. package/umd/Querying.js +1 -1
  150. package/umd/Radio.js +9 -8
  151. package/umd/RadioGroup.js +9 -8
  152. package/umd/Search.js +9 -8
  153. package/umd/Select.js +9 -8
  154. package/umd/SelectInput.js +9 -8
  155. package/umd/Selector.js +9 -8
  156. package/umd/SelectorPicker.js +9 -8
  157. package/umd/SingleBox.js +9 -8
  158. package/umd/Slider.js +6 -5
  159. package/umd/Status.js +4 -4
  160. package/umd/Stepper.js +9 -8
  161. package/umd/Switch.js +9 -8
  162. package/umd/Table.js +9 -8
  163. package/umd/Tabs.js +9 -8
  164. package/umd/Tag.js +9 -8
  165. package/umd/TextEditor.js +22 -21
  166. package/umd/TextField.js +9 -8
  167. package/umd/TimePicker.js +9 -8
  168. package/umd/Timeline.js +1 -1
  169. package/umd/Title.js +9 -8
  170. package/umd/ToggleButton.js +9 -8
  171. package/umd/Tooltip.js +9 -8
  172. package/umd/Transfer.js +10 -9
  173. package/umd/Tree.js +9 -8
  174. package/umd/Upload.js +10 -9
  175. package/umd/locale.js +1 -1
  176. package/_verture/index-232d890b.js +0 -327
  177. package/_verture/index-e9007d6a.js +0 -236
  178. package/_verture/intl-5c1ec055.js +0 -81
  179. package/_verture/toConsumableArray-8f4c9589.js +0 -19
  180. package/_verture/unsupportedIterableToArray-cb478f24.js +0 -16
package/Desktop/index.js CHANGED
@@ -1,19 +1,15 @@
1
- import { _ as _toConsumableArray } from '../_verture/toConsumableArray-8f4c9589.js';
2
- import { _ as _slicedToArray } from '../_verture/slicedToArray-a8206399.js';
3
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
2
  import React__default, { useRef, useState, useMemo } from 'react';
5
3
  import { TextField } from '../TextField/index.js';
6
4
  import { DeepClone } from '@paraview/lib';
7
- import { $ as $prefixCls } from '../_verture/constant-0d9802f7.js';
5
+ import { $ as $prefixCls } from '../_verture/constant-5317fc89.js';
8
6
  import AutoTips from '../AutoTips/index.js';
9
7
  import NavigateBefore from '@para-ui/icons/Left';
10
8
  import { Button } from '../Button/index.js';
11
9
  import ReactDOM from 'react-dom';
12
10
  import { Tooltip } from '../Tooltip/index.js';
13
- import { u as useFormatMessage } from '../_verture/useFormatMessage-703f8b20.js';
11
+ import { u as useFormatMessage } from '../_verture/useFormatMessage-eb13cf56.js';
14
12
  import { s as styleInject } from '../_verture/style-inject.es-300983ab.js';
15
- import '../_verture/unsupportedIterableToArray-cb478f24.js';
16
- import '../_verture/typeof-adeedc13.js';
17
13
  import '../_verture/tslib.es6-55ed4bd2.js';
18
14
  import '../Label/index.js';
19
15
  import '../Help/index.js';
@@ -25,11 +21,11 @@ import '@para-ui/icons/CloseCircleF';
25
21
  import '../Loading/index.js';
26
22
  import '@para-ui/icons/LoadingF';
27
23
  import '../HelperText/index.js';
28
- import '../_verture/useGlobalProps-1b846a65.js';
24
+ import '../_verture/useGlobalProps-1e416658.js';
29
25
  import '@para-ui/core/GlobalContext';
30
- import '../_verture/index-e9007d6a.js';
26
+ import '../_verture/index-da9097d3.js';
31
27
  import 'rc-dropdown';
32
- import '../_verture/usePopupContainer-87febeb9.js';
28
+ import '../_verture/usePopupContainer-635f66f4.js';
33
29
  import 'dayjs';
34
30
  import 'rc-tooltip';
35
31
  import 'rc-tooltip/lib/placements';
@@ -49,31 +45,31 @@ var zh = {
49
45
  };
50
46
 
51
47
  var localeJson = {
52
- zh: zh,
53
- en: en
48
+ zh,
49
+ en
54
50
  };
55
51
 
56
52
  var css_248z = "@charset \"UTF-8\";\n/**\n* @author linhd\n* @date 2023/4/11 14:16\n* @description 最新色卡\n*/\n.paraui-v4-desktop {\n width: 100%;\n height: 100%;\n}\n.paraui-v4-desktop .paraui-v4-cp {\n cursor: pointer;\n font-size: 14px;\n font-weight: 700;\n color: rgb(29, 33, 38);\n}\n.paraui-v4-desktop .desktop-title-input {\n max-width: 440px;\n min-width: 200px;\n}\n.paraui-v4-desktop .desktop-title-input-btn {\n margin-left: 10px;\n}\n.paraui-v4-desktop .desktop-title-wrapper {\n display: flex;\n flex: 1;\n width: 100%;\n position: relative;\n}\n.paraui-v4-desktop .desktop-title {\n display: flex;\n height: 20px;\n line-height: 20px;\n font-size: 14px;\n margin: 20px 0;\n}\n.paraui-v4-desktop .desktop-title > .desktop-backlist {\n display: flex;\n align-items: center;\n}\n.paraui-v4-desktop .desktop-title > .desktop-backlist .desktop-back-hotarea {\n width: 38px;\n height: 30px;\n display: flex;\n align-items: center;\n cursor: pointer;\n flex-shrink: 0;\n}\n.paraui-v4-desktop .desktop-title > .desktop-backlist .desktop-back-hotarea svg {\n color: rgb(29, 33, 38);\n}\n.paraui-v4-desktop .desktop-title > .desktop-backlist .desktop-back-hotarea:hover svg {\n color: rgb(46, 101, 230);\n}\n.paraui-v4-desktop .desktop-title > div {\n width: 100%;\n text-align: center;\n color: rgb(29, 33, 38);\n font-weight: 600;\n font-size: 14px;\n}\n.paraui-v4-desktop .desktop-title > div > span {\n cursor: pointer;\n font-weight: bold;\n}\n.paraui-v4-desktop .pd-lr38 {\n padding: 0 38px;\n}\n.paraui-v4-desktop .desktop-box {\n position: relative;\n width: 100%;\n height: calc(100% - 50px);\n}\n.paraui-v4-desktop .desktop-box .desktop-item {\n position: absolute;\n top: 0;\n left: 0;\n transition: top 0.5s, left 0.5s;\n user-select: none;\n cursor: pointer;\n background-color: white;\n border-radius: 8px;\n}\n.paraui-v4-desktop .desktop-box .desktop-item .item-name {\n text-align: center;\n position: absolute;\n font-size: 14px;\n z-index: 0;\n width: 100%;\n padding: 0 5px;\n color: rgb(29, 33, 38);\n}\n.paraui-v4-desktop .desktop-box .desktop-item .item-dir-body {\n width: 100px;\n margin: 25px auto 10px;\n}\n.paraui-v4-desktop .desktop-box .desktop-item .item-dir-body svg {\n display: block;\n}\n.paraui-v4-desktop .desktop-box .desktop-item .item-dir-body img {\n width: 100%;\n height: 100%;\n}\n.paraui-v4-desktop .desktop-box .desktop-item .item-dir-name {\n margin: 0 auto;\n color: rgb(29, 33, 38);\n font-size: 14px;\n max-width: 180px;\n text-align: center;\n}\n.paraui-v4-desktop .desktop-box .desktop-item .item-body {\n text-align: center;\n display: flex;\n justify-content: center;\n}\n.paraui-v4-desktop .desktop-box .desktop-item .item-body svg {\n display: block;\n}\n.paraui-v4-desktop .desktop-box .desktop-item .item-body img {\n height: 70px;\n margin-top: 25px;\n margin-bottom: 10px;\n pointer-events: none;\n}\n.paraui-v4-desktop .desktop-box .item-disable {\n box-shadow: none;\n cursor: not-allowed;\n position: relative;\n}\n.paraui-v4-desktop .desktop-box .item-disable::before {\n display: block;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.5);\n z-index: 1;\n}\n.paraui-v4-desktop .desktop-box [drag-item=true] {\n z-index: 2;\n transition: none;\n}\n.paraui-v4-desktop .desktop-box [impact=true] {\n background-color: rgb(247, 248, 250);\n}\n.paraui-v4-desktop .desktop-box [in-dir=true] {\n display: none !important;\n}\n.paraui-v4-desktop .desktop-box .img-box {\n display: inline-block;\n width: 100%;\n text-align: center;\n margin-top: 10px;\n}\n.paraui-v4-desktop .desktop-box .img-box > img {\n width: 100px;\n height: 100px;\n user-drag: none;\n}\n.paraui-v4-desktop .desktop-box .desktop-dir .img-box {\n display: inline-block;\n}\n.paraui-v4-desktop .desktop-box .desktop-dir .img-box > img {\n width: 40px;\n height: 40px;\n margin: 5px 15px;\n}\n.paraui-v4-desktop .menu-list {\n position: absolute;\n box-shadow: 4px 4px 6px #dcdde3;\n background-color: #ffffff;\n font-size: 14px;\n border-radius: 4px;\n z-index: 10;\n display: none;\n transition: background-color 0.2s;\n}\n.paraui-v4-desktop .menu-list .menu-item {\n padding: 5px 15px;\n cursor: pointer;\n}\n.paraui-v4-desktop .menu-list .menu-item:hover {\n background-color: rgb(246, 246, 246);\n}";
57
53
  styleInject(css_248z);
58
54
 
59
55
  /** 默认图标 */
60
- var Icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJsAAACbCAYAAAB1YemMAAAgAElEQVR4nO2dB5jc1L32f9LMVtu7XveGAWNMgiEYQguEEmwMtjFggimB0Lmk3EAogfRiIEBukksJuUAI5KN3MNhgG0ILLXRi0ww24IYrrrve3RnpfI800syRRtJImrKzxu/zaFfl6Oico3f+7RQpbAXTaKwDRkrbMGAIMBRoAZqtradPa62XttXAcmAJsBj4CFgAfPJr2tJf5tb+0pFtGo2NwJ7AN4AxwG7AKCBR5kd3AO8D7wCvA68Y+7+mLVXm51YNtniyTaOxHtgPGGdte1SAWHlQENYpxfprHrcDLwJPK/BP4LVfsFmvdNkqhS2SbNNo7AMcARwNjAd6VOrZPqSSrnvvW2lXAo8Djxr/f0Z7RyXKXClsMWSzJNhk4GRgIpAs5/OKJFWYtBuA6QrcATx1Me3dXuJ1e7JNo3EX4AfASUBTqfPPEENxHdv77rRe93pfL3QviOw5JeNo3ArcfBEdiyNWoWrQLck2jcakpSJ/BBxYijyrhFSF0mrAQwpcewGdL3hWpIrRrcg2jcZa4BTgp8AOcfLoJqTKng9I+xJwGYhZPyYl6AboFmSbRmMNcLZFsm3C3LMFkcqVVnGX723g5+eSeiLvlipDVZNtGo1G+b4NXGEFXPPQNaQSjnPlIWAeqXzLYaV/XkFc8kPSr+TdVCWoWrJNo/HrwF+AfXGRKogk3sdbDqnUvJTu9OJ24Gc/QFvqk7TLUHVku5SGZlB+D3xPQTjatjpIFZ2AlIdU0rm8vFuBXxmOxDlomk9WFUdVke0yGqYANygwQD7vJE3wCytElHJKNUpEqvgEdEJFvAmceTb62z5JKoqqINvlNPQ2VKaSiZWZqE5SBUqTwPRlJlVAemF0/v8WuOqszH6XocvJdgX1Y4HbrFEWJvyIEmQjeV3fkkiluOqanz7fhHCp3H8DJ54Bn/hkU3Z0GdmupN5o619Yvzq1GklVTgJ6lY3SkCogb9YrcNap8IDPI8qKLiHbVdT3A+5S4FDnFX9SBcWovK5vSaTKr2NBUhXImz8DF58CFXUeKk62P1C/M4iZCmznVYjqJJXzWjciVUDePA0cdzKs8cmi5Kgo2f5I3QTgHqPDPBqphEmH/LSK9b96SRVEnDCk8vuRxUnvkdYYQTzxOzDfJ/uSomJk+xN1RnfTDVixsy8LqfzL6H1/mUgVdO0LBY46HsresV8Rsv2Z2ksUwyfIYiupwpAq2LyITKqgZ242VOpxMMMnSUlQdrJdTe1VhjGaOepupAry/Nxl9H5WlZEqqIzGXIhTj4W7fW4vGmUl2zXUGtLskmogVYHAZ965riZVmLRlULm6AqccA3f6ZF0Uyka2a6m5UoFLcme2kipu2grbcSbhji4D4cpCtutIGoHa32wlVbS0XeAc+B0b8bejjyqxDVdysl1P8kxjrDw+pAoTKK0zZwMLc0pUA8I8rs1uGRsrKd2nW0+wO/7SlgFiTE3qtP4bx4YV3GZdj/PCSkXAcpIqKgEDjo3mOnRyZqphSVBSsv2VhDF9bnqm+6kwqVRzmrkwp5y3IMx9Y8p5UlFRauvB2GrqUBJJSNRCIomSTGZyUa2pn8Z/PRMIF/Z/LW1tKUQ6s+mpdvRUByLdaRKwzWrNjda2SfpJfMlIFXRtnTGZexJ84PG4yCgZ2W4gMcaacNvoVXgscvVDMMDaeptcSUJ9D5T6nlDfE6WuAZK1pSpWDrrlCQsNvb0drbMNvbMNrSPzX9d1k3CbrBZeZ0nDLwmpgtJ+bAxgnVCCnoaSkO1GEn2BN4Bt7XO2TWVMHhiMMBfNGIggoajQ2ITSoxkamzPSq1ywCWaWRWQsEcWSX5rIyTJdmOTTOlrROjaZ/w0p2WqRbq0l/bytxC2GVEHXnzNU6mGZ319sFE22v6Eaeu1J4GD7nGrOShEMNyUYqGoC0asP9OxjEg2lbE5wBrrIqXCDVF4EM/7ruX1Fk8+Dlmoj3bGRdPsmtHS7ydMvrG2dZSd2Bam6kIBXj4fz80+HR9Fv/WbUK0GYIY5e5vw6YYq3WkVB9GhBNPWFHr0rQjBsKWYTR5Ekmi3ddGlfk6ReNg8rH82egC7Q0ylSnZtIdWxAS3eYWay1lita7ypGBTzFkuYV0Ys+fizc53FLKBTFgL+jHKrA7IGg7GRJMRI1iN4D0Jv7l8f2kuGrJmWCOUmUL8Xk8zmCOYmpZ/PT9RSp1CY6Ozah62nT2VhjEc9emKMaJFOhe4OuB9ighjUx5hBY6JMkELHJdicMGgDv7wS9DW9S1Dag9xmSUZfdQE3ahDJv1fV8YgrhJKmim+cUIbL3ptMddBgSL9VhHhuLc6y0Funo5qQKes7LxioEB+ciTaERmxWfwrJ+MNgkWd+h6AbJygk3wZClmA+R5PPkiORNMDN2ksnTloomwYxTupPESOkRCKHT0dFGR2qzud9ukW6tR3OUSt1VgFRBaX97IPzOJ1tfxCLbXPjLCEX5YXrgCHTDJisXItthFK0mbYJlSCmc5LIlnn1OuMms05lqpz3djq5r5k9/taVm5SWIuhGp/J5jVG2vb2Zm44dGZLK9BqNHwtxE/+GK1jIo6u2eUPv3o/aEKZlLwiaYBYMsirSfhZBiEf77GW5K98kEsUiVPXZfl5/lSJPbV+Q8lNz9mkE2LY1u2HlWELk9QvgkzDVt0yZz61i2jM0ffMDmhQsR6XQpSRWUjxHq2nf/COo08hpm/WFGTV2jkmoZGPVWXyj9+lD/32eVLL9qQI2rDL0rUCaRSrHh5ZdZ98wzrHn8cTa++mopSOU4J10zViw415rPEAqRJNs8OG8EXJ0aPLI0NpolqZJf3ZGej5ZlVMuXGpvnz2fFrbey/G9/I71mTckknoSNCuy0D3wepp39Blrk4XmoHWCMtk3WFkc0PWNHKbqeGbio6U41txUlQ8OoUWx3xRXs9dlnbH/lldT262eSRrFevP3fa1M8Nne6BPRSI0i20GQbCLf2gnqtV0yHwE0wXdq0LXbN4qpAokcPhl5yCbt/+CGDzj4bVVWzhJFJ5UfAhCut6kx7whuwV5h6hiLbXBg4CE4w9vWeEawPWYoZhDK8RINcirVvkmyrZKsUkn36MOKmm9j5ySepHTQoUKoVOlac+38MU4VQZGuE2+qMtIqCXu/33QkLDjWp56SYInJSzCaduYkAH20ryoGmQw5hl7ffpumgg3xJ5SXxAtTugW/D4UWT7U0YOsCauS7qevj3DniqSZlglhSzSWYR0d62orKoGTiQUU8+SZ+pU0PbcQVsud8WTbYWuLXGckaEMdbMRbBQalKXJJkmJIJJ57ei4lBqatj+nnvod/rpvoTyk2qJ/PT7zC0g3QLJ9gEM6J/5KkqGWzV1AWpSD1CTtgQT5j2y1FOMter0rWq0y6CqDL/5ZnpPnlyMVLO3XwZVI5BsdfCXGllxJmoC1KQIVpOSdDO6gQySmUSzpdtWdC3h7r2XxjFjPAkVIUSy//sBnqkv2V6DRAscLQf5hJE8qyZ1TzXptMNkguk5ghlzBWyymoTbSrauhtrQwPD77yfZq1fsuJu1XeRXFV+y9YGfNVq9LlnJJsiRLEswp5rMESynJjOSTXMS0+j51izSiapZ9vVLjdqRIxl83XVxpZp9/piPwLPT3LdvtDnz9RQnFCSVFzC6IuoYsS6w2cSaNXQeOxWxbJmrQx7XrDC/faT0AekUkXebw58X3ueF67zxc9xg+11GV1RjI0rPntSNHEn9HnvQ87DDqN9ll3CVD0Dzqaey/pZb2Pz88/lllcoT0NVlcOoM4Pc+1534EPbYHt5QXE3YPmAEItloN0fmX+AYMYtgBcaIqbvuTOO/ZkdqFG32kyTGjytqoKb+7rt0jh2HWLs2U34lDMnkUSklJph0zatWxqUNGrRb2bdaJLTT1u+2G30vuIDmk06CRPyvXHbMm8dnu+1mOYH58GtxSU0aS6mOHOGyjzzVaCNc6vkQm0Ch1aTtMGhWs2goumZOp8tNLdatQYjRoD30MJ0XXhyvNe3Kjx5N7aPTURobcuPkCmwKQpq3IG2KyOXhIlMmbiQllc7bI6Ds36Sf1MDicLMKPZRMmp7WxG37no533mHZqafyyV570fHWW7HbpW6XXWiaOjWqrSan2V6Bg/La2+thTXCI3FjZfS1tGftavjeZ9UotW8wcrm0TzLpHaE6CGcciroMgSN9wA6nL86R1JKh7703t/fdBbY0v0RQHyXAOqJQJJkmlPJL5EIwCBHMUxYLR+91svbkGi3DyS0+99RaLvvENNtx6a+x2afnpT1EVpRhn4TvuPPPIthCm9gDPyZyKMTDPjotlCaY5jX0lQx5FpC0pZnmstiSTCSb07NDqyLDeVurSy0lf/9fYjWo2wrhDqTFejKl6bILhQzDhlIJBBPORYu7znnARLJveOm+QrI8l4epcEs4kREcHK888k3XXXBOrTerGjKF+v/1iOwsKHLs4U7RcO7sfUgP/LdwSzd4xltH3VZO6h5rUnaQyiWZ1vFskU6wAcWQIS0IqgtSFP0G7u7hlxRLHTqXm2uuC1WQRBAujJt1SzE9C2qhVMoRTrcGate4XLwRrzj+f1oceitUmvU45JYoX6iZjb0XSkHiRrQH28gpEKLYajaQm7bCG5pBiZnpry9lu0aHYs52ETudZZ6M9/nisfGwkzjqb5LRL/dWk3Bb4k6NYNemXv9d9Bsn6Kpnuo6RFOgc5hGD1GWeQXrIkcns0Gv2miYRTYnpIODfhpOPJcn4Osr0P+9ZCg00BdwMp6c4cwaKoSeEimJK7xySpHifOJhxvVDEmEp90EvoLxS0Nm7jk5yR+fH44KeY6X0o1GUQwd/4Gyfpa/ZX25nj++vWsveCCyG2htrSYYZUQpPKTcpOXS03gIFsNnK9n/UaPh+spD4K5jH0/NankvE8zD123SKYHvJEgCEstSXZVWyudx0xBf+edOBlmkbzqTyROOa3L1aT7njwCS9IzIRHOq6O8/YEHSM2dG7kt6saODUMqP0IOU2CMnZeDbEn4phyU0FwNp+jpADUp8tWkbLuZKs+SYkLkpJuI1zdqlssrXLF+HalJExALF0TO09EWN/4ddfLRXa4m8SAY0ixCRTqtWBNrPEkhBK033BC5HWr33DMMqYKOx9p5Zcn2lrn6GYNzpn5mk50Fs39TT4VXkxLBslLM3nSZaPFCH/lb5rxYtZLUYeMRy4r45KaqkrzzHtRvHZIjmQfBKqEm7WvuXgXhele2NmryMORVS7pFRXLUqKiq033sWHDIRBKOwqKJXXDdQ52adptFsgz5wqhJ4UMwSxLGchDkNyay+dibWPQpqUmHI1avjpG3hbo6kvc/DHvsmRHGYQlWBjWJdF44f7a4BQTWInmKJCzMe1euJP3ee5GaIDFqVFTV6XYoDlib0eo5siVgqlxw975d0YzdJiRPMme3BapJm2g2+YTlTZLftRMeTpK5JZ14fx7pKUdAa2vcB0BTEzUznkAdtZP39TAECyCZF8Hc+SERTPPYvN6bATtYqkvPSM+bF6n6Sl2dOWEmBKn8YnDG13x2w2Wz7emlQuV984Z0ykdN6h5qMje2zdYfdrhCEbI3GR2ZihaO6uuv/pvUsUdDqoh17Pr1IzHnnyjDhuXOFWOHedl5Hk3hRzAv7eMlJJAmS9v2t/g81BRPB9SePcOQykFA12ZMaHaQbZj7V+KuoGI5CeHVpItg7nCF25uMBJckCwi6iqefIn3yiUUN0lSGDiUx6yno178iajKIYFGu2S9Z2Atcb9gQue7GWLeQpMpuCScRc2R7yxxRRL3wqJiQKq+bQcJMV1RkNSlJsSzBAq3lEIjQ+S0efhDtB+fEe46d7047kZz5BEpzc1FqMsgOc0spL5PGvR8k7WStZN7T3By94m1tviRLhJNyJtns8WyHaVIiW+Sq0r5ik41MH6kwfFf7JdsBJotg2daT3kLQGDHR2YFY9Fmk+otNG/MI5pW9Q1r8/WZzNbnElX+I9CwZyh5fJ/Hgw2iTJkJ7u6tQPuVBaipXmaJuuPpc9BB52WnMd7rNNtErvXFjfleTXz29nahd2uwPGL8Jf1HhhzUW+/y2Gjs6rSZI1dZma+kgkvAjGHkkc+8rQWlKOEYscdX/oF7gO3o5FMSj09GO/Takc/56EMHk8nhteJBItkZ1n/2o2/D580nuuGP4era20mrZbG4Eeebu88b3ZVWr0DsXEtfycSbk4a0m8+2w4OZQCo0R87HD3GpMPi9rba+ovvbTi9Fv/XvoBvdszCOPQr3pZhRFiRWuKKWaDLsp22wTiWhmuefPj+QQBIRHRppqVIfhsvr0UqMOlWp5ofL37BRH6wZLMEd6r3S2FIuoJgPVmAxjKfrvnWOqVHXKMUEpA6Gedpo5yle/8AKHFCu1mvSScHqE++z95hNOiFxH8eGHnhJM8dl3X5OOdzQlmwZ90gG/KC8pZ3qkQYMKPfb9wxVdMEZM09BPOhHx9D+jtH0elPPPR/n5L7LldRv6UcMV7jR+Eq6QZMx7fjJJ8znRHSTx73/H6q7ykIDbm2RLQ093IwmfBssGNaSJL9WmJj0J5pV/RyfalKMRr75aFOHUyy5DOeecQBXp15alVJN++Rv/m884g9oddohcN/HMM1FJ5SfZB5vnnwORcDkFYZwFpSbpq9/8vc8Cxr7P+Uhq0q2hA/I30b8/iaefRdl556Bcg6HrpE48kfR998VSk17HxWxyXslBg9hx3jySfSMud7Z8OekhQzK2eEAyryb1wBz1TWhOR/zF2f/d0s1fTRJeirnOV6Tze+UqtMMPg0WLwjWbF1SVmjvugMMOi6Um/dSjn7oMKxH12lq2ueuu6EQzmuaeeywn0Nm8Xj+gEBikdsI2UcS6o9L2qkXlVJNhCVaAwH73ZNMvWYI2biwU03FfU0P9ww/DvvvGjviHUY9BnqtjP5lk+G230fNb34pVHf222+KQyhPmxDAdhoQhlvCqlLClm4tgFR5K7Udgv/vyCGyn/+hj9PHjY3XpZOvZ0ECPJ56AXXctuR0WZaOlhRGPPkrL8cfHqod48UVEjOmAAdKvt2HX9XM3hJe49jVA7dnsMaa0lUpNhiGYJ4E9Or/1t94ifeSRsHlz5IbOlqt3b5pmzUIZMaKgWoyiGsPu95w4ka++9RbNEybEroN+2WWB12Oo1AajC6FnkCiWpZrXtcz6y91ATUrXCvVNpp97jk5DIpjTFONBHTKE3nPmIAYNKlo1hiGaoTKbJk1ix2efZdTMmdRtu23ssusvv4yYNSuv+YtUqbXJNDRqUtDWHcjVXcea64WrGUeMpD3b38djFOS/4FwxalG+urMrsXc+gfDL3yc/RwNu2oT+8cfZY+2xx9BPP536224L+/Q8JHbYgb5z5rDigAPQ1q93PK92993NDn23KxX22LAP1eZm6kaMoHGPPWgaO5Zkv36xy5qFprHu+983v7BYLNykTAoXoTQXkdzEUiRSZiWBBkmpp9ZBMh/yyVAGDyH5evzlAkqCVIr2Y45BmzEj+1LTt9+O6NOHhquvjv2Eml13pd/jj7P80EPR2tpyZDJW8H78cdPGqyZ8fu21aO+8Y85BrQtZrrCSThUFxLmfWpWvpS11GltNVgMMT/K++1AOOMBR383XXMPmSy8tqoDGzPIBDzyAqK3N5rvphRdYPHWq+VWWasH6N9/k9Z/9zFywZqPPqwqjUv3SGfJoXZChGioEYggGvbioflWgoYHGGTNgzBhHfTf++te0XX99USVsnDCBAf/4B5qqZvPeMHMmS04/vSqqnlq7llePO45UR4fxxUWzjG0xSeUHVYUvgjzRMF6TKd1ETrp5wqM0DkO/SqA0NdFrzhwYOdJR7/XnnsvmIpd4aDrxRAYaakrKd82dd7L03HO7tPLa5s28dMQRbFiwwCyT/d3U1gBCxXhlrYZkWxVEtLQP+bykXSqI/hZCRfW7GGr//vR+8kkYNixXR11nzWmnsdmIoRWBPj/8If2nTXN4o8uvu46lvy24sntZoLW388rUqax86SXH+/zUevdtRT5Ues0b1QSsCLLR/IglPK6lhPQx46jhiipDYrvtaJk1C9G3b7aO6c5OVhx7LO0vvlhUYQf96lf0Pe88xw968e9+Z5Kukkht2MC/Dj+cpTNn5oVjDJItsf7r0UjlJ/02qPvBQt8Yms+5oOvtUmgqUtC1ClEzerTpSeo9euQI19bG0kmT6IixlIGMba6+mj6nnOJowwXnnceqOyvzdcKNH37IU/vvz/LnnvMVMsbykcY38OXwdhEqdZ0ZsEiiaoVIFjbYmLLst0gzv3uVIqpTHtTtvTcDHnnE9CSzhFu/nkXjx9O5oLglHkbccgvNkyfn2l0I3j/9dNbMnFnWOn16xx3M2nNP1s6bFxgobkfhUxSTbHrxMmGpSbZaaDe61L0e7Ec0976Q9tt1j4IFRfXV+Ou/VgKN48Yx4K670BOJbJ07ly/n0/HjSRkLQMeEsRzVTvfeS6+DDsoROZVi7nHHse5f/yp5zTYtXMgzEybw4ne/S4fxFWYPTZU2eWBsqvn/E5Q86VYIPtJvmSXZWK9lvr3i64UGqVG3NDRskE5XKNy387sb2G8Gen372wy84QY0JfejND6TveDww9HWro2drzEnc/Sjj9K4++45Ire18ebkyWwscjUmG22LF/PGj3/MjNGjWTprlo9dniGZniUb5n4HCgtRPT85HjHutsQim7I897DCdpnwIJp7axe5z7sX6vzuJnyj5ayzGHDFFY66t86dy0cTJ6IX0XGfbGpi9zlzqNtxx2xbd6xfzyvjx9MWV1ULwYqnn+blU0/lkZEjee+aa+hsb3eUPZ0ll5olmm6RTN7/GNWUbu3hSOVHvs9syTY/99Bgb9TrvPBRr+2SdCvU+d1dMOCSS+h/0UWONln/yivMnzKlqN6Amn79+PpTT1FjhVvM9lu5kpfGjaN9abjVmAwJ9uldd/Hvs8/moeHDmTN2LB/ddhupzk5fNSlLMc1zy9hun1jSLQSp/PCBObuqHl7VUE5QEWYhVHTzIXJfqbtTPkxHfYdhD1pLcQaN9ozTg9DxyCN0PvecI098/gddi5XG+OU0NaFv2JD9wayZPZv5J5/MTkbgV/Wb0huMhuHD2Wv2bF48+GA6Vq0y02769FOeP+QQ+u63n/OlqirpzZtJbdxI29KlrJ8/n3Rra7Y8SD/m3NBW9xBXJfT+fBIYYe5Oaf2QiJhvkq0HzNLgzyqKRTDFGn3rTSJ5hEihjnojTtNLqrz7l6DHJJtBtE1XX+1JXt2Vfyn3g7YVRt9qSwujYiy6Z6PXzjuzz4wZ/GvsWNKbNpn5GkQytkLPl+uPJa2wCCMT0E0yPQQJ16OwFJU69FBkc0m6xT2tHgT2RXu/LvOFg6xIDeOB+jkTwqVmN/s4FPK5qAgb+/NT/YUcHXnf3YsSlNeSG29kwS8Dv4RYEC17782+06dnwy2FnDS3N6lHVJO6Y1OkY+f+eyRNySa/r5Aq1fR0svK+F8oXGSMxV0gRonGDXmTWu7JeWBBRS0m2oK0QCXPGc6GX6n9tweWX89n//m9RhBtwyCHsc/fdCCnc4h8dyNlhbm/Sm2CK4x7v/XxSfo7KBtNDjRxIeA2ZbD0R7+a80Zyz4Cc1/BrAi6C6RTg/SRLHGy0UXI67H0Y6hsn/vQsvZMk//hGjZjkMO+YY9rzxRke4xfksJes5OqVUEKGCNvIIpjvUqeGZZqRbFAh4w0G2RsRsuQIZ0qiBasitYuR0XuGRIEkSFWHCL+FVTzBxgn50vvtC8PZZZ7F8+vSiCLfDmWey+x/+4BuukKWYTDKnCgxWk4UIJs8a/ZiE2V5pj7IGqNRXHWRLoNySK7D7VxMuBOL963PuKx7n4qhRPwkaVhp5ESysmgxNYk3j1eOPZ9Uzz8ThWRajL7qI0RdfUjY1qRcgmIw2FJaRMKVbyGDuu73AdK2zZBtLakULojWf5c5uLC/pFiQRvNSs4vFioiJISobZj6Maw+7L+RqDEV+cMoW1b7xRFOH2uupKdjzrzJDq0N/uKiTFwuATEsgRxQJOwrP2jiMg1AxzNckddotkv5cVVqrY+3ZPqPyLiku2KGoyzBZHShYirNEb8OyECWz48MMYNc3hwBtvYPtvH+OK8BdSjdHUZBgsQjXbNBXu3WXFuots+l1OktliV81KuLTHiw6jYoVrv951PSqMkRdBkiaOHRZ1KyTV5a1t1SqeGjfODMDGhaKqHHr3nQwZN66gmswRL5qaDINOFD53STcfGK8hu0yUi2ziphrzkxpuzwaHbpcb2quBwyy/hfVxVvtcVOhCeBI5qp1WrJoMk8be37RkidmF1F7EEg9qTQ1HPPIAA/bZJ7Sa1EtAMDc+tRwFN1yq9PkmWJctu5z2G6Q7BqF/liOZHW9zGpNuqeYmnjuoK1z32PclrN6FOJJNzrOQmoyqGgvdWwxh13w4n9kTJpqjZOOipkcPjp45nZbRo0OpyXJgiRWp0LztNBuPygd5nXi9EY/okq2Wk2o26YKlWtBL87qvTurOioJC0qUUqjGKmgza3J3fK15/g9lTjkHr6IhNg4a+fZg6ewa9tt225GoyDDajsNay3QLwiHwpj2w9EJfWWp880xwSDsl+8yeS34vzI4ZufXo6Krye1dVq0lnf4Kj+oqefZc4JJ0nLjkVHr6FDOPGfT1Dfv39FCObG0mCyvdwMjiXg88g2ltQXQ9AWCkm65XumiudLiEIyN0mjQniQIqxqDFKXha4V2k+72ixXR+cYMYOEHz3yKE+d+V9FvfCWHUZw0pwZ1DU3FZVPHCy17Daf0Mft7iw9x8L0QfwNl92WH/D1dhbCSAPhQYyoiEokP0L69f9GyT/OGDG7HPP+cRvPXXhxUS994JivcfxjD1LT2FgOTuXBlqIryPXbyhCZaSj3ue/zJFsD4k89M995zGs43eVeF5IQXirJvSoca3AAAAwVSURBVJUjzhZHTYZxJHLPCFaTUaL6r/75Wl75/VVFvH4YfsD+HHPv7aa3Wg542YJGfb+wVKnLSZjeAmvcxfAk21hS6WHoZjBO5Em4nBrwe6lB6syt/rx+GWEQ1PcaVU1G24LVZKGuIb9wxTO/+C1v3VTctxl2PGICk2+5AZTS2G5hnI3VFg9c+KtXWt8hpb3Rz7Mj/U61aYdD8BxG7ifNvEgnX4uKsJKoWGdBizhGzG1S5Ijo3PdSq0/84Dzeu+/B2OQwsOvJJ3Lon64sKo8ozsZKy2GU8IHcayDDl2zjSb03DO1T+9jbbnM6C2HVplfaqAgjxcKoQ/98SqcmvdLY5ZHDFbqmM/27Z7JwzlMxWiSHfc7/Efte9ONI98QNmRiSzRYclhq9vsXHMgocLN8f/ef2vttZcDa+/0v0ki5eajUq3JIxCsmDyupVx8KEKqwmwwZdtc5O7p9yAktfKe7bDOP+5/d87dSTA9OUIia3QRqGRsZOu8UvbSDZJpK6ezB6tm9FJpguOQu58W/hDHCva1ERxvuNqyb1vHq69/3VZFiCBb3gVFsbd088mlXzon1i240j/nY9O0wYn3e+lDG5zPyErCq9pk/AWjQFpwENRv+NnLG3GlGlRvZXqW6CZJ2DpugxomgqsXJqslSd3+1r13HX4UeyduEnkdvGhuGZTn3wbobus1dZexbWZeprNF/gyjgFyXYEnX8diJ7tTJVDHjnP1Hnej2h+y2/pMaa+KQUklr+tVkjNRd28pVgpOr83Ll3G3YcdSeuKlbHzSDY0cPyMh+i7U7Sv8YVFb3Sj18lI/VIfqdPdC6He8jD0C+Rjt/svj38LstH8yBEnzrazGXyOrybzVaPioQ69PMfodlgx+OLjBdx56CQ6iui4b+zXl5PmPGZ2b5UKfdA5hA6Opp2B6EKFEwtlHYpsk+i8dRh6diCWe5KFJpHOz0bzOxfXZjMWGD4Q2M1n5G/0qL5TTeZCFKrLVivPGLEgrJz7LvdMnGJOSo6L5uHb8J1Z04vu1hqAzng6OIp2tjVbyyTRY4OM3qsCCK2/BqOdLifOSSU36fw76oM81TgwKmoohwlm+WSJFMcOi+ZNlmOMWBAWv/gyDxz7HfQilngYsMvOnPDYA6ZqjQLjvW+PxmTamUQ7Q6U3pkBKgVPDZBeabBNIPTkC7TX72Kk6nZ5pUEe9F9HiqFEbSmZGPwcDB6HQEND5HZ50lVOTUfDx47OZfup/5a/MEwFGt9aUO28xl+sqhFoEu5LiWDZzMB3089BBCbhicAFbzUYky7wP+uQeVp8pjheCJEFyzoKfF1oKNeqFbRAYI/S/jjBmi3kSqJCt5u6KquQYsSDYz59393088aMLi8rrK1OOZOL/XeN7vT8636ST49nMnqRsByAPKqwaDL/xzciFSKvw3YHe+n3UppUYq6M6kVv3I/fNdJvJXuuBIB3Xbbcd/U47LUpREMbyBG+/nc3HhmraFfAVhEmalWZHcUby6pLk9Sack2AFFtgvO/zKsOy1N0zptt23DoxdhMFf3938vv1nz2YWHaxBMAqN/elkN1L0NVssGAmY/KfMWs+hEKsl/07950tRB9nHCYRZ2Mx/nWR2X8t+CDfh8cFcrw/o2ue80st5JVzq1/3bs0cgGMs8vUmCuSQdywa4V/TJ3de1X2Wo5PONJxn210jSDEeLJHkS8MgQmBL1eZExi5qv/Yfk2+3W8ALjtSVdm0G6HPnCk8xNqiAiKgGEE67/xqTaeSR4k6S5Io+Q7u5qglW6DIaa3J40I9CM4WSR71eNlb+h72DvifG+iLWY7R3oK76P2rwS9RuZM4pdCGmRJjw3r2W28ElrN7/7Hve9IJfCuW//T5geq8D4dstAc52xzBj6rrbDKqGqjdwHobMLKVNNjiZthjDijnxTYcoQY8m2GOWIjVup+2Qxie3s+3PSTbfUauZ/0pRyGWkUpFLl8+5jv301pDp1n8P8gomxDFTCXOju82i+UmxUitx1CIw1LIeim6qyviifP4cE/L8hEM3AtlBUzZ+gZuB8kovWoxgxVjOzZJZgOeLlyOetQt1qNKzdZh+7EaRO3fv28VpzhZ6EubTA0vwxWkWj3CQz2mEgminBBqOZYYpSP1GFRUMh9odMiy7PDGqO+g81j9jKOyERzbbbkpaz4CZPIYdBJpWXpJPP+0kvCkg3fOy7RSRYjGoSb5U1ZisqykmwJoRJqP4WwVos77E08isfRvBWhe2HhOgpCMijeDxI7f+9S/J7dka2R5pPOj2UGo3qLBRSp17SLUwamXzLLdIZoZTVlr3n1fNRaoIZ6q/F3HSz07vFIpmhKcKYDCWCSMBRQ+CxYrIrWcvcSd3LC0jsi/nibZLJdputUkUsz9QtzbxUcVwyycdR8tiIYg6vMf5vQmUTirmkVIe56ErmYxUpqYl1yR2os3IxyFRn/Tc2I4Da09p6WZ58UDnD/KiKhQqXD4Xi1m71MXlioS/6AZtRFi1DHSyvemQ0rWqFR1QzMi8irz4ue6Pue+R0XurUhjtMQoRzful7mYSwJUymtoVIHZb08n5Q2eVrXueKhQpzSkE0onZXBeFwc0aWNqYvuvGZymwXUbmX35KPhUtUe4ntIFEeNn0xebhDMqUqU5hrUaHAu0PhsFLlV1J//3BSK7dD26MZ0ZE/BbA8y2+573cjzouuFkKGvSfq88NAgWUK7FFkNg6UPLg0idT8kaQPMDrsvYblRO2oD7P8lntOQCUkTyUJGVSmMhFtrQK7DSXyWs2BKEskcxKp13YifVgjQtNdEq5cy28FjY3rKlUY5hmlUqelIp1FtFFDjVl6JUbZwuZHkPrnV0zCkdYcY9zKt/yWTMbuZpvFeUaYZ0V5ZjmJRjnJhkW4UaT364FIOUfMFh7VG3a0r9vRkElXCclTbkKGfX6xkk3JrOhdNqJRbrKRIdxrI9G+1oxo9Vp+yzn40l+KBZHMz5lwo1ySpxL2XdD1YtWpkllHbcSwMhKNSpCNDOE+2B59u76I1e6h43qAsxCGWF7Lb1XaWQhCqQkZVZIVUqcKvG4RbVPh2hSHygx1yMxhWD0UfZuh6O+Uc/ktN0m9gqFudAUhyxl7C/uDUOD2YbDXsNKNzA9ExchGhnDtJ9E5ZgT6LUIakl3q5bfc95dC7ZSakGFQqtibxzmhwPnD4JSIRSoKxYZkYmMmyTMWo9yYgqS7oz5onFucUb3l7qgPc90+LkX/bZj0fs8SsFGBscOsL+VVEl1GNgNzSG6/Gl5YC0O8OurDjH0LM/6tFB311UbIQul9nmXYZwcNC1j8pZyoqBp1YzzpT75DeuhwxD04ehgKq1Q/tRp0f7Wowkr2Tlj/jer/3LLPuoRodLVkk/EUiQNXI6ZvQvSOMqo3aPaWl4pVqkQVlkJCFsrP2hYChwx1LRPfFehSySZjHNrzA6HvEJR7FRTh55kGjfoI47W60dWSJ04eIfMzVuyeNhR2qAaiUU2STcazKLtsRExfByMKSbKgiTF+0q2YSTJEkDxd5Szo8BKZkbVlDdJGRVWSzcaz8L318Md26FGqUb02GatFFZbSWdBhmQ6nDzF8rypEVZPNwIugpuGqDXBuGmqjeqp+NlzYGfXuc+79KiHkBh1+MhhuoopR9WSz8TLUp+EvrfBdzUW6QqrTL013dxZ0WKfDHwbDFXQDdBuy2XgVkhpcsRm+r1nqNSrpyhl788uvlKTWYaUOvx4EN+a3UPWi25FNxutwVgp+1mk5EkEz6v22anEWCuUhzI8O87qAnwyC5wq3TvWhW5PNxtvwFR2u1OFQHRoLeaZuB6KabTMdVutwvw6/HGR8KqobY4sgm4x3YbKASwTsqUJdUDdWtToLOqzX4RkdfjMQ/hO9FaoTWxzZZMyHsQqcq8I3FegT1J9aCmchKE3QdQG6lglbzDIM/oHwUXE1r05s0WST8Qn0VOGMBExJwC5J6FMDald01GuQ1mG5gJd1uEvAowMqNKasK/GlIZsXVsC+KhydhN1rYIcEDFShUbW68YpVp3qGVBt1+FzARzq8IODh/rCgYpWsInypyeaHtdBTga8pMFrAUMVYXQJarIXJMT9skmm7TgGtImO4GysBGCGJBcI0HfmgX4nnXXZrAP8fU2SSHI+S6FwAAAAASUVORK5CYII=';
61
- var defaultMatrix = {
56
+ const Icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJsAAACbCAYAAAB1YemMAAAgAElEQVR4nO2dB5jc1L32f9LMVtu7XveGAWNMgiEYQguEEmwMtjFggimB0Lmk3EAogfRiIEBukksJuUAI5KN3MNhgG0ILLXRi0ww24IYrrrve3RnpfI800syRRtJImrKzxu/zaFfl6Oico3f+7RQpbAXTaKwDRkrbMGAIMBRoAZqtradPa62XttXAcmAJsBj4CFgAfPJr2tJf5tb+0pFtGo2NwJ7AN4AxwG7AKCBR5kd3AO8D7wCvA68Y+7+mLVXm51YNtniyTaOxHtgPGGdte1SAWHlQENYpxfprHrcDLwJPK/BP4LVfsFmvdNkqhS2SbNNo7AMcARwNjAd6VOrZPqSSrnvvW2lXAo8Djxr/f0Z7RyXKXClsMWSzJNhk4GRgIpAs5/OKJFWYtBuA6QrcATx1Me3dXuJ1e7JNo3EX4AfASUBTqfPPEENxHdv77rRe93pfL3QviOw5JeNo3ArcfBEdiyNWoWrQLck2jcakpSJ/BBxYijyrhFSF0mrAQwpcewGdL3hWpIrRrcg2jcZa4BTgp8AOcfLoJqTKng9I+xJwGYhZPyYl6AboFmSbRmMNcLZFsm3C3LMFkcqVVnGX723g5+eSeiLvlipDVZNtGo1G+b4NXGEFXPPQNaQSjnPlIWAeqXzLYaV/XkFc8kPSr+TdVCWoWrJNo/HrwF+AfXGRKogk3sdbDqnUvJTu9OJ24Gc/QFvqk7TLUHVku5SGZlB+D3xPQTjatjpIFZ2AlIdU0rm8vFuBXxmOxDlomk9WFUdVke0yGqYANygwQD7vJE3wCytElHJKNUpEqvgEdEJFvAmceTb62z5JKoqqINvlNPQ2VKaSiZWZqE5SBUqTwPRlJlVAemF0/v8WuOqszH6XocvJdgX1Y4HbrFEWJvyIEmQjeV3fkkiluOqanz7fhHCp3H8DJ54Bn/hkU3Z0GdmupN5o619Yvzq1GklVTgJ6lY3SkCogb9YrcNap8IDPI8qKLiHbVdT3A+5S4FDnFX9SBcWovK5vSaTKr2NBUhXImz8DF58CFXUeKk62P1C/M4iZCmznVYjqJJXzWjciVUDePA0cdzKs8cmi5Kgo2f5I3QTgHqPDPBqphEmH/LSK9b96SRVEnDCk8vuRxUnvkdYYQTzxOzDfJ/uSomJk+xN1RnfTDVixsy8LqfzL6H1/mUgVdO0LBY46HsresV8Rsv2Z2ksUwyfIYiupwpAq2LyITKqgZ242VOpxMMMnSUlQdrJdTe1VhjGaOepupAry/Nxl9H5WlZEqqIzGXIhTj4W7fW4vGmUl2zXUGtLskmogVYHAZ965riZVmLRlULm6AqccA3f6ZF0Uyka2a6m5UoFLcme2kipu2grbcSbhji4D4cpCtutIGoHa32wlVbS0XeAc+B0b8bejjyqxDVdysl1P8kxjrDw+pAoTKK0zZwMLc0pUA8I8rs1uGRsrKd2nW0+wO/7SlgFiTE3qtP4bx4YV3GZdj/PCSkXAcpIqKgEDjo3mOnRyZqphSVBSsv2VhDF9bnqm+6kwqVRzmrkwp5y3IMx9Y8p5UlFRauvB2GrqUBJJSNRCIomSTGZyUa2pn8Z/PRMIF/Z/LW1tKUQ6s+mpdvRUByLdaRKwzWrNjda2SfpJfMlIFXRtnTGZexJ84PG4yCgZ2W4gMcaacNvoVXgscvVDMMDaeptcSUJ9D5T6nlDfE6WuAZK1pSpWDrrlCQsNvb0drbMNvbMNrSPzX9d1k3CbrBZeZ0nDLwmpgtJ+bAxgnVCCnoaSkO1GEn2BN4Bt7XO2TWVMHhiMMBfNGIggoajQ2ITSoxkamzPSq1ywCWaWRWQsEcWSX5rIyTJdmOTTOlrROjaZ/w0p2WqRbq0l/bytxC2GVEHXnzNU6mGZ319sFE22v6Eaeu1J4GD7nGrOShEMNyUYqGoC0asP9OxjEg2lbE5wBrrIqXCDVF4EM/7ruX1Fk8+Dlmoj3bGRdPsmtHS7ydMvrG2dZSd2Bam6kIBXj4fz80+HR9Fv/WbUK0GYIY5e5vw6YYq3WkVB9GhBNPWFHr0rQjBsKWYTR5Ekmi3ddGlfk6ReNg8rH82egC7Q0ylSnZtIdWxAS3eYWay1lita7ypGBTzFkuYV0Ys+fizc53FLKBTFgL+jHKrA7IGg7GRJMRI1iN4D0Jv7l8f2kuGrJmWCOUmUL8Xk8zmCOYmpZ/PT9RSp1CY6Ozah62nT2VhjEc9emKMaJFOhe4OuB9ighjUx5hBY6JMkELHJdicMGgDv7wS9DW9S1Dag9xmSUZfdQE3ahDJv1fV8YgrhJKmim+cUIbL3ptMddBgSL9VhHhuLc6y0Funo5qQKes7LxioEB+ciTaERmxWfwrJ+MNgkWd+h6AbJygk3wZClmA+R5PPkiORNMDN2ksnTloomwYxTupPESOkRCKHT0dFGR2qzud9ukW6tR3OUSt1VgFRBaX97IPzOJ1tfxCLbXPjLCEX5YXrgCHTDJisXItthFK0mbYJlSCmc5LIlnn1OuMms05lqpz3djq5r5k9/taVm5SWIuhGp/J5jVG2vb2Zm44dGZLK9BqNHwtxE/+GK1jIo6u2eUPv3o/aEKZlLwiaYBYMsirSfhZBiEf77GW5K98kEsUiVPXZfl5/lSJPbV+Q8lNz9mkE2LY1u2HlWELk9QvgkzDVt0yZz61i2jM0ffMDmhQsR6XQpSRWUjxHq2nf/COo08hpm/WFGTV2jkmoZGPVWXyj9+lD/32eVLL9qQI2rDL0rUCaRSrHh5ZdZ98wzrHn8cTa++mopSOU4J10zViw415rPEAqRJNs8OG8EXJ0aPLI0NpolqZJf3ZGej5ZlVMuXGpvnz2fFrbey/G9/I71mTckknoSNCuy0D3wepp39Blrk4XmoHWCMtk3WFkc0PWNHKbqeGbio6U41txUlQ8OoUWx3xRXs9dlnbH/lldT262eSRrFevP3fa1M8Nne6BPRSI0i20GQbCLf2gnqtV0yHwE0wXdq0LXbN4qpAokcPhl5yCbt/+CGDzj4bVVWzhJFJ5UfAhCut6kx7whuwV5h6hiLbXBg4CE4w9vWeEawPWYoZhDK8RINcirVvkmyrZKsUkn36MOKmm9j5ySepHTQoUKoVOlac+38MU4VQZGuE2+qMtIqCXu/33QkLDjWp56SYInJSzCaduYkAH20ryoGmQw5hl7ffpumgg3xJ5SXxAtTugW/D4UWT7U0YOsCauS7qevj3DniqSZlglhSzSWYR0d62orKoGTiQUU8+SZ+pU0PbcQVsud8WTbYWuLXGckaEMdbMRbBQalKXJJkmJIJJ57ei4lBqatj+nnvod/rpvoTyk2qJ/PT7zC0g3QLJ9gEM6J/5KkqGWzV1AWpSD1CTtgQT5j2y1FOMter0rWq0y6CqDL/5ZnpPnlyMVLO3XwZVI5BsdfCXGllxJmoC1KQIVpOSdDO6gQySmUSzpdtWdC3h7r2XxjFjPAkVIUSy//sBnqkv2V6DRAscLQf5hJE8qyZ1TzXptMNkguk5ghlzBWyymoTbSrauhtrQwPD77yfZq1fsuJu1XeRXFV+y9YGfNVq9LlnJJsiRLEswp5rMESynJjOSTXMS0+j51izSiapZ9vVLjdqRIxl83XVxpZp9/piPwLPT3LdvtDnz9RQnFCSVFzC6IuoYsS6w2cSaNXQeOxWxbJmrQx7XrDC/faT0AekUkXebw58X3ueF67zxc9xg+11GV1RjI0rPntSNHEn9HnvQ87DDqN9ll3CVD0Dzqaey/pZb2Pz88/lllcoT0NVlcOoM4Pc+1534EPbYHt5QXE3YPmAEItloN0fmX+AYMYtgBcaIqbvuTOO/ZkdqFG32kyTGjytqoKb+7rt0jh2HWLs2U34lDMnkUSklJph0zatWxqUNGrRb2bdaJLTT1u+2G30vuIDmk06CRPyvXHbMm8dnu+1mOYH58GtxSU0aS6mOHOGyjzzVaCNc6vkQm0Ch1aTtMGhWs2goumZOp8tNLdatQYjRoD30MJ0XXhyvNe3Kjx5N7aPTURobcuPkCmwKQpq3IG2KyOXhIlMmbiQllc7bI6Ds36Sf1MDicLMKPZRMmp7WxG37no533mHZqafyyV570fHWW7HbpW6XXWiaOjWqrSan2V6Bg/La2+thTXCI3FjZfS1tGftavjeZ9UotW8wcrm0TzLpHaE6CGcciroMgSN9wA6nL86R1JKh7703t/fdBbY0v0RQHyXAOqJQJJkmlPJL5EIwCBHMUxYLR+91svbkGi3DyS0+99RaLvvENNtx6a+x2afnpT1EVpRhn4TvuPPPIthCm9gDPyZyKMTDPjotlCaY5jX0lQx5FpC0pZnmstiSTCSb07NDqyLDeVurSy0lf/9fYjWo2wrhDqTFejKl6bILhQzDhlIJBBPORYu7znnARLJveOm+QrI8l4epcEs4kREcHK888k3XXXBOrTerGjKF+v/1iOwsKHLs4U7RcO7sfUgP/LdwSzd4xltH3VZO6h5rUnaQyiWZ1vFskU6wAcWQIS0IqgtSFP0G7u7hlxRLHTqXm2uuC1WQRBAujJt1SzE9C2qhVMoRTrcGate4XLwRrzj+f1oceitUmvU45JYoX6iZjb0XSkHiRrQH28gpEKLYajaQm7bCG5pBiZnpry9lu0aHYs52ETudZZ6M9/nisfGwkzjqb5LRL/dWk3Bb4k6NYNemXv9d9Bsn6Kpnuo6RFOgc5hGD1GWeQXrIkcns0Gv2miYRTYnpIODfhpOPJcn4Osr0P+9ZCg00BdwMp6c4cwaKoSeEimJK7xySpHifOJhxvVDEmEp90EvoLxS0Nm7jk5yR+fH44KeY6X0o1GUQwd/4Gyfpa/ZX25nj++vWsveCCyG2htrSYYZUQpPKTcpOXS03gIFsNnK9n/UaPh+spD4K5jH0/NankvE8zD123SKYHvJEgCEstSXZVWyudx0xBf+edOBlmkbzqTyROOa3L1aT7njwCS9IzIRHOq6O8/YEHSM2dG7kt6saODUMqP0IOU2CMnZeDbEn4phyU0FwNp+jpADUp8tWkbLuZKs+SYkLkpJuI1zdqlssrXLF+HalJExALF0TO09EWN/4ddfLRXa4m8SAY0ixCRTqtWBNrPEkhBK033BC5HWr33DMMqYKOx9p5Zcn2lrn6GYNzpn5mk50Fs39TT4VXkxLBslLM3nSZaPFCH/lb5rxYtZLUYeMRy4r45KaqkrzzHtRvHZIjmQfBKqEm7WvuXgXhele2NmryMORVS7pFRXLUqKiq033sWHDIRBKOwqKJXXDdQ52adptFsgz5wqhJ4UMwSxLGchDkNyay+dibWPQpqUmHI1avjpG3hbo6kvc/DHvsmRHGYQlWBjWJdF44f7a4BQTWInmKJCzMe1euJP3ee5GaIDFqVFTV6XYoDlib0eo5siVgqlxw975d0YzdJiRPMme3BapJm2g2+YTlTZLftRMeTpK5JZ14fx7pKUdAa2vcB0BTEzUznkAdtZP39TAECyCZF8Hc+SERTPPYvN6bATtYqkvPSM+bF6n6Sl2dOWEmBKn8YnDG13x2w2Wz7emlQuV984Z0ykdN6h5qMje2zdYfdrhCEbI3GR2ZihaO6uuv/pvUsUdDqoh17Pr1IzHnnyjDhuXOFWOHedl5Hk3hRzAv7eMlJJAmS9v2t/g81BRPB9SePcOQykFA12ZMaHaQbZj7V+KuoGI5CeHVpItg7nCF25uMBJckCwi6iqefIn3yiUUN0lSGDiUx6yno178iajKIYFGu2S9Z2Atcb9gQue7GWLeQpMpuCScRc2R7yxxRRL3wqJiQKq+bQcJMV1RkNSlJsSzBAq3lEIjQ+S0efhDtB+fEe46d7047kZz5BEpzc1FqMsgOc0spL5PGvR8k7WStZN7T3By94m1tviRLhJNyJtns8WyHaVIiW+Sq0r5ik41MH6kwfFf7JdsBJotg2daT3kLQGDHR2YFY9Fmk+otNG/MI5pW9Q1r8/WZzNbnElX+I9CwZyh5fJ/Hgw2iTJkJ7u6tQPuVBaipXmaJuuPpc9BB52WnMd7rNNtErvXFjfleTXz29nahd2uwPGL8Jf1HhhzUW+/y2Gjs6rSZI1dZma+kgkvAjGHkkc+8rQWlKOEYscdX/oF7gO3o5FMSj09GO/Takc/56EMHk8nhteJBItkZ1n/2o2/D580nuuGP4era20mrZbG4Eeebu88b3ZVWr0DsXEtfycSbk4a0m8+2w4OZQCo0R87HD3GpMPi9rba+ovvbTi9Fv/XvoBvdszCOPQr3pZhRFiRWuKKWaDLsp22wTiWhmuefPj+QQBIRHRppqVIfhsvr0UqMOlWp5ofL37BRH6wZLMEd6r3S2FIuoJgPVmAxjKfrvnWOqVHXKMUEpA6Gedpo5yle/8AKHFCu1mvSScHqE++z95hNOiFxH8eGHnhJM8dl3X5OOdzQlmwZ90gG/KC8pZ3qkQYMKPfb9wxVdMEZM09BPOhHx9D+jtH0elPPPR/n5L7LldRv6UcMV7jR+Eq6QZMx7fjJJ8znRHSTx73/H6q7ykIDbm2RLQ093IwmfBssGNaSJL9WmJj0J5pV/RyfalKMRr75aFOHUyy5DOeecQBXp15alVJN++Rv/m884g9oddohcN/HMM1FJ5SfZB5vnnwORcDkFYZwFpSbpq9/8vc8Cxr7P+Uhq0q2hA/I30b8/iaefRdl556Bcg6HrpE48kfR998VSk17HxWxyXslBg9hx3jySfSMud7Z8OekhQzK2eEAyryb1wBz1TWhOR/zF2f/d0s1fTRJeirnOV6Tze+UqtMMPg0WLwjWbF1SVmjvugMMOi6Um/dSjn7oMKxH12lq2ueuu6EQzmuaeeywn0Nm8Xj+gEBikdsI2UcS6o9L2qkXlVJNhCVaAwH73ZNMvWYI2biwU03FfU0P9ww/DvvvGjviHUY9BnqtjP5lk+G230fNb34pVHf222+KQyhPmxDAdhoQhlvCqlLClm4tgFR5K7Udgv/vyCGyn/+hj9PHjY3XpZOvZ0ECPJ56AXXctuR0WZaOlhRGPPkrL8cfHqod48UVEjOmAAdKvt2HX9XM3hJe49jVA7dnsMaa0lUpNhiGYJ4E9Or/1t94ifeSRsHlz5IbOlqt3b5pmzUIZMaKgWoyiGsPu95w4ka++9RbNEybEroN+2WWB12Oo1AajC6FnkCiWpZrXtcz6y91ATUrXCvVNpp97jk5DIpjTFONBHTKE3nPmIAYNKlo1hiGaoTKbJk1ix2efZdTMmdRtu23ssusvv4yYNSuv+YtUqbXJNDRqUtDWHcjVXcea64WrGUeMpD3b38djFOS/4FwxalG+urMrsXc+gfDL3yc/RwNu2oT+8cfZY+2xx9BPP536224L+/Q8JHbYgb5z5rDigAPQ1q93PK92993NDn23KxX22LAP1eZm6kaMoHGPPWgaO5Zkv36xy5qFprHu+983v7BYLNykTAoXoTQXkdzEUiRSZiWBBkmpp9ZBMh/yyVAGDyH5evzlAkqCVIr2Y45BmzEj+1LTt9+O6NOHhquvjv2Eml13pd/jj7P80EPR2tpyZDJW8H78cdPGqyZ8fu21aO+8Y85BrQtZrrCSThUFxLmfWpWvpS11GltNVgMMT/K++1AOOMBR383XXMPmSy8tqoDGzPIBDzyAqK3N5rvphRdYPHWq+VWWasH6N9/k9Z/9zFywZqPPqwqjUv3SGfJoXZChGioEYggGvbioflWgoYHGGTNgzBhHfTf++te0XX99USVsnDCBAf/4B5qqZvPeMHMmS04/vSqqnlq7llePO45UR4fxxUWzjG0xSeUHVYUvgjzRMF6TKd1ETrp5wqM0DkO/SqA0NdFrzhwYOdJR7/XnnsvmIpd4aDrxRAYaakrKd82dd7L03HO7tPLa5s28dMQRbFiwwCyT/d3U1gBCxXhlrYZkWxVEtLQP+bykXSqI/hZCRfW7GGr//vR+8kkYNixXR11nzWmnsdmIoRWBPj/8If2nTXN4o8uvu46lvy24sntZoLW388rUqax86SXH+/zUevdtRT5Ues0b1QSsCLLR/IglPK6lhPQx46jhiipDYrvtaJk1C9G3b7aO6c5OVhx7LO0vvlhUYQf96lf0Pe88xw968e9+Z5Kukkht2MC/Dj+cpTNn5oVjDJItsf7r0UjlJ/02qPvBQt8Yms+5oOvtUmgqUtC1ClEzerTpSeo9euQI19bG0kmT6IixlIGMba6+mj6nnOJowwXnnceqOyvzdcKNH37IU/vvz/LnnvMVMsbykcY38OXwdhEqdZ0ZsEiiaoVIFjbYmLLst0gzv3uVIqpTHtTtvTcDHnnE9CSzhFu/nkXjx9O5oLglHkbccgvNkyfn2l0I3j/9dNbMnFnWOn16xx3M2nNP1s6bFxgobkfhUxSTbHrxMmGpSbZaaDe61L0e7Ec0976Q9tt1j4IFRfXV+Ou/VgKN48Yx4K670BOJbJ07ly/n0/HjSRkLQMeEsRzVTvfeS6+DDsoROZVi7nHHse5f/yp5zTYtXMgzEybw4ne/S4fxFWYPTZU2eWBsqvn/E5Q86VYIPtJvmSXZWK9lvr3i64UGqVG3NDRskE5XKNy387sb2G8Gen372wy84QY0JfejND6TveDww9HWro2drzEnc/Sjj9K4++45Ire18ebkyWwscjUmG22LF/PGj3/MjNGjWTprlo9dniGZniUb5n4HCgtRPT85HjHutsQim7I897DCdpnwIJp7axe5z7sX6vzuJnyj5ayzGHDFFY66t86dy0cTJ6IX0XGfbGpi9zlzqNtxx2xbd6xfzyvjx9MWV1ULwYqnn+blU0/lkZEjee+aa+hsb3eUPZ0ll5olmm6RTN7/GNWUbu3hSOVHvs9syTY/99Bgb9TrvPBRr+2SdCvU+d1dMOCSS+h/0UWONln/yivMnzKlqN6Amn79+PpTT1FjhVvM9lu5kpfGjaN9abjVmAwJ9uldd/Hvs8/moeHDmTN2LB/ddhupzk5fNSlLMc1zy9hun1jSLQSp/PCBObuqHl7VUE5QEWYhVHTzIXJfqbtTPkxHfYdhD1pLcQaN9ozTg9DxyCN0PvecI098/gddi5XG+OU0NaFv2JD9wayZPZv5J5/MTkbgV/Wb0huMhuHD2Wv2bF48+GA6Vq0y02769FOeP+QQ+u63n/OlqirpzZtJbdxI29KlrJ8/n3Rra7Y8SD/m3NBW9xBXJfT+fBIYYe5Oaf2QiJhvkq0HzNLgzyqKRTDFGn3rTSJ5hEihjnojTtNLqrz7l6DHJJtBtE1XX+1JXt2Vfyn3g7YVRt9qSwujYiy6Z6PXzjuzz4wZ/GvsWNKbNpn5GkQytkLPl+uPJa2wCCMT0E0yPQQJ16OwFJU69FBkc0m6xT2tHgT2RXu/LvOFg6xIDeOB+jkTwqVmN/s4FPK5qAgb+/NT/YUcHXnf3YsSlNeSG29kwS8Dv4RYEC17782+06dnwy2FnDS3N6lHVJO6Y1OkY+f+eyRNySa/r5Aq1fR0svK+F8oXGSMxV0gRonGDXmTWu7JeWBBRS0m2oK0QCXPGc6GX6n9tweWX89n//m9RhBtwyCHsc/fdCCnc4h8dyNlhbm/Sm2CK4x7v/XxSfo7KBtNDjRxIeA2ZbD0R7+a80Zyz4Cc1/BrAi6C6RTg/SRLHGy0UXI67H0Y6hsn/vQsvZMk//hGjZjkMO+YY9rzxRke4xfksJes5OqVUEKGCNvIIpjvUqeGZZqRbFAh4w0G2RsRsuQIZ0qiBasitYuR0XuGRIEkSFWHCL+FVTzBxgn50vvtC8PZZZ7F8+vSiCLfDmWey+x/+4BuukKWYTDKnCgxWk4UIJs8a/ZiE2V5pj7IGqNRXHWRLoNySK7D7VxMuBOL963PuKx7n4qhRPwkaVhp5ESysmgxNYk3j1eOPZ9Uzz8ThWRajL7qI0RdfUjY1qRcgmIw2FJaRMKVbyGDuu73AdK2zZBtLakULojWf5c5uLC/pFiQRvNSs4vFioiJISobZj6Maw+7L+RqDEV+cMoW1b7xRFOH2uupKdjzrzJDq0N/uKiTFwuATEsgRxQJOwrP2jiMg1AxzNckddotkv5cVVqrY+3ZPqPyLiku2KGoyzBZHShYirNEb8OyECWz48MMYNc3hwBtvYPtvH+OK8BdSjdHUZBgsQjXbNBXu3WXFuots+l1OktliV81KuLTHiw6jYoVrv951PSqMkRdBkiaOHRZ1KyTV5a1t1SqeGjfODMDGhaKqHHr3nQwZN66gmswRL5qaDINOFD53STcfGK8hu0yUi2ziphrzkxpuzwaHbpcb2quBwyy/hfVxVvtcVOhCeBI5qp1WrJoMk8be37RkidmF1F7EEg9qTQ1HPPIAA/bZJ7Sa1EtAMDc+tRwFN1yq9PkmWJctu5z2G6Q7BqF/liOZHW9zGpNuqeYmnjuoK1z32PclrN6FOJJNzrOQmoyqGgvdWwxh13w4n9kTJpqjZOOipkcPjp45nZbRo0OpyXJgiRWp0LztNBuPygd5nXi9EY/okq2Wk2o26YKlWtBL87qvTurOioJC0qUUqjGKmgza3J3fK15/g9lTjkHr6IhNg4a+fZg6ewa9tt225GoyDDajsNay3QLwiHwpj2w9EJfWWp880xwSDsl+8yeS34vzI4ZufXo6Krye1dVq0lnf4Kj+oqefZc4JJ0nLjkVHr6FDOPGfT1Dfv39FCObG0mCyvdwMjiXg88g2ltQXQ9AWCkm65XumiudLiEIyN0mjQniQIqxqDFKXha4V2k+72ixXR+cYMYOEHz3yKE+d+V9FvfCWHUZw0pwZ1DU3FZVPHCy17Daf0Mft7iw9x8L0QfwNl92WH/D1dhbCSAPhQYyoiEokP0L69f9GyT/OGDG7HPP+cRvPXXhxUS994JivcfxjD1LT2FgOTuXBlqIryPXbyhCZaSj3ue/zJFsD4k89M995zGs43eVeF5IQXirJvSoca3AAAAwVSURBVJUjzhZHTYZxJHLPCFaTUaL6r/75Wl75/VVFvH4YfsD+HHPv7aa3Wg542YJGfb+wVKnLSZjeAmvcxfAk21hS6WHoZjBO5Em4nBrwe6lB6syt/rx+GWEQ1PcaVU1G24LVZKGuIb9wxTO/+C1v3VTctxl2PGICk2+5AZTS2G5hnI3VFg9c+KtXWt8hpb3Rz7Mj/U61aYdD8BxG7ifNvEgnX4uKsJKoWGdBizhGzG1S5Ijo3PdSq0/84Dzeu+/B2OQwsOvJJ3Lon64sKo8ozsZKy2GU8IHcayDDl2zjSb03DO1T+9jbbnM6C2HVplfaqAgjxcKoQ/98SqcmvdLY5ZHDFbqmM/27Z7JwzlMxWiSHfc7/Efte9ONI98QNmRiSzRYclhq9vsXHMgocLN8f/ef2vttZcDa+/0v0ki5eajUq3JIxCsmDyupVx8KEKqwmwwZdtc5O7p9yAktfKe7bDOP+5/d87dSTA9OUIia3QRqGRsZOu8UvbSDZJpK6ezB6tm9FJpguOQu58W/hDHCva1ERxvuNqyb1vHq69/3VZFiCBb3gVFsbd088mlXzon1i240j/nY9O0wYn3e+lDG5zPyErCq9pk/AWjQFpwENRv+NnLG3GlGlRvZXqW6CZJ2DpugxomgqsXJqslSd3+1r13HX4UeyduEnkdvGhuGZTn3wbobus1dZexbWZeprNF/gyjgFyXYEnX8diJ7tTJVDHjnP1Hnej2h+y2/pMaa+KQUklr+tVkjNRd28pVgpOr83Ll3G3YcdSeuKlbHzSDY0cPyMh+i7U7Sv8YVFb3Sj18lI/VIfqdPdC6He8jD0C+Rjt/svj38LstH8yBEnzrazGXyOrybzVaPioQ69PMfodlgx+OLjBdx56CQ6iui4b+zXl5PmPGZ2b5UKfdA5hA6Opp2B6EKFEwtlHYpsk+i8dRh6diCWe5KFJpHOz0bzOxfXZjMWGD4Q2M1n5G/0qL5TTeZCFKrLVivPGLEgrJz7LvdMnGJOSo6L5uHb8J1Z04vu1hqAzng6OIp2tjVbyyTRY4OM3qsCCK2/BqOdLifOSSU36fw76oM81TgwKmoohwlm+WSJFMcOi+ZNlmOMWBAWv/gyDxz7HfQilngYsMvOnPDYA6ZqjQLjvW+PxmTamUQ7Q6U3pkBKgVPDZBeabBNIPTkC7TX72Kk6nZ5pUEe9F9HiqFEbSmZGPwcDB6HQEND5HZ50lVOTUfDx47OZfup/5a/MEwFGt9aUO28xl+sqhFoEu5LiWDZzMB3089BBCbhicAFbzUYky7wP+uQeVp8pjheCJEFyzoKfF1oKNeqFbRAYI/S/jjBmi3kSqJCt5u6KquQYsSDYz59393088aMLi8rrK1OOZOL/XeN7vT8636ST49nMnqRsByAPKqwaDL/xzciFSKvw3YHe+n3UppUYq6M6kVv3I/fNdJvJXuuBIB3Xbbcd/U47LUpREMbyBG+/nc3HhmraFfAVhEmalWZHcUby6pLk9Sack2AFFtgvO/zKsOy1N0zptt23DoxdhMFf3938vv1nz2YWHaxBMAqN/elkN1L0NVssGAmY/KfMWs+hEKsl/07950tRB9nHCYRZ2Mx/nWR2X8t+CDfh8cFcrw/o2ue80st5JVzq1/3bs0cgGMs8vUmCuSQdywa4V/TJ3de1X2Wo5PONJxn210jSDEeLJHkS8MgQmBL1eZExi5qv/Yfk2+3W8ALjtSVdm0G6HPnCk8xNqiAiKgGEE67/xqTaeSR4k6S5Io+Q7u5qglW6DIaa3J40I9CM4WSR71eNlb+h72DvifG+iLWY7R3oK76P2rwS9RuZM4pdCGmRJjw3r2W28ElrN7/7Hve9IJfCuW//T5geq8D4dstAc52xzBj6rrbDKqGqjdwHobMLKVNNjiZthjDijnxTYcoQY8m2GOWIjVup+2Qxie3s+3PSTbfUauZ/0pRyGWkUpFLl8+5jv301pDp1n8P8gomxDFTCXOju82i+UmxUitx1CIw1LIeim6qyviifP4cE/L8hEM3AtlBUzZ+gZuB8kovWoxgxVjOzZJZgOeLlyOetQt1qNKzdZh+7EaRO3fv28VpzhZ6EubTA0vwxWkWj3CQz2mEgminBBqOZYYpSP1GFRUMh9odMiy7PDGqO+g81j9jKOyERzbbbkpaz4CZPIYdBJpWXpJPP+0kvCkg3fOy7RSRYjGoSb5U1ZisqykmwJoRJqP4WwVos77E08isfRvBWhe2HhOgpCMijeDxI7f+9S/J7dka2R5pPOj2UGo3qLBRSp17SLUwamXzLLdIZoZTVlr3n1fNRaoIZ6q/F3HSz07vFIpmhKcKYDCWCSMBRQ+CxYrIrWcvcSd3LC0jsi/nibZLJdputUkUsz9QtzbxUcVwyycdR8tiIYg6vMf5vQmUTirmkVIe56ErmYxUpqYl1yR2os3IxyFRn/Tc2I4Da09p6WZ58UDnD/KiKhQqXD4Xi1m71MXlioS/6AZtRFi1DHSyvemQ0rWqFR1QzMi8irz4ue6Pue+R0XurUhjtMQoRzful7mYSwJUymtoVIHZb08n5Q2eVrXueKhQpzSkE0onZXBeFwc0aWNqYvuvGZymwXUbmX35KPhUtUe4ntIFEeNn0xebhDMqUqU5hrUaHAu0PhsFLlV1J//3BSK7dD26MZ0ZE/BbA8y2+573cjzouuFkKGvSfq88NAgWUK7FFkNg6UPLg0idT8kaQPMDrsvYblRO2oD7P8lntOQCUkTyUJGVSmMhFtrQK7DSXyWs2BKEskcxKp13YifVgjQtNdEq5cy28FjY3rKlUY5hmlUqelIp1FtFFDjVl6JUbZwuZHkPrnV0zCkdYcY9zKt/yWTMbuZpvFeUaYZ0V5ZjmJRjnJhkW4UaT364FIOUfMFh7VG3a0r9vRkElXCclTbkKGfX6xkk3JrOhdNqJRbrKRIdxrI9G+1oxo9Vp+yzn40l+KBZHMz5lwo1ySpxL2XdD1YtWpkllHbcSwMhKNSpCNDOE+2B59u76I1e6h43qAsxCGWF7Lb1XaWQhCqQkZVZIVUqcKvG4RbVPh2hSHygx1yMxhWD0UfZuh6O+Uc/ktN0m9gqFudAUhyxl7C/uDUOD2YbDXsNKNzA9ExchGhnDtJ9E5ZgT6LUIakl3q5bfc95dC7ZSakGFQqtibxzmhwPnD4JSIRSoKxYZkYmMmyTMWo9yYgqS7oz5onFucUb3l7qgPc90+LkX/bZj0fs8SsFGBscOsL+VVEl1GNgNzSG6/Gl5YC0O8OurDjH0LM/6tFB311UbIQul9nmXYZwcNC1j8pZyoqBp1YzzpT75DeuhwxD04ehgKq1Q/tRp0f7Wowkr2Tlj/jer/3LLPuoRodLVkk/EUiQNXI6ZvQvSOMqo3aPaWl4pVqkQVlkJCFsrP2hYChwx1LRPfFehSySZjHNrzA6HvEJR7FRTh55kGjfoI47W60dWSJ04eIfMzVuyeNhR2qAaiUU2STcazKLtsRExfByMKSbKgiTF+0q2YSTJEkDxd5Szo8BKZkbVlDdJGRVWSzcaz8L318Md26FGqUb02GatFFZbSWdBhmQ6nDzF8rypEVZPNwIugpuGqDXBuGmqjeqp+NlzYGfXuc+79KiHkBh1+MhhuoopR9WSz8TLUp+EvrfBdzUW6QqrTL013dxZ0WKfDHwbDFXQDdBuy2XgVkhpcsRm+r1nqNSrpyhl788uvlKTWYaUOvx4EN+a3UPWi25FNxutwVgp+1mk5EkEz6v22anEWCuUhzI8O87qAnwyC5wq3TvWhW5PNxtvwFR2u1OFQHRoLeaZuB6KabTMdVutwvw6/HGR8KqobY4sgm4x3YbKASwTsqUJdUDdWtToLOqzX4RkdfjMQ/hO9FaoTWxzZZMyHsQqcq8I3FegT1J9aCmchKE3QdQG6lglbzDIM/oHwUXE1r05s0WST8Qn0VOGMBExJwC5J6FMDald01GuQ1mG5gJd1uEvAowMqNKasK/GlIZsXVsC+KhydhN1rYIcEDFShUbW68YpVp3qGVBt1+FzARzq8IODh/rCgYpWsInypyeaHtdBTga8pMFrAUMVYXQJarIXJMT9skmm7TgGtImO4GysBGCGJBcI0HfmgX4nnXXZrAP8fU2SSHI+S6FwAAAAASUVORK5CYII=';
57
+ const defaultMatrix = {
62
58
  width: 190,
63
59
  height: 150,
64
60
  gapX: 20,
65
61
  gapY: 20
66
62
  };
67
63
  /** 当前页面渲染map对象 */
68
- var map = [];
69
- var resizeTimeout;
70
- var saveTimeout;
71
- var dragData;
72
- var impactBorder = 0.3; // 左右碰撞边界阈值 < 0.5,当0.5时则无中心碰撞 | impactBorder | 100% - impactBorder * 2 | impactBorder |
73
- var dragLock = false;
74
- var dirItem;
75
- var contextMenuData;
76
- var Dir = function Dir() {
64
+ let map = [];
65
+ let resizeTimeout;
66
+ let saveTimeout;
67
+ let dragData;
68
+ const impactBorder = 0.3; // 左右碰撞边界阈值 < 0.5,当0.5时则无中心碰撞 | impactBorder | 100% - impactBorder * 2 | impactBorder |
69
+ let dragLock = false;
70
+ let dirItem;
71
+ let contextMenuData;
72
+ const Dir = () => {
77
73
  return jsx(Fragment, {
78
74
  children: jsxs("svg", Object.assign({
79
75
  xmlns: "http://www.w3.org/2000/svg",
@@ -96,36 +92,21 @@ var Dir = function Dir() {
96
92
  }))
97
93
  });
98
94
  };
99
- var Desktop = function Desktop(props) {
100
- var desktopRef = useRef();
101
- var menuRef = useRef();
102
- var _props$sort = props.sort,
103
- sort = _props$sort === void 0 ? {} : _props$sort,
104
- _props$tipMaxWidth = props.tipMaxWidth,
105
- tipMaxWidth = _props$tipMaxWidth === void 0 ? 500 : _props$tipMaxWidth;
106
- var _useState = useState(0),
107
- _useState2 = _slicedToArray(_useState, 2),
108
- line = _useState2[0],
109
- setLine = _useState2[1]; // 每行个数
110
- var _useState3 = useState([]),
111
- _useState4 = _slicedToArray(_useState3, 2),
112
- data = _useState4[0],
113
- setData = _useState4[1]; // 数据源
114
- var _useState5 = useState('_'),
115
- _useState6 = _slicedToArray(_useState5, 2),
116
- dir = _useState6[0],
117
- setDir = _useState6[1]; // _ 显示列表页, key显示文件夹
118
- var _useState7 = useState(false),
119
- _useState8 = _slicedToArray(_useState7, 2),
120
- showInput = _useState8[0],
121
- setShowInput = _useState8[1]; // 显示文件夹名字输入框
122
- var _useState9 = useState(''),
123
- _useState10 = _slicedToArray(_useState9, 2),
124
- inputValue = _useState10[0],
125
- setInputValue = _useState10[1]; // 文件夹名字
126
- var sortJson = sort[dir] || {};
127
- var intl = useFormatMessage('Drawer', localeJson);
128
- var texts = {
95
+ const Desktop = props => {
96
+ const desktopRef = useRef();
97
+ const menuRef = useRef();
98
+ const {
99
+ sort = {},
100
+ tipMaxWidth = 500
101
+ } = props;
102
+ const [line, setLine] = useState(0); // 每行个数
103
+ const [data, setData] = useState([]); // 数据源
104
+ const [dir, setDir] = useState('_'); // _ 显示列表页, key显示文件夹
105
+ const [showInput, setShowInput] = useState(false); // 显示文件夹名字输入框
106
+ const [inputValue, setInputValue] = useState(''); // 文件夹名字
107
+ const sortJson = sort[dir] || {};
108
+ const intl = useFormatMessage('Drawer', localeJson);
109
+ const texts = {
129
110
  createDir: intl({
130
111
  id: 'createDir'
131
112
  }),
@@ -136,19 +117,19 @@ var Desktop = function Desktop(props) {
136
117
  id: 'outDir'
137
118
  })
138
119
  };
139
- React__default.useEffect(function () {
140
- document.addEventListener('resize', function () {
120
+ React__default.useEffect(() => {
121
+ document.addEventListener('resize', () => {
141
122
  clearTimeout(resizeTimeout);
142
- resizeTimeout = setTimeout(function () {
123
+ resizeTimeout = setTimeout(() => {
143
124
  setLine(getLine());
144
125
  }, 200);
145
126
  });
146
- window.addEventListener('mousedown', function (e) {
127
+ window.addEventListener('mousedown', e => {
147
128
  if (e.target.closest('.menu-list')) return;
148
129
  if (menuRef.current) menuRef.current.style.display = 'none';
149
130
  });
150
131
  }, []);
151
- React__default.useEffect(function () {
132
+ React__default.useEffect(() => {
152
133
  setLine(getLine());
153
134
  setData(props.data);
154
135
  }, [props.data]);
@@ -156,10 +137,10 @@ var Desktop = function Desktop(props) {
156
137
  * 计算每行个数
157
138
  * @return number
158
139
  */
159
- var getLine = function getLine() {
160
- var desktop = desktopRef.current;
140
+ const getLine = () => {
141
+ const desktop = desktopRef.current;
161
142
  if (desktop) {
162
- var rect = desktop.getBoundingClientRect();
143
+ const rect = desktop.getBoundingClientRect();
163
144
  return rect.width / (defaultMatrix.width + defaultMatrix.gapX) | 0;
164
145
  }
165
146
  return 1;
@@ -168,10 +149,10 @@ var Desktop = function Desktop(props) {
168
149
  * 点击事件
169
150
  * @param e 元素
170
151
  */
171
- var onClick = function onClick(e) {
152
+ const onClick = e => {
172
153
  if (dragLock) return;
173
- var key = e.currentTarget.getAttribute('data-key');
174
- var mapItem = getMapItem(key);
154
+ const key = e.currentTarget.getAttribute('data-key');
155
+ const mapItem = getMapItem(key);
175
156
  if (mapItem.disable) return false;
176
157
  if (mapItem.type !== 'dir') {
177
158
  props.onClick && props.onClick(mapItem);
@@ -184,11 +165,11 @@ var Desktop = function Desktop(props) {
184
165
  * 右键菜单
185
166
  * @param e 元素
186
167
  */
187
- var onContextMenu = function onContextMenu(e) {
168
+ const onContextMenu = e => {
188
169
  if (dir === '_') return;
189
170
  e.preventDefault();
190
171
  if (dragLock) return;
191
- var key = e.currentTarget.getAttribute('data-key');
172
+ const key = e.currentTarget.getAttribute('data-key');
192
173
  contextMenuData = getMapItem(key);
193
174
  setPoint(menuRef.current, e.pageX, e.pageY);
194
175
  menuRef.current.style.display = 'block';
@@ -197,20 +178,18 @@ var Desktop = function Desktop(props) {
197
178
  * 移出文件夹
198
179
  * @param e 元素
199
180
  */
200
- var outDir = function outDir(e) {
181
+ const outDir = e => {
201
182
  if (dir === '_') return;
202
- var sortItem = getSortRootItem(dirItem.key);
203
- sortItem.children = sortItem.children.filter(function (key) {
204
- return key !== contextMenuData.key;
205
- });
183
+ const sortItem = getSortRootItem(dirItem.key);
184
+ sortItem.children = sortItem.children.filter(key => key !== contextMenuData.key);
206
185
  onSort();
207
186
  if (sortItem.children.length > 0) {
208
- var dom = getItemByKey(contextMenuData.key);
187
+ const dom = getItemByKey(contextMenuData.key);
209
188
  if (dom) dom.style.display = 'none';
210
- var i = contextMenuData.index;
211
- var l = map.length - 1;
189
+ let i = contextMenuData.index;
190
+ const l = map.length - 1;
212
191
  for (; i < l; i++) {
213
- var item = map[i + 1];
192
+ const item = map[i + 1];
214
193
  setNewPoint(item, i);
215
194
  }
216
195
  map.pop();
@@ -225,7 +204,7 @@ var Desktop = function Desktop(props) {
225
204
  /**
226
205
  * 返回列表
227
206
  */
228
- var backList = function backList() {
207
+ const backList = () => {
229
208
  dirItem = null;
230
209
  setShowInput(false);
231
210
  setDir('_');
@@ -234,7 +213,7 @@ var Desktop = function Desktop(props) {
234
213
  * 文件夹dom
235
214
  * @param displayName
236
215
  */
237
- var createDir = function createDir(displayName) {
216
+ const createDir = displayName => {
238
217
  return jsxs(Fragment, {
239
218
  children: [jsx("div", Object.assign({
240
219
  className: 'item-dir-body'
@@ -256,10 +235,10 @@ var Desktop = function Desktop(props) {
256
235
  * @param type 文件夹 / 单个组件
257
236
  * @return ReactNode
258
237
  */
259
- var getItem = function getItem(item, index, type) {
238
+ const getItem = (item, index, type) => {
260
239
  map[index] = getItemData(item, index, type);
261
240
  item = map[index];
262
- var style = {
241
+ const style = {
263
242
  left: "".concat(map[index].point.x, "px"),
264
243
  top: "".concat(map[index].point.y, "px"),
265
244
  width: defaultMatrix.width,
@@ -302,9 +281,9 @@ var Desktop = function Desktop(props) {
302
281
  * @param index 下标
303
282
  * @param type 文件夹 / 单个组件
304
283
  */
305
- var getItemData = function getItemData(item, index, type) {
284
+ const getItemData = (item, index, type) => {
306
285
  return {
307
- index: index,
286
+ index,
308
287
  data: item,
309
288
  key: item.key,
310
289
  icon: item.icon,
@@ -320,11 +299,11 @@ var Desktop = function Desktop(props) {
320
299
  * 获取位置大小
321
300
  * @param index 下标
322
301
  */
323
- var getPoint = function getPoint(index) {
324
- var w = defaultMatrix.width + defaultMatrix.gapX;
325
- var h = defaultMatrix.height + defaultMatrix.gapY;
326
- var indexX = index % line; // X行
327
- var indexY = index / line | 0; // Y行
302
+ const getPoint = index => {
303
+ const w = defaultMatrix.width + defaultMatrix.gapX;
304
+ const h = defaultMatrix.height + defaultMatrix.gapY;
305
+ const indexX = index % line; // X行
306
+ const indexY = index / line | 0; // Y行
328
307
  return {
329
308
  x: indexX * w,
330
309
  y: indexY * h,
@@ -332,9 +311,9 @@ var Desktop = function Desktop(props) {
332
311
  height: defaultMatrix.height
333
312
  };
334
313
  };
335
- var getAppMap = function getAppMap() {
336
- var appmap = {};
337
- props.data.forEach(function (item) {
314
+ const getAppMap = () => {
315
+ const appmap = {};
316
+ props.data.forEach(item => {
338
317
  if (dir === '_') {
339
318
  appmap[item.key] = item;
340
319
  } else {
@@ -347,24 +326,26 @@ var Desktop = function Desktop(props) {
347
326
  * 渲染应用列表
348
327
  * @return ReactNode
349
328
  */
350
- var getList = React__default.useMemo(function () {
329
+ const getList = React__default.useMemo(() => {
351
330
  if (line === 0) return null;
352
331
  map = [];
353
332
  // 存在排序数据
354
333
  if (sortJson.length > 0) {
355
334
  //dataMap
356
- var appmap = getAppMap();
357
- var index = 0;
358
- var list1 = sortJson.map(function (sortItem) {
359
- var key = sortItem.key,
360
- type = sortItem.type;
335
+ const appmap = getAppMap();
336
+ let index = 0;
337
+ let list1 = sortJson.map(sortItem => {
338
+ const {
339
+ key,
340
+ type
341
+ } = sortItem;
361
342
  if (!appmap[key] && type !== 'dir') return;
362
- var item = Object.assign({}, appmap[key]);
343
+ const item = Object.assign({}, appmap[key]);
363
344
  delete appmap[key];
364
- var app;
345
+ let app;
365
346
  if (type === 'dir') {
366
- var isNull = true;
367
- sortItem.children.forEach(function (child) {
347
+ let isNull = true;
348
+ sortItem.children.forEach(child => {
368
349
  if (appmap[child]) {
369
350
  isNull = false;
370
351
  delete appmap[child];
@@ -378,30 +359,30 @@ var Desktop = function Desktop(props) {
378
359
  });
379
360
  //if (dir === '_') {
380
361
  // 是否存在排序列表之外的应用
381
- var newapp = Object.keys(appmap);
362
+ const newapp = Object.keys(appmap);
382
363
  if (newapp.length > 0) {
383
- var list2 = newapp.map(function (key) {
384
- var item = appmap[key];
364
+ const list2 = newapp.map(key => {
365
+ const item = appmap[key];
385
366
  return getItem(item, map.length);
386
367
  });
387
- list1 = [].concat(_toConsumableArray(list1), _toConsumableArray(list2));
368
+ list1 = [...list1, ...list2];
388
369
  }
389
370
  //}
390
371
  return list1;
391
372
  }
392
373
  // 文件夹内部渲染
393
374
  if (dir !== '_' && dirItem) {
394
- var _appmap = getAppMap();
395
- var _index = 0;
396
- return dirItem.children.map(function (key) {
397
- if (!_appmap[key]) return null; // 过滤已经不存在的应用
398
- var app = getItem(_appmap[key], _index);
399
- _index++;
375
+ const appmap = getAppMap();
376
+ let index = 0;
377
+ return dirItem.children.map(key => {
378
+ if (!appmap[key]) return null; // 过滤已经不存在的应用
379
+ const app = getItem(appmap[key], index);
380
+ index++;
400
381
  return app;
401
382
  });
402
383
  }
403
384
  // 默认渲染
404
- return props.data.map(function (item, index) {
385
+ return props.data.map((item, index) => {
405
386
  return getItem(item, index);
406
387
  });
407
388
  }, [data, line, dir]);
@@ -409,14 +390,14 @@ var Desktop = function Desktop(props) {
409
390
  * mouseDown
410
391
  * @param e 元素
411
392
  */
412
- var onMouseDown = function onMouseDown(e) {
393
+ const onMouseDown = e => {
413
394
  if (dragLock) return;
414
395
  //reset();
415
- var target = e.target.closest('.desktop-item');
396
+ const target = e.target.closest('.desktop-item');
416
397
  if (!target) return;
417
- var index = target.getAttribute('data-index');
398
+ const index = target.getAttribute('data-index');
418
399
  dragData = Object.assign(Object.assign({}, map[index]), {
419
- target: target,
400
+ target,
420
401
  start: {
421
402
  x: e.pageX,
422
403
  y: e.pageY
@@ -430,29 +411,29 @@ var Desktop = function Desktop(props) {
430
411
  * 拖拽目标
431
412
  * @param e {MouseEvent} 元素
432
413
  */
433
- var onMouseMove = function onMouseMove(e) {
414
+ const onMouseMove = e => {
434
415
  if (Math.abs(dragData.start.x - e.pageX) > 3) dragLock = true;
435
- var x = dragData.point.x + (e.pageX - dragData.start.x);
436
- var y = dragData.point.y + (e.pageY - dragData.start.y) + desktopRef.current.scrollTop;
416
+ const x = dragData.point.x + (e.pageX - dragData.start.x);
417
+ const y = dragData.point.y + (e.pageY - dragData.start.y) + desktopRef.current.scrollTop;
437
418
  setPoint(dragData.target, x, y);
438
419
  // 计算光标碰撞
439
420
  //const list = Object.keys(map);
440
- var dragRect = {
421
+ const dragRect = {
441
422
  // 矩阵
442
- x: x,
443
- y: y,
423
+ x,
424
+ y,
444
425
  w: dragData.point.x + dragData.point.width,
445
426
  h: dragData.point.y + dragData.point.height,
446
427
  width: dragData.point.width,
447
428
  height: dragData.point.height
448
429
  };
449
- var dragCentre = {
430
+ const dragCentre = {
450
431
  // 拖拽矩形中心点
451
432
  x: dragRect.x + dragRect.width / 2,
452
433
  y: dragRect.y + dragRect.height / 2
453
434
  };
454
- for (var i = 0, l = map.length; i < l; i++) {
455
- var item = map[i];
435
+ for (let i = 0, l = map.length; i < l; i++) {
436
+ const item = map[i];
456
437
  if (!item || String(item.key) === String(dragData.key)) continue;
457
438
  if (item.parent && dir !== item.parent) continue;
458
439
  /*
@@ -460,42 +441,42 @@ var Desktop = function Desktop(props) {
460
441
  * | |
461
442
  * |_____w,h
462
443
  */
463
- var rect = {
444
+ const rect = {
464
445
  // 矩阵
465
446
  x: item.point.x,
466
447
  y: item.point.y,
467
448
  w: item.point.x + item.point.width,
468
449
  h: item.point.y + item.point.height
469
450
  };
470
- var border = impactBorder;
451
+ let border = impactBorder;
471
452
  // 中心点矩阵碰撞检测
472
453
  if (checkPointRange(dragCentre, rect)) {
473
- var impactDom = getItemByKey(item.key);
454
+ const impactDom = getItemByKey(item.key);
474
455
  if (!impactDom) continue;
475
456
  reset('impact');
476
457
  impactDom.setAttribute('impact', 'true');
477
458
  dragData.impact = {
478
459
  data: item,
479
- rect: rect
460
+ rect
480
461
  };
481
462
  dragData.impact = {
482
463
  data: item,
483
- rect: rect
464
+ rect
484
465
  };
485
466
  if (dragData.data.type === 'dir' || dir !== '_') {
486
467
  border = 0.5;
487
468
  }
488
469
  // 计算碰撞位置,左,中,右
489
- var _dragCentre = {
470
+ const dragCentre = {
490
471
  // 拖拽矩形中心点
491
472
  x: dragRect.x + dragRect.width / 2,
492
473
  y: dragRect.y + dragRect.height / 2
493
474
  };
494
- var width = item.point.width;
495
- if (_dragCentre.x < rect.x + width * border) {
475
+ const width = item.point.width;
476
+ if (dragCentre.x < rect.x + width * border) {
496
477
  dragData.position = 'left';
497
478
  setPoint(impactDom, rect.x + 50);
498
- } else if (_dragCentre.x > rect.w - width * border) {
479
+ } else if (dragCentre.x > rect.w - width * border) {
499
480
  dragData.position = 'right';
500
481
  setPoint(impactDom, rect.x - 50);
501
482
  } else {
@@ -511,24 +492,24 @@ var Desktop = function Desktop(props) {
511
492
  * @param point {x: number, y: number}
512
493
  * @param rect {x: number, y: number, w: number, h: number}
513
494
  */
514
- var checkPointRange = function checkPointRange(point, rect) {
495
+ const checkPointRange = (point, rect) => {
515
496
  if (point.x > rect.x && point.y > rect.y && point.x < rect.w && point.y < rect.h) return point;
516
497
  };
517
498
  /**
518
499
  * 拖拽目标
519
500
  * @param e {MouseEvent} 元素
520
501
  */
521
- var onMouseUp = function onMouseUp(e) {
502
+ const onMouseUp = e => {
522
503
  window.removeEventListener('mousemove', onMouseMove);
523
504
  window.removeEventListener('mouseup', onMouseUp);
524
- setTimeout(function () {
505
+ setTimeout(() => {
525
506
  dragLock = false;
526
507
  //ckeckPoint();
527
508
  }, 100);
528
509
  if (dragData.impact) {
529
- var dragMapData = Object.assign({}, map[dragData.index]);
530
- var impact = dragData.impact.data;
531
- var impactDom = getItemByKey(impact.key);
510
+ const dragMapData = Object.assign({}, map[dragData.index]);
511
+ const impact = dragData.impact.data;
512
+ const impactDom = getItemByKey(impact.key);
532
513
  if (impact.index - dragData.index === -1 && dragData.position === 'right' ||
533
514
  // 相邻右侧碰撞
534
515
  impact.index - dragData.index === 1 && dragData.position === 'left' ||
@@ -539,10 +520,10 @@ var Desktop = function Desktop(props) {
539
520
  reset();
540
521
  return;
541
522
  }
542
- var index = impact.index;
543
- var t;
544
- var l = dragData.index;
545
- var i = index;
523
+ let index = impact.index;
524
+ let t;
525
+ let l = dragData.index;
526
+ let i = index;
546
527
  if (index > dragData.index) {
547
528
  // 碰撞目标在拖拽目标右侧
548
529
  t = 'R';
@@ -566,13 +547,13 @@ var Desktop = function Desktop(props) {
566
547
  }
567
548
  Object.assign({}, map[index]);
568
549
  // 顺延坐标
569
- var temp;
550
+ let temp;
570
551
  if (dragData.position === 'centre') {
571
552
  // 文件夹处理
572
553
  i = dragData.index;
573
554
  l = map.length - 1;
574
555
  for (; i < l; i++) {
575
- var item = map[i + 1];
556
+ const item = map[i + 1];
576
557
  setNewPoint(item, i);
577
558
  }
578
559
  map.pop();
@@ -580,14 +561,14 @@ var Desktop = function Desktop(props) {
580
561
  temp = Object.assign({}, map[l]); // 备份移动节点
581
562
  if (t === 'R') {
582
563
  for (; l < i; l++) {
583
- var _item = map[l + 1];
584
- setNewPoint(_item, l);
564
+ const item = map[l + 1];
565
+ setNewPoint(item, l);
585
566
  }
586
567
  }
587
568
  if (t === 'L') {
588
569
  for (; l > i; l--) {
589
- var _item2 = map[l - 1];
590
- setNewPoint(_item2, l);
570
+ const item = map[l - 1];
571
+ setNewPoint(item, l);
591
572
  }
592
573
  }
593
574
  setNewPoint(temp, i);
@@ -608,21 +589,21 @@ var Desktop = function Desktop(props) {
608
589
  * @param dragMapData 碰撞对象
609
590
  * @param t 方向
610
591
  */
611
- var newDir = function newDir(item, dragMapData, t) {
592
+ const newDir = (item, dragMapData, t) => {
612
593
  if (t === 'R') item.index--;
613
- var key = "dir_".concat(item.key).concat(Math.random() * 1000000 | 0);
594
+ const key = "dir_".concat(item.key).concat(Math.random() * 1000000 | 0);
614
595
  map[item.index] = Object.assign(Object.assign({}, item), {
615
- key: key,
596
+ key,
616
597
  point: getPoint(item.index),
617
598
  type: 'dir',
618
599
  displayName: texts.createDir,
619
600
  children: [item.key, dragMapData.key]
620
601
  });
621
- var dirDom = getItemByKey(item.key);
602
+ const dirDom = getItemByKey(item.key);
622
603
  dirDom === null || dirDom === void 0 ? void 0 : dirDom.setAttribute('data-key', key);
623
604
  dirDom === null || dirDom === void 0 ? void 0 : dirDom.classList.add('desktop-dir');
624
605
  ReactDOM.render(createDir(map[item.index].displayName || ''), dirDom);
625
- var dragDataDom = getItemByKey(dragData.key);
606
+ const dragDataDom = getItemByKey(dragData.key);
626
607
  dragDataDom === null || dragDataDom === void 0 ? void 0 : dragDataDom.setAttribute('in-dir', 'true');
627
608
  };
628
609
  /**
@@ -630,20 +611,20 @@ var Desktop = function Desktop(props) {
630
611
  * @param item {mapProps} 当前数据
631
612
  * @param dragMapData 碰撞对象
632
613
  */
633
- var addDir = function addDir(item, dragMapData) {
634
- var mapItem = getMapItem(item.key);
614
+ const addDir = (item, dragMapData) => {
615
+ const mapItem = getMapItem(item.key);
635
616
  if (!mapItem) return;
636
617
  mapItem.children.push(dragMapData.key);
637
- var dragDataDom = getItemByKey(dragData.key);
618
+ const dragDataDom = getItemByKey(dragData.key);
638
619
  dragDataDom === null || dragDataDom === void 0 ? void 0 : dragDataDom.setAttribute('in-dir', 'true');
639
620
  };
640
621
  /**
641
622
  * 获取数据
642
623
  * @param key 键值
643
624
  */
644
- var getMapItem = function getMapItem(key) {
625
+ const getMapItem = key => {
645
626
  if (!key) return null;
646
- for (var i = 0, l = map.length; i < l; i++) {
627
+ for (let i = 0, l = map.length; i < l; i++) {
647
628
  if (map[i].key === key) return map[i];
648
629
  }
649
630
  return null;
@@ -654,11 +635,11 @@ var Desktop = function Desktop(props) {
654
635
  * @param next 下一个节点索引
655
636
  * @param point 位置
656
637
  */
657
- var setNewPoint = function setNewPoint(item, next, point) {
638
+ const setNewPoint = (item, next, point) => {
658
639
  // item 当前节点,下一个节点索引
659
640
  if (!item) return;
660
641
  if (!point) point = getPoint(next);
661
- var dom = getItemByKey(item.key);
642
+ const dom = getItemByKey(item.key);
662
643
  if (!dom) return;
663
644
  setPoint(dom, point === null || point === void 0 ? void 0 : point.x, point === null || point === void 0 ? void 0 : point.y);
664
645
  // 重新创建索引
@@ -670,11 +651,11 @@ var Desktop = function Desktop(props) {
670
651
  /**
671
652
  * 复位
672
653
  */
673
- var reset = function reset(type) {
654
+ const reset = type => {
674
655
  var _a, _b, _c;
675
656
  switch (type) {
676
657
  case 'impact':
677
- var impactDom = document.querySelector('[impact="true"]');
658
+ const impactDom = document.querySelector('[impact="true"]');
678
659
  if (!impactDom) return;
679
660
  if (dragData && dragData.impact) {
680
661
  setPoint(impactDom, dragData.impact.rect.x, dragData.impact.rect.y);
@@ -703,17 +684,17 @@ var Desktop = function Desktop(props) {
703
684
  * @param x 左
704
685
  * @param y 上
705
686
  */
706
- var setPoint = function setPoint(dom, x, y) {
687
+ const setPoint = (dom, x, y) => {
707
688
  if (!dom) return;
708
689
  if (x !== undefined || x !== null) dom.style.left = "".concat(x, "px");
709
690
  if (y !== undefined || y !== null) dom.style.top = "".concat(y, "px");
710
691
  };
711
692
  /** 排序 */
712
- var onSort = function onSort() {
693
+ const onSort = () => {
713
694
  if (!props.onSort) return;
714
- var data = [];
715
- var index = 0;
716
- map.forEach(function (item) {
695
+ const data = [];
696
+ let index = 0;
697
+ map.forEach(item => {
717
698
  data[index] = {
718
699
  key: item.key,
719
700
  type: item.type
@@ -723,47 +704,47 @@ var Desktop = function Desktop(props) {
723
704
  if (item.parent !== undefined) data[index].parent = item.parent;
724
705
  index++;
725
706
  });
726
- var sortData = DeepClone(sort);
707
+ const sortData = DeepClone(sort);
727
708
  if (data.length > 0) sortData[dir] = data;
728
709
  props.onSort && props.onSort(sortData);
729
710
  };
730
711
  /**
731
712
  * 点击文件夹名字
732
713
  */
733
- var clickDirName = function clickDirName() {
714
+ const clickDirName = () => {
734
715
  setShowInput(true);
735
716
  setInputValue(dirItem.displayName || texts.createDir);
736
717
  };
737
718
  /**
738
719
  * 失去焦点设置文件夹名字
739
720
  */
740
- var saveTitle = function saveTitle() {
721
+ const saveTitle = () => {
741
722
  dirItem.displayName = inputValue || texts.createDir;
742
723
  setShowInput(false);
743
- var sortItem = getSortRootItem(dirItem.key);
724
+ const sortItem = getSortRootItem(dirItem.key);
744
725
  sortItem.displayName = inputValue || texts.createDir;
745
726
  onSort();
746
727
  };
747
728
  /**
748
729
  * 通过key查询排序对象所在节点
749
730
  */
750
- var getSortRootItem = function getSortRootItem(key) {
751
- var sortList = sort['_'] || [];
752
- for (var i = 0, l = sortList.length; i < l; i++) {
753
- var sortItem = sortList[i];
731
+ const getSortRootItem = key => {
732
+ const sortList = sort['_'] || [];
733
+ for (let i = 0, l = sortList.length; i < l; i++) {
734
+ const sortItem = sortList[i];
754
735
  if (sortItem.key === key) return sortItem;
755
736
  }
756
737
  };
757
738
  /**
758
739
  * 改变输入框
759
740
  */
760
- var changeInput = function changeInput(event) {
741
+ const changeInput = event => {
761
742
  setInputValue(event.target.value);
762
743
  };
763
744
  /**
764
745
  * 文件夹头部
765
746
  */
766
- var DirTitleMemo = useMemo(function () {
747
+ const DirTitleMemo = useMemo(() => {
767
748
  return dir !== '_' && jsx("div", Object.assign({
768
749
  className: "desktop-title"
769
750
  }, {
@@ -814,7 +795,7 @@ var Desktop = function Desktop(props) {
814
795
  /**
815
796
  * 拖拽内容
816
797
  */
817
- var DragMemo = useMemo(function () {
798
+ const DragMemo = useMemo(() => {
818
799
  return jsx("div", Object.assign({
819
800
  ref: desktopRef,
820
801
  className: 'desktop-box',
@@ -827,8 +808,8 @@ var Desktop = function Desktop(props) {
827
808
  * 处理class
828
809
  * @return {string}
829
810
  */
830
- var handClass = function handClass() {
831
- var str = "".concat($prefixCls, "-desktop");
811
+ const handClass = () => {
812
+ let str = "".concat($prefixCls, "-desktop");
832
813
  if (props.className) str += " ".concat(props.className);
833
814
  return str;
834
815
  };
@@ -853,7 +834,7 @@ var Desktop = function Desktop(props) {
853
834
  }))]
854
835
  }));
855
836
  };
856
- var getItemByKey = function getItemByKey(key) {
837
+ const getItemByKey = key => {
857
838
  return document.querySelector("[data-key=\"".concat(key, "\"]"));
858
839
  };
859
840