@vtx/components 3.1.61 → 3.1.63

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 (127) hide show
  1. package/lib/_util/useColSize.js.map +1 -1
  2. package/lib/style/index.less +2 -2
  3. package/lib/style/themes/compact.less +1 -1
  4. package/lib/style/themes/dark.less +9 -9
  5. package/lib/style/themes/default.less +7 -7
  6. package/lib/style/themes/index.less +1 -1
  7. package/lib/style/themes/variable.less +5 -5
  8. package/lib/vtx-color-picker/index.js.map +1 -1
  9. package/lib/vtx-color-picker/style/css.js.map +1 -1
  10. package/lib/vtx-color-picker/style/index.js.map +1 -1
  11. package/lib/vtx-combogrid/Combogrid.js.map +1 -1
  12. package/lib/vtx-combogrid/index.js.map +1 -1
  13. package/lib/vtx-combogrid/style/css.js.map +1 -1
  14. package/lib/vtx-combogrid/style/index.js.map +1 -1
  15. package/lib/vtx-datagrid/Alert.js.map +1 -1
  16. package/lib/vtx-datagrid/ColumnSetting.js +18 -12
  17. package/lib/vtx-datagrid/ColumnSetting.js.map +1 -1
  18. package/lib/vtx-datagrid/index.js +10 -8
  19. package/lib/vtx-datagrid/index.js.map +1 -1
  20. package/lib/vtx-datagrid/renderColumnButtons.js.map +1 -1
  21. package/lib/vtx-datagrid/style/css.js.map +1 -1
  22. package/lib/vtx-datagrid/style/index.js.map +1 -1
  23. package/lib/vtx-date-picker/QdatePicker.js.map +1 -1
  24. package/lib/vtx-date-picker/generatePicker.js.map +1 -1
  25. package/lib/vtx-date-picker/index.js.map +1 -1
  26. package/lib/vtx-date-picker/style/css.js.map +1 -1
  27. package/lib/vtx-date-picker/style/index.js.map +1 -1
  28. package/lib/vtx-date-picker/style/index.less +39 -39
  29. package/lib/vtx-editor/index.js.map +1 -1
  30. package/lib/vtx-editor/style/css.js.map +1 -1
  31. package/lib/vtx-editor/style/index.js.map +1 -1
  32. package/lib/vtx-editor/style/index.less +8 -8
  33. package/lib/vtx-ellipsis-text/index.js.map +1 -1
  34. package/lib/vtx-ellipsis-text/style/css.js.map +1 -1
  35. package/lib/vtx-ellipsis-text/style/index.js.map +1 -1
  36. package/lib/vtx-ellipsis-text/style/index.less +13 -13
  37. package/lib/vtx-export/style/css.js.map +1 -1
  38. package/lib/vtx-export/style/index.js.map +1 -1
  39. package/lib/vtx-form-layout/Card.js.map +1 -1
  40. package/lib/vtx-form-layout/Divider.js.map +1 -1
  41. package/lib/vtx-form-layout/FormItem.js.map +1 -1
  42. package/lib/vtx-form-layout/Row.js.map +1 -1
  43. package/lib/vtx-form-layout/demo/Modal.less +43 -43
  44. package/lib/vtx-form-layout/index.js.map +1 -1
  45. package/lib/vtx-form-layout/style/css.js.map +1 -1
  46. package/lib/vtx-form-layout/style/index.js.map +1 -1
  47. package/lib/vtx-form-layout/style/index.less +216 -216
  48. package/lib/vtx-image/Image.js +40 -7
  49. package/lib/vtx-image/Image.js.map +1 -1
  50. package/lib/vtx-image/Preview.js.map +1 -1
  51. package/lib/vtx-image/PreviewGroup.js.map +1 -1
  52. package/lib/vtx-image/style/index.css +37 -6
  53. package/lib/vtx-image/style/index.less +24 -1
  54. package/lib/vtx-import/result.js.map +1 -1
  55. package/lib/vtx-import/style/css.js.map +1 -1
  56. package/lib/vtx-import/style/index.js.map +1 -1
  57. package/lib/vtx-import/style/index.less +8 -8
  58. package/lib/vtx-import2/CheckResult.js.map +1 -1
  59. package/lib/vtx-import2/Content.js.map +1 -1
  60. package/lib/vtx-import2/DownloadSvg.js.map +1 -1
  61. package/lib/vtx-import2/ImportResult.js.map +1 -1
  62. package/lib/vtx-import2/UploadSvg.js.map +1 -1
  63. package/lib/vtx-import2/style/css.js.map +1 -1
  64. package/lib/vtx-import2/style/index.js.map +1 -1
  65. package/lib/vtx-import2/style/index.less +102 -102
  66. package/lib/vtx-input/TextArea.js.map +1 -1
  67. package/lib/vtx-input/index.js.map +1 -1
  68. package/lib/vtx-input/style/css.js.map +1 -1
  69. package/lib/vtx-input/style/index.js.map +1 -1
  70. package/lib/vtx-input/style/index.less +24 -24
  71. package/lib/vtx-modal/index.js +2 -2
  72. package/lib/vtx-modal/index.js.map +1 -1
  73. package/lib/vtx-modal/style/css.js.map +1 -1
  74. package/lib/vtx-modal/style/index.js.map +1 -1
  75. package/lib/vtx-modal/style/index.less +101 -101
  76. package/lib/vtx-page-layout/Content.js.map +1 -1
  77. package/lib/vtx-page-layout/TableLayout.js +10 -10
  78. package/lib/vtx-page-layout/TableLayout.js.map +1 -1
  79. package/lib/vtx-page-layout/TableWrap.js.map +1 -1
  80. package/lib/vtx-page-layout/container.js.map +1 -1
  81. package/lib/vtx-page-layout/style/index.less +138 -138
  82. package/lib/vtx-scrollable-row/index.js.map +1 -1
  83. package/lib/vtx-scrollable-row/style/css.js.map +1 -1
  84. package/lib/vtx-scrollable-row/style/index.js.map +1 -1
  85. package/lib/vtx-scrollable-row/style/index.less +113 -113
  86. package/lib/vtx-search/VtxCol.js.map +1 -1
  87. package/lib/vtx-search/VtxRow.js.map +1 -1
  88. package/lib/vtx-search/style/css.js.map +1 -1
  89. package/lib/vtx-search/style/index.js.map +1 -1
  90. package/lib/vtx-search-map-input/index.js.map +1 -1
  91. package/lib/vtx-search-map-input/style/css.js.map +1 -1
  92. package/lib/vtx-search-map-input/style/index.js.map +1 -1
  93. package/lib/vtx-select/style/css.js.map +1 -1
  94. package/lib/vtx-select/style/index.js.map +1 -1
  95. package/lib/vtx-select/style/index.less +68 -68
  96. package/lib/vtx-signature/index.js.map +1 -1
  97. package/lib/vtx-signature/style/css.js.map +1 -1
  98. package/lib/vtx-signature/style/index.js.map +1 -1
  99. package/lib/vtx-signature/style/index.less +33 -33
  100. package/lib/vtx-split-pane/Resizer.js.map +1 -1
  101. package/lib/vtx-split-pane/SplitPane.js +4 -4
  102. package/lib/vtx-split-pane/SplitPane.js.map +1 -1
  103. package/lib/vtx-split-pane/style/css.js.map +1 -1
  104. package/lib/vtx-split-pane/style/index.js.map +1 -1
  105. package/lib/vtx-split-pane/style/index.less +76 -76
  106. package/lib/vtx-statistics-column/style/index.less +59 -59
  107. package/lib/vtx-time-picker/index.js.map +1 -1
  108. package/lib/vtx-time-picker/style/css.js.map +1 -1
  109. package/lib/vtx-time-picker/style/index.js.map +1 -1
  110. package/lib/vtx-upload/FilePreview.js.map +1 -1
  111. package/lib/vtx-upload/style/css.js.map +1 -1
  112. package/lib/vtx-upload/style/index.js.map +1 -1
  113. package/lib/vtx-upload/style/index.less +61 -61
  114. package/lib/vtx-wang-editor/style/css.js.map +1 -1
  115. package/lib/vtx-wang-editor/style/index.js.map +1 -1
  116. package/lib/vtx-wang-editor/style/index.less +12 -12
  117. package/lib/vtx-wang-editor/wangEditorUtil.js.map +1 -1
  118. package/lib/vtx-ztree/index.js +2 -2
  119. package/lib/vtx-ztree/index.js.map +1 -1
  120. package/lib/vtx-ztree/style/css.js.map +1 -1
  121. package/lib/vtx-ztree/style/index.js.map +1 -1
  122. package/lib/vtx-ztree/style/index.less +45 -45
  123. package/lib/vtx-ztree-select/index.js.map +1 -1
  124. package/lib/vtx-ztree-select/style/css.js.map +1 -1
  125. package/lib/vtx-ztree-select/style/index.js.map +1 -1
  126. package/lib/vtx-ztree-select/style/index.less +107 -107
  127. package/package.json +126 -126
