@zgfe/business-lib 1.2.57 → 1.2.66-hxd.2

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 (135) hide show
  1. package/README.md +12 -12
  2. package/config.js +41 -41
  3. package/es/AUMFormulaTarget/components/formula/index.less +86 -82
  4. package/es/AUMFormulaTarget/components/formulaItem/index.js +52 -13
  5. package/es/AUMFormulaTarget/components/panel/index.less +269 -269
  6. package/es/AUMFormulaTarget/components/symbol/index.less +49 -49
  7. package/es/AUMFormulaTarget/demo/index.js +1 -1
  8. package/es/AUMFormulaTarget/styles/index.less +74 -74
  9. package/es/addToPanel/styles/addPanel.less +25 -25
  10. package/es/addToPanel/styles/index.less +17 -17
  11. package/es/addToPanel/styles/style.less +66 -66
  12. package/es/addToScene/styles/index.less +30 -30
  13. package/es/assets/colorIcon/demo.css +539 -539
  14. package/es/assets/colorIcon/demo_index.html +1454 -1454
  15. package/es/assets/colorIcon/iconfont.css +236 -236
  16. package/es/assets/colorIcon/iconfont.json +394 -394
  17. package/es/assets/colorIcon/iconfont.svg +129 -129
  18. package/es/assets/iconfont/demo.css +539 -539
  19. package/es/assets/iconfont/demo_index.html +5363 -5363
  20. package/es/assets/iconfont/iconfont.css +915 -915
  21. package/es/assets/iconfont/iconfont.json +1584 -1584
  22. package/es/assets/images/attention.png +0 -0
  23. package/es/assets/styles/chunks.less +183 -183
  24. package/es/assets/styles/inner.less +3 -3
  25. package/es/assets/styles/resetAntd.less +551 -551
  26. package/es/assets/styles/variable.less +21 -21
  27. package/es/attrCondition/group.js +5 -2
  28. package/es/attrCondition/index.js +6 -2
  29. package/es/attrCondition/styles/index.less +101 -101
  30. package/es/attrConditions/components/stringList.d.ts +10 -0
  31. package/es/attrConditions/components/stringList.js +57 -27
  32. package/es/attrConditions/components/valuesList.d.ts +10 -0
  33. package/es/attrConditions/components/valuesList.js +6 -2
  34. package/es/attrConditions/styles/group.less +49 -49
  35. package/es/attrConditions/styles/index.less +151 -151
  36. package/es/attrConditions/types.d.ts +17 -0
  37. package/es/attributeSelector/index.js +6 -2
  38. package/es/attributeSelector/listPanel.js +6 -2
  39. package/es/attributeSelector/styles/index.less +141 -141
  40. package/es/attributeSelector/types.d.ts +2 -0
  41. package/es/chart/demo/index.js +2 -3
  42. package/es/chart/styles/index.less +113 -113
  43. package/es/chart/util/data/china.js +17 -17
  44. package/es/chart/util/formatOption.js +1 -1
  45. package/es/constants/apis.d.ts +3 -0
  46. package/es/constants/apis.js +4 -1
  47. package/es/cycleTime/styles/index.less +24 -24
  48. package/es/cycleTime/styles/month.less +95 -95
  49. package/es/dataSetGroup/styles/index.less +146 -146
  50. package/es/datePicker/styles/index.less +53 -53
  51. package/es/datePickerV2/styles/index.less +194 -194
  52. package/es/demoWrapper/index.less +3 -3
  53. package/es/dialog/styles/index.less +22 -22
  54. package/es/dnd/styles/index.less +19 -19
  55. package/es/empty/demo/index.d.ts +4 -0
  56. package/es/empty/demo/index.js +16 -0
  57. package/es/empty/index.d.ts +4 -0
  58. package/es/empty/index.js +19 -0
  59. package/es/empty/types.d.ts +7 -0
  60. package/es/empty/types.js +1 -0
  61. package/es/eventSelector/styles/index.less +123 -123
  62. package/es/formulaTarget/components/formula/index.less +76 -76
  63. package/es/formulaTarget/components/panel/index.less +139 -139
  64. package/es/formulaTarget/components/symbol/index.less +49 -49
  65. package/es/formulaTarget/styles/index.less +74 -74
  66. package/es/hooks/types/subject.d.ts +14 -14
  67. package/es/icon/demo/list.less +32 -32
  68. package/es/index.d.ts +3 -1
  69. package/es/index.js +3 -1
  70. package/es/layout/analysisLayout/demo/index.less +12 -12
  71. package/es/layout/analysisLayout/index.less +118 -118
  72. package/es/layout/columnLayout/demo/index.less +15 -15
  73. package/es/layout/columnLayout/index.less +81 -81
  74. package/es/layout/detail/index.less +27 -27
  75. package/es/layout/optionTitle/components/changePanelModal/styles/index.less +92 -92
  76. package/es/layout/optionTitle/demo/index.less +12 -12
  77. package/es/loading/styles/index.less +20 -20
  78. package/es/loginForm/index.less +7 -7
  79. package/es/platformSelector/index.js +42 -9
  80. package/es/platformSelector/styles/index.less +26 -22
  81. package/es/platformSelector/util.d.ts +1 -1
  82. package/es/platformSelector/util.js +8 -1
  83. package/es/productCondition/conditions/styles/cdpCondition.less +31 -31
  84. package/es/productCondition/conditions/styles/cdpCshCondition.less +41 -41
  85. package/es/productCondition/conditions/styles/eventCondition.less +51 -51
  86. package/es/productCondition/conditions/styles/periodCondition.less +26 -26
  87. package/es/productCondition/conditions/styles/propCondition.less +43 -43
  88. package/es/productCondition/conditions/styles/runTimesCondition.less +19 -19
  89. package/es/productCondition/conditions/styles/tagsCondition.less +20 -20
  90. package/es/productCondition/conditions/styles/textDesc.less +17 -17
  91. package/es/productCondition/styles/conditionTypeList.less +30 -30
  92. package/es/productCondition/styles/conditionWrap.less +18 -18
  93. package/es/productCondition/styles/index.less +33 -33
  94. package/es/productCondition/styles/orConditions.less +34 -34
  95. package/es/productCondition/styles/relationLabel.less +19 -19
  96. package/es/quickDatePicker/styles/index.less +138 -138
  97. package/es/select/styles/handle.less +193 -193
  98. package/es/select/styles/index.less +129 -129
  99. package/es/socket/demo/index.less +27 -27
  100. package/es/table/styles/index.less +5 -5
  101. package/es/targetConditionGroup/demo/styles/index.less +29 -29
  102. package/es/targetConditionGroup/index.js +5 -4
  103. package/es/targetConditionGroup/styles/index.less +53 -53
  104. package/es/targetSelector/styles/index.less +110 -110
  105. package/es/userCondition/conditionTypeList.js +1 -10
  106. package/es/userCondition/conditions/businessCondition.js +3 -10
  107. package/es/userCondition/conditions/eventCondition.js +36 -4
  108. package/es/userCondition/conditions/styles/cdpCondition.less +37 -37
  109. package/es/userCondition/conditions/styles/cdpCshCondition.less +47 -47
  110. package/es/userCondition/conditions/styles/eventCondition.less +57 -51
  111. package/es/userCondition/conditions/styles/periodCondition.less +26 -26
  112. package/es/userCondition/conditions/styles/propCondition.less +43 -43
  113. package/es/userCondition/conditions/styles/runTimesCondition.less +19 -19
  114. package/es/userCondition/conditions/styles/tagsCondition.less +20 -20
  115. package/es/userCondition/conditions/styles/textDesc.less +17 -17
  116. package/es/userCondition/conditions/textDesc.js +1 -24
  117. package/es/userCondition/orConditions.js +0 -7
  118. package/es/userCondition/styles/conditionTypeList.less +30 -30
  119. package/es/userCondition/styles/conditionWrap.less +18 -18
  120. package/es/userCondition/styles/index.less +33 -33
  121. package/es/userCondition/styles/orConditions.less +34 -34
  122. package/es/userCondition/styles/relationLabel.less +19 -19
  123. package/es/userGroup/styles/index.less +145 -145
  124. package/es/userGroupHeader/styles/index.less +31 -31
  125. package/es/userTagsSelector/cascaderOverlay.js +13 -6
  126. package/es/userTagsSelector/components/search/index.less +6 -6
  127. package/es/userTagsSelector/components/tagList/index.less +13 -13
  128. package/es/userTagsSelector/demo/index.js +1 -0
  129. package/es/userTagsSelector/groups/styles/option.less +55 -55
  130. package/es/userTagsSelector/index.js +6 -3
  131. package/es/userTagsSelector/multipleCheckPanel/styles/option.less +40 -40
  132. package/es/userTagsSelector/styles/cascaderOverlay.less +34 -34
  133. package/es/userTagsSelector/styles/index.less +10 -10
  134. package/es/userTagsSelector/types.d.ts +2 -0
  135. package/package.json +62 -62
