openatc-components 0.1.190 → 0.1.192

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 (83) hide show
  1. package/package/kisscomps/components/DirectionListConfiguration/DirectionListConfiguration.vue +436 -0
  2. package/package/kisscomps/components/DirectionListConfiguration/index.js +2 -0
  3. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-east-bottom.vue +41 -0
  4. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-east-top.vue +60 -0
  5. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-ewped.vue +105 -0
  6. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-north-left.vue +60 -0
  7. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-north-right.vue +60 -0
  8. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-pedeastward.vue +35 -0
  9. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-pednorthward.vue +30 -0
  10. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-pedsouthward.vue +35 -0
  11. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-pedwestward.vue +41 -0
  12. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-snped.vue +105 -0
  13. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-south-left.vue +60 -0
  14. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-south-right.vue +60 -0
  15. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-west-bottom.vue +60 -0
  16. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-west-top.vue +60 -0
  17. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-xlped.vue +30 -0
  18. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-xrped.vue +30 -0
  19. package/package/kisscomps/components/DirectionListConfiguration/svg/pedSvg.vue +78 -0
  20. package/package/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +127 -0
  21. package/package/kisscomps/components/IntersectionDirectionSelection/index.js +2 -0
  22. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +0 -1
  23. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PatternWalkSvg.vue +429 -0
  24. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +1272 -0
  25. package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +239 -16
  26. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +88 -14
  27. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +88 -15
  28. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +24 -8
  29. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +24 -8
  30. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +50 -2
  31. package/package/kisscomps/components/IntersectionMap/crossDirection/utils.js +6 -0
  32. package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +38 -1
  33. package/package/kisscomps/index.js +5 -1
  34. package/package/kissui.min.js +1 -1
  35. package/package.json +1 -1
  36. package/src/EdgeMgr/controller/crossDiagramMgr.js +5 -1
  37. package/src/icons/demo_index.html +8146 -0
  38. package/src/icons/iconfont.css +219 -3
  39. package/src/icons/iconfont.js +1 -1
  40. package/src/icons/iconfont.json +378 -0
  41. package/src/icons/iconfont.ttf +0 -0
  42. package/src/icons/iconfont.woff +0 -0
  43. package/src/icons/iconfont.woff2 +0 -0
  44. package/src/kisscomps/components/DirectionListConfiguration/DirectionListConfiguration.vue +436 -0
  45. package/src/kisscomps/components/DirectionListConfiguration/index.js +2 -0
  46. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-east-bottom.vue +41 -0
  47. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-east-top.vue +60 -0
  48. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-ewped.vue +105 -0
  49. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-north-left.vue +60 -0
  50. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-north-right.vue +60 -0
  51. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-pedeastward.vue +35 -0
  52. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-pednorthward.vue +30 -0
  53. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-pedsouthward.vue +35 -0
  54. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-pedwestward.vue +41 -0
  55. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-snped.vue +105 -0
  56. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-south-left.vue +60 -0
  57. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-south-right.vue +60 -0
  58. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-west-bottom.vue +60 -0
  59. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-west-top.vue +60 -0
  60. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-xlped.vue +30 -0
  61. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-xrped.vue +30 -0
  62. package/src/kisscomps/components/DirectionListConfiguration/svg/pedSvg.vue +78 -0
  63. package/src/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +127 -0
  64. package/src/kisscomps/components/IntersectionDirectionSelection/index.js +2 -0
  65. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +0 -1
  66. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +1272 -0
  67. package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +239 -16
  68. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +88 -14
  69. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +88 -15
  70. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +24 -8
  71. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +24 -8
  72. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +50 -2
  73. package/src/kisscomps/components/IntersectionMap/crossDirection/utils.js +6 -0
  74. package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +38 -1
  75. package/src/kisscomps/index.js +5 -1
  76. package/src/utils/conflictList.js +87 -0
  77. package/src/utils/phasedesc.js +37 -17
  78. package/src/views/intersection.vue +61 -11
  79. package/src/views/overView.vue +9 -12
  80. package/src/views/patternConfig.vue +2 -2
  81. package/src/views/schemeconfig.vue +3 -3
  82. package/static/styles/uiComponents.scss +52 -0
  83. package/src/node_modules/.package_versions.json +0 -1