@@ -1,216 +1,216 @@
1
- @import (reference) '~antd/lib/style/themes/index.less';
2
-
3
- @view-item-margin-bottom: 16px;
4
-
5
- .vtx-form-layout {
6
- position: relative;
7
- display: flex;
8
- flex-flow: row wrap;
9
- width: 100%;
10
- padding: 0 @padding-lg;
11
- overflow: hidden;
12
- .vtx-form-item {
13
- .ant-form-item-label {
14
- text-overflow: ellipsis;
15
- label::after {
16
- content: '';
17
- }
18
- }
19
- &-vertical {
20
- flex-direction: column;
21
- .ant-form-item-row {
22
- flex-direction: column;
23
- margin-bottom: 20px;
24
- }
25
- .ant-form-item-label,
26
- .ant-form-item-control {
27
- line-height: @line-height-base;
28
- }
29
- .ant-form-item-label {
30
- margin-bottom: 8px;
31
- padding: 0 !important;
32
- white-space: initial;
33
- text-align: left;
34
- label {
35
- height: auto;
36
- }
37
- }
38
- }
39
- .ant-form-item-explain {
40
- font-size: @font-size-sm;
41
- }
42
- &--inline {
43
- flex: none;
44
- flex-direction: row;
45
- flex-wrap: nowrap;
46
- margin-right: 16px;
47
- margin-bottom: @view-item-margin-bottom !important;
48
- row-gap: 0;
49
- .ant-form-item-control-input {
50
- min-height: auto;
51
- }
52
- .ant-form-item-label {
53
- flex: none;
54
- margin-bottom: 0;
55
- & > label {
56
- height: auto;
57
- color: fade(@text-color, 65);
58
- }
59
- label::after {
60
- content: ':';
61
- }
62
- }
63
- }
64
- &--view {
65
- .ant-form-item-label,
66
- .ant-form-item-control {
67
- line-height: @line-height-base;
68
- }
69
- .ant-form-item-label {
70
- & > label {
71
- height: auto;
72
- color: fade(@text-color, 65);
73
- }
74
- label::after {
75
- content: ':';
76
- }
77
- }
78
- .ant-form-item-control {
79
- color: @text-color;
80
- .ant-form-item-control-input {
81
- min-height: auto;
82
- }
83
- }
84
- }
85
- }
86
- .vtx-form-item-col {
87
- .ant-form-item {
88
- margin-bottom: 20px;
89
- }
90
- .vtx-form-item--view {
91
- margin-bottom: 0;
92
- }
93
- .ant-form-item-with-help {
94
- margin-bottom: 0;
95
- }
96
- .ant-form-item-explain {
97
- min-height: 20px;
98
- }
99
- }
100
- .vtx-form-card {
101
- position: relative;
102
- width: 100%;
103
- overflow: hidden;
104
- &-expand-icon {
105
- color: fade(@text-color, 75%);
106
- transition: transform 0.24s, -webkit-transform 0.24s;
107
- }
108
- .ant-card-body {
109
- padding: 0;
110
- }
111
- .ant-card-head-wrapper,
112
- .ant-card-head-title {
113
- font-weight: bold;
114
- line-height: 1;
115
- }
116
- &-content {
117
- display: flex;
118
- flex-flow: row wrap;
119
- padding: 20px 24px;
120
- padding-bottom: 0;
121
- &::after {
122
- clear: both;
123
- }
124
- &::before,
125
- &::after {
126
- display: table;
127
- content: '';
128
- }
129
- }
130
- &-content-hide {
131
- display: none;
132
- }
133
- }
134
- .vtx-form-card + .vtx-form-card {
135
- margin-top: 20px;
136
- }
137
- .vtx-form-pane {
138
- position: relative;
139
- box-sizing: border-box;
140
- width: 100%;
141
- &::after {
142
- clear: both;
143
- }
144
- &::before,
145
- &::after {
146
- display: table;
147
- content: '';
148
- }
149
- &-title {
150
- margin-bottom: 16px;
151
- overflow: hidden;
152
- color: @text-color;
153
- font-weight: 500;
154
- line-height: @line-height-base;
155
- list-style: none;
156
- }
157
- &-content {
158
- display: flex;
159
- flex-flow: row wrap;
160
- &::after {
161
- clear: both;
162
- }
163
- &::before,
164
- &::after {
165
- display: table;
166
- content: '';
167
- }
168
- }
169
- }
170
- .vtx-form-divider {
171
- margin: 0;
172
- margin-bottom: 20px;
173
- &--small {
174
- margin-bottom: 16px;
175
- }
176
- }
177
- .vtx-form-tabs {
178
- width: 100%;
179
- .ant-tabs-bar {
180
- padding-right: @padding-sm;
181
- padding-left: @padding-sm;
182
- border-bottom: none;
183
- }
184
- .ant-tabs-tab {
185
- padding: 5px 0 10px 0;
186
- }
187
- }
188
- &-vertical {
189
- padding: 0 @padding-sm;
190
- .vtx-form-item-col {
191
- padding-right: @padding-sm;
192
- padding-left: @padding-sm;
193
- }
194
- .vtx-form-card-content {
195
- padding: 20px @padding-sm;
196
- padding-bottom: 0;
197
- }
198
- .vtx-form-pane-title {
199
- padding: 0 @padding-sm;
200
- }
201
- }
202
- &-has-card {
203
- padding: 0;
204
- .vtx-form-tabs .ant-tabs-bar {
205
- padding: 0 @padding-lg;
206
- }
207
- }
208
- &-view {
209
- .vtx-form-item-col {
210
- margin-bottom: @view-item-margin-bottom;
211
- }
212
- .vtx-form-divider {
213
- margin-bottom: @view-item-margin-bottom;
214
- }
215
- }
216
- }
1
+ @import (reference) '~antd/lib/style/themes/index.less';
2
+
3
+ @view-item-margin-bottom: 16px;
4
+
5
+ .vtx-form-layout {
6
+ position: relative;
7
+ display: flex;
8
+ flex-flow: row wrap;
9
+ width: 100%;
10
+ padding: 0 @padding-lg;
11
+ overflow: hidden;
12
+ .vtx-form-item {
13
+ .ant-form-item-label {
14
+ text-overflow: ellipsis;
15
+ label::after {
16
+ content: '';
17
+ }
18
+ }
19
+ &-vertical {
20
+ flex-direction: column;
21
+ .ant-form-item-row {
22
+ flex-direction: column;
23
+ margin-bottom: 20px;
24
+ }
25
+ .ant-form-item-label,
26
+ .ant-form-item-control {
27
+ line-height: @line-height-base;
28
+ }
29
+ .ant-form-item-label {
30
+ margin-bottom: 8px;
31
+ padding: 0 !important;
32
+ white-space: initial;
33
+ text-align: left;
34
+ label {
35
+ height: auto;
36
+ }
37
+ }
38
+ }
39
+ .ant-form-item-explain {
40
+ font-size: @font-size-sm;
41
+ }
42
+ &--inline {
43
+ flex: none;
44
+ flex-direction: row;
45
+ flex-wrap: nowrap;
46
+ margin-right: 16px;
47
+ margin-bottom: @view-item-margin-bottom !important;
48
+ row-gap: 0;
49
+ .ant-form-item-control-input {
50
+ min-height: auto;
51
+ }
52
+ .ant-form-item-label {
53
+ flex: none;
54
+ margin-bottom: 0;
55
+ & > label {
56
+ height: auto;
57
+ color: fade(@text-color, 65);
58
+ }
59
+ label::after {
60
+ content: ':';
61
+ }
62
+ }
63
+ }
64
+ &--view {
65
+ .ant-form-item-label,
66
+ .ant-form-item-control {
67
+ line-height: @line-height-base;
68
+ }
69
+ .ant-form-item-label {
70
+ & > label {
71
+ height: auto;
72
+ color: fade(@text-color, 65);
73
+ }
74
+ label::after {
75
+ content: ':';
76
+ }
77
+ }
78
+ .ant-form-item-control {
79
+ color: @text-color;
80
+ .ant-form-item-control-input {
81
+ min-height: auto;
82
+ }
83
+ }
84
+ }
85
+ }
86
+ .vtx-form-item-col {
87
+ .ant-form-item {
88
+ margin-bottom: 20px;
89
+ }
90
+ .vtx-form-item--view {
91
+ margin-bottom: 0;
92
+ }
93
+ .ant-form-item-with-help {
94
+ margin-bottom: 0;
95
+ }
96
+ .ant-form-item-explain {
97
+ min-height: 20px;
98
+ }
99
+ }
100
+ .vtx-form-card {
101
+ position: relative;
102
+ width: 100%;
103
+ overflow: hidden;
104
+ &-expand-icon {
105
+ color: fade(@text-color, 75%);
106
+ transition: transform 0.24s, -webkit-transform 0.24s;
107
+ }
108
+ .ant-card-body {
109
+ padding: 0;
110
+ }
111
+ .ant-card-head-wrapper,
112
+ .ant-card-head-title {
113
+ font-weight: bold;
114
+ line-height: 1;
115
+ }
116
+ &-content {
117
+ display: flex;
118
+ flex-flow: row wrap;
119
+ padding: 20px 24px;
120
+ padding-bottom: 0;
121
+ &::after {
122
+ clear: both;
123
+ }
124
+ &::before,
125
+ &::after {
126
+ display: table;
127
+ content: '';
128
+ }
129
+ }
130
+ &-content-hide {
131
+ display: none;
132
+ }
133
+ }
134
+ .vtx-form-card + .vtx-form-card {
135
+ margin-top: 20px;
136
+ }
137
+ .vtx-form-pane {
138
+ position: relative;
139
+ box-sizing: border-box;
140
+ width: 100%;
141
+ &::after {
142
+ clear: both;
143
+ }
144
+ &::before,
145
+ &::after {
146
+ display: table;
147
+ content: '';
148
+ }
149
+ &-title {
150
+ margin-bottom: 16px;
151
+ overflow: hidden;
152
+ color: @text-color;
153
+ font-weight: 500;
154
+ line-height: @line-height-base;
155
+ list-style: none;
156
+ }
157
+ &-content {
158
+ display: flex;
159
+ flex-flow: row wrap;
160
+ &::after {
161
+ clear: both;
162
+ }
163
+ &::before,
164
+ &::after {
165
+ display: table;
166
+ content: '';
167
+ }
168
+ }
169
+ }
170
+ .vtx-form-divider {
171
+ margin: 0;
172
+ margin-bottom: 20px;
173
+ &--small {
174
+ margin-bottom: 16px;
175
+ }
176
+ }
177
+ .vtx-form-tabs {
178
+ width: 100%;
179
+ .ant-tabs-bar {
180
+ padding-right: @padding-sm;
181
+ padding-left: @padding-sm;
182
+ border-bottom: none;
183
+ }
184
+ .ant-tabs-tab {
185
+ padding: 5px 0 10px 0;
186
+ }
187
+ }
188
+ &-vertical {
189
+ padding: 0 @padding-sm;
190
+ .vtx-form-item-col {
191
+ padding-right: @padding-sm;
192
+ padding-left: @padding-sm;
193
+ }
194
+ .vtx-form-card-content {
195
+ padding: 20px @padding-sm;
196
+ padding-bottom: 0;
197
+ }
198
+ .vtx-form-pane-title {
199
+ padding: 0 @padding-sm;
200
+ }
201
+ }
202
+ &-has-card {
203
+ padding: 0;
204
+ .vtx-form-tabs .ant-tabs-bar {
205
+ padding: 0 @padding-lg;
206
+ }
207
+ }
208
+ &-view {
209
+ .vtx-form-item-col {
210
+ margin-bottom: @view-item-margin-bottom;
211
+ }
212
+ .vtx-form-divider {
213
+ margin-bottom: @view-item-margin-bottom;
214
+ }
215
+ }
216
+ }
@@ -19,12 +19,20 @@ var _PreviewGroup = _interopRequireWildcard(require("./PreviewGroup"));
19
19
 
