cnhis-design-vue 3.3.3-release.13 → 3.3.3-release.14
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/es/components/button-print/src/components/NewPrintComponent.vue2.js +25 -4
- package/es/components/button-print/src/components/OldPrintComponent.vue2.js +22 -4
- package/es/components/button-print/src/utils/print.d.ts +3 -3
- package/es/components/button-print/src/utils/print.js +11 -0
- package/es/components/calendar/src/Calendar.vue2.js +15 -5
- package/es/components/classification/index.d.ts +500 -5
- package/es/components/classification/src/components/search-filter/index.vue.d.ts +500 -5
- package/es/components/classification/src/components/set-classification/index.vue.d.ts +500 -5
- package/es/components/classification/src/index.vue.d.ts +500 -5
- package/es/components/fabric-chart/src/hooks/temperature/useLeft.js +3 -2
- package/es/components/fabric-chart/src/hooks/temperature/useOther.d.ts +1 -1
- package/es/components/fabric-chart/src/hooks/temperature/useOther.js +58 -15
- package/es/components/fabric-chart/src/hooks/temperature/useTemperatureChart.js +4 -3
- package/es/components/form-render/src/components/renderer/date.d.ts +3 -1
- package/es/components/form-render/src/components/renderer/date.js +12 -10
- package/es/components/form-render/src/components/renderer/radio_checkbox.js +7 -2
- package/es/components/form-render/style/index.css +1 -1
- package/es/components/iho-chat/index.d.ts +1 -1
- package/es/components/iho-chat/src/Index.vue.d.ts +1 -1
- package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +0 -2
- package/es/components/iho-chat/src/components/Video.vue.d.ts +1 -1
- package/es/components/iho-chat/src/hooks/useVideo.js +12 -14
- package/es/components/index.css +1 -1
- package/es/components/index.js +1 -1
- package/es/components/keyboard/index.d.ts +1 -0
- package/es/components/keyboard/src/Keyboard.vue.d.ts +1 -0
- package/es/components/keyboard/src/components/NumberPanel.vue.d.ts +1 -0
- package/es/components/keyboard/src/components/NumberPanel.vue2.js +23 -10
- package/es/components/select-person/src/SelectPerson.vue2.js +8 -1
- package/es/components/table-filter/index.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue.d.ts +490 -1
- package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue2.js +8 -2
- package/es/components/table-filter/src/components/classify-filter/components/Base/DateOption.vue.d.ts +226 -0
- package/es/components/table-filter/src/components/classify-filter/components/Base/DateOption.vue.js +6 -0
- package/es/components/table-filter/src/components/classify-filter/components/Base/DateOption.vue2.js +156 -0
- package/es/components/table-filter/src/components/classify-filter/components/Date.vue.d.ts +238 -0
- package/es/components/table-filter/src/components/classify-filter/components/Date.vue2.js +43 -4
- package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue.d.ts +239 -1
- package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue2.js +51 -8
- package/es/components/table-filter/src/components/classify-filter/components/index.d.ts +477 -1
- package/es/components/table-filter/src/components/classify-filter/helpers/options.d.ts +5 -1
- package/es/components/table-filter/src/components/classify-filter/helpers/options.js +49 -2
- package/es/components/table-filter/src/components/classify-filter/index.vue.d.ts +500 -5
- package/es/components/table-filter/src/components/classify-filter/index.vue2.js +13 -6
- package/es/components/table-filter/src/components/render-widget/components/DateInner.vue.d.ts +1 -1
- package/es/components/table-filter/src/components/render-widget/components/DateOut.vue.d.ts +1 -1
- package/es/components/table-filter/src/components/render-widget/components/DateRangeInner.vue.d.ts +1 -1
- package/es/components/table-filter/src/components/render-widget/components/index.d.ts +3 -3
- package/es/components/table-filter/src/components/render-widget/helpers/presetValToTimestamp.d.ts +1 -0
- package/es/components/table-filter/src/components/render-widget/helpers/presetValToTimestamp.js +23 -2
- package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +3 -3
- package/es/components/table-filter/src/hooks/useAdvanced.js +5 -4
- package/es/components/table-filter/src/types/enums.d.ts +4 -0
- package/es/components/table-filter/src/types/enums.js +5 -1
- package/es/shared/hooks/useDateTime.js +1 -1
- package/es/shared/package.json.js +2 -2
- package/package.json +4 -4
@@ -2,10 +2,10 @@ import { createElementVNode, defineComponent, useAttrs, reactive, ref, provide,
|
|
2
2
|
import { useMessage, NSpin, NInput, NIcon, NButton, NSelect, NTooltip } from 'naive-ui';
|
3
3
|
import { CloseOutline, AddOutline, AddCircleSharp } from '@vicons/ionicons5';
|
4
4
|
import ValueCfg from './ValueCfg.vue.js';
|
5
|
-
import { ConditionEnums, DataTypeEnums } from '../../types/enums.js';
|
5
|
+
import { ConditionEnums, DataTypeEnums, WidgetTypeEnums } from '../../types/enums.js';
|
6
6
|
import { useDisplayCategory } from './hooks/useDisplayCategory.js';
|
7
7
|
import { useFilterConditions } from './hooks/useFilterConditions.js';
|
8
|
-
import {
|
8
|
+
import { dateConditionOptions, baseConditionOptions } from './helpers/options.js';
|
9
9
|
import { InjectionClassifyFilterList } from '../../constants/index.js';
|
10
10
|
|
11
11
|
const _hoisted_1 = {
|
@@ -93,6 +93,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
93
93
|
const menuProps = {
|
94
94
|
class: "classify-fieldkey-popover"
|
95
95
|
};
|
96
|
+
const specialDateRange = [ConditionEnums.IN_THE_PAST, ConditionEnums.IN_THE_FUTURE, ConditionEnums.IN_THE_PAST_DI, ConditionEnums.IN_THE_FUTURE_DI];
|
96
97
|
const $attrs = useAttrs();
|
97
98
|
const FormState = reactive({
|
98
99
|
className: "",
|
@@ -126,6 +127,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
126
127
|
initFilterConditions,
|
127
128
|
getRawFilterConditions
|
128
129
|
} = useFilterConditions(toRef(FormState, "filterConditions"), props.searchFieldList, DataTypeEnums.API);
|
130
|
+
const dateTypeList = [WidgetTypeEnums.DATE_RANGE_INNER, WidgetTypeEnums.DATETIME_RANGE_INNER];
|
131
|
+
function getOptions(key) {
|
132
|
+
const item = getParamCfg(key);
|
133
|
+
return dateTypeList.includes(item.type) ? dateConditionOptions : baseConditionOptions;
|
134
|
+
}
|
129
135
|
function handleEditDisplayCategory(item) {
|
130
136
|
item.disabled = false;
|
131
137
|
setTimeout(() => {
|
@@ -203,7 +209,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
203
209
|
presetVal,
|
204
210
|
customDate
|
205
211
|
}) => {
|
206
|
-
return !key || !condition || condition === ConditionEnums.EQUAL && !value && !presetVal && !customDate;
|
212
|
+
return !key || !condition || condition === ConditionEnums.EQUAL && !value && !presetVal && !customDate || specialDateRange.includes(condition) && (!value || !presetVal);
|
207
213
|
});
|
208
214
|
if (isEmpty) {
|
209
215
|
$message.warning(function() {
|
@@ -381,7 +387,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
381
387
|
value: item.condition,
|
382
388
|
to: "body",
|
383
389
|
filterable: "",
|
384
|
-
options:
|
390
|
+
options: getOptions(item.key),
|
385
391
|
"onUpdate:value": ($event) => unref(updateCondition)(index, $event)
|
386
392
|
}, null, 8, ["value", "options", "onUpdate:value"])) : createCommentVNode("v-if", true), createCommentVNode(function() {
|
387
393
|
var _a, _b, _c;
|
@@ -390,7 +396,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
390
396
|
} catch (e) {
|
391
397
|
return "\u81EA\u5B9A\u4E49";
|
392
398
|
}
|
393
|
-
}()), item.key && item.condition && item.condition !== unref(ConditionEnums).NULL ? (openBlock(), createBlock(ValueCfg, {
|
399
|
+
}()), item.key && item.condition && item.condition !== unref(ConditionEnums).NULL && item.condition !== unref(ConditionEnums).NOT_NULL ? (openBlock(), createBlock(ValueCfg, {
|
394
400
|
key: 1,
|
395
401
|
modelValue: item.value,
|
396
402
|
"onUpdate:modelValue": ($event) => item.value = $event,
|
@@ -400,8 +406,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
400
406
|
"onUpdate:isAccurate": ($event) => item.isAccurateSearch = $event,
|
401
407
|
customDate: item.customDate,
|
402
408
|
"onUpdate:customDate": ($event) => item.customDate = $event,
|
409
|
+
item,
|
403
410
|
"param-cfg": unref(getParamCfg)(item.key)
|
404
|
-
}, null, 8, ["modelValue", "onUpdate:modelValue", "presetVal", "onUpdate:presetVal", "isAccurate", "onUpdate:isAccurate", "customDate", "onUpdate:customDate", "param-cfg"])) : createCommentVNode("v-if", true), createVNode(unref(NTooltip), {
|
411
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "presetVal", "onUpdate:presetVal", "isAccurate", "onUpdate:isAccurate", "customDate", "onUpdate:customDate", "item", "param-cfg"])) : createCommentVNode("v-if", true), createVNode(unref(NTooltip), {
|
405
412
|
title: function() {
|
406
413
|
var _a, _b, _c;
|
407
414
|
try {
|
package/es/components/table-filter/src/components/render-widget/components/DateRangeInner.vue.d.ts
CHANGED
@@ -336,8 +336,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
336
336
|
type: ITypeDate;
|
337
337
|
value: string;
|
338
338
|
unit: string;
|
339
|
-
clearable: boolean;
|
340
339
|
valueFormat: string;
|
340
|
+
clearable: boolean;
|
341
341
|
startPlaceholder: string;
|
342
342
|
endPlaceholder: string;
|
343
343
|
}>;
|
@@ -420,8 +420,8 @@ declare const DateInner: import("vue").DefineComponent<{
|
|
420
420
|
value: string;
|
421
421
|
placeholder: string;
|
422
422
|
unit: string;
|
423
|
-
clearable: boolean;
|
424
423
|
valueFormat: string;
|
424
|
+
clearable: boolean;
|
425
425
|
}>;
|
426
426
|
declare const DateOut: import("vue").DefineComponent<{
|
427
427
|
componentCfg: {
|
@@ -647,8 +647,8 @@ declare const DateOut: import("vue").DefineComponent<{
|
|
647
647
|
type: "date" | "datetime";
|
648
648
|
value: string;
|
649
649
|
placeholder: string;
|
650
|
-
clearable: boolean;
|
651
650
|
valueFormat: string;
|
651
|
+
clearable: boolean;
|
652
652
|
}>;
|
653
653
|
declare const DateRangeInner: import("vue").DefineComponent<{
|
654
654
|
componentCfg: {
|
@@ -985,8 +985,8 @@ declare const DateRangeInner: import("vue").DefineComponent<{
|
|
985
985
|
type: "date" | "datetime";
|
986
986
|
value: string;
|
987
987
|
unit: string;
|
988
|
-
clearable: boolean;
|
989
988
|
valueFormat: string;
|
989
|
+
clearable: boolean;
|
990
990
|
startPlaceholder: string;
|
991
991
|
endPlaceholder: string;
|
992
992
|
}>;
|
package/es/components/table-filter/src/components/render-widget/helpers/presetValToTimestamp.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
1
|
export declare const presetValToTimestamp: (presetVal: string, format?: string, isOrigin?: boolean) => any;
|
2
2
|
export declare const formatDateRangeInfo: (key: string, format?: string, optionSetting?: string, isOrigin?: boolean) => string | number | any[];
|
3
|
+
export declare const formatSpecialDateRange: (conObj: any, format?: string) => string;
|
3
4
|
export declare const presetValToDateRangestr: (presetVal: string, format?: string) => string | null;
|
package/es/components/table-filter/src/components/render-widget/helpers/presetValToTimestamp.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { DateRangeOutDefEnums, DatePresetValEnums, DateRangeInnerValEnums } from '../enums.js';
|
2
|
-
import { WidgetOptionEnums } from '../../../types/enums.js';
|
2
|
+
import { WidgetOptionEnums, ConditionEnums } from '../../../types/enums.js';
|
3
3
|
import { dateDisabledCollect } from './dateDisabled.js';
|
4
4
|
import moment from 'moment';
|
5
5
|
|
@@ -142,6 +142,27 @@ const formatDateRangeInfo = (key, format = "x", optionSetting = WidgetOptionEnum
|
|
142
142
|
}
|
143
143
|
return [];
|
144
144
|
};
|
145
|
+
const formatSpecialDateRange = (conObj, format = "x") => {
|
146
|
+
if (Array.isArray(conObj.value) && conObj.con && conObj.unit) {
|
147
|
+
const num = Number(conObj.value);
|
148
|
+
const unit = conObj.unit.toLowerCase();
|
149
|
+
switch (conObj.con) {
|
150
|
+
case ConditionEnums.IN_THE_PAST: {
|
151
|
+
return `${moment().subtract(num, unit).startOf("day").format(format)} ~ ${moment().format(format)}`;
|
152
|
+
}
|
153
|
+
case ConditionEnums.IN_THE_FUTURE: {
|
154
|
+
return `${moment().format(format)} ~ ${moment().add(num, unit).endOf("day").format(format)}`;
|
155
|
+
}
|
156
|
+
case ConditionEnums.IN_THE_PAST_DI: {
|
157
|
+
return `${moment().subtract(num, unit).startOf("day").format(format)} ~ ${moment().subtract(num, unit).endOf("day").format(format)}`;
|
158
|
+
}
|
159
|
+
case ConditionEnums.IN_THE_FUTURE_DI: {
|
160
|
+
return `${moment().add(num, unit).startOf("day").format(format)} ~ ${moment().add(num, unit).endOf("day").format(format)}`;
|
161
|
+
}
|
162
|
+
}
|
163
|
+
}
|
164
|
+
return "";
|
165
|
+
};
|
145
166
|
const dateRangeOutMap = new Map([...dateRangeMapInner, [DateRangeOutDefEnums.PAST_WEEK, () => [moment().subtract(6, "days").startOf("day"), moment().endOf("day")]], [DateRangeOutDefEnums.PAST_MONTH, () => [moment().subtract(1, "months").startOf("day"), moment().endOf("day")]], [DateRangeOutDefEnums.PAST_HALF_YEAR, () => [moment().subtract(6, "months").startOf("day"), moment().endOf("day")]]]);
|
146
167
|
const presetValToDateRangestr = (presetVal, format = "x") => {
|
147
168
|
if (!dateRangeOutMap.has(presetVal))
|
@@ -155,4 +176,4 @@ const presetValToDateRangestr = (presetVal, format = "x") => {
|
|
155
176
|
return null;
|
156
177
|
};
|
157
178
|
|
158
|
-
export { formatDateRangeInfo, presetValToDateRangestr, presetValToTimestamp };
|
179
|
+
export { formatDateRangeInfo, formatSpecialDateRange, presetValToDateRangestr, presetValToTimestamp };
|
@@ -735,8 +735,8 @@ export declare const WidgetCfgMaps: Map<string, {
|
|
735
735
|
value: string;
|
736
736
|
placeholder: string;
|
737
737
|
unit: string;
|
738
|
-
clearable: boolean;
|
739
738
|
valueFormat: string;
|
739
|
+
clearable: boolean;
|
740
740
|
}>;
|
741
741
|
props: {
|
742
742
|
type: string;
|
@@ -976,8 +976,8 @@ export declare const WidgetCfgMaps: Map<string, {
|
|
976
976
|
type: "date" | "datetime";
|
977
977
|
value: string;
|
978
978
|
placeholder: string;
|
979
|
-
clearable: boolean;
|
980
979
|
valueFormat: string;
|
980
|
+
clearable: boolean;
|
981
981
|
}>;
|
982
982
|
props: {
|
983
983
|
type: string;
|
@@ -1328,8 +1328,8 @@ export declare const WidgetCfgMaps: Map<string, {
|
|
1328
1328
|
type: "date" | "datetime";
|
1329
1329
|
value: string;
|
1330
1330
|
unit: string;
|
1331
|
-
clearable: boolean;
|
1332
1331
|
valueFormat: string;
|
1332
|
+
clearable: boolean;
|
1333
1333
|
startPlaceholder: string;
|
1334
1334
|
endPlaceholder: string;
|
1335
1335
|
}>;
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { WidgetOptionEnums, WidgetTypeEnums, selectModeEnums, WidgetValEnums } from '../types/enums.js';
|
1
|
+
import { WidgetOptionEnums, ConditionEnums, WidgetTypeEnums, selectModeEnums, WidgetValEnums } from '../types/enums.js';
|
2
2
|
import { isString } from 'lodash-es';
|
3
|
-
import { formatDateRangeInfo, presetValToTimestamp } from '../components/render-widget/helpers/presetValToTimestamp.js';
|
3
|
+
import { formatSpecialDateRange, formatDateRangeInfo, presetValToTimestamp } from '../components/render-widget/helpers/presetValToTimestamp.js';
|
4
4
|
import { DatePresetValEnums } from '../components/render-widget/enums.js';
|
5
5
|
import { parseDateShortcuts } from '../tool/date.js';
|
6
6
|
import moment from 'moment';
|
@@ -13,6 +13,7 @@ const advanceOptionSettingMap = {
|
|
13
13
|
[WidgetOptionEnums.PAST_TIME]: "2",
|
14
14
|
[WidgetOptionEnums.FUTURE_TIME]: "3"
|
15
15
|
};
|
16
|
+
const specialDateRange = [ConditionEnums.IN_THE_PAST, ConditionEnums.IN_THE_FUTURE, ConditionEnums.IN_THE_PAST_DI, ConditionEnums.IN_THE_FUTURE_DI];
|
16
17
|
const limitValue = 10;
|
17
18
|
function useAdvanced() {
|
18
19
|
function transformDataToFieldCfg(advancedFilterCfg) {
|
@@ -153,10 +154,10 @@ function useAdvanced() {
|
|
153
154
|
}
|
154
155
|
if (conObj.unit && conObj.unit !== DatePresetValEnums.CUSTOM) {
|
155
156
|
if (curQuickSearchObj.type === WidgetTypeEnums.DATE) {
|
156
|
-
curValue = curQuickSearchObj.rangeFilter ? formatDateRangeInfo(conObj.unit, "YYYY-MM-DD", curQuickSearchObj.optionType) : presetValToTimestamp(conObj.unit, "YYYY-MM-DD");
|
157
|
+
curValue = curQuickSearchObj.rangeFilter ? specialDateRange.includes(conObj.con) ? formatSpecialDateRange(conObj, "YYYY-MM-DD") : formatDateRangeInfo(conObj.unit, "YYYY-MM-DD", curQuickSearchObj.optionType) : presetValToTimestamp(conObj.unit, "YYYY-MM-DD");
|
157
158
|
}
|
158
159
|
if (curQuickSearchObj.type === WidgetTypeEnums.DATE_TIME) {
|
159
|
-
curValue = curQuickSearchObj.rangeFilter ? formatDateRangeInfo(conObj.unit, "YYYY-MM-DD HH:mm:ss", curQuickSearchObj.optionType) : presetValToTimestamp(conObj.unit, "YYYY-MM-DD HH:mm:ss");
|
160
|
+
curValue = curQuickSearchObj.rangeFilter ? specialDateRange.includes(conObj.con) ? formatSpecialDateRange(conObj, "YYYY-MM-DD HH:mm:ss") : formatDateRangeInfo(conObj.unit, "YYYY-MM-DD HH:mm:ss", curQuickSearchObj.optionType) : presetValToTimestamp(conObj.unit, "YYYY-MM-DD HH:mm:ss");
|
160
161
|
}
|
161
162
|
}
|
162
163
|
if (conObj.customDate && conObj.unit === DatePresetValEnums.CUSTOM) {
|
@@ -80,7 +80,11 @@ const WidgetValEnums = {
|
|
80
80
|
};
|
81
81
|
const ConditionEnums = {
|
82
82
|
NULL: "NULL",
|
83
|
-
EQUAL: "EQ"
|
83
|
+
EQUAL: "EQ",
|
84
|
+
IN_THE_PAST: "IN_THE_PAST",
|
85
|
+
IN_THE_FUTURE: "IN_THE_FUTURE",
|
86
|
+
IN_THE_PAST_DI: "IN_THE_PAST_DI",
|
87
|
+
IN_THE_FUTURE_DI: "IN_THE_FUTURE_DI"
|
84
88
|
};
|
85
89
|
|
86
90
|
export { ConditionEnums, DataTypeEnums, FieldTypeEnums, MappingMethodEnums, WidgetOptionEnums, WidgetTypeEnums, WidgetValEnums, selectModeEnums };
|
@@ -98,7 +98,7 @@ function handleFormatInput(target, format, selection, full) {
|
|
98
98
|
if (selection) {
|
99
99
|
start = start || result.length + 1;
|
100
100
|
end = end || result.length + 1;
|
101
|
-
target.setSelectionRange(start, end);
|
101
|
+
setTimeout(() => target.setSelectionRange(start, end));
|
102
102
|
}
|
103
103
|
return changed;
|
104
104
|
}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
var name = "@cnhis-design-vue/shared";
|
2
|
-
var version = "3.3.3-release.
|
2
|
+
var version = "3.3.3-release.14";
|
3
3
|
var main = "index.ts";
|
4
4
|
var peerDependencies = {
|
5
5
|
"naive-ui": "^2.30.0",
|
6
|
-
vue: "^3.
|
6
|
+
vue: "^3.5.0"
|
7
7
|
};
|
8
8
|
var dependencies = {
|
9
9
|
"@vicons/ionicons5": "^0.12.0",
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "cnhis-design-vue",
|
3
|
-
"version": "3.3.3-release.
|
3
|
+
"version": "3.3.3-release.14",
|
4
4
|
"license": "ISC",
|
5
5
|
"module": "./es/components/index.js",
|
6
6
|
"main": "./es/components/index.js",
|
@@ -21,7 +21,7 @@
|
|
21
21
|
"@fullcalendar/scrollgrid": "^6.1.10",
|
22
22
|
"@fullcalendar/vue3": "^6.1.10",
|
23
23
|
"naive-ui": "^2.34.0",
|
24
|
-
"vue": "^3.
|
24
|
+
"vue": "^3.5.0",
|
25
25
|
"vxe-table": "^4.2.5"
|
26
26
|
},
|
27
27
|
"dependencies": {
|
@@ -57,7 +57,7 @@
|
|
57
57
|
"spark-md5": "^3.0.2",
|
58
58
|
"stompjs": "^2.3.3",
|
59
59
|
"tiny-svg": "^2.2.4",
|
60
|
-
"trtc-sdk-v5": "
|
60
|
+
"trtc-sdk-v5": "5.12.0",
|
61
61
|
"v-viewer": "^3.0.10",
|
62
62
|
"video.js": "^7.19.2",
|
63
63
|
"videojs-contrib-hls": "^5.15.0",
|
@@ -74,5 +74,5 @@
|
|
74
74
|
"iOS 7",
|
75
75
|
"last 3 iOS versions"
|
76
76
|
],
|
77
|
-
"gitHead": "
|
77
|
+
"gitHead": "0268120b488aca500e66c427081bb45d41d7a646"
|
78
78
|
}
|