vue2-client 1.15.135 → 1.15.138

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.
package/package.json CHANGED
@@ -1,111 +1,111 @@
1
- {
2
- "name": "vue2-client",
3
- "version": "1.15.135",
4
- "private": false,
5
- "scripts": {
6
- "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
7
- "serve:gaslink": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode gaslink",
8
- "serve:revenue": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode revenue",
9
- "serve:liuli": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode liuli",
10
- "serve:scada": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode scada",
11
- "serve:iot": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode iot",
12
- "serve:his": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode his",
13
- "serve:runtime": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode runtime",
14
- "serve:message": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode message",
15
- "serve:apply": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode apply",
16
- "mac-serve": "vue-cli-service serve --no-eslint --mode his",
17
- "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
18
- "test:unit": "vue-cli-service test:unit",
19
- "lint": "vue-cli-service lint",
20
- "build:preview": "vue-cli-service build --mode preview",
21
- "lint:nofix": "vue-cli-service lint --no-fix",
22
- "test": "jest"
23
- },
24
- "dependencies": {
25
- "@afwenming123/vue-easy-tree": "^1.0.1",
26
- "@afwenming123/vue-plugin-hiprint": "^0.0.70",
27
- "@amap/amap-jsapi-loader": "^1.0.1",
28
- "@antv/data-set": "^0.11.8",
29
- "@antv/g2plot": "^2.4.31",
30
- "@hufe921/canvas-editor": "^0.9.49",
31
- "@microsoft/fetch-event-source": "^2.0.1",
32
- "@vue/babel-preset-jsx": "^1.4.0",
33
- "animate.css": "^4.1.1",
34
- "ant-design-vue": "^1.7.8",
35
- "axios": "^0.27.2",
36
- "clipboard": "^2.0.11",
37
- "core-js": "^3.33.0",
38
- "crypto-js": "^4.1.1",
39
- "date-fns": "^2.29.3",
40
- "default-passive-events": "^2.0.0",
41
- "dotenv": "^16.3.1",
42
- "echarts": "^5.5.0",
43
- "enquire.js": "^2.1.6",
44
- "file-saver": "^2.0.5",
45
- "highlight.js": "^11.7.0",
46
- "html2canvas": "^1.4.1",
47
- "js-base64": "^3.7.5",
48
- "js-cookie": "^2.2.1",
49
- "jsencrypt": "^3.3.2",
50
- "jspdf": "^2.5.1",
51
- "lodash.clonedeep": "^4.5.0",
52
- "lodash.debounce": "^4",
53
- "lodash.get": "^4.4.2",
54
- "marked": "^4",
55
- "mockjs": "^1.1.0",
56
- "nprogress": "^0.2.0",
57
- "qs": "^6.11.2",
58
- "regenerator-runtime": "^0.14.0",
59
- "videojs-contrib-hls": "^5.15.0",
60
- "viser-vue": "^2.4.8",
61
- "vue": "^2.7.14",
62
- "vue-codemirror": "4.0.6",
63
- "vue-color": "2.7.0",
64
- "vue-draggable-resizable": "^2.3.0",
65
- "vue-i18n": "^8.28.2",
66
- "vue-json-viewer": "^2.2.22",
67
- "vue-router": "^3.6.5",
68
- "vue-video-player": "^5.0.2",
69
- "vue-virtual-scroller": "^1.1.2",
70
- "vuedraggable": "^2.24.3",
71
- "vuex": "^3.6.2",
72
- "xlsx": "0.18.5"
73
- },
74
- "devDependencies": {
75
- "@ant-design/colors": "^7.0.0",
76
- "@babel/core": "^7.22.20",
77
- "@babel/eslint-parser": "^7.22.15",
78
- "@babel/preset-env": "^7.22.20",
79
- "@vue/cli-plugin-babel": "^5.0.8",
80
- "@vue/cli-plugin-eslint": "^5.0.8",
81
- "@vue/cli-service": "^5.0.8",
82
- "@vue/eslint-config-standard": "^8.0.1",
83
- "@vue/test-utils": "^1.3.6",
84
- "babel-plugin-transform-remove-console": "^6.9.4",
85
- "compression-webpack-plugin": "^10.0.0",
86
- "css-minimizer-webpack-plugin": "^5.0.1",
87
- "deepmerge": "^4.3.1",
88
- "eslint": "^8.51.0",
89
- "eslint-plugin-vue": "^9.17.0",
90
- "fast-deep-equal": "^3.1.3",
91
- "ignore-loader": "^0.1.2",
92
- "jest": "^29.7.0",
93
- "jest-environment-jsdom": "^29.7.0",
94
- "jest-transform-stub": "^2.0.0",
95
- "less-loader": "^6.2.0",
96
- "script-loader": "^0.7.2",
97
- "style-resources-loader": "^1.5.0",
98
- "vue-cli-plugin-style-resources-loader": "^0.1.5",
99
- "vue-jest": "^4.0.1",
100
- "vue-template-compiler": "^2.7.14",
101
- "webpack": "^5.88.2",
102
- "webpack-theme-color-replacer": "^1.4.7",
103
- "whatwg-fetch": "^3.6.19"
104
- },
105
- "browserslist": [
106
- "> 1%",
107
- "last 2 versions",
108
- "not dead",
109
- "not ie 11"
110
- ]
111
- }
1
+ {
2
+ "name": "vue2-client",
3
+ "version": "1.15.138",
4
+ "private": false,
5
+ "scripts": {
6
+ "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
7
+ "serve:gaslink": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode gaslink",
8
+ "serve:revenue": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode revenue",
9
+ "serve:liuli": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode liuli",
10
+ "serve:scada": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode scada",
11
+ "serve:iot": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode iot",
12
+ "serve:his": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode his",
13
+ "serve:runtime": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode runtime",
14
+ "serve:message": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode message",
15
+ "serve:apply": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint --mode apply",
16
+ "mac-serve": "vue-cli-service serve --no-eslint --mode his",
17
+ "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
18
+ "test:unit": "vue-cli-service test:unit",
19
+ "lint": "vue-cli-service lint",
20
+ "build:preview": "vue-cli-service build --mode preview",
21
+ "lint:nofix": "vue-cli-service lint --no-fix",
22
+ "test": "jest"
23
+ },
24
+ "dependencies": {
25
+ "@afwenming123/vue-easy-tree": "^1.0.1",
26
+ "@afwenming123/vue-plugin-hiprint": "^0.0.70",
27
+ "@amap/amap-jsapi-loader": "^1.0.1",
28
+ "@antv/data-set": "^0.11.8",
29
+ "@antv/g2plot": "^2.4.31",
30
+ "@hufe921/canvas-editor": "^0.9.49",
31
+ "@microsoft/fetch-event-source": "^2.0.1",
32
+ "@vue/babel-preset-jsx": "^1.4.0",
33
+ "animate.css": "^4.1.1",
34
+ "ant-design-vue": "^1.7.8",
35
+ "axios": "^0.27.2",
36
+ "clipboard": "^2.0.11",
37
+ "core-js": "^3.33.0",
38
+ "crypto-js": "^4.1.1",
39
+ "date-fns": "^2.29.3",
40
+ "default-passive-events": "^2.0.0",
41
+ "dotenv": "^16.3.1",
42
+ "echarts": "^5.5.0",
43
+ "enquire.js": "^2.1.6",
44
+ "file-saver": "^2.0.5",
45
+ "highlight.js": "^11.7.0",
46
+ "html2canvas": "^1.4.1",
47
+ "js-base64": "^3.7.5",
48
+ "js-cookie": "^2.2.1",
49
+ "jsencrypt": "^3.3.2",
50
+ "jspdf": "^2.5.1",
51
+ "lodash.clonedeep": "^4.5.0",
52
+ "lodash.debounce": "^4",
53
+ "lodash.get": "^4.4.2",
54
+ "marked": "^4",
55
+ "mockjs": "^1.1.0",
56
+ "nprogress": "^0.2.0",
57
+ "qs": "^6.11.2",
58
+ "regenerator-runtime": "^0.14.0",
59
+ "videojs-contrib-hls": "^5.15.0",
60
+ "viser-vue": "^2.4.8",
61
+ "vue": "^2.7.14",
62
+ "vue-codemirror": "4.0.6",
63
+ "vue-color": "2.7.0",
64
+ "vue-draggable-resizable": "^2.3.0",
65
+ "vue-i18n": "^8.28.2",
66
+ "vue-json-viewer": "^2.2.22",
67
+ "vue-router": "^3.6.5",
68
+ "vue-video-player": "^5.0.2",
69
+ "vue-virtual-scroller": "^1.1.2",
70
+ "vuedraggable": "^2.24.3",
71
+ "vuex": "^3.6.2",
72
+ "xlsx": "0.18.5"
73
+ },
74
+ "devDependencies": {
75
+ "@ant-design/colors": "^7.0.0",
76
+ "@babel/core": "^7.22.20",
77
+ "@babel/eslint-parser": "^7.22.15",
78
+ "@babel/preset-env": "^7.22.20",
79
+ "@vue/cli-plugin-babel": "^5.0.8",
80
+ "@vue/cli-plugin-eslint": "^5.0.8",
81
+ "@vue/cli-service": "^5.0.8",
82
+ "@vue/eslint-config-standard": "^8.0.1",
83
+ "@vue/test-utils": "^1.3.6",
84
+ "babel-plugin-transform-remove-console": "^6.9.4",
85
+ "compression-webpack-plugin": "^10.0.0",
86
+ "css-minimizer-webpack-plugin": "^5.0.1",
87
+ "deepmerge": "^4.3.1",
88
+ "eslint": "^8.51.0",
89
+ "eslint-plugin-vue": "^9.17.0",
90
+ "fast-deep-equal": "^3.1.3",
91
+ "ignore-loader": "^0.1.2",
92
+ "jest": "^29.7.0",
93
+ "jest-environment-jsdom": "^29.7.0",
94
+ "jest-transform-stub": "^2.0.0",
95
+ "less-loader": "^6.2.0",
96
+ "script-loader": "^0.7.2",
97
+ "style-resources-loader": "^1.5.0",
98
+ "vue-cli-plugin-style-resources-loader": "^0.1.5",
99
+ "vue-jest": "^4.0.1",
100
+ "vue-template-compiler": "^2.7.14",
101
+ "webpack": "^5.88.2",
102
+ "webpack-theme-color-replacer": "^1.4.7",
103
+ "whatwg-fetch": "^3.6.19"
104
+ },
105
+ "browserslist": [
106
+ "> 1%",
107
+ "last 2 versions",
108
+ "not dead",
109
+ "not ie 11"
110
+ ]
111
+ }
@@ -57,30 +57,18 @@ defineExpose({
57
57
  height: 32px;
58
58
  }
59
59
  }