@@ -1,55 +1,55 @@
1
- @import '../../../assets/styles/inner.less';
2
- .biz-user-tags-selector {
3
- &-group-option {
4
- display: flex;
5
- align-items: center;
6
- justify-content: space-between;
7
- height: @height-base;
8
- padding: 0 16px;
9
- border-radius: @border-radius-normal;
10
-
11
- cursor: pointer;
12
- &-label {
13
- .__default-overflow();
14
- margin-right: @margin-xs;
15
- }
16
- &-count {
17
- .ant-badge-count {
18
- color: @text-color;
19
- background: none;
20
- }
21
- }
22
- &.checked {
23
- color: @primary-color;
24
- .biz-user-tags-selector-group-option-count {
25
- .ant-badge-count {
26
- color: @primary-color;
27
- }
28
- }
29
- }
30
- &:hover {
31
- .__default-hover();
32
- .biz-user-tags-selector-group-option-count {
33
- .ant-badge-count {
34
- color: #fff;
35
- background: @primary-color;
36
- }
37
- }
38
- }
39
- &.active {
40
- color: #fff !important;
41
- background: @primary-color;
42
- .biz-user-tags-selector-group-option-count {
43
- .ant-badge-count {
44
- color: #fff;
45
- background: @primary-color;
46
- }
47
- }
48
- .biz-user-tags-selector-group-option-label {
49
- * {
50
- color: #fff !important;
51
- }
52
- }
53
- }
54
- }
55
- }
1
+ @import '../../../assets/styles/inner.less';
2
+ .biz-user-tags-selector {
3
+ &-group-option {
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: space-between;
7
+ height: @height-base;
8
+ padding: 0 16px;
9
+ border-radius: @border-radius-normal;
10
+
11
+ cursor: pointer;
12
+ &-label {
13
+ .__default-overflow();
14
+ margin-right: @margin-xs;
15
+ }
16
+ &-count {
17
+ .ant-badge-count {
18
+ color: @text-color;
19
+ background: none;
20
+ }
21
+ }
22
+ &.checked {
23
+ color: @primary-color;
24
+ .biz-user-tags-selector-group-option-count {
25
+ .ant-badge-count {
26
+ color: @primary-color;
27
+ }
28
+ }
29
+ }
30
+ &:hover {
31
+ .__default-hover();
32
+ .biz-user-tags-selector-group-option-count {
33
+ .ant-badge-count {
34
+ color: #fff;
35
+ background: @primary-color;
36
+ }
37
+ }
38
+ }
39
+ &.active {
40
+ color: #fff !important;
41
+ background: @primary-color;
42
+ .biz-user-tags-selector-group-option-count {
43
+ .ant-badge-count {
44
+ color: #fff;
45
+ background: @primary-color;
46
+ }
47
+ }
48
+ .biz-user-tags-selector-group-option-label {
49
+ * {
50
+ color: #fff !important;
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
@@ -26,7 +26,8 @@ var UserTagsSelect = function UserTagsSelect(props) {
26
26
  labelFields = props.labelFields,
27
27
  childFields = props.childFields,
28
28
  keyFields = props.keyFields,
29
- valueFields = props.valueFields;
29
+ valueFields = props.valueFields,
30
+ isOpenLayer = props.isOpenLayer;
30
31
  var _useState = useState([]),
31
32
  _useState2 = _slicedToArray(_useState, 2),
32
33
  currentValue = _useState2[0],
@@ -42,7 +43,7 @@ var UserTagsSelect = function UserTagsSelect(props) {
42
43
  var pre_text = pre[labelFields[labelFields.length - 2]];
43
44
  var last_text = last[labelFields[labelFields.length - 1]];
44
45
  var res = _objectSpread(_objectSpread({}, last), {}, {
45
- handleText: (pre === null || pre === void 0 ? void 0 : pre.labelCreateType) === 3 || (pre === null || pre === void 0 ? void 0 : pre.labelCreateType) === 6 || (pre === null || pre === void 0 ? void 0 : pre.labelCreateType) === LabelCreateType.sqlCreateTable ? pre_text : "".concat(pre_text, "\uFF1A").concat(last_text)
46
+ handleText: (pre === null || pre === void 0 ? void 0 : pre.labelCreateType) === 3 || (pre === null || pre === void 0 ? void 0 : pre.labelCreateType) === 6 || (pre === null || pre === void 0 ? void 0 : pre.labelCreateType) === LabelCreateType.sqlCreateTable || !isOpenLayer ? pre_text : "".concat(pre_text, "\uFF1A").concat(last_text)
46
47
  });
47
48
  return res;
48
49
  });
@@ -75,6 +76,7 @@ var UserTagsSelect = function UserTagsSelect(props) {
75
76
  keyFields: keyFields,
76
77
  labelFields: labelFields,
77
78
  data: data,
79
+ isOpenLayer: isOpenLayer,
78
80
  onChange: onChange
79
81
  });
80
82
  }
@@ -105,6 +107,7 @@ var UserTagsSelect = function UserTagsSelect(props) {
105
107
  }))));
