@logicflow/extension 2.2.0-alpha.7 → 2.2.1

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 (125) hide show
  1. package/README.md +16 -0
  2. package/package.json +10 -7
  3. package/.turbo/turbo-build.log +0 -38
  4. package/CHANGELOG.md +0 -1829
  5. package/__test__/bpmn-adapter.test.js +0 -227
  6. package/es/materials/curved-edge/__test__/curved-edge.test.d.ts +0 -1
  7. package/es/materials/curved-edge/__test__/curved-edge.test.js +0 -18
  8. package/jest.config.js +0 -198
  9. package/lib/materials/curved-edge/__test__/curved-edge.test.d.ts +0 -1
  10. package/lib/materials/curved-edge/__test__/curved-edge.test.js +0 -20
  11. package/rollup.config.js +0 -52
  12. package/src/NodeResize/BasicShape/Ellipse.tsx +0 -22
  13. package/src/NodeResize/BasicShape/Polygon.tsx +0 -24
  14. package/src/NodeResize/BasicShape/Rect.tsx +0 -44
  15. package/src/NodeResize/control/Control.tsx +0 -537
  16. package/src/NodeResize/control/ControlGroup.tsx +0 -76
  17. package/src/NodeResize/control/Util.ts +0 -206
  18. package/src/NodeResize/index.ts +0 -26
  19. package/src/NodeResize/node/DiamondResize.tsx +0 -149
  20. package/src/NodeResize/node/EllipseResize.tsx +0 -140
  21. package/src/NodeResize/node/HtmlResize.tsx +0 -125
  22. package/src/NodeResize/node/RectResize.tsx +0 -126
  23. package/src/NodeResize/node/index.ts +0 -4
  24. package/src/bpmn/constant.ts +0 -56
  25. package/src/bpmn/events/EndEvent.ts +0 -73
  26. package/src/bpmn/events/StartEvent.ts +0 -52
  27. package/src/bpmn/events/index.ts +0 -2
  28. package/src/bpmn/flow/SequenceFlow.ts +0 -25
  29. package/src/bpmn/flow/index.ts +0 -1
  30. package/src/bpmn/gateways/ExclusiveGateway.ts +0 -71
  31. package/src/bpmn/gateways/index.ts +0 -1
  32. package/src/bpmn/getBpmnId.ts +0 -31
  33. package/src/bpmn/index.ts +0 -60
  34. package/src/bpmn/tasks/ServiceTask.ts +0 -63
  35. package/src/bpmn/tasks/UserTask.ts +0 -64
  36. package/src/bpmn/tasks/index.ts +0 -2
  37. package/src/bpmn-adapter/bpmnIds.ts +0 -31
  38. package/src/bpmn-adapter/index.ts +0 -835
  39. package/src/bpmn-adapter/json2xml.ts +0 -127
  40. package/src/bpmn-adapter/xml2json.ts +0 -544
  41. package/src/bpmn-elements/README.md +0 -223
  42. package/src/bpmn-elements/__tests__/definition.test.js +0 -72
  43. package/src/bpmn-elements/index.d.ts +0 -26
  44. package/src/bpmn-elements/index.ts +0 -107
  45. package/src/bpmn-elements/presets/Event/EndEventFactory.ts +0 -114
  46. package/src/bpmn-elements/presets/Event/IntermediateCatchEvent.ts +0 -108
  47. package/src/bpmn-elements/presets/Event/IntermediateThrowEvent.ts +0 -109
  48. package/src/bpmn-elements/presets/Event/StartEventFactory.ts +0 -114
  49. package/src/bpmn-elements/presets/Event/boundaryEventFactory.ts +0 -117
  50. package/src/bpmn-elements/presets/Event/index.ts +0 -14
  51. package/src/bpmn-elements/presets/Flow/flow.d.ts +0 -6
  52. package/src/bpmn-elements/presets/Flow/index.ts +0 -8
  53. package/src/bpmn-elements/presets/Flow/manhattan.ts +0 -691
  54. package/src/bpmn-elements/presets/Flow/sequenceFlow.ts +0 -65
  55. package/src/bpmn-elements/presets/Gateway/gateway.ts +0 -107
  56. package/src/bpmn-elements/presets/Gateway/index.ts +0 -23
  57. package/src/bpmn-elements/presets/Pool/Lane.ts +0 -211
  58. package/src/bpmn-elements/presets/Pool/Pool.ts +0 -284
  59. package/src/bpmn-elements/presets/Pool/index.ts +0 -89
  60. package/src/bpmn-elements/presets/Task/index.ts +0 -122
  61. package/src/bpmn-elements/presets/Task/subProcess.ts +0 -189
  62. package/src/bpmn-elements/presets/Task/task.ts +0 -193
  63. package/src/bpmn-elements/presets/icons.ts +0 -155
  64. package/src/bpmn-elements/utils.ts +0 -52
  65. package/src/bpmn-elements-adapter/README.md +0 -293
  66. package/src/bpmn-elements-adapter/__tests__/adapter_in.test.js +0 -528
  67. package/src/bpmn-elements-adapter/__tests__/adapter_out.test.js +0 -569
  68. package/src/bpmn-elements-adapter/constant.ts +0 -76
  69. package/src/bpmn-elements-adapter/index.ts +0 -1134
  70. package/src/bpmn-elements-adapter/json2xml.ts +0 -105
  71. package/src/bpmn-elements-adapter/xml2json.ts +0 -542
  72. package/src/components/context-menu/index.ts +0 -253
  73. package/src/components/control/index.ts +0 -155
  74. package/src/components/dnd-panel/index.ts +0 -137
  75. package/src/components/highlight/index.ts +0 -227
  76. package/src/components/menu/index.ts +0 -748
  77. package/src/components/mini-map/index.ts +0 -686
  78. package/src/components/selection-select/index.ts +0 -387
  79. package/src/dynamic-group/index.ts +0 -774
  80. package/src/dynamic-group/model.ts +0 -580
  81. package/src/dynamic-group/node.ts +0 -288
  82. package/src/dynamic-group/utils.ts +0 -46
  83. package/src/index.less +0 -1
  84. package/src/index.ts +0 -47
  85. package/src/insert-node-in-polyline/edge.ts +0 -175
  86. package/src/insert-node-in-polyline/index.ts +0 -193
  87. package/src/materials/curved-edge/__test__/curved-edge.test.ts +0 -46
  88. package/src/materials/curved-edge/index.ts +0 -217
  89. package/src/materials/group/GroupNode.ts +0 -437
  90. package/src/materials/group/index.ts +0 -542
  91. package/src/materials/node-selection/index.ts +0 -380
  92. package/src/mindmap/fakerRoot.ts +0 -19
  93. package/src/mindmap/index.ts +0 -328
  94. package/src/mindmap/markContent.ts +0 -81
  95. package/src/mindmap/markContentOption.ts +0 -81
  96. package/src/mindmap/markEntity.ts +0 -82
  97. package/src/mindmap/markRoot.ts +0 -83
  98. package/src/mindmap/theme.ts +0 -11
  99. package/src/pool/LaneModel.ts +0 -226
  100. package/src/pool/LaneView.ts +0 -220
  101. package/src/pool/PoolModel.ts +0 -631
  102. package/src/pool/PoolView.ts +0 -75
  103. package/src/pool/constant.ts +0 -19
  104. package/src/pool/index.ts +0 -621
  105. package/src/pool/utils.ts +0 -46
  106. package/src/rect-label-node/RectLabelNodeView.ts +0 -33
  107. package/src/rect-label-node/index.ts +0 -15
  108. package/src/style/index.less +0 -381
  109. package/src/style/raw.ts +0 -328
  110. package/src/tools/auto-layout/index.ts +0 -282
  111. package/src/tools/flow-path/index.ts +0 -233
  112. package/src/tools/label/Label.tsx +0 -357
  113. package/src/tools/label/LabelModel.ts +0 -83
  114. package/src/tools/label/LabelOverlay.tsx +0 -162
  115. package/src/tools/label/algorithm.ts +0 -42
  116. package/src/tools/label/index.ts +0 -479
  117. package/src/tools/label/mediumEditor.ts +0 -121
  118. package/src/tools/label/utils.ts +0 -395
  119. package/src/tools/proximity-connect/index.ts +0 -435
  120. package/src/tools/snapshot/README.md +0 -145
  121. package/src/tools/snapshot/index.ts +0 -701
  122. package/src/tools/snapshot/utils.ts +0 -163
  123. package/src/turbo-adapter/index.ts +0 -212
  124. package/stats.html +0 -4842
  125. package/tsconfig.json +0 -18