60
-
61
60
  // button24样式
62
61
  &.h-buttons-button24 {
63
62
  :deep(.ant-btn-group) {
64
63
  .ant-btn {
65
64
  border: 1px solid #CDCDCD;
66
65
  color: #5D5C5C;
67
- font-weight: normal;
68
- letter-spacing: 0em;
69
- font-size: 16px;
70
- line-height: normal;
71
- margin-right: 25px;
72
- border-radius: 6px;
73
- background-color: #FFFFFF;
74
- // 这个不合理
75
66
  // top: -100px;
76
67
  width: fit-content;
77
68
  min-width: 110px;
78
- font-family: "Source Han Sans";
79
- height: 32px;
80
69
  }
81
70
  }
82
71
  }
83
-
84
72
  // button23样式
85
73
  &.h-buttons-button23 {
86
74
  :deep(.ant-btn-group) {
@@ -88,21 +76,15 @@ defineExpose({
88
76
  border: none;
89
77
  padding: 0 !important;
90
78
  color: #FFFFFF;
91
- font-weight: normal;
92
- letter-spacing: 0em;
93
- font-size: 16px;
94
- line-height: normal;
95
79
  border-radius: 50%;
96
80
  background-color: #1890FF;
97
81
  margin-left: 10px;
98
82
  top: -88px;
99
83
  width: 30px;
100
- font-family: "Source Han Sans";
101
84
  height: 30px;
102
85
  }
103
86
  }
104
87
  }
105
-
106
88
  // +号样式
107
89
  &.h-buttons-table-height-button23 {
108
90
  :deep(.ant-btn-group) {
@@ -117,22 +99,16 @@ defineExpose({
117
99
  border: none;
118
100
  padding: 0 !important;
119
101
  color: #FFFFFF;
120
- font-weight: normal;
121
- letter-spacing: 0em;
122
- font-size: 16px;
123
- line-height: normal;
124
102
  border-radius: 50%;
125
103
  background-color: #1890FF;
126
104
  margin-left: 10px;
127
105
  width: 30px;
128
- font-family: "Source Han Sans";
129
106
  height: 30px;
130
107
  /* 自适应上移:按按钮自身高度百分比位移 */
131
108
  transform: translateY(-100%);
132
109
  }
133
110
  }
134
111
  }
135
-
136
112
  // 居中+悬停高亮的新样式
137
113
  &.h-buttons-plus-center {
138
114
  :deep(.ant-btn-group) {
@@ -146,13 +122,8 @@ defineExpose({
146
122
  align-items: center;
147
123
  justify-content: center;
148
124
  border: 1px solid #CDCDCD;
149
- background-color: #FFFFFF;
150
125
  color: #5D5C5C;
151
- border-radius: 6px;
152
126
  min-width: 110px;
153
- height: 32px;
154
- font-size: 16px;
155
- font-family: "Source Han Sans";
156
127
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
157
128
 
158
129
  &:hover {
@@ -160,11 +131,16 @@ defineExpose({
160
131
  border-color: #0057FE;
161
132
  color: #FFFFFF;
162
133
  }
134
+ /* 支持通过 data-type 改变悬停颜色 */
135
+ &[data-type='success']:hover {
136
+ background-color: #34C76E;
137
+ border-color: #34C76E;
138
+ color: #FFFFFF;
139
+ }
163
140
  }
164
141
  }
165
142
  }
166
-
167
- // button-left样式 - 按钮从左到右排列
143
+ // button-left样式 - 按钮从左到右排列
168
144
  &.h-buttons-button-left {
169
145
  :deep(.ant-btn-group) {
170
146
  width: 100%;
@@ -175,14 +151,6 @@ defineExpose({
175
151
  .ant-btn {
176
152
  border: 1px solid #CDCDCD;
177
153
  color: #5D5C5C;
178
- font-weight: normal;
179
- letter-spacing: 0em;
180
- font-size: 16px;
181
- line-height: normal;
182
- border-radius: 6px;
183
- background-color: #FFFFFF;
184
- font-family: "Source Han Sans";
185
- height: 32px;
186
154
  flex: 0 0 auto;
187
155
  min-width: 124px;
188
156
  width: auto;
@@ -193,7 +161,6 @@ defineExpose({
193
161
  }
194
162
  }
195
163
  }
196
-
197
164
  // button-center样式 - 按钮居中排列
198
165
  &.h-buttons-button-center {
199
166
  :deep(.ant-btn-group) {
@@ -205,14 +172,6 @@ defineExpose({
205
172
  .ant-btn {
206
173
  border: 1px solid #CDCDCD;
207
174
  color: #5D5C5C;
208
- font-weight: normal;
209
- letter-spacing: 0em;
210
- font-size: 16px;
211
- line-height: normal;
212
- border-radius: 6px;
213
- background-color: #FFFFFF;
214
- font-family: "Source Han Sans";
215
- height: 32px;
216
175
  flex: 0 0 auto;
217
176
  min-width: 124px;
218
177
  width: auto;
@@ -223,7 +182,6 @@ defineExpose({
223
182
  }
224
183
  }
225
184
  }
226
-
227
185
  // button-right样式 - 按钮从右到左排列
228
186
  &.h-buttons-button-right {
229
187
  :deep(.ant-btn-group) {
@@ -235,14 +193,6 @@ defineExpose({
235
193
  .ant-btn {
236
194
  border: 1px solid #CDCDCD;
237
195
  color: #5D5C5C;
238
- font-weight: normal;
239
- letter-spacing: 0em;
240
- font-size: 16px;
241
- line-height: normal;
242
- border-radius: 6px;
243
- background-color: #FFFFFF;
244
- font-family: "Source Han Sans";
245
- height: 32px;
246
196
  flex: 0 0 auto;
247
197
  width: auto;
248
198
  min-width: 124px;
@@ -253,7 +203,6 @@ defineExpose({
253
203
  }
254
204
  }
255
205
  }
256
-
257
206
  // button-space-between样式 - 按钮两端对齐(两个按钮时分布在两端)
258
207
  &.h-buttons-button-space-between {
259
208
  :deep(.ant-btn-group) {
@@ -264,14 +213,6 @@ defineExpose({
264
213
  .ant-btn {
265
214
  border: 1px solid #CDCDCD;
266
215
  color: #5D5C5C;
267
- font-weight: normal;
268
- letter-spacing: 0em;
269
- font-size: 16px;
270
- line-height: normal;
271
- border-radius: 6px;
272
- background-color: #FFFFFF;
273
- font-family: "Source Han Sans";
274
- height: 32px;
275
216
  width: auto;
276
217
  flex: 0 0 auto;
277
218
  min-width: 124px;
@@ -282,7 +223,6 @@ defineExpose({
282
223
  }
283
224
  }
284
225
  }
285
-
286
226
  // button-icon-tiles样式 - 左侧彩色图标块 + 右侧文字
287
227
  &.h-buttons-button-icon-tiles {
288
228
  :deep(.ant-btn-group) {
@@ -298,8 +238,6 @@ defineExpose({
298
238
  align-items: center;
299
239
  gap: 10px; // 控制图标与文字间距
300
240
  border: 1px solid #E6E8EB;
301
- background-color: #FFFFFF;
302
- color: #313131;
303
241
  font-size: 14px;
304
242
  height: 44px;
305
243
  padding: 0 10px 0 10px;
@@ -333,7 +271,6 @@ defineExpose({
333
271
  .ant-btn > .anticon + span { margin-left: 10px; }
334
272
  }
335
273
  }
336
-
337
274
  // 水印图标与按钮容器布局调整
338
275
  &.h-buttons-button-watermark-icon {
339
276
  :deep(.watermark-icon) { transform: translate(-50%, -54%) !important; }
@@ -356,16 +293,32 @@ defineExpose({
356
293
  justify-content: space-between;
357
294
 
358
295
  .ant-btn {
359
- border-radius: 6px;
360
- border: 1px solid #9499A0;
361
- font-size: 16px;
362
- height: 32px;
363
- background-color: #FFFFFF;
364
- color: #313131;
365
296
  width: 173px;
366
297
  }
367
298
  }
368
299
  }
369
300
  }
301
+ // 居中样式 用于门诊收费左侧按钮样式(三个按钮居中样式)
302
+ &.h-buttons-out-button {
303
+ :deep(.x-buttons) {
304
+ margin-top: -1vw;
305
+ display: flex;
306
+ justify-content: center;
307
+ .ant-btn-group {
308
+ display: flex;
309
+ flex-wrap: nowrap;
310
+ gap: 12px;
311
+ .ant-btn {
312
+ box-sizing: border-box;
313
+ margin-right: 0px;
314
+ width: auto;
315
+ min-width: 130px;
316
+ white-space: nowrap;
317
+ overflow: hidden;
318
+ text-overflow: ellipsis;
319
+ }
320
+ }
321
+ }
322
+ }
370
323
  }
371
324
  </style>
@@ -161,5 +161,37 @@ defineExpose({
161
161
  }
162
162
  }
163
163
  }
164
+ // 底部分页居中
165
+ &.h-form-table-bottom-center {
166
+ :deep(.table-wrapper) {
167
+ .ant-row-flex-start {
168
+ position: relative;
169
+ display: flex;
170
+ align-items: center;
171
+ margin-top: 24px !important;
172
+
173
+ // 防止第一个子元素无限拉伸,影响分页居中
174
+ > :first-child {
175
+ flex: 0 0 auto;
176
+ }
177
+
178
+ // 将第二个子元素(分页)绝对居中
179
+ > :nth-child(2) {
180
+ position: absolute;
181
+ left: 50%;
182
+ transform: translateX(-50%);
183
+ }
184
+ }
185
+
186
+ // 分页当前页配色
187
+ .ant-pagination {
188
+ .ant-pagination-item-active {
189
+ background: #0057FE;
190
+ border-color: #0057FE;
191
+ a { color: #fff; }
192
+ }
193
+ }
194
+ }
195
+ }
164
196
  }
165
197
  </style>
@@ -8,6 +8,7 @@
8
8
  :ref="'buttonGroup-' + button.key"
9
9
  :type="button.type || 'default'"
10
10
  :disabled="button.disabled"
11
+ :data-type="button.type || ''"
11
12
  :class="{
12
13
  'selected-button': enableSelect && selectedButtonKey === button.key,
13
14
  'icon-only-button': buttonsMode === 'icon'
@@ -19,9 +19,9 @@
19
19
  :key="index"
20
20
  class="date-item"
21
21
  :class="{
22
- &quot;ant-btn-primary&quot;: isCurrentDate(date),
23
- &quot;date-weekend&quot;: isWeekend(date),
24
- &quot;ant-btn-disabled&quot;: isDisabled(date)
22
+ 'ant-btn-primary': isCurrentDate(date),
23
+ 'date-weekend': isWeekend(date),
24
+ 'ant-btn-disabled': isDisabled(date)
25
25
  }"
26
26
  @click="selectDate(date)"
27
27
  >
@@ -320,7 +320,7 @@ export default {
320
320
  }
321
321
 
322
322
  .date-item.ant-btn-primary {
323
- background: #1890ff;
323
+ background: #0075FE !important;
324
324
  color: #fff;
325
325
  }
326
326
 
@@ -0,0 +1,32 @@
1
+ <script>
2
+ import XCharge from './XCharge.vue'
3
+ export default {
4
+ name: 'XChargeDemo',
5
+ components: {
6
+ XCharge,
7
+ },
8
+ data () {
9
+ return {
10
+ queryParamsName: '收费组件Config'
11
+ }
12
+ },
13
+ methods: {
14
+ change1 (e, item) {
15
+ console.log(e, item)
16
+ },
17
+ method (value) {
18
+ console.log(value)
19
+ }
20
+ }
21
+ }
22
+ </script>
23
+
24
+ <template>
25
+ <x-charge :queryParamsName="queryParamsName" @method="method" @change="change1"></x-charge>
26
+ </template>
27
+
28
+ <style scoped>
29
+ .test{
30
+ margin-right: 10px;
31
+ }
32
+ </style>