20
20
  var _useSet3 = _interopRequireDefault(require("../_util/useSet"));
21
21
 
22
+ var _UndoOutlined = _interopRequireDefault(require("@ant-design/icons/UndoOutlined"));
23
+
24
+ var _RedoOutlined = _interopRequireDefault(require("@ant-design/icons/RedoOutlined"));
25
+
22
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
27
 
24
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
29
 
26
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
31
 
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
+
28
36
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
37
 
30
38
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -63,7 +71,8 @@ function VtxImage(props) {
63
71
  viewerVisible: false,
64
72
  // 是否查看
65
73
  visible: false,
66
- photo: undefined
74
+ photo: undefined,
75
+ rotate: 0
67
76
  }),
68
77
  _useSet2 = _slicedToArray(_useSet, 2),
69
78
  state = _useSet2[0],
@@ -79,7 +88,8 @@ function VtxImage(props) {
79
88
  _props$preview = props.preview,
80
89
  preview = _props$preview === void 0 ? true : _props$preview,
81
90
  className = props.className,
82
- style = props.style,
91
+ _props$style = props.style,
92
+ style = _props$style === void 0 ? {} : _props$style,
83
93
  src = props.src,
84
94
  thumb = props.thumb,
85
95
  alt = props.alt,
@@ -94,7 +104,9 @@ function VtxImage(props) {
94
104
  _onClick = props.onClick,
95
105
  aspectFit = props.aspectFit,
96
106
  _props$isDark = props.isDark,
97
- isDark = _props$isDark === void 0 ? false : _props$isDark;
107
+ isDark = _props$isDark === void 0 ? false : _props$isDark,
108
+ _props$showTool = props.showTool,
109
+ showTool = _props$showTool === void 0 ? false : _props$showTool;
98
110
 
99
111
  var _useContext = (0, _react.useContext)(_PreviewGroup.context),
100
112
  isPreviewGroup = _useContext.isPreviewGroup,
@@ -114,12 +126,22 @@ function VtxImage(props) {
114
126
  alt: alt
115
127
  });
116
128
  }