@@ -0,0 +1,30 @@
1
+ /** * Copyright (c) 2020 kedacom * OpenATC is licensed under Mulan PSL v2. * You
2
+ can use this software according to the terms and conditions of the Mulan PSL v2.
3
+ * You may obtain a copy of Mulan PSL v2 at: *
4
+ http://license.coscl.org.cn/MulanPSL2 * THIS SOFTWARE IS PROVIDED ON AN "AS IS"
5
+ BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING
6
+ BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR
7
+ PURPOSE. * See the Mulan PSL v2 for more details. **/
8
+ <template>
9
+ <svg
10
+ t="1710300080015"
11
+ class="icon"
12
+ viewBox="0 0 1024 1024"
13
+ version="1.1"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ p-id="13075"
16
+ width="42"
17
+ height="42"
18
+ >
19
+ <path
20
+ d="M342.662587 540.341586l140.995827 140.995827-40.162447 40.447288-140.995828-140.995828z m-60.386092 60.386091l140.995828 140.995828-40.162448 40.447288L242.114047 641.174965zM221.890403 661.113769l140.995828 140.995828-40.447288 40.447288-140.995828-140.995828z m-60.386091 60.670932l140.995827 140.995828-40.447288 40.162447-140.995827-140.995827z m-60.386092 60.386092L242.114047 923.16662l-40.447288 40.162448-140.995827-140.995827z m-60.386092 60.386092l140.710987 140.995827-40.162447 40.162448-140.995828-140.995828zM581.073713 302.215299l140.995828 140.995828-40.447288 40.162447-140.995827-140.995827z m60.386092-60.386092l140.995828 140.995828-40.447288 40.162448-140.995828-140.995828z m60.386092-60.386092l140.995828 140.995828-40.447288 40.162448-140.995828-140.995828z m60.386092-60.670931l140.995827 140.995827-40.162447 40.447288-140.995828-140.995828z m60.386092-60.386092l140.995827 140.995827-40.162448 40.447288-140.995827-140.995827zM883.004172 0l140.995828 140.995828-40.162448 40.447287-140.995827-140.995827z"
21
+ class="default-ped-path" fill-opacity="0.3"
22
+ p-id="13076"
23
+ ></path>
24
+ <path
25
+ d="M450.901808 601.012517l139.571627-139.856467 39.877608 39.877608-139.571627 139.856467z m59.816412 59.816412l139.571627-139.856467 39.877608 40.162448-139.571627 139.571627z m59.816411 59.816412l139.571628-139.571628 39.877607 39.877608-139.571627 139.571628z m59.816412 59.816411l139.571627-139.571627 39.877608 39.877608-139.571627 139.571627z m59.816412 59.816412l139.571627-139.571627 39.877608 39.877608-139.571627 139.571627z m59.816411 59.816412l139.571628-139.571627 39.877608 39.877607-139.571628 139.571628z m59.816412 59.816411l139.571627-139.571627 39.877608 39.877608-139.571627 139.571627zM391.370236 540.911266l139.286788-139.571628 39.877607 39.877608-139.286787 139.856467z m-59.816411-59.816412l139.571627-139.571627 39.592768 39.877607-139.286787 139.571628z m-59.816412-59.816412l139.571627-139.571627 39.877608 39.877608-139.571627 139.571627z m-59.816412-59.816411l139.571628-139.571628 39.877607 39.877608-139.571627 139.571627z m-59.816411-59.816412l139.571627-139.571627 39.877608 39.877607-139.571628 139.571628z m-59.816412-59.816412l139.571627-139.571627 39.877608 39.877608-139.571627 139.571627z m-59.816412-59.816411l139.571628-139.571628 39.877607 39.877608-139.571627 139.571627z"
26
+ class="default-ped-path"
27
+ p-id="13077"
28
+ ></path>
29
+ </svg>
30
+ </template>
@@ -0,0 +1,30 @@
1
+ /** * Copyright (c) 2020 kedacom * OpenATC is licensed under Mulan PSL v2. * You
2
+ can use this software according to the terms and conditions of the Mulan PSL v2.
3
+ * You may obtain a copy of Mulan PSL v2 at: *
4
+ http://license.coscl.org.cn/MulanPSL2 * THIS SOFTWARE IS PROVIDED ON AN "AS IS"
5
+ BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING
6
+ BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR
7
+ PURPOSE. * See the Mulan PSL v2 for more details. **/
8
+ <template>
9
+ <svg
10
+ t="1710300033964"
11
+ class="icon"
12
+ viewBox="0 0 1024 1024"
13
+ version="1.1"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ p-id="12925"
16
+ width="42"
17
+ height="42"
18
+ >
19
+ <path
20
+ d="M540.460415 681.612577l140.864683-140.864683 40.534531 40.247053-141.152161 140.864682z m60.370579 60.370579l141.152162-140.864683 40.247052 40.247052-141.152162 140.864683z m60.370578 60.370578l141.152162-140.864683 40.247052 40.247052-140.864683 141.152162z m60.658057 60.658057l140.864683-141.152162 40.247052 40.247053-140.864682 141.152161z m60.370579 60.370578l140.864683-141.152161 40.247052 40.247052-140.864683 141.152162z m60.370578 60.370579l140.864683-140.864683 40.247052 40.247052-140.864683 140.864683z m-540.172936-540.460416l140.864682-140.864682 40.247053 40.247052-140.864683 140.864683z m-60.370579-60.370578l140.864683-140.864683 40.247052 40.247052-140.864683 140.864683z m-60.370578-60.370578l140.864683-141.152162 40.247052 40.247052-140.864683 141.152162z m-60.370578-60.370579l140.864682-141.152161 40.247053 40.247052-140.864683 141.152162z m-60.370579-60.658057l140.864683-140.864683 40.247052 40.247052-140.864683 141.152162z m-60.370578-60.370578l140.864683-140.864683 40.247052 40.247052-140.864683 140.864683z"
21
+ class="default-ped-path" fill-opacity="0.3"
22
+ p-id="12926"
23
+ ></path>
24
+ <path
25
+ d="M431.793375 451.341943l140.864682 141.152161-40.247052 40.247053-140.864683-141.152162z m-60.370579 60.370578l140.864683 141.152162-40.247052 40.247052-140.864683-141.152162z m-60.370578 60.370578l140.864683 141.152162-40.247053 40.247052-140.864682-140.864682z m-60.370578 60.658058l140.864682 140.864682-40.247052 40.247053-140.864683-140.864683z m-60.370579 60.370578l140.864683 140.864683-40.247052 40.247052-140.864683-140.864683z m-60.370578 60.370578l140.864683 140.864683-40.247053 40.247052-140.864682-140.864682z m-60.370578 60.370579l140.864682 140.864682-40.247052 40.247053-140.577204-140.864683z m422.594048-422.881528l140.864683 141.152162-40.247053 40.247052-140.864682-141.152161z m60.370578-60.370578l140.864683 140.864683-40.247052 40.534531-140.864683-141.152162z m60.370578-60.370578l140.577204 140.864683-39.959573 40.247052-140.864683-140.864683z m60.370579-60.370579l140.577204 140.864683-40.247053 40.247052-140.577203-140.864682z m60.083099-60.370578l140.864683 140.864683-40.247052 40.247052-140.577204-140.864683z m60.370579-60.370578L934.594048 229.983156l-40.247052 40.247052-140.864683-140.864683zM854.099944 28.747894l140.864683 140.864683-40.247053 40.247052-140.864682-140.864682z"
26
+ class="default-ped-path"
27
+ p-id="12927"
28
+ ></path>
29
+ </svg>
30
+ </template>
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Copyright (c) 2020 kedacom
3
+ * OpenATC is licensed under Mulan PSL v2.
4
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
5
+ * You may obtain a copy of Mulan PSL v2 at:
6
+ * http://license.coscl.org.cn/MulanPSL2
7
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
+ * See the Mulan PSL v2 for more details.
11
+ **/
12
+ <template>
13
+ <div class="ped-svg">
14
+ <PedEastward v-if="pedId === 1" />
15
+ <PedWestward v-if="pedId === 2" />
16
+ <PedSouthward v-if="pedId === 3" />
17
+ <PedNorthward v-if="pedId === 4" />
18
+ <PedEastTop v-if="pedId === 5" />
19
+ <PedEastBottom v-if="pedId === 6" />
20
+ <PedWestTop v-if="pedId === 7" />
21
+ <PedWestBottom v-if="pedId === 8" />
22
+ <PedSouthLeft v-if="pedId === 9" />
23
+ <PedSouthRight v-if="pedId === 10" />
24
+ <PedNorthLeft v-if="pedId === 11" />
25
+ <PedNorthRight v-if="pedId === 12" />
26
+ <PedXR v-if="pedId === 13" />
27
+ <PedXl v-if="pedId === 14" />
28
+ <PedNS v-if="pedId === 15" />
29
+ <PedEW v-if="pedId === 16" />
30
+ </div>
31
+ </template>
32
+
33
+ <script>
34
+ import PedEastward from './ped-pedeastward.vue'
35
+ import PedWestward from './ped-pedwestward.vue'
36
+ import PedNorthward from './ped-pednorthward.vue'
37
+ import PedSouthward from './ped-pedsouthward.vue'
38
+ import PedEastTop from './ped-east-top.vue'
39
+ import PedEastBottom from './ped-east-bottom'
40
+ import PedWestTop from './ped-west-top.vue'
41
+ import PedWestBottom from './ped-west-bottom.vue'
42
+ import PedSouthLeft from './ped-south-left.vue'
43
+ import PedSouthRight from './ped-south-right.vue'
44
+ import PedNorthLeft from './ped-north-left.vue'
45
+ import PedNorthRight from './ped-north-right.vue'
46
+
47
+ import PedEW from './ped-ewped.vue'
48
+ import PedNS from './ped-snped.vue'
49
+ import PedXl from './ped-xlped.vue'
50
+ import PedXR from './ped-xrped.vue'
51
+
52
+ export default {
53
+ name: 'ped-svg',
54
+ components: {
55
+ PedEastward,
56
+ PedWestward,
57
+ PedNorthward,
58
+ PedSouthward,
59
+ PedEastTop,
60
+ PedEastBottom,
61
+ PedWestTop,
62
+ PedWestBottom,
63
+ PedSouthLeft,
64
+ PedSouthRight,
65
+ PedNorthLeft,
66
+ PedNorthRight,
67
+ PedEW,
68
+ PedNS,
69
+ PedXl,
70
+ PedXR
71
+ },
72
+ props: {
73
+ pedId: {
74
+ type: Number
75
+ }
76
+ }
77
+ }
78
+ </script>
@@ -0,0 +1,127 @@
1
+ <template>
2
+ <div class="intersection-direction-selection">
3
+ <intersection-base-map
4
+ v-if="!isSpecialIntersection"
5
+ ref="intersectionMap2"
6
+ :crossStatusData="crossStatusData"
7
+ :agentId="agentId"
8
+ isVipRoute
9
+ clickMode
10
+ :isThirdSignal="isThirdSignal"
11
+ :choosedDirection="choosedDirection"
12
+ :choosedPedDirection="choosedPedDirection"
13
+ :roadDirection="roadDirection"
14
+ @handleClickCrossIcon="handleClickCrossIcon" />
15
+ <direction-list-configuration
16
+ v-if="isSpecialIntersection"
17
+ :agentId="agentId"
18
+ :isThirdSignal="isThirdSignal"
19
+ :choosedDirection="choosedDirection"
20
+ :choosedPedDirection="choosedPedDirection"
21
+ :roadDirection="roadDirection"
22
+ @handleClickCrossIcon="handleClickCrossIcon" />
23
+ </div>
24
+ </template>
25
+ <script>
26
+ import { queryDevice } from '../../../api/control.js'
27
+ import { getIntersectionInfo } from '../../../api/template.js'
28
+ import { getMessageByCode } from '../../../utils/responseMessage.js'
29
+ import {
30
+ setToken
31
+ } from '../../../utils/auth'
32
+ export default {
33
+ name: 'intersection-direction-selection',
34
+ data () {
35
+ return {
36
+ crossStatusData: {},
37
+ isSpecialIntersection: false,
38
+ isThirdSignal: false
39
+ }
40
+ },
41
+ props: {
42
+ agentId: {
43
+ type: String,
44
+ required: true
45
+ },
46
+ roadDirection: {
47
+ type: String,
48
+ default: 'right'
49
+ },
50
+ choosedDirection: {
51
+ type: Array
52
+ },
53
+ choosedPedDirection: {
54
+ type: Array
55
+ },
56
+ thirdSignal: { // 是否是第三方平台(可以直接传,也可以内部接口判断)
57
+ type: Boolean
58
+ }
59
+ },
60
+ methods: {
61
+ setPropsToken (token) {
62
+ // 获取组件外传入的token,便于独立组件调用接口
63
+ if (token && token !== '') {
64
+ setToken(token)
65
+ }
66
+ },
67
+ getIntersectionInfo () {
68
+ // 获取路口信息
69
+ const agentid = this.agentId || '0'
70
+ getIntersectionInfo(agentid).then(res => {
71
+ if (!res.data.success) {
72
+ let commomMsg = this.$t('openatccomponents.overview.signalID') + ' : ' + agentid
73
+ let msg = getMessageByCode(res.data.code, this.$i18n.locale)
74
+ if (res.data.data) {
75
+ // 子类型错误
76
+ let childErrorCode = res.data.data.errorCode
77
+ if (childErrorCode) {
78
+ let childerror = getMessageByCode(res.data.data.errorCode, this.$i18n.locale)
79
+ msg = msg + ' - ' + childerror
80
+ }
81
+ }
82
+ msg = msg + ' - ' + commomMsg
83
+ this.$message.error(msg)
84
+ return
85
+ }
86
+ this.tempType = res.data.data.type
87
+ this.mainType = this.tempType.split('-')[0]
88
+ if (this.mainType === '999') {
89
+ this.isSpecialIntersection = true
90
+ } else {
91
+ this.isSpecialIntersection = false
92
+ }
93
+ })
94
+ },
95
+ getPlatform () {
96
+ queryDevice(this.agentId).then(res => {
97
+ if (!res.data.success) {
98
+ let commomMsg = this.$t('openatc.overview.signalID') + ': ' + this.AgentId
99
+ this.$message.error(getMessageByCode(res.data.code, this.$i18n.locale) + ' - ' + commomMsg)
100
+ return
101
+ }
102
+ this.platform = res.data.data.platform
103
+ console.log(this.platform)
104
+ if (this.platform !== '' && this.platform !== 'OpenATC') {
105
+ this.isThirdSignal = true
106
+ } else {
107
+ this.isThirdSignal = false
108
+ }
109
+ if (this.thirdSignal !== undefined) {
110
+ this.isThirdSignal = this.thirdSignal
111
+ }
112
+ })
113
+ },
114
+ handleClickCrossIcon (allChoosedDir, curClickedPhase) {
115
+ this.$emit('handleClickCrossIcon', allChoosedDir, curClickedPhase)
116
+ }
117
+ },
118
+ mounted () {
119
+ this.getIntersectionInfo()
120
+ this.getPlatform()
121
+ },
122
+ destroyed () {
123
+ }
124
+ }
125
+ </script>
126
+ <style lang='scss'>
127
+ </style>
@@ -0,0 +1,2 @@
1
+ import IntersectionDirectionSelection from './IntersectionDirectionSelection.vue'
2
+ export default IntersectionDirectionSelection
@@ -465,7 +465,6 @@ export default {
465
465
  },
466
466
  methods: {},
467
467
  mounted() {
468
- console.log(this.showPed);
469
468
  }
470
469
  };
471
470
  </script>