106
108
  };
107
109
  UserTagsSelect.defaultProps = {
108
- destroyPopupOnHide: false
110
+ destroyPopupOnHide: false,
111
+ isOpenLayer: true
109
112
  };
110
113
  export default UserTagsSelect;
@@ -1,40 +1,40 @@
1
- @import '../../../assets/styles/inner.less';
2
- .biz-user-tags-selector {
3
- &-check-option {
4
- display: flex;
5
- align-items: center;
6
- height: @height-base;
7
- padding: 0 12px;
8
- border-radius: @border-radius-normal;
9
- &:hover {
10
- .__default-hover();
11
- }
12
- &-label {
13
- flex: 1;
14
- min-width: 0;
15
- height: @height-base;
16
- line-height: @height-base;
17
- .__default-overflow();
18
- }
19
- &&-disabled {
20
- .__default-disabled();
21
- }
22
- .ant-checkbox-wrapper {
23
- width: 100%;
24
- min-width: 0;
25
- > span {
26
- &:not(.ant-checkbox) {
27
- flex: 1;
28
- min-width: 0;
29
- }
30
- }
31
- .ant-checkbox-checked {
32
- & + span {
33
- .biz-user-tags-selector-check-option-label {
34
- color: @primary-color;
35
- }
36
- }
37
- }
38
- }
39
- }
40
- }
1
+ @import '../../../assets/styles/inner.less';
2
+ .biz-user-tags-selector {
3
+ &-check-option {
4
+ display: flex;
5
+ align-items: center;
6
+ height: @height-base;
7
+ padding: 0 12px;
8
+ border-radius: @border-radius-normal;
9
+ &:hover {
10
+ .__default-hover();
11
+ }
12
+ &-label {
13
+ flex: 1;
14
+ min-width: 0;
15
+ height: @height-base;
16
+ line-height: @height-base;
17
+ .__default-overflow();
18
+ }
19
+ &&-disabled {
20
+ .__default-disabled();
21
+ }
22
+ .ant-checkbox-wrapper {
23
+ width: 100%;
24
+ min-width: 0;
25
+ > span {
26
+ &:not(.ant-checkbox) {
27
+ flex: 1;
28
+ min-width: 0;
29
+ }
30
+ }
31
+ .ant-checkbox-checked {
32
+ & + span {
33
+ .biz-user-tags-selector-check-option-label {
34
+ color: @primary-color;
35
+ }
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
@@ -1,34 +1,34 @@
1
- @import '../../assets/styles/inner.less';
2
- .biz-user-tags-selector {
3
- &-overlay {
4
- max-height: 425px;
5
- background-color: #fff;
6
- border-radius: @border-radius-normal;
7
- box-shadow: @box-shadow-base;
8
- &-search {
9
- padding: @margin-xs @margin-xs 0;
10
- }
11
- &-panel {
12
- display: flex;
13
- }
14
- &-groups {
15
- width: 204px;
16
- padding: @margin-xs;
17
- border-right: 1px solid @border-color-base;
18
- &:last-of-type {
19
- border-right: none;
20
- }
21
- }
22
- &-selections {
23
- width: 204px;
24
- min-width: 0;
25
- padding: @padding-xs;
26
- }
27
- // .rc-virtual-list-scrollbar {
28
- // display: block !important;
29
- // }
30
- // .rc-virtual-list-scrollbar-thumb {
31
- // background-color: #cacdd4 !important;
32
- // }
33
- }
34
- }
1
+ @import '../../assets/styles/inner.less';
2
+ .biz-user-tags-selector {
3
+ &-overlay {
4
+ max-height: 425px;
5
+ background-color: #fff;
6
+ border-radius: @border-radius-normal;
7
+ box-shadow: @box-shadow-base;
8
+ &-search {
9
+ padding: @margin-xs @margin-xs 0;
10
+ }
11
+ &-panel {
12
+ display: flex;
13
+ }
14
+ &-groups {
15
+ width: 204px;
16
+ padding: @margin-xs;
17
+ border-right: 1px solid @border-color-base;
18
+ &:last-of-type {
19
+ border-right: none;
20
+ }
21
+ }
22
+ &-selections {
23
+ width: 204px;
24
+ min-width: 0;
25
+ padding: @padding-xs;
26
+ }
27
+ // .rc-virtual-list-scrollbar {
28
+ // display: block !important;
29
+ // }
30
+ // .rc-virtual-list-scrollbar-thumb {
31
+ // background-color: #cacdd4 !important;
32
+ // }
33
+ }
34
+ }
@@ -1,10 +1,10 @@
1
- @import '../../assets/styles/inner.less';
2
- .biz-user-tags-selector {
3
- > .ant-dropdown-trigger.biz-user-tags-selector-handle {
4
- > .biz-select-handle-input-multiple {
5
- .ant-input.biz-select-handle-search {
6
- height: auto !important;
7
- }
8
- }
9
- }
10
- }
1
+ @import '../../assets/styles/inner.less';
2
+ .biz-user-tags-selector {
3
+ > .ant-dropdown-trigger.biz-user-tags-selector-handle {
4
+ > .biz-select-handle-input-multiple {
5
+ .ant-input.biz-select-handle-search {
6
+ height: auto !important;
7
+ }
8
+ }
9
+ }
10
+ }
@@ -30,6 +30,7 @@ export declare namespace UserTagsSelectorTypes {
30
30
  defaultCurrent?: string[];
31
31
  onChange: Function;
32
32
  destroyPopupOnHide?: boolean;
33
+ isOpenLayer?: boolean;
33
34
  }
34
35
  interface CascaderOverlayProps {
35
36
  className?: string;
@@ -40,6 +41,7 @@ export declare namespace UserTagsSelectorTypes {
40
41
  valueFields?: string[];
41
42
  currentValue: Value;
42
43
  onChange: (val: Value) => void;
44
+ isOpenLayer?: boolean;
43
45
  }
44
46
  interface Groups {
45
47
  data: any[];
package/package.json CHANGED
@@ -1,62 +1,62 @@
1
- {
2
- "name": "@zgfe/business-lib",
3
- "version": "1.2.57",
4
- "module": "es/index.js",
5
- "typings": "es/index.d.ts",
6
- "files": [
7
- "es",
8
- "config.js"
9
- ],
10
- "scripts": {
11
- "build": "father-build",
12
- "deploy": "npm run docs:build && npm run docs:deploy",
13
- "docs:build": "dumi build",
14
- "docs:deploy": "gh-pages -d docs-dist",
15
- "prepublishOnly": "npm run build",
16
- "prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"",
17
- "pub": "lerna publish",
18
- "start": "dumi dev",
19
- "test": "umi-test",
20
- "test:coverage": "umi-test --coverage"
21
- },
22
- "lint-staged": {
23
- "*.{js,jsx,less,md,json}": [
24
- "prettier --write"
25
- ],
26
- "*.ts?(x)": [
27
- "prettier --parser=typescript --write"
28
- ]
29
- },
30
- "dependencies": {
31
- "@types/qs": "^6.9.7",
32
- "axios": "^0.26.1",
33
- "babel-plugin-import": "^1.13.3",
34
- "echarts": "^5.3.2",
35
- "echarts-for-react": "^3.0.2",
36
- "lerna": "^4.0.0",
37
- "rc-virtual-list": "^3.4.8",
38
- "react-infinite-scroll-component": "^6.1.0",
39
- "umi-request": "^1.4.0"
40
- },
41
- "devDependencies": {
42
- "@testing-library/jest-dom": "^5.15.1",
43
- "@testing-library/react": "^12.1.2",
44
- "@types/jest": "^27.0.3",
45
- "@types/lodash": "^4.14.182",
46
- "@umijs/fabric": "^2.8.1",
47
- "@umijs/test": "^3.0.5",
48
- "antd": "4.24.16",
49
- "dumi": "^1.1.0",
50
- "father-build": "^1.17.2",
51
- "gh-pages": "^3.0.0",
52
- "lint-staged": "^10.0.7",
53
- "lodash": "^4.17.21",
54
- "prettier": "^2.2.1",
55
- "react": "^16.12.0 || ^17.0.0",
56
- "yorkie": "^2.0.0"
57
- },
58
- "gitHead": "4fdc32d7c56bb2d3fea8c75f75b937434c89234f",
59
- "gitHooks": {
60
- "pre-commit": "lint-staged"
61
- }
62
- }
1
+ {
2
+ "name": "@zgfe/business-lib",
3
+ "version": "1.2.66-hxd.2",
4
+ "module": "es/index.js",
5
+ "typings": "es/index.d.ts",
6
+ "files": [
7
+ "es",
8
+ "config.js"
9
+ ],
10
+ "scripts": {
11
+ "build": "father-build",
12
+ "deploy": "npm run docs:build && npm run docs:deploy",
13
+ "docs:build": "dumi build",
14
+ "docs:deploy": "gh-pages -d docs-dist",
15
+ "prepublishOnly": "npm run build",
16
+ "prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"",
17
+ "pub": "lerna publish",
18
+ "start": "dumi dev",
19
+ "test": "umi-test",
20
+ "test:coverage": "umi-test --coverage"
21
+ },
22
+ "lint-staged": {
23
+ "*.{js,jsx,less,md,json}": [
24
+ "prettier --write"
25
+ ],
26
+ "*.ts?(x)": [
27
+ "prettier --parser=typescript --write"
28
+ ]
29
+ },
30
+ "dependencies": {
31
+ "@types/qs": "^6.9.7",
32
+ "axios": "^0.26.1",
33
+ "babel-plugin-import": "^1.13.3",
34
+ "echarts": "^5.3.2",
35
+ "echarts-for-react": "^3.0.2",
36
+ "lerna": "^4.0.0",
37
+ "rc-virtual-list": "^3.4.8",
38
+ "react-infinite-scroll-component": "^6.1.0",
39
+ "umi-request": "^1.4.0"
40
+ },
41
+ "devDependencies": {
42
+ "@testing-library/jest-dom": "^5.15.1",
43
+ "@testing-library/react": "^12.1.2",
44
+ "@types/jest": "^27.0.3",
45
+ "@types/lodash": "^4.14.182",
46
+ "@umijs/fabric": "^2.8.1",
47
+ "@umijs/test": "^3.0.5",
48
+ "antd": "4.24.16",
49
+ "dumi": "^1.1.0",
50
+ "father-build": "^1.17.2",
51
+ "gh-pages": "^3.0.0",
52
+ "lint-staged": "^10.0.7",
53
+ "lodash": "^4.17.21",
54
+ "prettier": "^2.2.1",
55
+ "react": "^16.12.0 || ^17.0.0",
56
+ "yorkie": "^2.0.0"
57
+ },
58
+ "gitHead": "9608e92d175153d6375e3ae49f6649ff886175dc",
59
+ "gitHooks": {
60
+ "pre-commit": "lint-staged"
61
+ }
62
+ }