117
- }, [src]); // 图片props属性
129
+ }, [src]);
130
+
131
+ function rotateImage(isPlus) {
132
+ var rotate = isPlus ? state.rotate + 90 : state.rotate - 90;
133
+ setState({
134
+ rotate: rotate
135
+ });
136
+ } // 图片props属性
137
+
118
138
 
119
139
  var imgProps = {
120
140
  src: thumb || src,
121
141
  className: className,
122
- style: style,
142
+ style: _objectSpread(_objectSpread({}, style), {}, {
143
+ transform: "rotateZ(".concat(state.rotate, "deg)")
144
+ }),
123
145
  alt: alt,
124
146
  onClick: function onClick() {
125
147
  if (!src || isError) {
@@ -196,7 +218,17 @@ function VtxImage(props) {
196
218
  if (src && !isError && aspectFit) {
197
219
  imgRender = /*#__PURE__*/_react["default"].createElement("div", {
198
220
  className: (0, _classnames2["default"])("".concat(prefixCls, "-aspectFit"), _defineProperty({}, "".concat(prefixCls, "-preview"), preview))
199
- }, /*#__PURE__*/_react["default"].createElement("img", imgProps));
221
+ }, /*#__PURE__*/_react["default"].createElement("img", imgProps), showTool && /*#__PURE__*/_react["default"].createElement("div", {
222
+ className: (0, _classnames2["default"])("".concat(prefixCls, "-tool"))
223
+ }, /*#__PURE__*/_react["default"].createElement(_UndoOutlined["default"], {
224
+ onClick: function onClick() {
225
+ rotateImage(false);
226
+ }
227
+ }), /*#__PURE__*/_react["default"].createElement(_RedoOutlined["default"], {
228
+ onClick: function onClick() {
229
+ rotateImage(true);
230
+ }
231
+ })));
200
232
  }
201
233
 
202
234
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, imgRender, !isPreviewGroup && preview && /*#__PURE__*/_react["default"].createElement(_Preview["default"], {
@@ -224,7 +256,8 @@ VtxImage.propTypes = {
224
256
  errorText: _propTypes["default"].string,
225
257
  onClick: _propTypes["default"].func,
226
258
  aspectFit: _propTypes["default"].bool,
227
- isDark: _propTypes["default"].bool
259
+ isDark: _propTypes["default"].bool,
260
+ showTool: _propTypes["default"].bool
228
261
  };
229
262
  VtxImage.setImageConfig = setImageConfig;
230
263
 
@@ -1 +1 @@
1
- {"version":3,"file":"Image.js","names":["defaultEmptyImageSrc","defaultErrorImageSrc","defaultEmptyText","defaultErrorText","uuid","VtxImage","props","React","useState","currentId","useSet","isError","isEmptyImageError","isErrorImageError","viewerVisible","visible","photo","undefined","state","setState","prefixCls","preview","className","style","src","thumb","alt","emptyImageSrc","errorImageSrc","emptyText","errorText","onClick","aspectFit","isDark","useContext","context","isPreviewGroup","setCurrent","setGroupShowPreview","setShowPreview","registerImage","useEffect","id","imgProps","onError","imgRender","classnames","propTypes","PropTypes","string","object","bool","func","setImageConfig","options","PreviewGroup","VtxImagePreview","Preview"],"sources":["vtx-image/Image.jsx"],"sourcesContent":["import React, { useEffect, useContext } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Preview from './Preview';\r\nimport PreviewGroup, { context } from './PreviewGroup';\r\nimport useSet from '../_util/useSet';\r\n\r\nlet defaultEmptyImageSrc = '';\r\nlet defaultErrorImageSrc = '';\r\nlet defaultEmptyText = '暂无图片';\r\nlet defaultErrorText = '图片出错';\r\n\r\nlet uuid = 0;\r\n\r\nfunction VtxImage(props) {\r\n const [currentId] = React.useState(() => {\r\n uuid += 1;\r\n return uuid;\r\n });\r\n\r\n const [state, setState] = useSet({\r\n isError: false, // 图片是否加载失败\r\n isEmptyImageError: false, // 空白图片是否加载失败\r\n isErrorImageError: false, // 报错图片是否加载失败\r\n viewerVisible: false, // 是否查看\r\n visible: false,\r\n photo: undefined,\r\n });\r\n const { isError, isEmptyImageError, isErrorImageError, visible, photo } = state;\r\n\r\n const {\r\n prefixCls = 'vtx-image',\r\n preview = true,\r\n className,\r\n style,\r\n src,\r\n thumb,\r\n alt,\r\n emptyImageSrc = defaultEmptyImageSrc,\r\n errorImageSrc = defaultErrorImageSrc,\r\n emptyText = defaultEmptyText,\r\n errorText = defaultErrorText,\r\n onClick,\r\n aspectFit,\r\n isDark = false,\r\n } = props;\r\n\r\n const {\r\n isPreviewGroup,\r\n setCurrent,\r\n setShowPreview: setGroupShowPreview,\r\n registerImage,\r\n } = useContext(context);\r\n\r\n useEffect(() => {\r\n setState({\r\n isError: false,\r\n });\r\n if (isPreviewGroup && preview) {\r\n registerImage({ id: currentId, src, alt });\r\n }\r\n }, [src]);\r\n\r\n // 图片props属性\r\n const imgProps = {\r\n src: thumb || src,\r\n className,\r\n style,\r\n alt,\r\n onClick: () => {\r\n if (!src || isError) {\r\n return null;\r\n }\r\n onClick && onClick();\r\n if (preview) {\r\n if (isPreviewGroup) {\r\n setCurrent(currentId);\r\n setGroupShowPreview(true);\r\n } else {\r\n setState({\r\n visible: true,\r\n photo: {\r\n src,\r\n alt,\r\n },\r\n });\r\n }\r\n }\r\n },\r\n onError: () => {\r\n setState({\r\n isError: true,\r\n });\r\n },\r\n };\r\n\r\n // 无图片\r\n if (!src) {\r\n // 有替代图片\r\n if (emptyImageSrc && !isEmptyImageError) {\r\n imgProps.src = emptyImageSrc;\r\n imgProps.onError = () => {\r\n setState({ isEmptyImageError: true });\r\n };\r\n } else {\r\n // 没有替代图片或替代图片无法加载\r\n return (\r\n <div className={`${prefixCls}-nodata${isDark ? '-dark' : ''}`} style={style}>\r\n <p>{emptyText}</p>\r\n </div>\r\n );\r\n }\r\n }\r\n\r\n // 图片出错\r\n if (isError) {\r\n if (errorImageSrc && !isErrorImageError) {\r\n imgProps['data-error-img'] = src;\r\n imgProps.src = errorImageSrc;\r\n imgProps.onError = () => {\r\n setState({ isErrorImageError: true });\r\n };\r\n } else {\r\n // 无法加载报错图片\r\n return (\r\n <div className={`${prefixCls}-error${isDark ? '-dark' : ''}`} data-error-img={src} style={style}>\r\n <p>{errorText}</p>\r\n </div>\r\n );\r\n }\r\n }\r\n\r\n let imgRender = <img {...imgProps} />;\r\n // 缩放\r\n if (src && !isError && aspectFit) {\r\n imgRender = (\r\n <div\r\n className={classnames(`${prefixCls}-aspectFit`, {\r\n [`${prefixCls}-preview`]: preview,\r\n })}\r\n >\r\n <img {...imgProps} />\r\n </div>\r\n );\r\n }\r\n return (\r\n <>\r\n {imgRender}\r\n {!isPreviewGroup && preview && (\r\n <Preview\r\n visible={visible}\r\n photo={photo}\r\n onClose={() => setState({ visible: false })}\r\n />\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nVtxImage.propTypes = {\r\n prefixCls: PropTypes.string,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n preview: PropTypes.bool,\r\n src: PropTypes.string,\r\n thumb: PropTypes.string,\r\n alt: PropTypes.string,\r\n emptyImageSrc: PropTypes.string,\r\n errorImageSrc: PropTypes.string,\r\n emptyText: PropTypes.string,\r\n errorText: PropTypes.string,\r\n onClick: PropTypes.func,\r\n aspectFit: PropTypes.bool,\r\n isDark: PropTypes.bool,\r\n};\r\n\r\nVtxImage.setImageConfig = setImageConfig;\r\n\r\nfunction setImageConfig(options) {\r\n const { emptyImageSrc, errorImageSrc, emptyText, errorText } = options;\r\n\r\n if (emptyImageSrc !== undefined) {\r\n defaultEmptyImageSrc = emptyImageSrc;\r\n }\r\n if (errorImageSrc !== undefined) {\r\n defaultErrorImageSrc = errorImageSrc;\r\n }\r\n if (emptyText !== undefined) {\r\n defaultEmptyText = emptyText;\r\n }\r\n if (errorText !== undefined) {\r\n defaultErrorText = errorText;\r\n }\r\n}\r\n\r\nVtxImage.PreviewGroup = PreviewGroup;\r\nVtxImage.VtxImagePreview = Preview;\r\n\r\nexport default VtxImage;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"Image.js","names":["defaultEmptyImageSrc","defaultErrorImageSrc","defaultEmptyText","defaultErrorText","uuid","VtxImage","props","React","useState","currentId","useSet","isError","isEmptyImageError","isErrorImageError","viewerVisible","visible","photo","undefined","rotate","state","setState","prefixCls","preview","className","style","src","thumb","alt","emptyImageSrc","errorImageSrc","emptyText","errorText","onClick","aspectFit","isDark","showTool","useContext","context","isPreviewGroup","setCurrent","setGroupShowPreview","setShowPreview","registerImage","useEffect","id","rotateImage","isPlus","imgProps","transform","onError","imgRender","classnames","propTypes","PropTypes","string","object","bool","func","setImageConfig","options","PreviewGroup","VtxImagePreview","Preview"],"sources":["vtx-image/Image.jsx"],"sourcesContent":["import React, { useEffect, useContext } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Preview from './Preview';\r\nimport PreviewGroup, { context } from './PreviewGroup';\r\nimport useSet from '../_util/useSet';\r\n\r\nimport UndoOutlined from '@ant-design/icons/UndoOutlined';\r\nimport RedoOutlined from '@ant-design/icons/RedoOutlined';\r\n\r\nlet defaultEmptyImageSrc = '';\r\nlet defaultErrorImageSrc = '';\r\nlet defaultEmptyText = '暂无图片';\r\nlet defaultErrorText = '图片出错';\r\n\r\nlet uuid = 0;\r\n\r\nfunction VtxImage(props) {\r\n const [currentId] = React.useState(() => {\r\n uuid += 1;\r\n return uuid;\r\n });\r\n\r\n const [state, setState] = useSet({\r\n isError: false, // 图片是否加载失败\r\n isEmptyImageError: false, // 空白图片是否加载失败\r\n isErrorImageError: false, // 报错图片是否加载失败\r\n viewerVisible: false, // 是否查看\r\n visible: false,\r\n photo: undefined,\r\n rotate: 0\r\n });\r\n const { isError, isEmptyImageError, isErrorImageError, visible, photo } = state;\r\n\r\n const {\r\n prefixCls = 'vtx-image',\r\n preview = true,\r\n className,\r\n style = {},\r\n src,\r\n thumb,\r\n alt,\r\n emptyImageSrc = defaultEmptyImageSrc,\r\n errorImageSrc = defaultErrorImageSrc,\r\n emptyText = defaultEmptyText,\r\n errorText = defaultErrorText,\r\n onClick,\r\n aspectFit,\r\n isDark = false,\r\n showTool = false,\r\n } = props;\r\n\r\n const {\r\n isPreviewGroup,\r\n setCurrent,\r\n setShowPreview: setGroupShowPreview,\r\n registerImage,\r\n } = useContext(context);\r\n\r\n useEffect(() => {\r\n setState({\r\n isError: false,\r\n });\r\n if (isPreviewGroup && preview) {\r\n registerImage({ id: currentId, src, alt });\r\n }\r\n }, [src]);\r\n\r\n function rotateImage(isPlus) {\r\n let rotate = isPlus ? (state.rotate+90) : (state.rotate-90)\r\n setState({rotate: rotate})\r\n }\r\n\r\n // 图片props属性\r\n const imgProps = {\r\n src: thumb || src,\r\n className,\r\n style: {\r\n ...style,\r\n transform: `rotateZ(${state.rotate}deg)`\r\n },\r\n alt,\r\n onClick: () => {\r\n if (!src || isError) {\r\n return null;\r\n }\r\n onClick && onClick();\r\n if (preview) {\r\n if (isPreviewGroup) {\r\n setCurrent(currentId);\r\n setGroupShowPreview(true);\r\n } else {\r\n setState({\r\n visible: true,\r\n photo: {\r\n src,\r\n alt,\r\n },\r\n });\r\n }\r\n }\r\n },\r\n onError: () => {\r\n setState({\r\n isError: true,\r\n });\r\n },\r\n };\r\n\r\n // 无图片\r\n if (!src) {\r\n // 有替代图片\r\n if (emptyImageSrc && !isEmptyImageError) {\r\n imgProps.src = emptyImageSrc;\r\n imgProps.onError = () => {\r\n setState({ isEmptyImageError: true });\r\n };\r\n } else {\r\n // 没有替代图片或替代图片无法加载\r\n return (\r\n <div className={`${prefixCls}-nodata${isDark ? '-dark' : ''}`} style={style}>\r\n <p>{emptyText}</p>\r\n </div>\r\n );\r\n }\r\n }\r\n\r\n // 图片出错\r\n if (isError) {\r\n if (errorImageSrc && !isErrorImageError) {\r\n imgProps['data-error-img'] = src;\r\n imgProps.src = errorImageSrc;\r\n imgProps.onError = () => {\r\n setState({ isErrorImageError: true });\r\n };\r\n } else {\r\n // 无法加载报错图片\r\n return (\r\n <div className={`${prefixCls}-error${isDark ? '-dark' : ''}`} data-error-img={src} style={style}>\r\n <p>{errorText}</p>\r\n </div>\r\n );\r\n }\r\n }\r\n\r\n let imgRender = <img {...imgProps} />;\r\n \r\n // 缩放\r\n if (src && !isError && aspectFit) {\r\n imgRender = (\r\n <div\r\n className={classnames(`${prefixCls}-aspectFit`, {\r\n [`${prefixCls}-preview`]: preview,\r\n })}\r\n >\r\n <img {...imgProps} />\r\n {\r\n showTool && \r\n <div className={classnames(`${prefixCls}-tool`)}>\r\n <UndoOutlined onClick={()=>{rotateImage(false);}}/>\r\n <RedoOutlined onClick={()=>{rotateImage(true);}}/>\r\n </div>\r\n }\r\n </div>\r\n );\r\n }\r\n return (\r\n <>\r\n {imgRender}\r\n {!isPreviewGroup && preview && (\r\n <Preview\r\n visible={visible}\r\n photo={photo}\r\n onClose={() => setState({ visible: false })}\r\n />\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nVtxImage.propTypes = {\r\n prefixCls: PropTypes.string,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n preview: PropTypes.bool,\r\n src: PropTypes.string,\r\n thumb: PropTypes.string,\r\n alt: PropTypes.string,\r\n emptyImageSrc: PropTypes.string,\r\n errorImageSrc: PropTypes.string,\r\n emptyText: PropTypes.string,\r\n errorText: PropTypes.string,\r\n onClick: PropTypes.func,\r\n aspectFit: PropTypes.bool,\r\n isDark: PropTypes.bool,\r\n showTool: PropTypes.bool,\r\n};\r\n\r\nVtxImage.setImageConfig = setImageConfig;\r\n\r\nfunction setImageConfig(options) {\r\n const { emptyImageSrc, errorImageSrc, emptyText, errorText } = options;\r\n\r\n if (emptyImageSrc !== undefined) {\r\n defaultEmptyImageSrc = emptyImageSrc;\r\n }\r\n if (errorImageSrc !== undefined) {\r\n defaultErrorImageSrc = errorImageSrc;\r\n }\r\n if (emptyText !== undefined) {\r\n defaultEmptyText = emptyText;\r\n }\r\n if (errorText !== undefined) {\r\n defaultErrorText = errorText;\r\n }\r\n}\r\n\r\nVtxImage.PreviewGroup = PreviewGroup;\r\nVtxImage.VtxImagePreview = Preview;\r\n\r\nexport default VtxImage;\r\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAIA,oBAAoB,GAAG,EAA3B;AACA,IAAIC,oBAAoB,GAAG,EAA3B;AACA,IAAIC,gBAAgB,GAAG,MAAvB;AACA,IAAIC,gBAAgB,GAAG,MAAvB;AAEA,IAAIC,IAAI,GAAG,CAAX;;AAEA,SAASC,QAAT,CAAkBC,KAAlB,EAAyB;EACrB,sBAAoBC,iBAAA,CAAMC,QAAN,CAAe,YAAM;IACrCJ,IAAI,IAAI,CAAR;IACA,OAAOA,IAAP;EACH,CAHmB,CAApB;EAAA;EAAA,IAAOK,SAAP;;EAKA,cAA0B,IAAAC,mBAAA,EAAO;IAC7BC,OAAO,EAAE,KADoB;IACb;IAChBC,iBAAiB,EAAE,KAFU;IAEH;IAC1BC,iBAAiB,EAAE,KAHU;IAGH;IAC1BC,aAAa,EAAE,KAJc;IAIP;IACtBC,OAAO,EAAE,KALoB;IAM7BC,KAAK,EAAEC,SANsB;IAO7BC,MAAM,EAAE;EAPqB,CAAP,CAA1B;EAAA;EAAA,IAAOC,KAAP;EAAA,IAAcC,QAAd;;EASA,IAAQT,OAAR,GAA0EQ,KAA1E,CAAQR,OAAR;EAAA,IAAiBC,iBAAjB,GAA0EO,KAA1E,CAAiBP,iBAAjB;EAAA,IAAoCC,iBAApC,GAA0EM,KAA1E,CAAoCN,iBAApC;EAAA,IAAuDE,OAAvD,GAA0EI,KAA1E,CAAuDJ,OAAvD;EAAA,IAAgEC,KAAhE,GAA0EG,KAA1E,CAAgEH,KAAhE;EAEA,uBAgBIV,KAhBJ,CACIe,SADJ;EAAA,IACIA,SADJ,iCACgB,WADhB;EAAA,qBAgBIf,KAhBJ,CAEIgB,OAFJ;EAAA,IAEIA,OAFJ,+BAEc,IAFd;EAAA,IAGIC,SAHJ,GAgBIjB,KAhBJ,CAGIiB,SAHJ;EAAA,mBAgBIjB,KAhBJ,CAIIkB,KAJJ;EAAA,IAIIA,KAJJ,6BAIY,EAJZ;EAAA,IAKIC,GALJ,GAgBInB,KAhBJ,CAKImB,GALJ;EAAA,IAMIC,KANJ,GAgBIpB,KAhBJ,CAMIoB,KANJ;EAAA,IAOIC,GAPJ,GAgBIrB,KAhBJ,CAOIqB,GAPJ;EAAA,2BAgBIrB,KAhBJ,CAQIsB,aARJ;EAAA,IAQIA,aARJ,qCAQoB5B,oBARpB;EAAA,2BAgBIM,KAhBJ,CASIuB,aATJ;EAAA,IASIA,aATJ,qCASoB5B,oBATpB;EAAA,uBAgBIK,KAhBJ,CAUIwB,SAVJ;EAAA,IAUIA,SAVJ,iCAUgB5B,gBAVhB;EAAA,uBAgBII,KAhBJ,CAWIyB,SAXJ;EAAA,IAWIA,SAXJ,iCAWgB5B,gBAXhB;EAAA,IAYI6B,QAZJ,GAgBI1B,KAhBJ,CAYI0B,OAZJ;EAAA,IAaIC,SAbJ,GAgBI3B,KAhBJ,CAaI2B,SAbJ;EAAA,oBAgBI3B,KAhBJ,CAcI4B,MAdJ;EAAA,IAcIA,MAdJ,8BAca,KAdb;EAAA,sBAgBI5B,KAhBJ,CAeI6B,QAfJ;EAAA,IAeIA,QAfJ,gCAee,KAff;;EAkBA,kBAKI,IAAAC,iBAAA,EAAWC,qBAAX,CALJ;EAAA,IACIC,cADJ,eACIA,cADJ;EAAA,IAEIC,UAFJ,eAEIA,UAFJ;EAAA,IAGoBC,mBAHpB,eAGIC,cAHJ;EAAA,IAIIC,aAJJ,eAIIA,aAJJ;;EAOA,IAAAC,gBAAA,EAAU,YAAM;IACZvB,QAAQ,CAAC;MACLT,OAAO,EAAE;IADJ,CAAD,CAAR;;IAGA,IAAI2B,cAAc,IAAIhB,OAAtB,EAA+B;MAC3BoB,aAAa,CAAC;QAAEE,EAAE,EAAEnC,SAAN;QAAiBgB,GAAG,EAAHA,GAAjB;QAAsBE,GAAG,EAAHA;MAAtB,CAAD,CAAb;IACH;EACJ,CAPD,EAOG,CAACF,GAAD,CAPH;;EASA,SAASoB,WAAT,CAAqBC,MAArB,EAA6B;IACzB,IAAI5B,MAAM,GAAG4B,MAAM,GAAI3B,KAAK,CAACD,MAAN,GAAa,EAAjB,GAAwBC,KAAK,CAACD,MAAN,GAAa,EAAxD;IACAE,QAAQ,CAAC;MAACF,MAAM,EAAEA;IAAT,CAAD,CAAR;EACH,CAtDoB,CAwDrB;;;EACA,IAAM6B,QAAQ,GAAG;IACbtB,GAAG,EAAEC,KAAK,IAAID,GADD;IAEbF,SAAS,EAATA,SAFa;IAGbC,KAAK,kCACEA,KADF;MAEDwB,SAAS,oBAAa7B,KAAK,CAACD,MAAnB;IAFR,EAHQ;IAObS,GAAG,EAAHA,GAPa;IAQbK,OAAO,EAAE,mBAAM;MACX,IAAI,CAACP,GAAD,IAAQd,OAAZ,EAAqB;QACjB,OAAO,IAAP;MACH;;MACDqB,QAAO,IAAIA,QAAO,EAAlB;;MACA,IAAIV,OAAJ,EAAa;QACT,IAAIgB,cAAJ,EAAoB;UAChBC,UAAU,CAAC9B,SAAD,CAAV;UACA+B,mBAAmB,CAAC,IAAD,CAAnB;QACH,CAHD,MAGO;UACHpB,QAAQ,CAAC;YACLL,OAAO,EAAE,IADJ;YAELC,KAAK,EAAE;cACHS,GAAG,EAAHA,GADG;cAEHE,GAAG,EAAHA;YAFG;UAFF,CAAD,CAAR;QAOH;MACJ;IACJ,CA3BY;IA4BbsB,OAAO,EAAE,mBAAM;MACX7B,QAAQ,CAAC;QACLT,OAAO,EAAE;MADJ,CAAD,CAAR;IAGH;EAhCY,CAAjB,CAzDqB,CA4FrB;;EACA,IAAI,CAACc,GAAL,EAAU;IACN;IACA,IAAIG,aAAa,IAAI,CAAChB,iBAAtB,EAAyC;MACrCmC,QAAQ,CAACtB,GAAT,GAAeG,aAAf;;MACAmB,QAAQ,CAACE,OAAT,GAAmB,YAAM;QACrB7B,QAAQ,CAAC;UAAER,iBAAiB,EAAE;QAArB,CAAD,CAAR;MACH,CAFD;IAGH,CALD,MAKO;MACH;MACA,oBACI;QAAK,SAAS,YAAKS,SAAL,oBAAwBa,MAAM,GAAG,OAAH,GAAa,EAA3C,CAAd;QAA+D,KAAK,EAAEV;MAAtE,gBACI,2CAAIM,SAAJ,CADJ,CADJ;IAKH;EACJ,CA5GoB,CA8GrB;;;EACA,IAAInB,OAAJ,EAAa;IACT,IAAIkB,aAAa,IAAI,CAAChB,iBAAtB,EAAyC;MACrCkC,QAAQ,CAAC,gBAAD,CAAR,GAA6BtB,GAA7B;MACAsB,QAAQ,CAACtB,GAAT,GAAeI,aAAf;;MACAkB,QAAQ,CAACE,OAAT,GAAmB,YAAM;QACrB7B,QAAQ,CAAC;UAAEP,iBAAiB,EAAE;QAArB,CAAD,CAAR;MACH,CAFD;IAGH,CAND,MAMO;MACH;MACA,oBACI;QAAK,SAAS,YAAKQ,SAAL,mBAAuBa,MAAM,GAAG,OAAH,GAAa,EAA1C,CAAd;QAA8D,kBAAgBT,GAA9E;QAAmF,KAAK,EAAED;MAA1F,gBACI,2CAAIO,SAAJ,CADJ,CADJ;IAKH;EACJ;;EAED,IAAImB,SAAS,gBAAG,uCAASH,QAAT,CAAhB,CAhIqB,CAkIrB;;;EACA,IAAItB,GAAG,IAAI,CAACd,OAAR,IAAmBsB,SAAvB,EAAkC;IAC9BiB,SAAS,gBACL;MACI,SAAS,EAAE,IAAAC,uBAAA,YAAc9B,SAAd,+CACHA,SADG,eACmBC,OADnB;IADf,gBAKI,uCAASyB,QAAT,CALJ,EAOQZ,QAAQ,iBACR;MAAK,SAAS,EAAE,IAAAgB,uBAAA,YAAc9B,SAAd;IAAhB,gBACI,gCAAC,wBAAD;MAAc,OAAO,EAAE,mBAAI;QAACwB,WAAW,CAAC,KAAD,CAAX;MAAoB;IAAhD,EADJ,eAEI,gCAAC,wBAAD;MAAc,OAAO,EAAE,mBAAI;QAACA,WAAW,CAAC,IAAD,CAAX;MAAmB;IAA/C,EAFJ,CARR,CADJ;EAgBH;;EACD,oBACI,kEACKK,SADL,EAEK,CAACZ,cAAD,IAAmBhB,OAAnB,iBACG,gCAAC,mBAAD;IACI,OAAO,EAAEP,OADb;IAEI,KAAK,EAAEC,KAFX;IAGI,OAAO,EAAE;MAAA,OAAMI,QAAQ,CAAC;QAAEL,OAAO,EAAE;MAAX,CAAD,CAAd;IAAA;EAHb,EAHR,CADJ;AAYH;;AAEDV,QAAQ,CAAC+C,SAAT,GAAqB;EACjB/B,SAAS,EAAEgC,qBAAA,CAAUC,MADJ;EAEjB/B,SAAS,EAAE8B,qBAAA,CAAUC,MAFJ;EAGjB9B,KAAK,EAAE6B,qBAAA,CAAUE,MAHA;EAIjBjC,OAAO,EAAE+B,qBAAA,CAAUG,IAJF;EAKjB/B,GAAG,EAAE4B,qBAAA,CAAUC,MALE;EAMjB5B,KAAK,EAAE2B,qBAAA,CAAUC,MANA;EAOjB3B,GAAG,EAAE0B,qBAAA,CAAUC,MAPE;EAQjB1B,aAAa,EAAEyB,qBAAA,CAAUC,MARR;EASjBzB,aAAa,EAAEwB,qBAAA,CAAUC,MATR;EAUjBxB,SAAS,EAAEuB,qBAAA,CAAUC,MAVJ;EAWjBvB,SAAS,EAAEsB,qBAAA,CAAUC,MAXJ;EAYjBtB,OAAO,EAAEqB,qBAAA,CAAUI,IAZF;EAajBxB,SAAS,EAAEoB,qBAAA,CAAUG,IAbJ;EAcjBtB,MAAM,EAAEmB,qBAAA,CAAUG,IAdD;EAejBrB,QAAQ,EAAEkB,qBAAA,CAAUG;AAfH,CAArB;AAkBAnD,QAAQ,CAACqD,cAAT,GAA0BA,cAA1B;;AAEA,SAASA,cAAT,CAAwBC,OAAxB,EAAiC;EAC7B,IAAQ/B,aAAR,GAA+D+B,OAA/D,CAAQ/B,aAAR;EAAA,IAAuBC,aAAvB,GAA+D8B,OAA/D,CAAuB9B,aAAvB;EAAA,IAAsCC,SAAtC,GAA+D6B,OAA/D,CAAsC7B,SAAtC;EAAA,IAAiDC,SAAjD,GAA+D4B,OAA/D,CAAiD5B,SAAjD;;EAEA,IAAIH,aAAa,KAAKX,SAAtB,EAAiC;IAC7BjB,oBAAoB,GAAG4B,aAAvB;EACH;;EACD,IAAIC,aAAa,KAAKZ,SAAtB,EAAiC;IAC7BhB,oBAAoB,GAAG4B,aAAvB;EACH;;EACD,IAAIC,SAAS,KAAKb,SAAlB,EAA6B;IACzBf,gBAAgB,GAAG4B,SAAnB;EACH;;EACD,IAAIC,SAAS,KAAKd,SAAlB,EAA6B;IACzBd,gBAAgB,GAAG4B,SAAnB;EACH;AACJ;;AAED1B,QAAQ,CAACuD,YAAT,GAAwBA,wBAAxB;AACAvD,QAAQ,CAACwD,eAAT,GAA2BC,mBAA3B;eAEezD,Q"}
@@ -1 +1 @@
1
- {"version":3,"file":"Preview.js","names":["VIEWER","GALLERY","checkMode","x","mode","isObject","Array","isArray","len","length","Preview","props","useState","container","setContainer","viewer","setViewer","photo","index","visible","onClose","onIndexChange","options","useEffect","viewerOption","button","navbar","title","toolbar","tooltip","movable","zoomable","rotatable","scalable","transition","document","createElement","Viewer","url","image","src","hidden","view","e","detail","destroy","childNodes","innerHTML","newIndex","alt","imgElem","appendChild","ulElem","map","item","liElem","update","propTypes","PropTypes","oneOfType","object","array","number","bool","func"],"sources":["vtx-image/Preview.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\r\nimport Viewer from 'viewerjs';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport isObject from '../_util/isObject';\r\n\r\n// 单张\r\nconst VIEWER = 'viewer';\r\n// 多张\r\nconst GALLERY = 'gallery';\r\nfunction checkMode(x) {\r\n let mode = '';\r\n if (isObject(x)) {\r\n mode = VIEWER;\r\n }\r\n if (Array.isArray(x)) {\r\n const len = x.length;\r\n mode = len == 0 ? '' : len == 1 ? VIEWER : GALLERY;\r\n }\r\n return mode;\r\n}\r\n\r\nexport default function Preview(props) {\r\n const [container, setContainer] = useState();\r\n const [viewer, setViewer] = useState();\r\n const { photo, index, visible, onClose, onIndexChange, options } = props;\r\n\r\n // let container;\r\n useEffect(() => {\r\n const viewerOption = {\r\n button: true, // 显示右上角关闭按钮\r\n navbar: false, // 显示缩略图导航\r\n title: true, // 显示当前图片的标题(现实 alt 属性及图片尺寸)\r\n toolbar: true, // 是否显示工具栏\r\n tooltip: true, // 显示缩放百分比\r\n movable: true, // 图片是否可移动\r\n zoomable: true, // 图片是否可缩放\r\n rotatable: true, // 图片是否可旋转\r\n scalable: true, // 图片是否可翻转\r\n transition: true, // 使用 CSS3 过度\r\n ...options,\r\n };\r\n\r\n const container = document.createElement('div');\r\n const viewer = new Viewer(container, {\r\n url(image) {\r\n return image.src;\r\n },\r\n // 关闭后\r\n hidden() {\r\n onClose && onClose();\r\n },\r\n view(e) {\r\n onIndexChange && onIndexChange(e.detail.index);\r\n },\r\n ...viewerOption,\r\n });\r\n setContainer(container);\r\n setViewer(viewer);\r\n return () => {\r\n viewer && viewer.destroy();\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (visible) {\r\n if (container.childNodes.length > 0) {\r\n container.innerHTML = '';\r\n }\r\n const mode = checkMode(photo);\r\n let newIndex = index;\r\n // 单张\r\n if (mode === VIEWER) {\r\n newIndex = 0;\r\n const { src, alt } = isObject(photo) ? photo : photo[0];\r\n const imgElem = document.createElement('img');\r\n imgElem.src = src;\r\n imgElem.alt = alt;\r\n container.appendChild(imgElem);\r\n }\r\n // 多张\r\n if (mode === GALLERY) {\r\n const len = photo.length - 1;\r\n newIndex = index < 0 ? 0 : index;\r\n newIndex = index > len ? len : index;\r\n const ulElem = document.createElement('ul');\r\n photo.map(item => {\r\n const liElem = document.createElement('li');\r\n const imgElem = document.createElement('img');\r\n imgElem.src = item.src;\r\n imgElem.alt = item.alt;\r\n liElem.appendChild(imgElem);\r\n ulElem.appendChild(liElem);\r\n });\r\n container.appendChild(ulElem);\r\n }\r\n viewer.update();\r\n viewer.view(newIndex);\r\n }\r\n }, [visible]);\r\n\r\n return <></>;\r\n}\r\n\r\nPreview.propTypes = {\r\n photo: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\r\n index: PropTypes.number,\r\n visible: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n onIndexChange: PropTypes.func,\r\n options: PropTypes.object,\r\n};\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"Preview.js","names":["VIEWER","GALLERY","checkMode","x","mode","isObject","Array","isArray","len","length","Preview","props","useState","container","setContainer","viewer","setViewer","photo","index","visible","onClose","onIndexChange","options","useEffect","viewerOption","button","navbar","title","toolbar","tooltip","movable","zoomable","rotatable","scalable","transition","document","createElement","Viewer","url","image","src","hidden","view","e","detail","destroy","childNodes","innerHTML","newIndex","alt","imgElem","appendChild","ulElem","map","item","liElem","update","propTypes","PropTypes","oneOfType","object","array","number","bool","func"],"sources":["vtx-image/Preview.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport Viewer from 'viewerjs';\nimport PropTypes from 'prop-types';\n\nimport isObject from '../_util/isObject';\n\n// 单张\nconst VIEWER = 'viewer';\n// 多张\nconst GALLERY = 'gallery';\nfunction checkMode(x) {\n let mode = '';\n if (isObject(x)) {\n mode = VIEWER;\n }\n if (Array.isArray(x)) {\n const len = x.length;\n mode = len == 0 ? '' : len == 1 ? VIEWER : GALLERY;\n }\n return mode;\n}\n\nexport default function Preview(props) {\n const [container, setContainer] = useState();\n const [viewer, setViewer] = useState();\n const { photo, index, visible, onClose, onIndexChange, options } = props;\n\n // let container;\n useEffect(() => {\n const viewerOption = {\n button: true, // 显示右上角关闭按钮\n navbar: false, // 显示缩略图导航\n title: true, // 显示当前图片的标题(现实 alt 属性及图片尺寸)\n toolbar: true, // 是否显示工具栏\n tooltip: true, // 显示缩放百分比\n movable: true, // 图片是否可移动\n zoomable: true, // 图片是否可缩放\n rotatable: true, // 图片是否可旋转\n scalable: true, // 图片是否可翻转\n transition: true, // 使用 CSS3 过度\n ...options,\n };\n\n const container = document.createElement('div');\n const viewer = new Viewer(container, {\n url(image) {\n return image.src;\n },\n // 关闭后\n hidden() {\n onClose && onClose();\n },\n view(e) {\n onIndexChange && onIndexChange(e.detail.index);\n },\n ...viewerOption,\n });\n setContainer(container);\n setViewer(viewer);\n return () => {\n viewer && viewer.destroy();\n };\n }, []);\n\n useEffect(() => {\n if (visible) {\n if (container.childNodes.length > 0) {\n container.innerHTML = '';\n }\n const mode = checkMode(photo);\n let newIndex = index;\n // 单张\n if (mode === VIEWER) {\n newIndex = 0;\n const { src, alt } = isObject(photo) ? photo : photo[0];\n const imgElem = document.createElement('img');\n imgElem.src = src;\n imgElem.alt = alt;\n container.appendChild(imgElem);\n }\n // 多张\n if (mode === GALLERY) {\n const len = photo.length - 1;\n newIndex = index < 0 ? 0 : index;\n newIndex = index > len ? len : index;\n const ulElem = document.createElement('ul');\n photo.map(item => {\n const liElem = document.createElement('li');\n const imgElem = document.createElement('img');\n imgElem.src = item.src;\n imgElem.alt = item.alt;\n liElem.appendChild(imgElem);\n ulElem.appendChild(liElem);\n });\n container.appendChild(ulElem);\n }\n viewer.update();\n viewer.view(newIndex);\n }\n }, [visible]);\n\n return <></>;\n}\n\nPreview.propTypes = {\n photo: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n index: PropTypes.number,\n visible: PropTypes.bool,\n onClose: PropTypes.func,\n onIndexChange: PropTypes.func,\n options: PropTypes.object,\n};\n"],"mappings":"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"}