package/src/style/raw.ts DELETED
@@ -1,328 +0,0 @@
1
- /* eslint-disable */
2
-
3
- /**
4
- * Auto generated file, do not modify it!
5
- */
6
-
7
- export const content = `@import url('medium-editor/dist/css/medium-editor.min.css');
8
- @import url('medium-editor/dist/css/themes/beagle.min.css');
9
- @import url('vanilla-picker/dist/vanilla-picker.csp.css');
10
- /* label */
11
- .lf-label-overlay {
12
- width: 0;
13
- height: 0;
14
- overflow: visible;
15
- }
16
- .lf-label-overlay .lf-label-editor {
17
- padding: 4px;
18
- background: #fff;
19
- border-radius: 5px;
20
- }
21
- .lf-label-overlay .lf-label-editor-container {
22
- position: absolute;
23
- display: flex;
24
- align-items: center;
25
- justify-content: center;
26
- overflow: visible;
27
- text-align: center;
28
- }
29
- .lf-label-overlay .lf-label-editor-container p {
30
- margin: 0;
31
- }
32
- .lf-label-overlay .lf-label-editor-dragging {
33
- cursor: move;
34
- }
35
- .lf-label-overlay .lf-label-editor-editing {
36
- outline: 2px solid #275dc5;
37
- cursor: text;
38
- }
39
- .lf-label-overlay .lf-label-editor-hover {
40
- outline: 2px dashed #acacac;
41
- }
42
- .lf-label-overlay .lf-label-editor-clip {
43
- width: 100px;
44
- /* 根据需要调整宽度 */
45
- overflow: hidden;
46
- white-space: nowrap;
47
- text-overflow: clip;
48
- }
49
- .lf-label-overlay .lf-label-editor-ellipsis {
50
- width: 100px;
51
- /* 根据需要调整宽度 */
52
- overflow: hidden;
53
- white-space: nowrap;
54
- text-overflow: ellipsis;
55
- }
56
- .lf-label-overlay .lf-label-editor-wrap {
57
- white-space: normal;
58
- overflow-wrap: break-word;
59
- /* 允许单词内换行 */
60
- }
61
- .lf-label-overlay .lf-label-editor-nowrap {
62
- overflow: visible;
63
- white-space: nowrap;
64
- }
65
- .lf-control {
66
- position: absolute;
67
- top: 0;
68
- right: 10px;
69
- display: flex;
70
- flex-wrap: nowrap;
71
- max-width: none;
72
- margin: 5px;
73
- padding: 4px 6px;
74
- overflow: auto hidden;
75
- white-space: nowrap;
76
- background: rgba(255, 255, 255, 0.8);
77
- border-radius: 8px;
78
- box-shadow: 0 0 8px rgba(217, 217, 217, 0.7);
79
- transition: all 3s ease;
80
- }
81
- .lf-control-dark {
82
- color: #fff;
83
- background: #33353a;
84
- }
85
- .lf-control-item {
86
- display: flex;
87
- flex: 0 0 auto;
88
- /* 防止被压缩,支持横向滚动 */
89
- flex-direction: column;
90
- align-items: center;
91
- justify-content: center;
92
- margin: 0 4px;
93
- padding: 6px;
94
- border-radius: 8px;
95
- cursor: pointer;
96
- transition: all 0.3s ease-in-out;
97
- }
98
- .lf-control-item:hover {
99
- background: #efefef;
100
- }
101
- .lf-control-item-default,
102
- .lf-control-item-colorful {
103
- color: #474747;
104
- }
105
- .lf-control-item-default:hover,
106
- .lf-control-item-colorful:hover {
107
- background: #dadfea48;
108
- }
109
- .lf-control-item-dark:hover {
110
- background: #dadfea48;
111
- }
112
- .lf-control-item.disabled {
113
- filter: opacity(0.5);
114
- /* cursor: not-allowed; */
115
- pointer-events: none;
116
- }
117
- .lf-control-item.disabled:hover {
118
- background: #fff;
119
- }
120
- .lf-control-item.disabled i {
121
- pointer-events: none;
122
- }
123
- .lf-control-item i {
124
- display: inline-block;
125
- width: 20px;
126
- height: 20px;
127
- vertical-align: middle;
128
- background-size: cover;
129
- }
130
- .lf-control-text {
131
- margin-top: 5px;
132
- font-size: 12px;
133
- }
134
- .lf-control-zoomOut {
135
- background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSJub25lIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNS4yNDIxODc1IiBoZWlnaHQ9IjE1LjEyNTk3NjU2MjUiIHZpZXdCb3g9IjAgMCAxNS4yNDIxODc1IDE1LjEyNTk3NjU2MjUiPjxnPjxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjk2NzE2NDg3NDA3Njg0MywwLjcxNzM0NjYwODYzODc2MzQsLTAuNzI3ODkxMzg1NTU1MjY3MywwLjY4NTY5MjQ4OTE0NzE4NjMsMTIuNTQ0NTExOTAxMTIwMTMxLC01LjAwNTkyMjcxNzE2NTk1OSkiPjxwYXRoIGQ9Ik0xMi4yODY0OTkwMjM0Mzc1LDEyLjYxNDc0NjA5Mzc1TDE1LjUwNjQ5OTAyMzQzNzUsMTIuNjE0NzQ2MDkzNzVMMTUuNTA2NDk5MDIzNDM3NSwxMi42MTQ2NDYxMDM3NVExNS41NTU3MzQ2MjM0Mzc1LDEyLjYxNDY0NjA3Mzc1LDE1LjYwNDAyNDYyMzQzNzUsMTIuNjA1MDQwNjQzNzVRMTUuNjUyMzE0MjIzNDM3NSwxMi41OTU0MzUyMDM3NSwxNS42OTc4MDIzMjM0Mzc1LDEyLjU3NjU5MzQ1Mzc1UTE1Ljc0MzI5MDQyMzQzNzUsMTIuNTU3NzUxNzEzNzUsMTUuNzg0MjI4MzIzNDM3NSwxMi41MzAzOTc3NDM3NVExNS44MjUxNjY3MjM0Mzc1LDEyLjUwMzA0Mzc3Mzc1LDE1Ljg1OTk4MTUyMzQzNzUsMTIuNDY4MjI4NzUzNzVRMTUuODk0Nzk2MzIzNDM3NSwxMi40MzM0MTM3NDM3NSwxNS45MjIxNTA0MjM0Mzc1LDEyLjM5MjQ3NTYzMzc1UTE1Ljk0OTUwNDQyMzQzNzUsMTIuMzUxNTM3NTIzNzUsMTUuOTY4MzQ2MTIzNDM3NSwxMi4zMDYwNDk1MjM3NVExNS45ODcxODc4MjM0Mzc1LDEyLjI2MDU2MTU0Mzc1LDE1Ljk5Njc5MzIyMzQzNzUsMTIuMjEyMjcxNzQyNzVRMTYuMDA2Mzk4OTIzNDM3NSwxMi4xNjM5ODE5NDc3NSwxNi4wMDYzOTkxMjM0Mzc1LDEyLjExNDc0NjA5Mzc1UTE2LjAwNjM5ODkyMzQzNzUsMTIuMDY1NTEwMjM5NzUsMTUuOTk2NzkzMjIzNDM3NSwxMi4wMTcyMjA0NDQ3NVExNS45ODcxODc4MjM0Mzc1LDExLjk2ODkzMDY0Mzc1LDE1Ljk2ODM0NjEyMzQzNzUsMTEuOTIzNDQyNjYzNzVRMTUuOTQ5NTA0NDIzNDM3NSwxMS44Nzc5NTQ2NjM3NSwxNS45MjIxNTA2MjM0Mzc1LDExLjgzNzAxNjU1Mzc1UTE1Ljg5NDc5NjMyMzQzNzUsMTEuNzk2MDc4NDQzNzUsMTUuODU5OTgxNTIzNDM3NSwxMS43NjEyNjM0MzM3NVExNS44MjUxNjY3MjM0Mzc1LDExLjcyNjQ0ODQxMzc1LDE1Ljc4NDIyODUyMzQzNzUsMTEuNjk5MDk0NDczNzVRMTUuNzQzMjkwNDIzNDM3NSwxMS42NzE3NDA1MDM3NSwxNS42OTc4MDIzMjM0Mzc1LDExLjY1Mjg5ODc1Mzc1UTE1LjY1MjMxNDIyMzQzNzUsMTEuNjM0MDU2OTgzNzUsMTUuNjA0MDI0NjIzNDM3NSwxMS42MjQ0NTE1NDM3NVExNS41NTU3MzQ2MjM0Mzc1LDExLjYxNDg0NjExMzc1LDE1LjUwNjQ5OTAyMzQzNzUsMTEuNjE0ODQ2MDgzNzVMMTUuNTA2NDk5MDIzNDM3NSwxMS42MTQ3NDYwOTM3NUwxMi4yODY0OTkwMjM0Mzc1LDExLjYxNDc0NjA5Mzc1TDEyLjI4NjQ5OTAyMzQzNzUsMTEuNjE0ODQ2MDgzNzVRMTIuMjM3MjYzMTY5NDM3NSwxMS42MTQ4NDYxMTM3NSwxMi4xODg5NzMzNzQ0Mzc1LDExLjYyNDQ1MTU0Mzc1UTEyLjE0MDY4MzU3MzQzNzUsMTEuNjM0MDU2OTgzNzUsMTIuMDk1MTk1NTkzNDM3NSwxMS42NTI4OTg3MzM3NVExMi4wNDk3MDc1OTM0Mzc1LDExLjY3MTc0MDQ3Mzc1LDEyLjAwODc2OTQ4MzQzNzUsMTEuNjk5MDk0NDQzNzVRMTEuOTY3ODMxMzczNDM3NSwxMS43MjY0NDg0MTM3NSwxMS45MzMwMTYzNjM0Mzc1LDExLjc2MTI2MzQzMzc1UTExLjg5ODIwMTM0MzQzNzUsMTEuNzk2MDc4NDQzNzUsMTEuODcwODQ3NDAzNDM3NSwxMS44MzcwMTY1NTM3NVExMS44NDM0OTM0MzM0Mzc1LDExLjg3Nzk1NDY2Mzc1LDExLjgyNDY1MTY4MzQzNzUsMTEuOTIzNDQyNjYzNzVRMTEuODA1ODA5OTEzNDM3NSwxMS45Njg5MzA2NDM3NSwxMS43OTYyMDQ0NzM0Mzc1LDEyLjAxNzIyMDQ0NDc1UTExLjc4NjU5OTA0MzQzNzUsMTIuMDY1NTEwMjM5NzUsMTEuNzg2NTk5MDEzNDM3NSwxMi4xMTQ3NDYwOTM3NVExMS43ODY1OTkwNDM0Mzc1LDEyLjE2Mzk4MTk0Nzc1LDExLjc5NjIwNDQ3MzQzNzUsMTIuMjEyMjcxNzQyNzVRMTEuODA1ODA5OTEzNDM3NSwxMi4yNjA1NjE1NDM3NSwxMS44MjQ2NTE2NjM0Mzc1LDEyLjMwNjA0OTUyMzc1UTExLjg0MzQ5MzQwMzQzNzUsMTIuMzUxNTM3NTIzNzUsMTEuODcwODQ3MzczNDM3NSwxMi4zOTI0NzU2MzM3NVExMS44OTgyMDEzNDM0Mzc1LDEyLjQzMzQxMzc0Mzc1LDExLjkzMzAxNjM2MzQzNzUsMTIuNDY4MjI4NzUzNzVRMTEuOTY3ODMxMzczNDM3NSwxMi41MDMwNDM3NzM3NSwxMi4wMDg3Njk0ODM0Mzc1LDEyLjUzMDM5NzcxMzc1UTEyLjA0OTcwNzU5MzQzNzUsMTIuNTU3NzUxNjgzNzUsMTIuMDk1MTk1NTkzNDM3NSwxMi41NzY1OTM0MzM3NVExMi4xNDA2ODM1NzM0Mzc1LDEyLjU5NTQzNTIwMzc1LDEyLjE4ODk3MzM3NDQzNzUsMTIuNjA1MDQwNjQzNzVRMTIuMjM3MjYzMTY5NDM3NSwxMi42MTQ2NDYwNzM3NSwxMi4yODY0OTkwMjM0Mzc1LDEyLjYxNDY0NjEwMzc1TDEyLjI4NjQ5OTAyMzQzNzUsMTIuNjE0NzQ2MDkzNzVaIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiM0NzQ3NDciIGZpbGwtb3BhY2l0eT0iMSIvPjwvZz48Zz48ZWxsaXBzZSBjeD0iNy4xOTI2MzM2Mjg4NDUyMTUiIGN5PSI3LjA5MTIwNjA3Mzc2MDk4NiIgcng9IjYuNjkyNjMzNjI4ODQ1MjE1IiByeT0iNi41OTEyMDYwNzM3NjA5ODYiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlLW9wYWNpdHk9IjEiIHN0cm9rZT0iIzQ3NDc0NyIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PC9nPjxnPjxwYXRoIGQ9Ik00Ljc4MTEwMjY1NzMxODExNSw3Ljc1NTk5NjcwNDEwMTU2MjVMOS45MTY5MDUzNTczMTgxMTUsNy43NTU5OTY3MDQxMDE1NjI1TDkuOTE2OTA1MzU3MzE4MTE1LDcuNzU1ODk2NzE0MTAxNTYzUTkuOTY2MTQxMjU3MzE4MTE2LDcuNzU1ODk2Njg0MTAxNTYzLDEwLjAxNDQzMDU1NzMxODExNCw3Ljc0NjI5MTI1NDEwMTU2MlExMC4wNjI3MjAyNTczMTgxMTYsNy43MzY2ODU4MTQxMDE1NjMsMTAuMTA4MjA4MTU3MzE4MTE1LDcuNzE3ODQ0MDY0MTAxNTYzUTEwLjE1MzY5NjU1NzMxODExNSw3LjY5OTAwMjMyNDEwMTU2MywxMC4xOTQ2MzQ0NTczMTgxMTYsNy42NzE2NDgzNTQxMDE1NjI1UTEwLjIzNTU3MjM1NzMxODExNiw3LjY0NDI5NDM4NDEwMTU2MjUsMTAuMjcwMzg3NjU3MzE4MTE0LDcuNjA5NDc5MzY0MTAxNTYzUTEwLjMwNTIwMjQ1NzMxODExNSw3LjU3NDY2NDM1NDEwMTU2MywxMC4zMzI1NTYyNTczMTgxMTYsNy41MzM3MjYyNDQxMDE1NjNRMTAuMzU5OTEwNDU3MzE4MTE1LDcuNDkyNzg4MTM0MTAxNTYzLDEwLjM3ODc1MjI1NzMxODExNiw3LjQ0NzMwMDEzNDEwMTU2MlExMC4zOTc1OTM5NTczMTgxMTUsNy40MDE4MTIxNTQxMDE1NjIsMTAuNDA3MTk5MzU3MzE4MTE1LDcuMzUzNTIyMzUzMTAxNTYyUTEwLjQxNjgwNDc1NzMxODExNSw3LjMwNTIzMjU1ODEwMTU2MjUsMTAuNDE2ODA1MjU3MzE4MTE1LDcuMjU1OTk2NzA0MTAxNTYyNVExMC40MTY4MDQ3NTczMTgxMTUsNy4yMDY3NjA4NTAxMDE1NjI1LDEwLjQwNzE5OTM1NzMxODExNSw3LjE1ODQ3MTA1NTEwMTU2M1ExMC4zOTc1OTM5NTczMTgxMTUsNy4xMTAxODEyNTQxMDE1NjMsMTAuMzc4NzUyMjU3MzE4MTE2LDcuMDY0NjkzMjc0MTAxNTYzUTEwLjM1OTkxMDQ1NzMxODExNSw3LjAxOTIwNTI3NDEwMTU2MiwxMC4zMzI1NTYyNTczMTgxMTYsNi45NzgyNjcxNjQxMDE1NjJRMTAuMzA1MjAxOTU3MzE4MTE1LDYuOTM3MzI5MDU0MTAxNTYyLDEwLjI3MDM4NzE1NzMxODExNSw2LjkwMjUxNDA0NDEwMTU2MlExMC4yMzU1NzIzNTczMTgxMTYsNi44Njc2OTkwMjQxMDE1NjI1LDEwLjE5NDYzMzk1NzMxODExNCw2Ljg0MDM0NTA4NDEwMTU2MlExMC4xNTM2OTYwNTczMTgxMTUsNi44MTI5OTExMTQxMDE1NjIsMTAuMTA4MjA4MTU3MzE4MTE1LDYuNzk0MTQ5MzY0MTAxNTYyUTEwLjA2MjcyMDI1NzMxODExNiw2Ljc3NTMwNzU5NDEwMTU2MiwxMC4wMTQ0MzA1NTczMTgxMTQsNi43NjU3MDIxNTQxMDE1NjNROS45NjYxNDEyNTczMTgxMTYsNi43NTYwOTY3MjQxMDE1NjIsOS45MTY5MDUzNTczMTgxMTUsNi43NTYwOTY2OTQxMDE1NjJMOS45MTY5MDUzNTczMTgxMTUsNi43NTU5OTY3MDQxMDE1NjI1TDQuNzgxMTAyNjU3MzE4MTE1LDYuNzU1OTk2NzA0MTAxNTYyNUw0Ljc4MTEwMjY1NzMxODExNSw2Ljc1NjA5NjY5NDEwMTU2MlE0LjczMTg2NjgwMzMxODExNSw2Ljc1NjA5NjcyNDEwMTU2Miw0LjY4MzU3NzAwODMxODExNiw2Ljc2NTcwMjE1NDEwMTU2M1E0LjYzNTI4NzIwNzMxODExNTUsNi43NzUzMDc1OTQxMDE1NjIsNC41ODk3OTkyMjczMTgxMTYsNi43OTQxNDkzNDQxMDE1NjJRNC41NDQzMTEyMjczMTgxMTUsNi44MTI5OTEwODQxMDE1NjIsNC41MDMzNzMxMTczMTgxMTUsNi44NDAzNDUwNTQxMDE1NjI1UTQuNDYyNDM1MDA3MzE4MTE1LDYuODY3Njk5MDI0MTAxNTYyNSw0LjQyNzYxOTk5NzMxODExNSw2LjkwMjUxNDA0NDEwMTU2MlE0LjM5MjgwNDk3NzMxODExNSw2LjkzNzMyOTA1NDEwMTU2Miw0LjM2NTQ1MTAzNzMxODExNSw2Ljk3ODI2NzE2NDEwMTU2MlE0LjMzODA5NzA2NzMxODExNSw3LjAxOTIwNTI3NDEwMTU2Miw0LjMxOTI1NTMxNzMxODExNSw3LjA2NDY5MzI3NDEwMTU2M1E0LjMwMDQxMzU0NzMxODExNSw3LjExMDE4MTI1NDEwMTU2Myw0LjI5MDgwODEwNzMxODExNTUsNy4xNTg0NzEwNTUxMDE1NjNRNC4yODEyMDI2NzczMTgxMTUsNy4yMDY3NjA4NTAxMDE1NjI1LDQuMjgxMjAyNjQ3MzE4MTE1LDcuMjU1OTk2NzA0MTAxNTYyNVE0LjI4MTIwMjY3NzMxODExNSw3LjMwNTIzMjU1ODEwMTU2MjUsNC4yOTA4MDgxMDczMTgxMTU1LDcuMzUzNTIyMzUzMTAxNTYyUTQuMzAwNDEzNTQ3MzE4MTE1LDcuNDAxODEyMTU0MTAxNTYyLDQuMzE5MjU1Mjk3MzE4MTE1LDcuNDQ3MzAwMTM0MTAxNTYyUTQuMzM4MDk3MDM3MzE4MTE1LDcuNDkyNzg4MTM0MTAxNTYzLDQuMzY1NDUxMDA3MzE4MTE1LDcuNTMzNzI2MjQ0MTAxNTYzUTQuMzkyODA0OTc3MzE4MTE1LDcuNTc0NjY0MzU0MTAxNTYzLDQuNDI3NjE5OTk3MzE4MTE1LDcuNjA5NDc5MzY0MTAxNTYzUTQuNDYyNDM1MDA3MzE4MTE1LDcuNjQ0Mjk0Mzg0MTAxNTYyNSw0LjUwMzM3MzExNzMxODExNSw3LjY3MTY0ODMyNDEwMTU2M1E0LjU0NDMxMTIyNzMxODExNSw3LjY5OTAwMjI5NDEwMTU2Myw0LjU4OTc5OTIyNzMxODExNiw3LjcxNzg0NDA0NDEwMTU2M1E0LjYzNTI4NzIwNzMxODExNTUsNy43MzY2ODU4MTQxMDE1NjMsNC42ODM1NzcwMDgzMTgxMTYsNy43NDYyOTEyNTQxMDE1NjJRNC43MzE4NjY4MDMzMTgxMTUsNy43NTU4OTY2ODQxMDE1NjMsNC43ODExMDI2NTczMTgxMTUsNy43NTU4OTY3MTQxMDE1NjNMNC43ODExMDI2NTczMTgxMTUsNy43NTU5OTY3MDQxMDE1NjI1WiIgZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSIjNDc0NzQ3IiBmaWxsLW9wYWNpdHk9IjEiLz48L2c+PC9nPjwvc3ZnPg==');
136
- }
137
- .lf-control-zoomIn {
138
- background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSJub25lIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNS4wMzg0NTIxNDg0Mzc1IiBoZWlnaHQ9IjE1LjQwMDg3ODkwNjI1IiB2aWV3Qm94PSIwIDAgMTUuMDM4NDUyMTQ4NDM3NSAxNS40MDA4Nzg5MDYyNSI+PGc+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42OTY3MTYzNjgxOTgzOTQ4LDAuNzE3MzQ2NjY4MjQzNDA4MiwtMC43Mjc4OTEzODU1NTUyNjczLDAuNjg1NjkyNDg5MTQ3MTg2MywxMi44MzY2ODAxNDgwNTE1MjgsLTQuODMxMDk0MzExMDg0NTk4KSI+PHBhdGggZD0iTTEyLjIyOTEyNTk3NjU2MjUsMTMuMDQwMDM5MDYyNUwxNS4yMzkxMjU5NzY1NjI1LDEzLjA0MDAzOTA2MjVMMTUuMjM5MTI1OTc2NTYyNSwxMy4wMzk5MzkwNzI1UTE1LjI4ODM2MTU3NjU2MjUwMSwxMy4wMzk5MzkwNDI1LDE1LjMzNjY1MTI3NjU2MjQ5OSwxMy4wMzAzMzM2MTI1UTE1LjM4NDk0MTA3NjU2MjUsMTMuMDIwNzI4MTcyNSwxNS40MzA0MjkxNzY1NjI1LDEzLjAwMTg4NjQyMjVRMTUuNDc1OTE3Mzc2NTYyNSwxMi45ODMwNDQ2ODI1LDE1LjUxNjg1NTI3NjU2MjUsMTIuOTU1NjkwNzEyNVExNS41NTc3OTM1NzY1NjI1LDEyLjkyODMzNjc0MjUsMTUuNTkyNjA4NDc2NTYyNSwxMi44OTM1MjE3MjI1UTE1LjYyNzQyMzI3NjU2MjUsMTIuODU4NzA2NzEyNSwxNS42NTQ3NzcyNzY1NjI1LDEyLjgxNzc2ODYwMjVRMTUuNjgyMTMxMjc2NTYyNTAxLDEyLjc3NjgzMDQ5MjUsMTUuNzAwOTczMDc2NTYyNSwxMi43MzEzNDI0OTI1UTE1LjcxOTgxNDc3NjU2MjUwMSwxMi42ODU4NTQ1MTI1LDE1LjcyOTQyMDM3NjU2MjUsMTIuNjM3NTY0NzExNVExNS43MzkwMjU4NzY1NjI1LDEyLjU4OTI3NDkxNjUsMTUuNzM5MDI2MDc2NTYyNSwxMi41NDAwMzkwNjI1UTE1LjczOTAyNTg3NjU2MjUsMTIuNDkwODAzMjA4NSwxNS43Mjk0MjAxNzY1NjI0OTksMTIuNDQyNTEzNDEzNVExNS43MTk4MTQ3NzY1NjI1MDEsMTIuMzk0MjIzNjEyNSwxNS43MDA5NzMwNzY1NjI1LDEyLjM0ODczNTYzMjVRMTUuNjgyMTMxMjc2NTYyNTAxLDEyLjMwMzI0NzYzMjUsMTUuNjU0Nzc3NTc2NTYyNSwxMi4yNjIzMDk1MjI1UTE1LjYyNzQyMzI3NjU2MjUsMTIuMjIxMzcxNDEyNSwxNS41OTI2MDg0NzY1NjI1LDEyLjE4NjU1NjQwMjVRMTUuNTU3NzkzNTc2NTYyNSwxMi4xNTE3NDEzODI1LDE1LjUxNjg1NTI3NjU2MjUsMTIuMTI0Mzg3NDQyNVExNS40NzU5MTczNzY1NjI1LDEyLjA5NzAzMzQ3MjUsMTUuNDMwNDI5MTc2NTYyNSwxMi4wNzgxOTE3MjI1UTE1LjM4NDk0MTA3NjU2MjUsMTIuMDU5MzQ5OTUyNSwxNS4zMzY2NTE1NzY1NjI1LDEyLjA0OTc0NDUxMjVRMTUuMjg4MzYxNTc2NTYyNTAxLDEyLjA0MDEzOTA4MjUsMTUuMjM5MTI1OTc2NTYyNSwxMi4wNDAxMzkwNTI1TDE1LjIzOTEyNTk3NjU2MjUsMTIuMDQwMDM5MDYyNUwxMi4yMjkxMjU5NzY1NjI1LDEyLjA0MDAzOTA2MjVMMTIuMjI5MTI1OTc2NTYyNSwxMi4wNDAxMzkwNTI1UTEyLjE3OTg5MDEyMjU2MjUsMTIuMDQwMTM5MDgyNSwxMi4xMzE2MDAzMjc1NjI1LDEyLjA0OTc0NDUxMjVRMTIuMDgzMzEwNTI2NTYyNSwxMi4wNTkzNDk5NTI1LDEyLjAzNzgyMjU0NjU2MjUsMTIuMDc4MTkxNzAyNVExMS45OTIzMzQ1NDY1NjI1LDEyLjA5NzAzMzQ0MjUsMTEuOTUxMzk2NDM2NTYyNSwxMi4xMjQzODc0MTI1UTExLjkxMDQ1ODMyNjU2MjUsMTIuMTUxNzQxMzgyNSwxMS44NzU2NDMzMTY1NjI1LDEyLjE4NjU1NjQwMjVRMTEuODQwODI4Mjk2NTYyNSwxMi4yMjEzNzE0MTI1LDExLjgxMzQ3NDM1NjU2MjUsMTIuMjYyMzA5NTIyNVExMS43ODYxMjAzODY1NjI1LDEyLjMwMzI0NzYzMjUsMTEuNzY3Mjc4NjM2NTYyNSwxMi4zNDg3MzU2MzI1UTExLjc0ODQzNjg2NjU2MjUsMTIuMzk0MjIzNjEyNSwxMS43Mzg4MzE0MjY1NjI1LDEyLjQ0MjUxMzQxMzVRMTEuNzI5MjI1OTk2NTYyNSwxMi40OTA4MDMyMDg1LDExLjcyOTIyNTk2NjU2MjUsMTIuNTQwMDM5MDYyNVExMS43MjkyMjU5OTY1NjI1LDEyLjU4OTI3NDkxNjUsMTEuNzM4ODMxNDI2NTYyNSwxMi42Mzc1NjQ3MTE1UTExLjc0ODQzNjg2NjU2MjUsMTIuNjg1ODU0NTEyNSwxMS43NjcyNzg2MTY1NjI1LDEyLjczMTM0MjQ5MjVRMTEuNzg2MTIwMzU2NTYyNSwxMi43NzY4MzA0OTI1LDExLjgxMzQ3NDMyNjU2MjUsMTIuODE3NzY4NjAyNVExMS44NDA4MjgyOTY1NjI1LDEyLjg1ODcwNjcxMjUsMTEuODc1NjQzMzE2NTYyNSwxMi44OTM1MjE3MjI1UTExLjkxMDQ1ODMyNjU2MjUsMTIuOTI4MzM2NzQyNSwxMS45NTEzOTY0MzY1NjI1LDEyLjk1NTY5MDY4MjVRMTEuOTkyMzM0NTQ2NTYyNSwxMi45ODMwNDQ2NTI1LDEyLjAzNzgyMjU0NjU2MjUsMTMuMDAxODg2NDAyNVExMi4wODMzMTA1MjY1NjI1LDEzLjAyMDcyODE3MjUsMTIuMTMxNjAwMzI3NTYyNSwxMy4wMzAzMzM2MTI1UTEyLjE3OTg5MDEyMjU2MjUsMTMuMDM5OTM5MDQyNSwxMi4yMjkxMjU5NzY1NjI1LDEzLjAzOTkzOTA3MjVMMTIuMjI5MTI1OTc2NTYyNSwxMy4wNDAwMzkwNjI1WiIgZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSIjNDc0NzQ3IiBmaWxsLW9wYWNpdHk9IjEiLz48L2c+PGc+PGVsbGlwc2UgY3g9IjcuMjQwNzQxMjUyODk5MTciIGN5PSI3LjIyMDAwMDI2NzAyODgwOSIgcng9IjYuNzQwNzQxMjUyODk5MTciIHJ5PSI2LjcyMDAwMDI2NzAyODgwOSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2Utb3BhY2l0eT0iMSIgc3Ryb2tlPSIjNDc0NzQ3IiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjEiLz48L2c+PGc+PHBhdGggZD0iTTYuNzQwODQxMTc1NzQxNTc3LDMuNzAwMDAwMjg2MTAyMjk1UTYuNzQwODQxMTc1NzQxNTc3LDMuNjUwNzY0NDMyMTAyMjk1LDYuNzUwNDQ2NTc1NzQxNTc3LDMuNjAyNDc0NjM3MTAyMjk1UTYuNzYwMDUxNzc1NzQxNTc3LDMuNTU0MTg0ODM2MTAyMjk0Nyw2Ljc3ODg5MzQ3NTc0MTU3OCwzLjUwODY5Njg1NjEwMjI5NVE2Ljc5NzczNTE3NTc0MTU3NywzLjQ2MzIwODg1NjEwMjI5NSw2LjgyNTA4OTE3NTc0MTU3NywzLjQyMjI3MDc0NjEwMjI5NDhRNi44NTI0NDMxNzU3NDE1NzcsMy4zODEzMzI2MzYxMDIyOTUsNi44ODcyNTgyNzU3NDE1NzcsMy4zNDY1MTc2MjYxMDIyOTVRNi45MjIwNzMxNzU3NDE1NzcsMy4zMTE3MDI2MDYxMDIyOTUsNi45NjMwMTEyNzU3NDE1NzcsMy4yODQzNDg2NjYxMDIyOTQ3UTcuMDAzOTQ5Mzc1NzQxNTc3LDMuMjU2OTk0Njk2MTAyMjk1LDcuMDQ5NDM3Mjc1NzQxNTc3LDMuMjM4MTUyOTQ2MTAyMjk1UTcuMDk0OTI1Mzc1NzQxNTc3LDMuMjE5MzExMTc2MTAyMjk1LDcuMTQzMjE1Mzc1NzQxNTc3LDMuMjA5NzA1NzM2MTAyMjk1UTcuMTkxNTA1MTc1NzQxNTc3LDMuMjAwMTAwMzA2MTAyMjk1LDcuMjQwNzQxMjc1NzQxNTc3LDMuMjAwMTAwMjc2MTAyMjk0N1E3LjI4OTk3Njg3NTc0MTU3NywzLjIwMDEwMDMwNjEwMjI5NSw3LjMzODI2Njg3NTc0MTU3NywzLjIwOTcwNTczNjEwMjI5NVE3LjM4NjU1NjM3NTc0MTU3NywzLjIxOTMxMTE3NjEwMjI5NSw3LjQzMjA0NDQ3NTc0MTU3NywzLjIzODE1MjkyNjEwMjI5NDhRNy40Nzc1MzI1NzU3NDE1NzcsMy4yNTY5OTQ2NjYxMDIyOTUsNy41MTg0NzA1NzU3NDE1NzgsMy4yODQzNDg2MzYxMDIyOTVRNy41NTk0MDg2NzU3NDE1NzgsMy4zMTE3MDI2MDYxMDIyOTUsNy41OTQyMjM3NzU3NDE1NzcsMy4zNDY1MTc2MjYxMDIyOTVRNy42MjkwMzg1NzU3NDE1NzcsMy4zODEzMzI2MzYxMDIyOTUsNy42NTYzOTI3NzU3NDE1NzcsMy40MjIyNzA3NDYxMDIyOTQ4UTcuNjgzNzQ3MDc1NzQxNTc3LDMuNDYzMjA4ODU2MTAyMjk1LDcuNzAyNTg4Nzc1NzQxNTc3LDMuNTA4Njk2ODU2MTAyMjk1UTcuNzIxNDMwNTc1NzQxNTc3LDMuNTU0MTg0ODM2MTAyMjk0Nyw3LjczMTAzNTk3NTc0MTU3NywzLjYwMjQ3NDYzNzEwMjI5NVE3Ljc0MDY0MTM3NTc0MTU3NzUsMy42NTA3NjQ0MzIxMDIyOTUsNy43NDA2NDEzNzU3NDE1Nzc1LDMuNzAwMDAwMjg2MTAyMjk1TDcuNzQwNzQxNDc1NzQxNTc4LDMuNzAwMDAwMjg2MTAyMjk1TDcuNzQwNzQxNDc1NzQxNTc4LDYuNzIwMDAwNzg2MTAyMjk1TDEwLjc3MTYwNTI3NTc0MTU3OCw2LjcyMDAwMDc4NjEwMjI5NUwxMC43NzE2MDUyNzU3NDE1NzgsNi43MjAxMDA2ODYxMDIyOTVRMTAuODIwODQwNTc1NzQxNTc4LDYuNzIwMTAwNjg2MTAyMjk1LDEwLjg2OTEzMDM3NTc0MTU3Nyw2LjcyOTcwNTc4NjEwMjI5NVExMC45MTc0MjAxNzU3NDE1NzYsNi43MzkzMTE0ODYxMDIyOTUsMTAuOTYyOTA4MDc1NzQxNTc3LDYuNzU4MTUzMTg2MTAyMjk0NVExMS4wMDgzOTU4NzU3NDE1NzcsNi43NzY5OTQ2ODYxMDIyOTUsMTEuMDQ5MzM0Mjc1NzQxNTc3LDYuODA0MzQ4Njg2MTAyMjk1UTExLjA5MDI3MjE3NTc0MTU3OCw2LjgzMTcwMjY4NjEwMjI5NSwxMS4xMjUwODc0NzU3NDE1NzcsNi44NjY1MTc3ODYxMDIyOTRRMTEuMTU5OTAyMzc1NzQxNTc3LDYuOTAxMzMyNTg2MTAyMjk1LDExLjE4NzI1NjA3NTc0MTU3Niw2Ljk0MjI3MDc4NjEwMjI5NVExMS4yMTQ2MDk4NzU3NDE1NzYsNi45ODMyMDg4ODYxMDIyOTUsMTEuMjMzNDUyMDc1NzQxNTc4LDcuMDI4Njk2OTg2MTAyMjk1UTExLjI1MjI5NDI3NTc0MTU3Niw3LjA3NDE4NDg4NjEwMjI5NDUsMTEuMjYxODk5Njc1NzQxNTc4LDcuMTIyNDc0Njg2MTAyMjk1UTExLjI3MTUwNTA3NTc0MTU3Niw3LjE3MDc2NDY4NjEwMjI5NSwxMS4yNzE1MDU1NzU3NDE1NzgsNy4yMjAwMDA3ODYxMDIyOTVRMTEuMjcxNTA1MDc1NzQxNTc2LDcuMjY5MjM2Mjg2MTAyMjk1LDExLjI2MTg5OTY3NTc0MTU3OCw3LjMxNzUyNTg4NjEwMjI5NVExMS4yNTIyOTQyNzU3NDE1NzYsNy4zNjU4MTU2ODYxMDIyOTQ1LDExLjIzMzQ1MjA3NTc0MTU3OCw3LjQxMTMwMzc4NjEwMjI5NVExMS4yMTQ2MDk4NzU3NDE1NzYsNy40NTY3OTE2ODYxMDIyOTUsMTEuMTg3MjU2MDc1NzQxNTc2LDcuNDk3NzI5Nzg2MTAyMjk1UTExLjE1OTkwMjM3NTc0MTU3Nyw3LjUzODY2NzY4NjEwMjI5NSwxMS4xMjUwODc0NzU3NDE1NzcsNy41NzM0ODI5ODYxMDIyOTVRMTEuMDkwMjcyNjc1NzQxNTc3LDcuNjA4Mjk3Nzg2MTAyMjk1LDExLjA0OTMzNDI3NTc0MTU3Nyw3LjYzNTY1MTc4NjEwMjI5NTRRMTEuMDA4Mzk2Mzc1NzQxNTc2LDcuNjYzMDA1Nzg2MTAyMjk0LDEwLjk2MjkwODQ3NTc0MTU3OCw3LjY4MTg0NzU4NjEwMjI5NVExMC45MTc0MjA1NzU3NDE1NzcsNy43MDA2ODkyODYxMDIyOTUsMTAuODY5MTMxMzc1NzQxNTc4LDcuNzEwMjk0Njg2MTAyMjk1UTEwLjgyMDg0MTU3NTc0MTU3Nyw3LjcxOTkwMDU4NjEwMjI5NSwxMC43NzE2MDU3NzU3NDE1NzcsNy43MTk5MDA1ODYxMDIyOTVMMTAuNzcxNjA1Mjc1NzQxNTc4LDcuNzIwMDAwNzg2MTAyMjk1TDcuNzQwNzQxNDc1NzQxNTc4LDcuNzIwMDAwNzg2MTAyMjk1TDcuNzQwNzQxNDc1NzQxNTc4LDEwLjc0MDAwMTE4NjEwMjI5NEw3Ljc0MDY0MTM3NTc0MTU3NzUsMTAuNzQwMDAxMTg2MTAyMjk0UTcuNzQwNjQxMzc1NzQxNTc3NSwxMC43ODkyMzY1ODYxMDIyOTUsNy43MzEwMzU5NzU3NDE1NzcsMTAuODM3NTI2Mjg2MTAyMjk2UTcuNzIxNDMwNTc1NzQxNTc3LDEwLjg4NTgxNjA4NjEwMjI5NSw3LjcwMjU4ODU3NTc0MTU3NzUsMTAuOTMxMzAzOTg2MTAyMjk1UTcuNjgzNzQ2NTc1NzQxNTc3LDEwLjk3Njc5MTg4NjEwMjI5NCw3LjY1NjM5Mjc3NTc0MTU3NywxMS4wMTc3MzAxODYxMDIyOTVRNy42MjkwMzg1NzU3NDE1NzcsMTEuMDU4NjY4MTg2MTAyMjk1LDcuNTk0MjIzNzc1NzQxNTc3LDExLjA5MzQ4MzQ4NjEwMjI5NVE3LjU1OTQwODY3NTc0MTU3OCwxMS4xMjgyOTgyODYxMDIyOTUsNy41MTg0NzA1NzU3NDE1NzgsMTEuMTU1NjUyMDg2MTAyMjk1UTcuNDc3NTMyMzc1NzQxNTc3LDExLjE4MzAwNTc4NjEwMjI5Niw3LjQzMjA0NDI3NTc0MTU3NjYsMTEuMjAxODQ3NTg2MTAyMjk1UTcuMzg2NTU2Mzc1NzQxNTc3LDExLjIyMDY4OTI4NjEwMjI5Niw3LjMzODI2Njg3NTc0MTU3NywxMS4yMzAyOTQ2ODYxMDIyOTRRNy4yODk5NzY4NzU3NDE1NzcsMTEuMjM5OTAwNTg2MTAyMjk0LDcuMjQwNzQxMjc1NzQxNTc3LDExLjIzOTkwMTA4NjEwMjI5NVE3LjE5MTUwNTE3NTc0MTU3NywxMS4yMzk5MDA1ODYxMDIyOTQsNy4xNDMyMTUxNzU3NDE1NzcsMTEuMjMwMjk0Njg2MTAyMjk0UTcuMDk0OTI1Mzc1NzQxNTc3LDExLjIyMDY4OTI4NjEwMjI5Niw3LjA0OTQzNzI3NTc0MTU3NywxMS4yMDE4NDc1ODYxMDIyOTVRNy4wMDM5NDkzNzU3NDE1NzcsMTEuMTgzMDA1Nzg2MTAyMjk2LDYuOTYzMDExNDc1NzQxNTc3NSwxMS4xNTU2NTE1ODYxMDIyOTRRNi45MjIwNzMxNzU3NDE1NzcsMTEuMTI4Mjk3Nzg2MTAyMjk0LDYuODg3MjU4Mjc1NzQxNTc3LDExLjA5MzQ4Mjk4NjEwMjI5NVE2Ljg1MjQ0MzE3NTc0MTU3NywxMS4wNTg2Njc2ODYxMDIyOTUsNi44MjUwODkxNzU3NDE1NzcsMTEuMDE3NzI5Nzg2MTAyMjk1UTYuNzk3NzM1MTc1NzQxNTc3LDEwLjk3Njc5MTg4NjEwMjI5NCw2Ljc3ODg5MzQ3NTc0MTU3OCwxMC45MzEzMDM5ODYxMDIyOTVRNi43NjAwNTE3NzU3NDE1NzcsMTAuODg1ODE2MDg2MTAyMjk1LDYuNzUwNDQ2Mjc1NzQxNTc3LDEwLjgzNzUyNjc4NjEwMjI5NVE2Ljc0MDg0MTE3NTc0MTU3NywxMC43ODkyMzY1ODYxMDIyOTUsNi43NDA4NDExNzU3NDE1NzcsMTAuNzQwMDAxMTg2MTAyMjk0TDYuNzQwNzQwOTc1NzQxNTc3LDEwLjc0MDAwMTE4NjEwMjI5NEw2Ljc0MDc0MDk3NTc0MTU3Nyw3LjcyMDAwMDc4NjEwMjI5NUwzLjcwOTg3Njc3NTc0MTU3Nyw3LjcyMDAwMDc4NjEwMjI5NUwzLjcwOTg3Njc3NTc0MTU3Nyw3LjcxOTkwMDU4NjEwMjI5NVEzLjY2MDY0MDkyMTc0MTU3Nyw3LjcxOTkwMDU4NjEwMjI5NSwzLjYxMjM1MTEyNjc0MTU3Nyw3LjcxMDI5NDY4NjEwMjI5NVEzLjU2NDA2MTMyNTc0MTU3Nyw3LjcwMDY4OTI4NjEwMjI5NSwzLjUxODU3MzM0NTc0MTU3Nyw3LjY4MTg0NzU4NjEwMjI5NVEzLjQ3MzA4NTM0NTc0MTU3NzMsNy42NjMwMDU3ODYxMDIyOTQsMy40MzIxNDcyMzU3NDE1NzcsNy42MzU2NTE3ODYxMDIyOTU0UTMuMzkxMjA5MTI1NzQxNTc3LDcuNjA4Mjk3Nzg2MTAyMjk1LDMuMzU2Mzk0MTE1NzQxNTc3LDcuNTczNDgyOTg2MTAyMjk1UTMuMzIxNTc5MDk1NzQxNTc3LDcuNTM4NjY3Njg2MTAyMjk1LDMuMjk0MjI1MTU1NzQxNTc3LDcuNDk3NzI5Nzg2MTAyMjk1UTMuMjY2ODcxMTg1NzQxNTc3Myw3LjQ1Njc5MTY4NjEwMjI5NSwzLjI0ODAyOTQzNTc0MTU3NzMsNy40MTEzMDM3ODYxMDIyOTVRMy4yMjkxODc2NjU3NDE1NzcsNy4zNjU4MTU2ODYxMDIyOTQ1LDMuMjE5NTgyMjI1NzQxNTc3NCw3LjMxNzUyNTg4NjEwMjI5NVEzLjIwOTk3Njc5NTc0MTU3NzIsNy4yNjkyMzYyODYxMDIyOTUsMy4yMDk5NzY3NjU3NDE1NzcsNy4yMjAwMDA3ODYxMDIyOTVRMy4yMDk5NzY3OTU3NDE1NzcyLDcuMTcwNzY0Njg2MTAyMjk1LDMuMjE5NTgyMjI1NzQxNTc3NCw3LjEyMjQ3NDY4NjEwMjI5NVEzLjIyOTE4NzY2NTc0MTU3Nyw3LjA3NDE4NDg4NjEwMjI5NDUsMy4yNDgwMjk0MTU3NDE1NzcsNy4wMjg2OTY5ODYxMDIyOTVRMy4yNjY4NzExNTU3NDE1NzcsNi45ODMyMDg4ODYxMDIyOTUsMy4yOTQyMjUxMjU3NDE1NzcsNi45NDIyNzA3ODYxMDIyOTVRMy4zMjE1NzkwOTU3NDE1NzcsNi45MDEzMzIzODYxMDIyOTUsMy4zNTYzOTQxMTU3NDE1NzcsNi44NjY1MTc1ODYxMDIyOTZRMy4zOTEyMDkxMjU3NDE1NzcsNi44MzE3MDI2ODYxMDIyOTUsMy40MzIxNDcyMzU3NDE1NzcsNi44MDQzNDg0ODYxMDIyOTVRMy40NzMwODUzNDU3NDE1NzczLDYuNzc2OTk0Njg2MTAyMjk1LDMuNTE4NTczMzQ1NzQxNTc3LDYuNzU4MTUzMTg2MTAyMjk0NVEzLjU2NDA2MTMyNTc0MTU3Nyw2LjczOTMxMTQ4NjEwMjI5NSwzLjYxMjM1MTEyNjc0MTU3Nyw2LjcyOTcwNTc4NjEwMjI5NVEzLjY2MDY0MDkyMTc0MTU3Nyw2LjcyMDEwMDY4NjEwMjI5NSwzLjcwOTg3Njc3NTc0MTU3Nyw2LjcyMDEwMDY4NjEwMjI5NUwzLjcwOTg3Njc3NTc0MTU3Nyw2LjcyMDAwMDc4NjEwMjI5NUw2Ljc0MDc0MDk3NTc0MTU3Nyw2LjcyMDAwMDc4NjEwMjI5NUw2Ljc0MDc0MDk3NTc0MTU3NywzLjcwMDAwMDI4NjEwMjI5NUw2Ljc0MDg0MTE3NTc0MTU3NywzLjcwMDAwMDI4NjEwMjI5NVoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzQ3NDc0NyIgZmlsbC1vcGFjaXR5PSIxIi8+PC9nPjwvZz48L3N2Zz4=');
139
- }
140
- .lf-control-fit {
141
- background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSJub25lIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNi40MDczNDg2MzI4MTI1IiBoZWlnaHQ9IjE2LjM1OTg2MzI4MTI1IiB2aWV3Qm94PSIwIDAgMTYuNDA3MzQ4NjMyODEyNSAxNi4zNTk4NjMyODEyNSI+PGc+PGc+PHJlY3QgeD0iMi4xODUxODUxOTQwMTU1MDMiIHk9IjIuMTgxNTM4MzQzNDI5NTY1NCIgd2lkdGg9IjEyLjAzNzAzNTk0MjA3NzYzNyIgaGVpZ2h0PSIxMS45OTY5MjE1MzkzMDY2NCIgcng9IjMuNSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2Utb3BhY2l0eT0iMSIgc3Ryb2tlPSIjNDc0NzQ3IiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjEiLz48L2c+PGc+PHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNS40MDc0MDc3NjA2MjAxMTciIGhlaWdodD0iMTUuMzU5OTk5NjU2Njc3MjQ2IiByeD0iMCIgZmlsbD0iI0ZGRkZGRiIgZmlsbC1vcGFjaXR5PSIwIi8+PHBhdGggZD0iTTAuNSwwTDQuMzUxODUyMiwwUTQuNDAxMDk3ODAwMDAwMDAwNSwyLjk5OTk5OTk5ODQyMDkzMjVlLTgsNC40NDkzOTcxMDAwMDAwMDA1LDAuMDA5NjA3Mzk5OTk5OTk5OTg4UTQuNDk3Njk2OSwwLjAxOTIxNDc3OTk5OTk5OTk4Nyw0LjU0MzE5MzgsMC4wMzgwNjAzMDk5OTk5OTk5ODZRNC41ODg2OTA4LDAuMDU2OTA1ODEsNC42Mjk2MzcyLDAuMDg0MjY1MjMwMDAwMDAwMDJRNC42NzA1ODM3LDAuMTExNjI0NjkwMDAwMDAwMDMsNC43MDU0MDU3LDAuMTQ2NDQ2NjVRNC43NDAyMjc3LDAuMTgxMjY4NjMsNC43Njc1ODc3LDAuMjIyMjE0OTFRNC43OTQ5NDY3LDAuMjYzMTYxMjEwMDAwMDAwMDMsNC44MTM3OTIyLDAuMzA4NjU4M1E0LjgzMjYzNzgsMC4zNTQxNTUzODk5OTk5OTk5Niw0Ljg0MjI0NTEsMC40MDI0NTQ4NDYwMDAwMDAwM1E0Ljg1MTg1MjQsMC40NTA3NTQzLDQuODUxODUyNCwwLjVRNC44NTE4NTI0LDAuNTQ5MjQ1Nyw0Ljg0MjI0NTEsMC41OTc1NDUxNTRRNC44MzI2Mzc4LDAuNjQ1ODQ0NjEsNC44MTM3OTIyLDAuNjkxMzQxN1E0Ljc5NDk0NjcsMC43MzY4Mzg3OSw0Ljc2NzU4NzcsMC43Nzc3ODUwNlE0Ljc0MDIyNzcsMC44MTg3MzEzNzAwMDAwMDAxLDQuNzA1NDA1NywwLjg1MzU1MzM1UTQuNjcwNTgzNywwLjg4ODM3NTMxLDQuNjI5NjM3MiwwLjkxNTczNDc0UTQuNTg4NjkwOCwwLjk0MzA5NDE5LDQuNTQzMTkzOCwwLjk2MTkzOTcxOTk5OTk5OTlRNC40OTc2OTY5LDAuOTgwNzg1MjUsNC40NDkzOTczLDAuOTkwMzkyNjAwMDAwMDAwMVE0LjQwMTA5NzgwMDAwMDAwMDUsMC45OTk5OTk5Nyw0LjM1MTg1MjIsMUwwLjUsMVEwLjQ1MDc1NDMsMC45OTk5OTk5NywwLjQwMjQ1NDg0NjAwMDAwMDAzLDAuOTkwMzkyNjAwMDAwMDAwMVEwLjM1NDE1NTM4OTk5OTk5OTk2LDAuOTgwNzg1MjIsMC4zMDg2NTgzLDAuOTYxOTM5NjlRMC4yNjMxNjEyMTAwMDAwMDAwMywwLjk0MzA5NDE5LDAuMjIyMjE0OTQwMDAwMDAwMDMsMC45MTU3MzQ3N1EwLjE4MTI2ODYzLDAuODg4Mzc1MzEsMC4xNDY0NDY2NSwwLjg1MzU1MzM1UTAuMTExNjI0NjkwMDAwMDAwMDMsMC44MTg3MzEzNzAwMDAwMDAxLDAuMDg0MjY1MjYwMDAwMDAwMDEsMC43Nzc3ODUwOTAwMDAwMDAxUTAuMDU2OTA1ODEsMC43MzY4Mzg3OSwwLjAzODA2MDI4LDAuNjkxMzQxN1EwLjAxOTIxNDc1MDAwMDAwMDAwMywwLjY0NTg0NDYxLDAuMDA5NjA3Mzk5OTk5OTk5OTg4LDAuNTk3NTQ1MTU0UTIuOTk5OTk5OTk4NDIwOTMyNWUtOCwwLjU0OTI0NTcsMCwwLjVRMi45OTk5OTk5OTg0MjA5MzI1ZS04LDAuNDUwNzU0MywwLjAwOTYwNzM5OTk5OTk5OTk4OCwwLjQwMjQ1NDg0NjAwMDAwMDAzUTAuMDE5MjE0Nzc5OTk5OTk5OTg3LDAuMzU0MTU1Mzg5OTk5OTk5OTYsMC4wMzgwNjAzMDk5OTk5OTk5ODYsMC4zMDg2NTgzUTAuMDU2OTA1ODEsMC4yNjMxNjEyMTAwMDAwMDAwMywwLjA4NDI2NTIzMDAwMDAwMDAyLDAuMjIyMjE0OTQwMDAwMDAwMDNRMC4xMTE2MjQ2OTAwMDAwMDAwMywwLjE4MTI2ODYzLDAuMTQ2NDQ2NjUsMC4xNDY0NDY2NVEwLjE4MTI2ODYzLDAuMTExNjI0NjkwMDAwMDAwMDMsMC4yMjIyMTQ5MSwwLjA4NDI2NTI2MDAwMDAwMDAxUTAuMjYzMTYxMjEwMDAwMDAwMDMsMC4wNTY5MDU4MSwwLjMwODY1ODMsMC4wMzgwNjAyOFEwLjM1NDE1NTM4OTk5OTk5OTk2LDAuMDE5MjE0NzUwMDAwMDAwMDAzLDAuNDAyNDU0ODQ2MDAwMDAwMDMsMC4wMDk2MDczOTk5OTk5OTk5ODhRMC40NTA3NTQzLDIuOTk5OTk5OTk4NDIwOTMyNWUtOCwwLjUsMFpNMTIuMDU1NTU2LDBMMTYuNDA3NDA5LDBMMTYuNDA3NDA5LDQuMzM5OTk5N1ExNi40MDc0MDksNC4zODkyNDUsMTYuMzk3ODAxLDQuNDM3NTQ0Nzk5OTk5OTk5NVExNi4zODgxOTMsNC40ODU4NDQxLDE2LjM2OTM0Njk5OTk5OTk5OCw0LjUzMTM0MTFRMTYuMzUwNTAxLDQuNTc2ODM4NSwxNi4zMjMxNDIsNC42MTc3ODQ1UTE2LjI5NTc4MjAwMDAwMDAwMyw0LjY1ODczMSwxNi4yNjA5NjIsNC42OTM1NTNRMTYuMjI2MTM5LDQuNzI4Mzc1LDE2LjE4NTE5Miw0Ljc1NTczNDRRMTYuMTQ0MjQ2MDAwMDAwMDAzLDQuNzgzMDkzNSwxNi4wOTg3NDg5OTk5OTk5OTgsNC44MDE5MzlRMTYuMDUzMjUyOTk5OTk5OTk4LDQuODIwNzg0NiwxNi4wMDQ5NTMsNC44MzAzOTE5UTE1Ljk1NjY1NCw0LjgzOTk5OTIsMTUuOTA3NDA5LDQuODM5OTk5N1ExNS44NTgxNjIsNC44Mzk5OTkyLDE1LjgwOTg2Miw0LjgzMDM5MTlRMTUuNzYxNTYyLDQuODIwNzg0NiwxNS43MTYwNjUsNC44MDE5MzlRMTUuNjcwNTY4LDQuNzgzMDkzNSwxNS42Mjk2MjIsNC43NTU3MzQ0UTE1LjU4ODY3Niw0LjcyODM3NSwxNS41NTM4NTUsNC42OTM1NTNRMTUuNTE5MDMyLDQuNjU4NzMxLDE1LjQ5MTY3Myw0LjYxNzc4NDVRMTUuNDY0MzE0LDQuNTc2ODM4NSwxNS40NDU0NjcsNC41MzEzNDExUTE1LjQyNjYyMiw0LjQ4NTg0NDEsMTUuNDE3MDE1LDQuNDM3NTQ0NlExNS40MDc0MDgsNC4zODkyNDUsMTUuNDA3NDA5LDQuMzM5OTk5N0wxNS40MDc0MDksMC41TDE1LjkwNzQwOSwwLjVMMTUuOTA3NDA5LDFMMTIuMDU1NTU2LDFRMTIuMDA2MzEsMC45OTk5OTk5NywxMS45NTgwMSwwLjk5MDM5MjYwMDAwMDAwMDFRMTEuOTA5NzEsMC45ODA3ODUyMiwxMS44NjQyMTMsMC45NjE5Mzk2OVExMS44MTg3MTYsMC45NDMwOTQxOSwxMS43Nzc3NjksMC45MTU3MzQ3N1ExMS43MzY4MjQsMC44ODgzNzUzMSwxMS43MDIwMDIsMC44NTM1NTMzNVExMS42NjcxNzksMC44MTg3MzEzNzAwMDAwMDAxLDExLjYzOTgyLDAuNzc3Nzg1MDkwMDAwMDAwMVExMS42MTI0NjEsMC43MzY4Mzg3OSwxMS41OTM2MTYsMC42OTEzNDE3UTExLjU3NDc3LDAuNjQ1ODQ0NjEsMTEuNTY1MTYzLDAuNTk3NTQ1MTU0UTExLjU1NTU1NSwwLjU0OTI0NTcsMTEuNTU1NTU2LDAuNVExMS41NTU1NTUsMC40NTA3NTQzLDExLjU2NTE2MywwLjQwMjQ1NDg0NjAwMDAwMDAzUTExLjU3NDc3LDAuMzU0MTU1Mzg5OTk5OTk5OTYsMTEuNTkzNjE2LDAuMzA4NjU4M1ExMS42MTI0NjEsMC4yNjMxNjEyMTAwMDAwMDAwMywxMS42Mzk4MiwwLjIyMjIxNDk0MDAwMDAwMDAzUTExLjY2NzE3OSwwLjE4MTI2ODYzLDExLjcwMjAwMiwwLjE0NjQ0NjY1UTExLjczNjgyNCwwLjExMTYyNDY5MDAwMDAwMDAzLDExLjc3Nzc3LDAuMDg0MjY1MjYwMDAwMDAwMDFRMTEuODE4NzE2LDAuMDU2OTA1ODEsMTEuODY0MjEzLDAuMDM4MDYwMjhRMTEuOTA5NzEsMC4wMTkyMTQ3NTAwMDAwMDAwMDMsMTEuOTU4MDEsMC4wMDk2MDczOTk5OTk5OTk5ODhRMTIuMDA2MzEsMi45OTk5OTk5OTg0MjA5MzI1ZS04LDEyLjA1NTU1NiwwWk0xNi40MDc0MDksMTIuMDE5OTk5TDE2LjQwNzQwOSwxNi4zNkwxMi4wNTU1NTYsMTYuMzZRMTIuMDA2MzEsMTYuMzU5OTk5MDAwMDAwMDAyLDExLjk1ODAxLDE2LjM1MDM5UTExLjkwOTcxLDE2LjM0MDc4MzAwMDAwMDAwMiwxMS44NjQyMTMsMTYuMzIxOTM4UTExLjgxODcxNiwxNi4zMDMwOTEwMDAwMDAwMDIsMTEuNzc3NzY5LDE2LjI3NTczMTk5OTk5OTk5OFExMS43MzY4MjQsMTYuMjQ4MzczLDExLjcwMjAwMiwxNi4yMTM1NTJRMTEuNjY3MTc5LDE2LjE3ODcyOSwxMS42Mzk4MiwxNi4xMzc3ODNRMTEuNjEyNDYxLDE2LjA5NjgzNiwxMS41OTM2MTYsMTYuMDUxMzRRMTEuNTc0NzcsMTYuMDA1ODQyLDExLjU2NTE2MywxNS45NTc1NDNRMTEuNTU1NTU1LDE1LjkwOTI0NCwxMS41NTU1NTYsMTUuODU5OTk5UTExLjU1NTU1NSwxNS44MTA3NTMsMTEuNTY1MTYzLDE1Ljc2MjQ1M1ExMS41NzQ3NywxNS43MTQxNTMsMTEuNTkzNjE2LDE1LjY2ODY1NVExMS42MTI0NjEsMTUuNjIzMTU4LDExLjYzOTgyLDE1LjU4MjIxMlExMS42NjcxNzksMTUuNTQxMjY2LDExLjcwMjAwMiwxNS41MDY0NDVRMTEuNzM2ODI0LDE1LjQ3MTYyMiwxMS43Nzc3NywxNS40NDQyNjNRMTEuODE4NzE2LDE1LjQxNjkwMywxMS44NjQyMTMsMTUuMzk4MDU4UTExLjkwOTcxLDE1LjM3OTIxMywxMS45NTgwMSwxNS4zNjk2MDZRMTIuMDA2MzEsMTUuMzU5OTk5LDEyLjA1NTU1NiwxNS4zNTk5OTlMMTUuOTA3NDA5LDE1LjM1OTk5OUwxNS45MDc0MDksMTUuODU5OTk5TDE1LjQwNzQwOSwxNS44NTk5OTlMMTUuNDA3NDA5LDEyLjAxOTk5OVExNS40MDc0MDgsMTEuOTcwNzUzLDE1LjQxNzAxNSwxMS45MjI0NTNRMTUuNDI2NjIyLDExLjg3NDE1MywxNS40NDU0NjcsMTEuODI4NjU2UTE1LjQ2NDMxMywxMS43ODMxNTgsMTUuNDkxNjczLDExLjc0MjIxMlExNS41MTkwMzIsMTEuNzAxMjY1LDE1LjU1Mzg1NCwxMS42NjY0NDVRMTUuNTg4Njc2LDExLjYzMTYyMiwxNS42Mjk2MjIsMTEuNjA0MjYzUTE1LjY3MDU2OCwxMS41NzY5MDQsMTUuNzE2MDY2LDExLjU1ODA1OVExNS43NjE1NjIsMTEuNTM5MjEzLDE1LjgwOTg2MiwxMS41Mjk2MDdRMTUuODU4MTYyLDExLjUyLDE1LjkwNzQwOSwxMS41MlExNS45NTY2NTQsMTEuNTIsMTYuMDA0OTUzLDExLjUyOTYwN1ExNi4wNTMyNTI5OTk5OTk5OTgsMTEuNTM5MjEzLDE2LjA5ODc0ODk5OTk5OTk5OCwxMS41NTgwNTlRMTYuMTQ0MjQ2MDAwMDAwMDAzLDExLjU3NjkwNCwxNi4xODUxOTI5OTk5OTk5OTgsMTEuNjA0MjYzUTE2LjIyNjEzOSwxMS42MzE2MjIsMTYuMjYwOTYyLDExLjY2NjQ0NVExNi4yOTU3ODIwMDAwMDAwMDMsMTEuNzAxMjY1LDE2LjMyMzE0MiwxMS43NDIyMTFRMTYuMzUwNTAxLDExLjc4MzE1NywxNi4zNjkzNDY5OTk5OTk5OTgsMTEuODI4NjU1UTE2LjM4ODE5MywxMS44NzQxNTMsMTYuMzk3OCwxMS45MjI0NTJRMTYuNDA3NDA5LDExLjk3MDc1MywxNi40MDc0MDksMTIuMDE5OTk5Wk00LjM1MTg1MjIsMTYuMzZMMCwxNi4zNkwwLDEyLjAxOTk5OVEyLjk5OTk5OTk5ODQyMDkzMjVlLTgsMTEuOTcwNzUzLDAuMDA5NjA3Mzk5OTk5OTk5OTg4LDExLjkyMjQ1M1EwLjAxOTIxNDc3OTk5OTk5OTk4NywxMS44NzQxNTMsMC4wMzgwNjAzMDk5OTk5OTk5ODYsMTEuODI4NjU2UTAuMDU2OTA1ODEsMTEuNzgzMTU4LDAuMDg0MjY1MjMwMDAwMDAwMDIsMTEuNzQyMjEyUTAuMTExNjI0NjkwMDAwMDAwMDMsMTEuNzAxMjY1LDAuMTQ2NDQ2NjUsMTEuNjY2NDQ1UTAuMTgxMjY4NjMsMTEuNjMxNjIyLDAuMjIyMjE0OTEsMTEuNjA0MjYzUTAuMjYzMTYxMjEwMDAwMDAwMDMsMTEuNTc2OTA0LDAuMzA4NjU4MywxMS41NTgwNTlRMC4zNTQxNTUzODk5OTk5OTk5NiwxMS41MzkyMTMsMC40MDI0NTQ4NDYwMDAwMDAwMywxMS41Mjk2MDdRMC40NTA3NTQzLDExLjUyLDAuNSwxMS41MlEwLjU0OTI0NTcsMTEuNTIsMC41OTc1NDUxNTQsMTEuNTI5NjA3UTAuNjQ1ODQ0NjEsMTEuNTM5MjEzLDAuNjkxMzQxNywxMS41NTgwNTlRMC43MzY4Mzg3OSwxMS41NzY5MDQsMC43Nzc3ODUwNiwxMS42MDQyNjNRMC44MTg3MzEzNzAwMDAwMDAxLDExLjYzMTYyMiwwLjg1MzU1MzM1LDExLjY2NjQ0NVEwLjg4ODM3NTMxLDExLjcwMTI2NSwwLjkxNTczNDc0LDExLjc0MjIxMVEwLjk0MzA5NDE5LDExLjc4MzE1NywwLjk2MTkzOTcxOTk5OTk5OTksMTEuODI4NjU1UTAuOTgwNzg1MjUsMTEuODc0MTUzLDAuOTkwMzkyNjAwMDAwMDAwMSwxMS45MjI0NTJRMC45OTk5OTk5NywxMS45NzA3NTMsMSwxMi4wMTk5OTlMMSwxNS44NTk5OTlMMC41LDE1Ljg1OTk5OUwwLjUsMTUuMzU5OTk5TDQuMzUxODUyMiwxNS4zNTk5OTlRNC40MDEwOTc4MDAwMDAwMDA1LDE1LjM1OTk5OSw0LjQ0OTM5NzEwMDAwMDAwMDUsMTUuMzY5NjA1UTQuNDk3Njk2OSwxNS4zNzkyMTMsNC41NDMxOTM4LDE1LjM5ODA1OFE0LjU4ODY5MDgsMTUuNDE2OTAzLDQuNjI5NjM3MiwxNS40NDQyNjNRNC42NzA1ODM3LDE1LjQ3MTYyMiw0LjcwNTQwNTcsMTUuNTA2NDQ0UTQuNzQwMjI3NywxNS41NDEyNjUsNC43Njc1ODc3LDE1LjU4MjIxMVE0Ljc5NDk0NjcsMTUuNjIzMTU4LDQuODEzNzkyMiwxNS42Njg2NTVRNC44MzI2Mzc4LDE1LjcxNDE1Myw0Ljg0MjI0NTEsMTUuNzYyNDUzUTQuODUxODUyNCwxNS44MTA3NTMsNC44NTE4NTI0LDE1Ljg1OTk5OVE0Ljg1MTg1MjQsMTUuOTA5MjQ0LDQuODQyMjQ1MSwxNS45NTc1NDJRNC44MzI2Mzc4LDE2LjAwNTg0Miw0LjgxMzc5MjIsMTYuMDUxMzRRNC43OTQ5NDY3LDE2LjA5NjgzNiw0Ljc2NzU4NzcsMTYuMTM3NzgzUTQuNzQwMjI3NywxNi4xNzg3Myw0LjcwNTQwNTcsMTYuMjEzNTUyUTQuNjcwNTgzNywxNi4yNDgzNzMsNC42Mjk2MzcyLDE2LjI3NTczMTk5OTk5OTk5OFE0LjU4ODY5MDgsMTYuMzAzMDkyLDQuNTQzMTkzOCwxNi4zMjE5MzhRNC40OTc2OTY5LDE2LjM0MDc4MzAwMDAwMDAwMiw0LjQ0OTM5NzMsMTYuMzUwMzkxMDAwMDAwMDAyUTQuNDAxMDk3ODAwMDAwMDAwNSwxNi4zNTk5OTkwMDAwMDAwMDIsNC4zNTE4NTIyLDE2LjM2Wk0wLDQuMzM5OTk5N0wwLDBMNC4zNTE4NTIyLDBRNC40MDEwOTc4MDAwMDAwMDA1LDIuOTk5OTk5OTk4NDIwOTMyNWUtOCw0LjQ0OTM5NzEwMDAwMDAwMDUsMC4wMDk2MDczOTk5OTk5OTk5ODhRNC40OTc2OTY5LDAuMDE5MjE0Nzc5OTk5OTk5OTg3LDQuNTQzMTkzOCwwLjAzODA2MDMwOTk5OTk5OTk4NlE0LjU4ODY5MDgsMC4wNTY5MDU4MSw0LjYyOTYzNzIsMC4wODQyNjUyMzAwMDAwMDAwMlE0LjY3MDU4MzcsMC4xMTE2MjQ2OTAwMDAwMDAwMyw0LjcwNTQwNTcsMC4xNDY0NDY2NVE0Ljc0MDIyNzcsMC4xODEyNjg2Myw0Ljc2NzU4NzcsMC4yMjIyMTQ5MVE0Ljc5NDk0NjcsMC4yNjMxNjEyMTAwMDAwMDAwMyw0LjgxMzc5MjIsMC4zMDg2NTgzUTQuODMyNjM3OCwwLjM1NDE1NTM4OTk5OTk5OTk2LDQuODQyMjQ1MSwwLjQwMjQ1NDg0NjAwMDAwMDAzUTQuODUxODUyNCwwLjQ1MDc1NDMsNC44NTE4NTI0LDAuNVE0Ljg1MTg1MjQsMC41NDkyNDU3LDQuODQyMjQ1MSwwLjU5NzU0NTE1NFE0LjgzMjYzNzgsMC42NDU4NDQ2MSw0LjgxMzc5MjIsMC42OTEzNDE3UTQuNzk0OTQ2NywwLjczNjgzODc5LDQuNzY3NTg3NywwLjc3Nzc4NTA2UTQuNzQwMjI3NywwLjgxODczMTM3MDAwMDAwMDEsNC43MDU0MDU3LDAuODUzNTUzMzVRNC42NzA1ODM3LDAuODg4Mzc1MzEsNC42Mjk2MzcyLDAuOTE1NzM0NzRRNC41ODg2OTA4LDAuOTQzMDk0MTksNC41NDMxOTM4LDAuOTYxOTM5NzE5OTk5OTk5OVE0LjQ5NzY5NjksMC45ODA3ODUyNSw0LjQ0OTM5NzMsMC45OTAzOTI2MDAwMDAwMDAxUTQuNDAxMDk3ODAwMDAwMDAwNSwwLjk5OTk5OTk3LDQuMzUxODUyMiwxTDAuNSwxTDAuNSwwLjVMMSwwLjVMMSw0LjMzOTk5OTdRMC45OTk5OTk5Nyw0LjM4OTI0NSwwLjk5MDM5MjYwMDAwMDAwMDEsNC40Mzc1NDQ3OTk5OTk5OTk1UTAuOTgwNzg1MjIsNC40ODU4NDQxLDAuOTYxOTM5NjksNC41MzEzNDExUTAuOTQzMDk0MTksNC41NzY4Mzg1LDAuOTE1NzM0NzcsNC42MTc3ODQ1UTAuODg4Mzc1MzEsNC42NTg3MzEsMC44NTM1NTMzNSw0LjY5MzU1M1EwLjgxODczMTM3MDAwMDAwMDEsNC43MjgzNzUsMC43Nzc3ODUwOTAwMDAwMDAxLDQuNzU1NzM0NFEwLjczNjgzODc5LDQuNzgzMDkzNSwwLjY5MTM0MTcsNC44MDE5MzlRMC42NDU4NDQ2MSw0LjgyMDc4NDYsMC41OTc1NDUxNTQsNC44MzAzOTE5UTAuNTQ5MjQ1Nyw0LjgzOTk5OTIsMC41LDQuODM5OTk5N1EwLjQ1MDc1NDMsNC44Mzk5OTkyLDAuNDAyNDU0ODQ2MDAwMDAwMDMsNC44MzAzOTE5UTAuMzU0MTU1Mzg5OTk5OTk5OTYsNC44MjA3ODQ2LDAuMzA4NjU4Myw0LjgwMTkzOVEwLjI2MzE2MTIxMDAwMDAwMDAzLDQuNzgzMDkzNSwwLjIyMjIxNDk0MDAwMDAwMDAzLDQuNzU1NzM0NFEwLjE4MTI2ODYzLDQuNzI4Mzc1LDAuMTQ2NDQ2NjUsNC42OTM1NTNRMC4xMTE2MjQ2OTAwMDAwMDAwMyw0LjY1ODczMSwwLjA4NDI2NTI2MDAwMDAwMDAxLDQuNjE3Nzg0NVEwLjA1NjkwNTgxLDQuNTc2ODM4NSwwLjAzODA2MDI4LDQuNTMxMzQxMVEwLjAxOTIxNDc1MDAwMDAwMDAwMyw0LjQ4NTg0NDEsMC4wMDk2MDczOTk5OTk5OTk5ODgsNC40Mzc1NDQ2UTIuOTk5OTk5OTk4NDIwOTMyNWUtOCw0LjM4OTI0NSwwLDQuMzM5OTk5N1oiIGZpbGw9IiM0NzQ3NDciIGZpbGwtb3BhY2l0eT0iMSIvPjwvZz48L2c+PC9zdmc+');
142
- }
143
- .lf-control-undo {
144
- background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSJub25lIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNC4zNTc0MjE4NzUiIGhlaWdodD0iMTUuMDc5ODMzOTg0Mzc1IiB2aWV3Qm94PSIwIDAgMTQuMzU3NDIxODc1IDE1LjA3OTgzMzk4NDM3NSI+PGc+PGc+PHBhdGggZD0iTTEzLjM1Nzc2MDQ0MTk5MjE4OCwxMy42MjAwMDA4ODU1NTkwODFMMTMuMzU3NzYwNDQxOTkyMTg4LDE0LjU3OTk5OTg4NTU1OTA4M0wxMy4zNTc4NjA1NDE5OTIxODcsMTQuNTc5OTk5ODg1NTU5MDgzUTEzLjM1Nzg2MDU0MTk5MjE4NywxNC42MjkyMzUyODU1NTkwODIsMTMuMzY3NDY1OTQxOTkyMTg3LDE0LjY3NzUyNDU4NTU1OTA4MlExMy4zNzcwNzEzNDE5OTIxODgsMTQuNzI1ODEzODg1NTU5MDgzLDEzLjM5NTkxMjE0MTk5MjE4OCwxNC43NzEzMDIxODU1NTkwODFRMTMuNDE0NzU0ODQxOTkyMTg4LDE0LjgxNjc5MDU4NTU1OTA4MSwxMy40NDIxMDkxNDE5OTIxODcsMTQuODU3NzI4OTg1NTU5MDgxUTEzLjQ2OTQ2MzM0MTk5MjE4NywxNC44OTg2NjcyODU1NTkwODIsMTMuNTA0Mjc4MTQxOTkyMTg4LDE0LjkzMzQ4MjE4NTU1OTA4MlExMy41MzkwOTMwNDE5OTIxODcsMTQuOTY4Mjk2OTg1NTU5MDgyLDEzLjU4MDAzMDQ0MTk5MjE4OCwxNC45OTU2NTAyODU1NTkwODJRMTMuNjIwOTY3ODQxOTkyMTg4LDE1LjAyMzAwNDQ4NTU1OTA4MSwxMy42NjY0NTYyNDE5OTIxODgsMTUuMDQxODQ2Mjg1NTU5MDgyUTEzLjcxMTk0NDU0MTk5MjE4NywxNS4wNjA2ODc5ODU1NTkwODEsMTMuNzYwMjMzODQxOTkyMTg3LDE1LjA3MDI5MzM4NTU1OTA4M1ExMy44MDg1MjQxNDE5OTIxODcsMTUuMDc5ODk5Nzg1NTU5MDgyLDEzLjg1Nzc2MDQ0MTk5MjE4OCwxNS4wNzk4OTk3ODU1NTkwODJRMTMuOTA2OTk1NzQxOTkyMTg3LDE1LjA3OTg5OTc4NTU1OTA4MiwxMy45NTUyODUwNDE5OTIxODcsMTUuMDcwMjkzMzg1NTU5MDgzUTE0LjAwMzU3NDM0MTk5MjE4OCwxNS4wNjA2ODc5ODU1NTkwODEsMTQuMDQ5MDYyNzQxOTkyMTg4LDE1LjA0MTg0NjI4NTU1OTA4MlExNC4wOTQ1NTEwNDE5OTIxODcsMTUuMDIzMDA0NDg1NTU5MDgxLDE0LjEzNTQ4ODU0MTk5MjE4NywxNC45OTU2NTAyODU1NTkwODJRMTQuMTc2NDI3ODQxOTkyMTg4LDE0Ljk2ODI5Njk4NTU1OTA4MiwxNC4yMTEyNDI2NDE5OTIxODgsMTQuOTMzNDgyMTg1NTU5MDgyUTE0LjI0NjA1NzU0MTk5MjE4NywxNC44OTg2NjcyODU1NTkwODIsMTQuMjczNDExNzQxOTkyMTg4LDE0Ljg1NzcyODk4NTU1OTA4MVExNC4zMDA3NjUwNDE5OTIxODgsMTQuODE2NzkwNTg1NTU5MDgxLDE0LjMxOTYwNjc0MTk5MjE4NywxNC43NzEzMDIxODU1NTkwODFRMTQuMzM4NDQ5NDQxOTkyMTg4LDE0LjcyNTgxMzg4NTU1OTA4MywxNC4zNDgwNTQ4NDE5OTIxODcsMTQuNjc3NTI0NTg1NTU5MDgyUTE0LjM1NzY2MDM0MTk5MjE4NywxNC42MjkyMzUyODU1NTkwODIsMTQuMzU3NjYwMzQxOTkyMTg3LDE0LjU3OTk5OTg4NTU1OTA4M0wxNC4zNTc3NjA0NDE5OTIxODgsMTQuNTc5OTk5ODg1NTU5MDgzTDE0LjM1Nzc2MDQ0MTk5MjE4OCwxMy42MjAwMDA4ODU1NTkwODFRMTQuMzU3NzYwNDQxOTkyMTg4LDEwLjA5OTE4NDQ4NTU1OTA4MiwxMS44NjgxNjc4NDE5OTIxODgsNy42MDk1OTI3ODU1NTkwODJROS4zNzg1NzQ4NDE5OTIxODcsNS4xMjAwMDAxODU1NTkwODIsNS44NTc3NTkwNDE5OTIxODcsNS4xMTk5OTk4ODU1NTkwODJMNC41NDkxMTgwNDE5OTIxODc1LDUuMTE5OTk5ODg1NTU5MDgyTDQuNTQ5MTE4MDQxOTkyMTg3NSw1LjEyMDA5OTg3NTU1OTA4MlE0LjQ5OTg4MjE4Nzk5MjE4NzUsNS4xMjAwOTk5MDU1NTkwODIsNC40NTE1OTIzOTI5OTIxODgsNS4xMjk3MDUzMzU1NTkwODJRNC40MDMzMDI1OTE5OTIxODgsNS4xMzkzMTA3NzU1NTkwODIsNC4zNTc4MTQ2MTE5OTIxODgsNS4xNTgxNTI1MjU1NTkwODJRNC4zMTIzMjY2MTE5OTIxODcsNS4xNzY5OTQyNjU1NTkwODIsNC4yNzEzODg1MDE5OTIxODcsNS4yMDQzNDgyMzU1NTkwODJRNC4yMzA0NTAzOTE5OTIxODcsNS4yMzE3MDIyMDU1NTkwODIsNC4xOTU2MzUzODE5OTIxODcsNS4yNjY1MTcyMjU1NTkwODJRNC4xNjA4MjAzNjE5OTIxODc1LDUuMzAxMzMyMjM1NTU5MDgyLDQuMTMzNDY2NDIxOTkyMTg3LDUuMzQyMjcwMzQ1NTU5MDgyUTQuMTA2MTEyNDUxOTkyMTg3LDUuMzgzMjA4NDU1NTU5MDgyLDQuMDg3MjcwNzAxOTkyMTg3LDUuNDI4Njk2NDU1NTU5MDgyUTQuMDY4NDI4OTMxOTkyMTg3LDUuNDc0MTg0NDM1NTU5MDgyLDQuMDU4ODIzNDkxOTkyMTg4LDUuNTIyNDc0MjM2NTU5MDgyUTQuMDQ5MjE4MDYxOTkyMTg3LDUuNTcwNzY0MDMxNTU5MDgyLDQuMDQ5MjE4MDMxOTkyMTg3LDUuNjE5OTk5ODg1NTU5MDgyUTQuMDQ5MjE4MDYxOTkyMTg3LDUuNjY5MjM1NzM5NTU5MDgyLDQuMDU4ODIzNDkxOTkyMTg4LDUuNzE3NTI1NTM0NTU5MDgyUTQuMDY4NDI4OTMxOTkyMTg3LDUuNzY1ODE1MzM1NTU5MDgyLDQuMDg3MjcwNjgxOTkyMTg3LDUuODExMzAzMzE1NTU5MDgyUTQuMTA2MTEyNDIxOTkyMTg3LDUuODU2NzkxMzE1NTU5MDgyLDQuMTMzNDY2MzkxOTkyMTg3NSw1Ljg5NzcyOTQyNTU1OTA4MlE0LjE2MDgyMDM2MTk5MjE4NzUsNS45Mzg2Njc1MzU1NTkwODIsNC4xOTU2MzUzODE5OTIxODcsNS45NzM0ODI1NDU1NTkwODJRNC4yMzA0NTAzOTE5OTIxODcsNi4wMDgyOTc1NjU1NTkwODIsNC4yNzEzODg1MDE5OTIxODcsNi4wMzU2NTE1MDU1NTkwODJRNC4zMTIzMjY2MTE5OTIxODcsNi4wNjMwMDU0NzU1NTkwODIsNC4zNTc4MTQ2MTE5OTIxODgsNi4wODE4NDcyMjU1NTkwODJRNC40MDMzMDI1OTE5OTIxODgsNi4xMDA2ODg5OTU1NTkwODIsNC40NTE1OTIzOTI5OTIxODgsNi4xMTAyOTQ0MzU1NTkwODJRNC40OTk4ODIxODc5OTIxODc1LDYuMTE5ODk5ODY1NTU5MDgyLDQuNTQ5MTE4MDQxOTkyMTg3NSw2LjExOTg5OTg5NTU1OTA4Mkw0LjU0OTExODA0MTk5MjE4NzUsNi4xMTk5OTk4ODU1NTkwODJMNS44NTc3NTkwNDE5OTIxODcsNi4xMTk5OTk4ODU1NTkwODJROC45NjQzNjA3NDE5OTIxODgsNi4xMTk5OTk4NTU1NTkwODIsMTEuMTYxMDYwODQxOTkyMTg3LDguMzE2Njk5NDg1NTU5MDgzUTEzLjM1Nzc2MDQ0MTk5MjE4OCwxMC41MTMzOTkwODU1NTkwODMsMTMuMzU3NzYwNDQxOTkyMTg4LDEzLjYyMDAwMDg4NTU1OTA4MVoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzQ3NDc0NyIgZmlsbC1vcGFjaXR5PSIxIi8+PC9nPjxnPjxwYXRoIGQ9Ik01Ljg3NjI1MDIyNSwwLjg0MjQ2MjQxOTk5OTk5OTlRNS45NDE2NDEzMjUsMC43NzI5MjY3MjAwMDAwMDAxLDUuOTc2ODEwOTI1LDAuNjg0MTg5NjE5OTk5OTk5OVE2LjAxMTk4MTAyNSwwLjU5NTQ1MjUyNSw2LjAxMTk4MDUyNSwwLjVRNi4wMTE5ODAwMjUsMC40NTA3NjQxNDYsNi4wMDIzNzQ2MjUsMC40MDI0NzQzNTFRNS45OTI3NjkyMjUsMC4zNTQxODQ1NSw1Ljk3MzkyNzUyNSwwLjMwODY5NjU3UTUuOTU1MDg1NzI1LDAuMjYzMjA4NTcsNS45Mjc3MzIwMjUsMC4yMjIyNzA0NlE1LjkwMDM3ODIyNSwwLjE4MTMzMjM0OTk5OTk5OTk4LDUuODY1NTYzNDI1LDAuMTQ2NTE3MzRRNS44MzA3NDgxMjUsMC4xMTE3MDIzMjAwMDAwMDAwMiw1Ljc4OTgwOTcyNSwwLjA4NDM0ODM4UTUuNzQ4ODcxODI1LDAuMDU2OTk0NDA5OTk5OTk5OTk1LDUuNzAzMzgzNDI1LDAuMDM4MTUyNjYwMDAwMDAwMDA1UTUuNjU3ODk1NTI1LDAuMDE5MzEwODkwMDAwMDAwMDI1LDUuNjA5NjA1ODI1LDAuMDA5NzA1NDUwMDAwMDAwMDA0UTUuNTYxMzE2NTI1LDAuMDAwMTAwMDE5OTk5OTk5OTc4NDYsNS41MTIwODA2MjUsMC4wMDAwOTk5ODk5OTk5OTk5OTQyNVE1LjQwODY0ODUyNSwwLjAwMDA5OTk4OTk5OTk5OTk5NDI1LDUuMzEzNzA4ODI1LDAuMDQxMTQ0MzRRNS4yMTg3NjkwMjUsMC4wODIxODg3Mjk5OTk5OTk5OSw1LjE0NzkxMTAyNSwwLjE1NzUzNzU4TDUuMTQ3ODM4MTI1LDAuMTU3NDY4ODg5OTk5OTk5OTdMMC4wMDAzNDA0MDQ5OTk5OTk5ODgxLDUuNjMxMjM4TDUuMTU5MDcyNDI1LDEwLjc3NDA5N0w1LjE1OTE0MzQyNSwxMC43NzQwMjZRNS4yMjk0MjIxMjUsMTAuODQ0MDg4LDUuMzIxMTMzNjI1LDEwLjg4MTk5NFE1LjQxMjg0NDYyNSwxMC45MTk4OTksNS41MTIwODA2MjUsMTAuOTE5ODk5UTUuNTYxMzE2NTI1LDEwLjkxOTg5OSw1LjYwOTYwNTgyNSwxMC45MTAyOTRRNS42NTc4OTU1MjUsMTAuOTAwNjg4LDUuNzAzMzgzNDI1LDEwLjg4MTg0NVE1Ljc0ODg3MTgyNSwxMC44NjMwMDUsNS43ODk4MDk3MjUsMTAuODM1NjVRNS44MzA3NDc2MjUsMTAuODA4Mjk2LDUuODY1NTYyOTI1LDEwLjc3MzQ4MVE1LjkwMDM3NzcyNSwxMC43Mzg2NjcsNS45Mjc3MzE1MjUsMTAuNjk3NzI3UTUuOTU1MDg1NzI1LDEwLjY1Njc5LDUuOTczOTI3NTI1LDEwLjYxMTMwMVE1Ljk5Mjc2OTIyNSwxMC41NjU4MTMsNi4wMDIzNzQ2MjUsMTAuNTE3NTI0UTYuMDExOTgwMDI1LDEwLjQ2OTIzNDUsNi4wMTE5ODA1MjUsMTAuNDE5OTk5MVE2LjAxMTk4MDUyNSwxMC4zMjAzNjIxLDUuOTczNzgwNjI1LDEwLjIyODM0MDFRNS45MzU1ODAyMjUsMTAuMTM2MzE3Myw1Ljg2NTAxODMyNSwxMC4wNjU5NzIzTDUuODY1MDg4OTI1LDEwLjA2NTkwMThMMS4zOTQxOTEwMjUsNS42MDg3NjA0TDUuODc2MzIzMjI1LDAuODQyNTMxMTFMNS44NzYyNTAyMjUsMC44NDI0NjI0MTk5OTk5OTk5WiIgZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSIjNDc0NzQ3IiBmaWxsLW9wYWNpdHk9IjEiLz48L2c+PC9nPjwvc3ZnPg==');
145
- }
146
- .lf-control-redo {
147
- background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSJub25lIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNS4yMTc3NzM0Mzc1IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTUuMjE3NzczNDM3NSAxNiI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoLTEsMCwwLDEsMjkuMDQxMDE1NjI1LDApIj48Zz48cGF0aCBkPSJNMjguMDQwOTIwMjY0NjYwNjQ1LDEzLjk1NDU0NjAyMTA1NzEyOEwyOC4wNDA5MjAyNjQ2NjA2NDUsMTUuNDk5OTk5MDIxMDU3MTI4TDI4LjA0MTAyMDM2NDY2MDY0NiwxNS40OTk5OTkwMjEwNTcxMjhRMjguMDQxMDIwMzY0NjYwNjQ2LDE1LjU0OTIzNTMyMTA1NzEyOSwyOC4wNTA2MjU3NjQ2NjA2NDQsMTUuNTk3NTI0NjIxMDU3MTNRMjguMDYwMjMwMjY0NjYwNjQ2LDE1LjY0NTgxMzkyMTA1NzEzLDI4LjA3OTA3MTk2NDY2MDY0MiwxNS42OTEzMDEzMjEwNTcxMjlRMjguMDk3OTEyNzY0NjYwNjQ1LDE1LjczNjc4ODcyMTA1NzEzLDI4LjEyNTI2NzA2NDY2MDY0NCwxNS43Nzc3MjcxMjEwNTcxM1EyOC4xNTI2MjEyNjQ2NjA2NDUsMTUuODE4NjY1NTIxMDU3MTMsMjguMTg3NDM3MDY0NjYwNjQyLDE1Ljg1MzQ4MTMyMTA1NzEzUTI4LjIyMjI1MDk2NDY2MDY0NSwxNS44ODgyOTYxMjEwNTcxMywyOC4yNjMxODkzNjQ2NjA2NDcsMTUuOTE1NjUwMzIxMDU3MTI5UTI4LjMwNDEyNzY2NDY2MDY0NCwxNS45NDMwMDM2MjEwNTcxMjgsMjguMzQ5NjE2MDY0NjYwNjQ0LDE1Ljk2MTg0NTAyMTA1NzEzUTI4LjM5NTEwNDM2NDY2MDY0NiwxNS45ODA2ODcwMjEwNTcxMjksMjguNDQzMzkzNjY0NjYwNjQ3LDE1Ljk5MDI5MzAyMTA1NzEyOVEyOC40OTE2ODM5NjQ2NjA2NDUsMTUuOTk5ODk4MDIxMDU3MTMsMjguNTQwOTIwMjY0NjYwNjQ1LDE1Ljk5OTg5OTAyMTA1NzEyOVEyOC41OTAxNTU1NjQ2NjA2NDUsMTUuOTk5ODk4MDIxMDU3MTMsMjguNjM4NDQ0NDY0NjYwNjQ0LDE1Ljk5MDI5MzAyMTA1NzEyOVEyOC42ODY3MzQ0NjQ2NjA2NDUsMTUuOTgwNjg3MDIxMDU3MTI5LDI4LjczMjIyMjQ2NDY2MDY0NCwxNS45NjE4NDQwMjEwNTcxMjlRMjguNzc3NzEwNDY0NjYwNjQzLDE1Ljk0MzAwMzYyMTA1NzEyOCwyOC44MTg2NDk0NjQ2NjA2NDUsMTUuOTE1NjQ5NDIxMDU3MTI5UTI4Ljg1OTU4NzQ2NDY2MDY0NSwxNS44ODgyOTYxMjEwNTcxMywyOC44OTQ0MDI0NjQ2NjA2NDQsMTUuODUzNDgxMzIxMDU3MTNRMjguOTI5MjE3NDY0NjYwNjQ1LDE1LjgxODY2NTUyMTA1NzEzLDI4Ljk1NjU3MDQ2NDY2MDY0MywxNS43Nzc3MjcxMjEwNTcxM1EyOC45ODM5MjQ0NjQ2NjA2NDYsMTUuNzM2Nzg4NzIxMDU3MTMsMjkuMDAyNzY2NDY0NjYwNjQ1LDE1LjY5MTMwMTMyMTA1NzEyOVEyOS4wMjE2MDg0NjQ2NjA2NDUsMTUuNjQ1ODEzOTIxMDU3MTMsMjkuMDMxMjEzNDY0NjYwNjQ1LDE1LjU5NzUyNDYyMTA1NzEzUTI5LjA0MDgyMDQ2NDY2MDY0NCwxNS41NDkyMzUzMjEwNTcxMjksMjkuMDQwODIwNDY0NjYwNjQ0LDE1LjQ5OTk5OTAyMTA1NzEyOEwyOS4wNDA5MjA0NjQ2NjA2NDQsMTUuNDk5OTk5MDIxMDU3MTI4TDI5LjA0MDkyMDQ2NDY2MDY0NCwxMy45NTQ1NDYwMjEwNTcxMjhRMjkuMDQwOTIwNDY0NjYwNjQ0LDEwLjQzMzczMDEyMTA1NzEyOCwyNi41NTEzMjgxNjQ2NjA2NDYsNy45NDQxMzgwMjEwNTcxMjlRMjQuMDYxNzM2MDY0NjYwNjQzLDUuNDU0NTQ1NjUxMDU3MTI5LDIwLjU0MDkxOTE2NDY2MDY0Myw1LjQ1NDU0NTU5MTA1NzEyOUwxOC42MjQwNDM0NjQ2NjA2NDUsNS40NTQ1NDUwMjEwNTcxMjlMMTguNjI0MDQzNDY0NjYwNjQ1LDUuNDU0NjQ1MDExMDU3MTI5UTE4LjU3NDgwNzYxMDY2MDY0NSw1LjQ1NDY0NTA0MTA1NzEyODYsMTguNTI2NTE3ODE1NjYwNjQzLDUuNDY0MjUwNDcxMDU3MTI5UTE4LjQ3ODIyODAxNDY2MDY0NCw1LjQ3Mzg1NTkxMTA1NzEyOSwxOC40MzI3NDAwMzQ2NjA2NDMsNS40OTI2OTc2NjEwNTcxMjlRMTguMzg3MjUyMDM0NjYwNjQ0LDUuNTExNTM5NDAxMDU3MTI5LDE4LjM0NjMxMzkyNDY2MDY0NSw1LjUzODg5MzM3MTA1NzEyOVExOC4zMDUzNzU4MTQ2NjA2NDYsNS41NjYyNDczNDEwNTcxMjksMTguMjcwNTYwODA0NjYwNjQ0LDUuNjAxMDYyMzYxMDU3MTI5UTE4LjIzNTc0NTc4NDY2MDY0NCw1LjYzNTg3NzM3MTA1NzEyOSwxOC4yMDgzOTE4NDQ2NjA2NDYsNS42NzY4MTU0ODEwNTcxMjlRMTguMTgxMDM3ODc0NjYwNjQ2LDUuNzE3NzUzNTkxMDU3MTI5LDE4LjE2MjE5NjEyNDY2MDY0Niw1Ljc2MzI0MTU5MTA1NzEyOVExOC4xNDMzNTQzNTQ2NjA2NDQsNS44MDg3Mjk1NzEwNTcxMjksMTguMTMzNzQ4OTE0NjYwNjQzLDUuODU3MDE5MzcyMDU3MTI5UTE4LjEyNDE0MzQ4NDY2MDY0Niw1LjkwNTMwOTE2NzA1NzEyOSwxOC4xMjQxNDM0NTQ2NjA2NDMsNS45NTQ1NDUwMjEwNTcxMjlRMTguMTI0MTQzNDg0NjYwNjQ2LDYuMDAzNzgwODc1MDU3MTI5LDE4LjEzMzc0ODkxNDY2MDY0Myw2LjA1MjA3MDY3MDA1NzEyODVRMTguMTQzMzU0MzU0NjYwNjQ0LDYuMTAwMzYwNDcxMDU3MTI5LDE4LjE2MjE5NjEwNDY2MDY0NCw2LjE0NTg0ODQ1MTA1NzEyODVRMTguMTgxMDM3ODQ0NjYwNjQ0LDYuMTkxMzM2NDUxMDU3MTI5LDE4LjIwODM5MTgxNDY2MDY0NCw2LjIzMjI3NDU2MTA1NzEyOVExOC4yMzU3NDU3ODQ2NjA2NDQsNi4yNzMyMTI2NzEwNTcxMjksMTguMjcwNTYwODA0NjYwNjQ0LDYuMzA4MDI3NjgxMDU3MTI5UTE4LjMwNTM3NTgxNDY2MDY0Niw2LjM0Mjg0MjcwMTA1NzEyOSwxOC4zNDYzMTM5MjQ2NjA2NDUsNi4zNzAxOTY2NDEwNTcxMjlRMTguMzg3MjUyMDM0NjYwNjQ0LDYuMzk3NTUwNjExMDU3MTI5LDE4LjQzMjc0MDAzNDY2MDY0Myw2LjQxNjM5MjM2MTA1NzEyOVExOC40NzgyMjgwMTQ2NjA2NDQsNi40MzUyMzQxMzEwNTcxMjksMTguNTI2NTE3ODE1NjYwNjQzLDYuNDQ0ODM5NTcxMDU3MTI5UTE4LjU3NDgwNzYxMDY2MDY0NSw2LjQ1NDQ0NTAwMTA1NzEyOSwxOC42MjQwNDM0NjQ2NjA2NDUsNi40NTQ0NDUwMzEwNTcxMjlMMTguNjI0MDQzNDY0NjYwNjQ1LDYuNDU0NTQ1MDIxMDU3MTI5TDIwLjU0MDkxOTE2NDY2MDY0Myw2LjQ1NDU0NTYyMTA1NzEyOVEyMy42NDc1MjE5NjQ2NjA2NDQsNi40NTQ1NDUzODEwNTcxMjg1LDI1Ljg0NDIyMTU2NDY2MDY0Myw4LjY1MTI0NDYyMTA1NzEzUTI4LjA0MDkyMDI2NDY2MDY0NSwxMC44NDc5NDM4MjEwNTcxMjksMjguMDQwOTIwMjY0NjYwNjQ1LDEzLjk1NDU0NjAyMTA1NzEyOFoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzQ3NDc0NyIgZmlsbC1vcGFjaXR5PSIxIi8+PC9nPjxnPjxwYXRoIGQ9Ik0yMC4wMTQwOTY3MTI1LDAuODQyNDYyNDE5OTk5OTk5OVEyMC4wNzk0ODc4MTI1LDAuNzcyOTI2NzIwMDAwMDAwMSwyMC4xMTQ2NTc0MTI1LDAuNjg0MTg5NjE5OTk5OTk5OVEyMC4xNDk4MjcwMTI1LDAuNTk1NDUyNTI1LDIwLjE0OTgyNzAxMjUsMC41UTIwLjE0OTgyNjUxMjUsMC40NTA3NjQxNDYsMjAuMTQwMjIwNjEyNTAwMDAyLDAuNDAyNDc0MzUxUTIwLjEzMDYxNTIxMjUsMC4zNTQxODQ1NSwyMC4xMTE3NzQwMTI1LDAuMzA4Njk2NTdRMjAuMDkyOTMxNzEyNSwwLjI2MzIwODU3LDIwLjA2NTU3ODAxMjQ5OTk5OCwwLjIyMjI3MDQ2UTIwLjAzODIyNDIxMjUsMC4xODEzMzIzNDk5OTk5OTk5OCwyMC4wMDM0MDk0MTI0OTk5OTgsMC4xNDY1MTczNFExOS45Njg1OTQxMTI1LDAuMTExNzAyMzIwMDAwMDAwMDIsMTkuOTI3NjU1NzEyNSwwLjA4NDM0ODM4UTE5Ljg4NjcxNzgxMjUsMC4wNTY5OTQ0MDk5OTk5OTk5OTUsMTkuODQxMjI5OTEyNSwwLjAzODE1MjY2MDAwMDAwMDAwNVExOS43OTU3NDIwMTI1LDAuMDE5MzEwODkwMDAwMDAwMDI1LDE5Ljc0NzQ1MjcxMjUsMC4wMDk3MDU0NTAwMDAwMDAwMDRRMTkuNjk5MTYyNTEyNSwwLjAwMDEwMDAxOTk5OTk5OTk3ODQ2LDE5LjY0OTkyNzExMjUwMDAwMiwwLjAwMDA5OTk4OTk5OTk5OTk5NDI1UTE5LjU0NjQ5NDkxMjUwMDAwMiwwLjAwMDA5OTk4OTk5OTk5OTk5NDI1LDE5LjQ1MTU1NTIxMjUsMC4wNDExNDQyNzk5OTk5OTk5OFExOS4zNTY2MTUxMTI1MDAwMDIsMC4wODIxODg2MSwxOS4yODU3NTgwMTI1LDAuMTU3NTM3MzQwMDAwMDAwMDNMMTkuMjg1Njg1MDEyNSwwLjE1NzQ2ODg4OTk5OTk5OTk3TDEzLjgyMzU4MjQxMjUsNS45NjU3ODM2TDE5LjI5NjkxODkxMjUsMTEuNDIyMjc3TDE5LjI5Njk4OTQxMjUsMTEuNDIyMjA3UTE5LjM2NzI2NzYxMjUsMTEuNDkyMjY5LDE5LjQ1ODk3OTExMjUsMTEuNTMwMTc0UTE5LjU1MDY5MDYxMjUsMTEuNTY4MDc5LDE5LjY0OTkyNzExMjUwMDAwMiwxMS41NjgwOFExOS42OTkxNjI1MTI1LDExLjU2ODA3OSwxOS43NDc0NTIyMTI1LDExLjU1ODQ3NFExOS43OTU3NDIwMTI1LDExLjU0ODg2OCwxOS44NDEyMjk5MTI1LDExLjUzMDAyNlExOS44ODY3MTc4MTI1LDExLjUxMTE4NSwxOS45Mjc2NTYyMTI1LDExLjQ4MzgzUTE5Ljk2ODU5NDExMjUsMTEuNDU2NDc2LDIwLjAwMzQwOTQxMjQ5OTk5OCwxMS40MjE2NjJRMjAuMDM4MjI0MjEyNSwxMS4zODY4NDcsMjAuMDY1NTc4MDEyNDk5OTk4LDExLjM0NTkwOVEyMC4wOTI5MzE3MTI1LDExLjMwNDk3LDIwLjExMTc3MzUxMjUsMTEuMjU5NDgyUTIwLjEzMDYxNTIxMjUsMTEuMjEzOTk1LDIwLjE0MDIyMDYxMjUwMDAwMiwxMS4xNjU3MDZRMjAuMTQ5ODI2NTEyNSwxMS4xMTc0MTYsMjAuMTQ5ODI3MDEyNSwxMS4wNjgxOFEyMC4xNDk4MjYwMTI1LDEwLjk2ODU0MiwyMC4xMTE2MjY2MTI1LDEwLjg3NjUyUTIwLjA3MzQyNjIxMjUsMTAuNzg0NDk3LDIwLjAwMjg2NDgxMjUsMTAuNzE0MTUzTDIwLjAwMjkzNDkxMjUsMTAuNzE0MDgzTDE1LjIxNzQzMjk3MjUsNS45NDMzMDU1TDIwLjAxNDE2OTcxMjUsMC44NDI1MzExMUwyMC4wMTQwOTY3MTI1LDAuODQyNDYyNDE5OTk5OTk5OVoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzQ3NDc0NyIgZmlsbC1vcGFjaXR5PSIxIi8+PC9nPjwvZz48L3N2Zz4=');
148
- }
149
- /* menu */
150
- .lf-menu {
151
- position: absolute;
152
- z-index: 999;
153
- display: none;
154
- width: 150px;
155
- margin: 0 0 0 10px;
156
- padding: 6px;
157
- background: #fff;
158
- border: 1px solid #efefee;
159
- border-radius: 8px;
160
- }
161
- .lf-menu-dark {
162
- color: #fff;
163
- background: #33353a;
164
- }
165
- .lf-menu > li {
166
- position: relative;
167
- padding: 6px;
168
- font-size: 12px;
169
- line-height: 14px;
170
- list-style: none;
171
- cursor: pointer;
172
- transition: all 120ms ease-in-out;
173
- }
174
- .lf-menu-item {
175
- display: flex;
176
- gap: 4px;
177
- align-items: center;
178
- justify-content: flex-start;
179
- list-style: none;
180
- border-radius: 6px;
181
- }
182
- .lf-menu-item:hover {
183
- background: #f3f3f3;
184
- }
185
- .lf-menu-item__disabled {
186
- color: #aaa;
187
- cursor: not-allowed !important;
188
- opacity: 0.88;
189
- pointer-events: inherit !important;
190
- }
191
- .lf-menu-item__disabled:hover {
192
- background: #fff;
193
- }
194
- /* dndpanel */
195
- .lf-dndpanel {
196
- position: absolute;
197
- z-index: 999;
198
- margin: 5px;
199
- padding: 10px 4px;
200
- background: rgba(255, 255, 255, 0.8);
201
- border-radius: 8px;
202
- box-shadow: 0 0 4px 1px rgba(217, 217, 217, 0.5);
203
- }
204
- .lf-dnd-item {
205
- margin-top: 5px;
206
- padding: 6px;
207
- font-size: 14px;
208
- text-align: center;
209
- }
210
- .lf-dnd-item.disabled > div {
211
- color: #a8abb2;
212
- cursor: not-allowed;
213
- }
214
- .lf-dnd-shape {
215
- width: 36px;
216
- height: 36px;
217
- margin: 0 auto;
218
- background-repeat: no-repeat;
219
- background-position: center;
220
- background-size: contain;
221
- border-radius: 8px;
222
- cursor: grab;
223
- opacity: 0.99;
224
- }
225
- /* 选区 */
226
- .lf-selection-select {
227
- position: absolute;
228
- border: 2px dashed #ffab03;
229
- }
230
- /* 缩略图 */
231
- .lf-mini-map {
232
- position: absolute;
233
- padding: 8px;
234
- padding-top: 28px;
235
- overflow: hidden;
236
- background: #fefefe;
237
- border-radius: 8px;
238
- box-shadow: 0 0 10px 1px rgba(183, 183, 183, 0.5);
239
- }
240
- .lf-mini-map .lf-graph {
241
- width: 100% !important;
242
- height: 100% !important;
243
- }
244
- .lf-mini-map-graph {
245
- position: relative;
246
- overflow: hidden;
247
- border-radius: 8px;
248
- }
249
- .lf-minimap-viewport {
250
- position: absolute;
251
- top: 0;
252
- left: 0;
253
- background-color: rgba(217, 217, 217, 0.5);
254
- border-radius: 2px;
255
- cursor: grab;
256
- }
257
- .lf-mini-map-header {
258
- position: absolute;
259
- top: 0;
260
- right: 0;
261
- left: 0;
262
- margin: 4px 6px;
263
- line-height: 18px;
264
- }
265
- .lf-mini-map-close {
266
- position: absolute;
267
- top: 6px;
268
- right: 2px;
269
- width: 18px;
270
- height: 18px;
271
- color: #474747a0;
272
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACL0lEQVRoQ+1YT2vUQBT/vS+Smc3u0ZtfwA+hUKEttIIVbMEWrGAL3UItqKCCCipooS3Ynu29ePfqLcnO5Nov0NsrWbc0myxtJpNmGZw9LZk37/3+vCTzQnD8R47jhycwbQe9A94BSwV8C1kKaL3dO2AtoWWC/8+BMJB9ItwHcM6MX0mqtm1EzOU7Y8bvJFV9k3zGDnSFPAVw76oIb8ZavzIpehnbE+Ilg/J7/8Za3THJVYfAHwB3x4owXsSpemNSuCs6zwEu7rl9AmEgt4hQspkIa5FS76uQCKV8RoxSLDP6pi1p7EAGsCvEBkA7ZbC0EuvBp+tI9IR4yqBSDIE3Iq13qwiQj6lFYEgikOsgvC4VJDyJlfo6CUg3kI9BmLBG67EevDUFn8XXJpBt7km5yox3xcIMfpRo/SN/PZRygRhj17J1JqwmSn2oA96awL926iwD/LEIgJjmo3RwMCQadGaZePh/3H5ejrT+XBd8IwSGJKRcAuPLhHZ6mIkMxlFpjbEUp+qbDfjGCGSJQiEWCfS9CiAmLCZK7VWJvSnG6h4oJu8FnTkm3r+uKDHNReng8CZgVdcbJTBqpxkwfk4EQJiJlTquCq5KnCeQV8npFnL6Jnb6Mer0i8zpo4TThzmnj9OjGXardDBrZqDZbmMmdnukdH6oL3xWOTG1vNh6oxn7AYB2PqtUOWC1GdP4Ya5N8I0ONG0Dv6znHZiW8t6BaSvvHfAONKSAf4w2JGTtNBey0xBAkjSEzwAAAABJRU5ErkJggg==');
273
- background-size: contain;
274
- cursor: pointer;
275
- }
276
- .lf-mini-map-close:hover {
277
- color: #474747;
278
- }
279
- .lf-mini-map-no-header {
280
- padding-top: 8px;
281
- }
282
- .lf-mini-map-no-header .lf-mini-map-header {
283
- display: none;
284
- }
285
- .lf-mini-map-no-close-icon .lf-mini-map-close {
286
- display: none;
287
- }
288
- /* 节点调整 */
289
- .lf-resize-control-0 {
290
- cursor: nw-resize;
291
- }
292
- .lf-resize-control-1 {
293
- cursor: ne-resize;
294
- }
295
- .lf-resize-control-2 {
296
- cursor: se-resize;
297
- }
298
- .lf-resize-control-3 {
299
- cursor: sw-resize;
300
- }
301
- /* context-menu */
302
- .lf-inner-context {
303
- position: absolute;
304
- display: none;
305
- /* display: flex; */
306
- flex-flow: column wrap;
307
- height: 90px;
308
- }
309
- .lf-context-item {
310
- box-sizing: content-box;
311
- width: 20px;
312
- height: 20px;
313
- margin: 0 2px 2px 0;
314
- padding: 2px 3px;
315
- }
316
- .lf-context-item:hover {
317
- background: rgba(201, 217, 216, 0.5);
318
- }
319
- .lf-context-img {
320
- width: 20px;
321
- height: 20px;
322
- cursor: pointer;
323
- }
324
- /* mind map */
325
- .lf-mindmap_addIcon {
326
- margin-top: 10px;
327
- }
328
- `
@@ -1,282 +0,0 @@
1
- /**
2
- * 自动布局插件
3
- * 依赖flowPath插件
4
- * 未完善
5
- */
6
-
7
- import LogicFlow from '@logicflow/core'
8
-
9
- const POSITION_TYPE = {
10
- LEFT_TOP: -1,
11
- LEFT: 0,
12
- LEFT_BOTTOM: 1,
13
- }
14
-
15
- class AutoLayout {
16
- lf: LogicFlow
17
- levelHeight: any[] = []
18
- newNodeMap: Map<string, any> = new Map()
19
- trunk: any[]
20
- static pluginName = 'AutoLayout'
21
-
22
- constructor({ lf }) {
23
- this.lf = lf
24
- /**
25
- * 用于记录上一次调用layout时计算出的trunk
26
- * 当旧trunk和新trunk长度一致时,用于选择旧trunk,
27
- * a->b->c->d
28
- * |->e
29
- * e后面新增f节点时候,旧逻辑会返回新trunk[a,b,e,f]
30
- * 界面布局变成
31
- * a->b->e->f
32
- * |->c->d
33
- * 其实只想要这样 尽量少变化
34
- * a->b->c->d
35
- * |->e->f
36
- * */
37
- this.trunk = []
38
- // 给lf添加方法
39
- lf.layout = (startNodeType) => {
40
- const data = this.lf.getGraphRawData()
41
- this.lf.setStartNodeType(startNodeType)
42
- const path = this.lf.getPathes()
43
- this.levelHeight = []
44
- this.newNodeMap = new Map()
45
- return this.layout(data, path)
46
- }
47
- }
48
-
49
- // 1) 将所有节点和边的坐标删除。节点上的文本改成偏移量。
50
- // 2) 找到长度最长的路径,作为基准路径。
51
- // 3) 依次计算
52
- // 拿到最长的路径。
53
- // nodes: [], edges: [],
54
- layout(data, path) {
55
- let trunk: any = [] // TODO: 完成类型定义
56
- path.forEach((p) => {
57
- const { elements } = p
58
- if (elements.length > trunk.length) {
59
- trunk = elements
60
- } else if (elements.length === trunk.length) {
61
- // 考虑是否替换为旧的trunk
62
- if (JSON.stringify(elements) === JSON.stringify(this.trunk)) {
63
- trunk = this.trunk
64
- }
65
- }
66
- })
67
- // 记录上一次trunk
68
- this.trunk = trunk
69
- const nodeMap = this.formatData(data)
70
- const newGraphData = {
71
- nodes: [],
72
- edges: [],
73
- }
74
- // 从后向前布局
75
- for (let i = trunk.length - 1; i >= 0; i--) {
76
- this.setNodePosition(trunk[i], nodeMap, newGraphData, i, 1)
77
- }
78
- this.lf.graphModel.graphDataToModel(newGraphData)
79
- }
80
-
81
- // 1) 需要知道下一层级已占高度。
82
- // 2) 基于自己的高度,判断下一个层级的高度
83
- private setNodePosition(nodeId, nodeMap, newGraphData, xLevel, yLevel) {
84
- const n = nodeMap[nodeId]
85
- const { text, type, next, properties } = n
86
- const x = xLevel * 160 + 40
87
- const y = yLevel * 120
88
- const nodeData = {
89
- id: nodeId,
90
- x,
91
- text,
92
- y,
93
- type,
94
- properties,
95
- }
96
- if (text && typeof text === 'object') {
97
- nodeData.text = {
98
- ...text,
99
- x: x + text.x,
100
- y: y + text.y,
101
- }
102
- }
103
- this.newNodeMap.set(nodeData.id, {
104
- x: nodeData.x,
105
- y: nodeData.y,
106
- type,
107
- })
108
- newGraphData.nodes.push(nodeData)
109
- n.isFixed = true
110
- this.addLevelHeight(xLevel, 1)
111
- if (next && next.length > 0) {
112
- next.forEach((nextInfo) => {
113
- // 如果下一个节点还没有被定位,那么设置其定位
114
- const n1 = nodeMap[nextInfo.nodeId]
115
- if (!n1.isFixed) {
116
- const nextYLevel = this.getLevelHeight(xLevel + 1)
117
- this.addLevelHeight(xLevel, 1)
118
- this.setNodePosition(
119
- nextInfo.nodeId,
120
- nodeMap,
121
- newGraphData,
122
- xLevel + 1,
123
- nextYLevel + 1,
124
- )
125
- } else {
126
- // todo: 如果下一个节点是已经定位的,则需要考虑边的规避
127
- }
128
- // 设置连接到下一个节点的边
129
- // 1) 起始位置为source节点的下方,结束位置为target节点左边。
130
- // 2) 计算折线
131
- newGraphData.edges.push({
132
- id: nextInfo.edgeId,
133
- type: nextInfo.edgeType,
134
- sourceNodeId: nodeId,
135
- targetNodeId: nextInfo.nodeId,
136
- properties: nextInfo.properties,
137
- text: nextInfo.text,
138
- ...this.getEdgeDataPoints(nodeId, nextInfo.nodeId),
139
- })
140
- })
141
- }
142
- return nodeData
143
- }
144
-
145
- /**
146
- * 1. 处理边上的文本
147
- * 2. 主干节点之间直接的边
148
- * 3. 一个节点被多个连接作为目标节点,合理分配锚点位置。
149
- */
150
- private getEdgeDataPoints(sourceNodeId, targetNodeId) {
151
- const source = this.newNodeMap.get(sourceNodeId)
152
- const target = this.newNodeMap.get(targetNodeId)
153
- const { width, height } = this.getShape(sourceNodeId)
154
- const { width: targetWidth, height: targetHeight } =
155
- this.getShape(targetNodeId)
156
- const positionType = this.getRelativePosition(source, target)
157
- const startPoint = {
158
- x: source.x,
159
- y: source.y,
160
- }
161
- const endPoint = {
162
- x: target.x,
163
- y: target.y,
164
- }
165
- switch (positionType) {
166
- case POSITION_TYPE.LEFT:
167
- startPoint.x = source.x + width / 2
168
- endPoint.x = target.x - targetWidth / 2
169
- break
170
- case POSITION_TYPE.LEFT_TOP:
171
- startPoint.y = source.y + height / 2
172
- endPoint.x = target.x - targetWidth / 2
173
- break
174
- case POSITION_TYPE.LEFT_BOTTOM:
175
- startPoint.x = source.x + width / 2
176
- endPoint.y = target.y + targetHeight / 2
177
- break
178
- default:
179
- break
180
- }
181
- return {
182
- startPoint,
183
- endPoint,
184
- }
185
- }
186
-
187
- /**
188
- * 获取边的连接节点相对位置。
189
- * source一定在target左边。
190
- * 1. 如果source和target在同一x, y坐标内容。
191
- * 2. 如果source在target左上方。
192
- * 3. 如果source在target左下方。
193
- */
194
- private getRelativePosition(source, target) {
195
- const { y } = source
196
- const { y: y1 } = target
197
- let positionType
198
- if (y < y1) {
199
- positionType = -1
200
- } else if (y === y1) {
201
- positionType = 0
202
- } else {
203
- positionType = 1
204
- }
205
- return positionType
206
- }
207
-
208
- /**
209
- * 获取边节点图形的宽高。
210
- */
211
- private getShape(nodeId) {
212
- const nodeModel = this.lf.getNodeModelById(nodeId)
213
-
214
- return {
215
- height: nodeModel?.height ?? 0,
216
- width: nodeModel?.width ?? 0,
217
- }
218
- }
219
-
220
- private formatData(data) {
221
- const nodeMap = data.nodes.reduce((nMap, node) => {
222
- const { type, properties, text, x, y } = node
223
- if (text && typeof text === 'object') {
224
- // 坐标转换为偏移量
225
- text.x = text.x - x
226
- text.y = text.y - y
227
- }
228
- nMap[node.id] = {
229
- type,
230
- properties,
231
- text,
232
- prev: [],
233
- next: [],
234
- }
235
- return nMap
236
- }, {})
237
-
238
- data.edges.forEach((edge) => {
239
- const { sourceNodeId, targetNodeId, id, properties, text } = edge
240
- let newText = text
241
- if (typeof text === 'object') {
242
- newText = text.value
243
- }
244
- nodeMap[sourceNodeId].next.push({
245
- edgeId: id,
246
- nodeId: targetNodeId,
247
- edgeType: edge.type,
248
- properties,
249
- text: newText,
250
- })
251
- nodeMap[targetNodeId].prev.push({
252
- edgeId: id,
253
- nodeId: sourceNodeId,
254
- properties,
255
- text: newText,
256
- })
257
- })
258
- return nodeMap
259
- }
260
-
261
- addLevelHeight(level, height = 1, isNegative = false) {
262
- let l = this.levelHeight[level]
263
- if (!l) {
264
- l = {
265
- positiveHeight: 0,
266
- negativeHeight: 0,
267
- }
268
- this.levelHeight[level] = l
269
- }
270
- isNegative ? (l.negativeHeight -= height) : (l.positiveHeight += height)
271
- }
272
-
273
- getLevelHeight(level, isNegative = false) {
274
- const val = this.levelHeight[level]
275
- if (!val) {
276
- return 0
277
- }
278
- return isNegative ? val.negativeHeight : val.positiveHeight
279
- }
280
- }
281
-
282
- export { AutoLayout }