fantasy-ngzorro 1.3.32 → 1.3.34

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.
@@ -55,7 +55,8 @@ var FilterListType = {
55
55
  Date: 2,
56
56
  DateRange: 3,
57
57
  MultipleSelect: 4,
58
- Cascader: 5 // 级联选择
58
+ Cascader: 5,
59
+ Month: 6 // 月份选择
59
60
  ,
60
61
  };
61
62
  export { FilterListType };
@@ -65,6 +66,7 @@ FilterListType[FilterListType.Date] = 'Date';
65
66
  FilterListType[FilterListType.DateRange] = 'DateRange';
66
67
  FilterListType[FilterListType.MultipleSelect] = 'MultipleSelect';
67
68
  FilterListType[FilterListType.Cascader] = 'Cascader';
69
+ FilterListType[FilterListType.Month] = 'Month';
68
70
  var HdFilterService = /** @class */ (function () {
69
71
  function HdFilterService() {
70
72
  }
@@ -79,4 +81,4 @@ var HdFilterService = /** @class */ (function () {
79
81
  return HdFilterService;
80
82
  }());
81
83
  export { HdFilterService };
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1maWx0ZXIvaGQtZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczQzs7O0lBQUE7O1FBS0UsVUFBSyxHQUE2RCxJQUFJLENBQUMsQ0FBRSxjQUFjOztRQU92RixhQUFRLEdBQWEsS0FBSyxDQUFDLENBQUMsY0FBYzs7UUFDMUMsWUFBTyxHQUFhLEtBQUssQ0FBQyxDQUFDLE9BQU87SUFFcEMsQ0FBQztJQUFELGFBQUM7QUFBRCxDQUFDLEFBZkQsSUFlQzs7Ozs7SUFkQyxzQkFBcUI7O0lBQ3JCLHVCQUFjOztJQUNkLHNCQUFhOztJQUNiLDZCQUFxQjs7SUFDckIsdUJBQXVFOztJQUV2RSxzQkFBZTs7SUFDZiw4QkFBNEI7O0lBQzVCLCtCQUF5Qjs7SUFDekIsK0JBQXlCOztJQUN6QixnQ0FBMEI7O0lBQzFCLDBCQUEyQjs7SUFDM0IseUJBQTBCOztJQUMxQixnQ0FBZ0M7Ozs7SUFNaEMsUUFBSztJQUNMLFNBQU07SUFDTixPQUFJO0lBQ0osWUFBUztJQUNULGlCQUFjO0lBQ2QsV0FBUSxDQUFDLE9BQU87Ozs7Ozs7Ozs7QUFJbEI7SUFLRTtJQUFnQixDQUFDOztnQkFMbEIsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7Ozs7MEJBbENEO0NBdUNDLEFBUEQsSUFPQztTQUpZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb24sIENhc2NhZGVyT3B0aW9uIH0gZnJvbSAnLi4vbW9kZWwvY29tbW9uLXR5cGUnO1xuLy8g5o6n5Lu25YiX6KGoXG5leHBvcnQgY2xhc3MgRmlsdGVyIHtcbiAgdHlwZTogRmlsdGVyTGlzdFR5cGU7XG4gIGxhYmVsOiBzdHJpbmc7ICAvLyDmlofmnKxcbiAgbmFtZTogc3RyaW5nOyAgLy8g5a2X5q615ZCN56ewXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nOyAvLyDovpPlhaXmoYbmj5DnpLrmlofmoYhcbiAgdmFsdWU/OiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgQXJyYXk8c3RyaW5nIHwgRGF0ZT4gfCBudWxsID0gbnVsbDsgIC8vIOWAvCDkuI3kvKDpu5jorqTkuLpudWxsXG4gIC8vIOe7hOS7tuWGhemDqOaIkOWRmFxuICBzaG93PzogYm9vbGVhbjtcbiAgc2VsZWN0T3B0aW9uPzogU2VsZWN0T3B0aW9uOyAgLy8g5o6n5Lu25Li6U2VsZWN05pe277yM6YCJ6aG55YiX6KGoXG4gIG9uU2VhcmNoRXZlbnQ/OiBGdW5jdGlvbjsgIC8vIHNlbGVjdOmAieaLqeWZqOaQnOe0ouS6i+S7tiDlj6/nlKjkuo7mm7TmlrDlpIfpgInpm4blkIhcbiAgb25DaGFuZ2VFdmVudD86IEZ1bmN0aW9uOyAgIC8vIOaOp+S7tueahOWAvOaUueWPmOS6i+S7tiDlj6/nlKjkuo7mjqfku7bpl7TogZTliqhcbiAgaGREaXNhYmxlZERhdGU/OiBGdW5jdGlvbjsgLy8gZGF0ZS1waWNrZXLnu4Tku7bkuI3lj6/pgInmi6nnmoTml6XmnJ9cbiAgc2hvd1RpbWU/OiBib29sZWFuID0gZmFsc2U7IC8vIOaXpeacn+mAieaLqeWZqOaYr+WQpuWMheWQq+aXtumXtFxuICByZXF1aXJlPzogYm9vbGVhbiA9IGZhbHNlOyAvLyDmmK/lkKblv4XloatcbiAgY2FzY2FkZXJPcHRpb24/OiBDYXNjYWRlck9wdGlvbjsgLy8g57qn6IGU6YCJ5oup5Zmo6YWN572uXG59XG5cblxuLy8g5o6n5Lu257G75Z6LXG5leHBvcnQgZW51bSBGaWx0ZXJMaXN0VHlwZSB7XG4gIElucHV0LCAgLy8g6L6T5YWl5qGGXG4gIFNlbGVjdCwgIC8vIOWNlemhuemAieaLqeWZqFxuICBEYXRlLCAgLy8g5Y2V5Liq5pel5pyf6YCJ5oupXG4gIERhdGVSYW5nZSwgIC8vIOaXpeacn+iMg+WbtOmAieaLqVxuICBNdWx0aXBsZVNlbGVjdCwgLy8g5aSa6YCJXG4gIENhc2NhZGVyIC8vIOe6p+iBlOmAieaLqVxufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhkRmlsdGVyU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxufVxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1maWx0ZXIvaGQtZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUkzQzs7O0lBQUE7O1FBS0UsVUFBSyxHQUE2RCxJQUFJLENBQUMsQ0FBRSxjQUFjOztRQU92RixhQUFRLEdBQWEsS0FBSyxDQUFDLENBQUMsY0FBYzs7UUFDMUMsWUFBTyxHQUFhLEtBQUssQ0FBQyxDQUFDLE9BQU87SUFFcEMsQ0FBQztJQUFELGFBQUM7QUFBRCxDQUFDLEFBZkQsSUFlQzs7Ozs7SUFkQyxzQkFBcUI7O0lBQ3JCLHVCQUFjOztJQUNkLHNCQUFhOztJQUNiLDZCQUFxQjs7SUFDckIsdUJBQXVFOztJQUV2RSxzQkFBZTs7SUFDZiw4QkFBNEI7O0lBQzVCLCtCQUF5Qjs7SUFDekIsK0JBQXlCOztJQUN6QixnQ0FBMEI7O0lBQzFCLDBCQUEyQjs7SUFDM0IseUJBQTBCOztJQUMxQixnQ0FBZ0M7Ozs7SUFNaEMsUUFBSztJQUNMLFNBQU07SUFDTixPQUFJO0lBQ0osWUFBUztJQUNULGlCQUFjO0lBQ2QsV0FBUTtJQUNSLFFBQUssQ0FBQyxPQUFPOzs7Ozs7Ozs7OztBQUlmO0lBS0U7SUFDQSxDQUFDOztnQkFORixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7OzswQkFwQ0Q7Q0EwQ0MsQUFSRCxJQVFDO1NBTFksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiwgQ2FzY2FkZXJPcHRpb24gfSBmcm9tICcuLi9tb2RlbC9jb21tb24tdHlwZSc7XG5cbi8vIOaOp+S7tuWIl+ihqFxuZXhwb3J0IGNsYXNzIEZpbHRlciB7XG4gIHR5cGU6IEZpbHRlckxpc3RUeXBlO1xuICBsYWJlbDogc3RyaW5nOyAgLy8g5paH5pysXG4gIG5hbWU6IHN0cmluZzsgIC8vIOWtl+auteWQjeensFxuICBwbGFjZWhvbGRlcj86IHN0cmluZzsgLy8g6L6T5YWl5qGG5o+Q56S65paH5qGIXG4gIHZhbHVlPzogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IEFycmF5PHN0cmluZyB8IERhdGU+IHwgbnVsbCA9IG51bGw7ICAvLyDlgLwg5LiN5Lyg6buY6K6k5Li6bnVsbFxuICAvLyDnu4Tku7blhoXpg6jmiJDlkZhcbiAgc2hvdz86IGJvb2xlYW47XG4gIHNlbGVjdE9wdGlvbj86IFNlbGVjdE9wdGlvbjsgIC8vIOaOp+S7tuS4ulNlbGVjdOaXtu+8jOmAiemhueWIl+ihqFxuICBvblNlYXJjaEV2ZW50PzogRnVuY3Rpb247ICAvLyBzZWxlY3TpgInmi6nlmajmkJzntKLkuovku7Yg5Y+v55So5LqO5pu05paw5aSH6YCJ6ZuG5ZCIXG4gIG9uQ2hhbmdlRXZlbnQ/OiBGdW5jdGlvbjsgICAvLyDmjqfku7bnmoTlgLzmlLnlj5jkuovku7Yg5Y+v55So5LqO5o6n5Lu26Ze06IGU5YqoXG4gIGhkRGlzYWJsZWREYXRlPzogRnVuY3Rpb247IC8vIGRhdGUtcGlja2Vy57uE5Lu25LiN5Y+v6YCJ5oup55qE5pel5pyfXG4gIHNob3dUaW1lPzogYm9vbGVhbiA9IGZhbHNlOyAvLyDml6XmnJ/pgInmi6nlmajmmK/lkKbljIXlkKvml7bpl7RcbiAgcmVxdWlyZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5piv5ZCm5b+F5aGrXG4gIGNhc2NhZGVyT3B0aW9uPzogQ2FzY2FkZXJPcHRpb247IC8vIOe6p+iBlOmAieaLqeWZqOmFjee9rlxufVxuXG5cbi8vIOaOp+S7tuexu+Wei1xuZXhwb3J0IGVudW0gRmlsdGVyTGlzdFR5cGUge1xuICBJbnB1dCwgIC8vIOi+k+WFpeahhlxuICBTZWxlY3QsICAvLyDljZXpobnpgInmi6nlmahcbiAgRGF0ZSwgIC8vIOWNleS4quaXpeacn+mAieaLqVxuICBEYXRlUmFuZ2UsICAvLyDml6XmnJ/ojIPlm7TpgInmi6lcbiAgTXVsdGlwbGVTZWxlY3QsIC8vIOWkmumAiVxuICBDYXNjYWRlciwgLy8g57qn6IGU6YCJ5oupXG4gIE1vbnRoIC8vIOaciOS7vemAieaLqVxufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhkRmlsdGVyU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxufVxuIl19
package/esm5/utils.js CHANGED
@@ -2,76 +2,117 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
+ import * as tslib_1 from "tslib";
6
+ import { round } from 'lodash';
5
7
  // 工具类
6
- var ɵ0 = /**
7
- * @param {?} formList
8
- * @param {?} name
9
- * @param {?} options
10
- * @return {?}
11
- */
12
- function (formList, name, options) {
13
- /** @type {?} */
14
- var returnData = formList;
15
- if (!returnData || !returnData.length) {
16
- return returnData;
17
- }
18
- /** @type {?} */
19
- var length = formList.length;
20
- for (var i = 0; i < length; i++) {
21
- if (returnData[i].name === name) {
22
- returnData[i].selectOption.selectList = options;
8
+ /** @type {?} */
9
+ export var Utils = {
10
+ /**
11
+ * 填充select控件选项
12
+ * @param formList 入参数组 Array<any>
13
+ * @param name 需要填充options的属性名称
14
+ * @param options 选项列表
15
+ */
16
+ fillSelectOption: /**
17
+ * 填充select控件选项
18
+ * @param {?} formList 入参数组 Array<any>
19
+ * @param {?} name 需要填充options的属性名称
20
+ * @param {?} options 选项列表
21
+ * @return {?}
22
+ */
23
+ function (formList, name, options) {
24
+ /** @type {?} */
25
+ var returnData = formList;
26
+ if (!returnData || !returnData.length) {
27
+ return returnData;
23
28
  }
24
- }
25
- return returnData;
26
- }, ɵ1 = /**
27
- * @param {?} list
28
- * @param {?} obj
29
- * @return {?}
30
- */
31
- function (list, obj) {
32
- /** @type {?} */
33
- var returnData = [];
34
- if (!list || !list.length) {
35
- return returnData;
36
- }
37
- /** @type {?} */
38
- var length = list.length;
39
- for (var i = 0; i < length; i++) {
40
- if (obj[list[i].name]) {
41
- list[i].value = obj[list[i].name];
29
+ /** @type {?} */
30
+ var length = formList.length;
31
+ for (var i = 0; i < length; i++) {
32
+ if (returnData[i].name === name) {
33
+ returnData[i].selectOption.selectList = options;
34
+ }
42
35
  }
43
- }
44
- return list;
45
- }, ɵ2 = /**
46
- * @param {?} list
47
- * @param {?=} option
48
- * @return {?}
49
- */
50
- function (list, option) {
51
- /** @type {?} */
52
- var returnData = [];
53
- if (!list || !list.length) {
54
36
  return returnData;
55
- }
56
- if (option) {
57
- if (option.labelTip && option.valueTip) {
58
- list.forEach((/**
59
- * @param {?} item
60
- * @return {?}
61
- */
62
- function (item) {
63
- /** @type {?} */
64
- var returnItem = item;
65
- returnItem.label = item[option.label];
66
- returnItem.value = item[option.value];
67
- if (option.valueTip) {
68
- returnItem[option.valueTip] = item[option.value];
69
- }
70
- if (option.labelTip) {
71
- returnItem[option.labelTip] = item[option.label];
72
- }
73
- returnData.push(returnItem);
74
- }));
37
+ },
38
+ /**
39
+ * 填充FormItem数组:针对入参list的每一个FormItem,判断obj中是否有对应的name字段,如果有,则填充value。
40
+ * @param list 入参数组 Array<FormItem>
41
+ * @param obj 需要填充到list的属性
42
+ */
43
+ fillArrayFormItem: /**
44
+ * 填充FormItem数组:针对入参list的每一个FormItem,判断obj中是否有对应的name字段,如果有,则填充value。
45
+ * @param {?} list 入参数组 Array<FormItem>
46
+ * @param {?} obj 需要填充到list的属性
47
+ * @return {?}
48
+ */
49
+ function (list, obj) {
50
+ /** @type {?} */
51
+ var returnData = [];
52
+ if (!list || !list.length) {
53
+ return returnData;
54
+ }
55
+ /** @type {?} */
56
+ var length = list.length;
57
+ for (var i = 0; i < length; i++) {
58
+ if (obj[list[i].name]) {
59
+ list[i].value = obj[list[i].name];
60
+ }
61
+ }
62
+ return list;
63
+ },
64
+ /**
65
+ * 数组转换成选择器的选项数组
66
+ * @param list 入参数组 字符串数组或对象数组
67
+ * @param option 转换选项
68
+ * 注:list为字符串数组,option不需要传,按照标准的label、value转换
69
+ */
70
+ arrayToSelectOptionList: /**
71
+ * 数组转换成选择器的选项数组
72
+ * @param {?} list 入参数组 字符串数组或对象数组
73
+ * @param {?=} option 转换选项
74
+ * 注:list为字符串数组,option不需要传,按照标准的label、value转换
75
+ * @return {?}
76
+ */
77
+ function (list, option) {
78
+ /** @type {?} */
79
+ var returnData = [];
80
+ if (!list || !list.length) {
81
+ return returnData;
82
+ }
83
+ if (option) {
84
+ if (option.labelTip && option.valueTip) {
85
+ list.forEach((/**
86
+ * @param {?} item
87
+ * @return {?}
88
+ */
89
+ function (item) {
90
+ /** @type {?} */
91
+ var returnItem = item;
92
+ returnItem.label = item[option.label];
93
+ returnItem.value = item[option.value];
94
+ if (option.valueTip) {
95
+ returnItem[option.valueTip] = item[option.value];
96
+ }
97
+ if (option.labelTip) {
98
+ returnItem[option.labelTip] = item[option.label];
99
+ }
100
+ returnData.push(returnItem);
101
+ }));
102
+ }
103
+ else {
104
+ list.forEach((/**
105
+ * @param {?} item
106
+ * @return {?}
107
+ */
108
+ function (item) {
109
+ /** @type {?} */
110
+ var returnItem = item;
111
+ returnItem.label = item[option.label];
112
+ returnItem.value = item[option.value];
113
+ returnData.push(returnItem);
114
+ }));
115
+ }
75
116
  }
76
117
  else {
77
118
  list.forEach((/**
@@ -80,50 +121,186 @@ function (list, option) {
80
121
  */
81
122
  function (item) {
82
123
  /** @type {?} */
83
- var returnItem = item;
84
- returnItem.label = item[option.label];
85
- returnItem.value = item[option.value];
124
+ var returnItem = {};
125
+ returnItem.label = item;
126
+ returnItem.value = item;
86
127
  returnData.push(returnItem);
87
128
  }));
88
129
  }
89
- }
90
- else {
91
- list.forEach((/**
92
- * @param {?} item
130
+ return returnData;
131
+ },
132
+ /**
133
+ * 求和
134
+ * @param nums 数组
135
+ * @param precision 精度
136
+ */
137
+ add: /**
138
+ * 求和
139
+ * @param {?} nums 数组
140
+ * @param {?=} precision 精度
141
+ * @return {?}
142
+ */
143
+ function (nums, precision) {
144
+ var e_1, _a;
145
+ if (precision === void 0) { precision = 2; }
146
+ if (!Array.isArray(nums)) {
147
+ throw new Error('参数必须是数组');
148
+ }
149
+ if (nums.some((/**
150
+ * @param {?} num
93
151
  * @return {?}
94
152
  */
95
- function (item) {
96
- /** @type {?} */
97
- var returnItem = {};
98
- returnItem.label = item;
99
- returnItem.value = item;
100
- returnData.push(returnItem);
101
- }));
102
- }
103
- return returnData;
104
- };
105
- /** @type {?} */
106
- export var Utils = {
153
+ function (num) { return typeof num !== 'number'; }))) {
154
+ throw new Error('数组元素必须是数字');
155
+ }
156
+ /** @type {?} */
157
+ var result = 0;
158
+ try {
159
+ for (var nums_1 = tslib_1.__values(nums), nums_1_1 = nums_1.next(); !nums_1_1.done; nums_1_1 = nums_1.next()) {
160
+ var num = nums_1_1.value;
161
+ result += num;
162
+ }
163
+ }
164
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
165
+ finally {
166
+ try {
167
+ if (nums_1_1 && !nums_1_1.done && (_a = nums_1.return)) _a.call(nums_1);
168
+ }
169
+ finally { if (e_1) throw e_1.error; }
170
+ }
171
+ return round(result, precision);
172
+ },
107
173
  /**
108
- * 填充select控件选项
109
- * @param formList 入参数组 Array<any>
110
- * @param name 需要填充options的属性名称
111
- * @param options 选项列表
174
+ * 减法
175
+ * @param nums 数组
176
+ * @param precision 精度
177
+ */
178
+ subtract: /**
179
+ * 减法
180
+ * @param {?} nums 数组
181
+ * @param {?=} precision 精度
182
+ * @return {?}
112
183
  */
113
- fillSelectOption: (ɵ0),
184
+ function (nums, precision) {
185
+ var e_2, _a;
186
+ if (precision === void 0) { precision = 2; }
187
+ if (!Array.isArray(nums)) {
188
+ throw new Error('参数必须是数组');
189
+ }
190
+ if (nums.some((/**
191
+ * @param {?} num
192
+ * @return {?}
193
+ */
194
+ function (num) { return typeof num !== 'number'; }))) {
195
+ throw new Error('数组元素必须是数字');
196
+ }
197
+ if (nums.length < 2) {
198
+ throw new Error('减法入参数量至少要2个!');
199
+ }
200
+ /** @type {?} */
201
+ var result = nums.shift();
202
+ try {
203
+ for (var nums_2 = tslib_1.__values(nums), nums_2_1 = nums_2.next(); !nums_2_1.done; nums_2_1 = nums_2.next()) {
204
+ var num = nums_2_1.value;
205
+ result -= num;
206
+ }
207
+ }
208
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
209
+ finally {
210
+ try {
211
+ if (nums_2_1 && !nums_2_1.done && (_a = nums_2.return)) _a.call(nums_2);
212
+ }
213
+ finally { if (e_2) throw e_2.error; }
214
+ }
215
+ return round(result, precision);
216
+ },
114
217
  /**
115
- * 填充FormItem数组:针对入参list的每一个FormItem,判断obj中是否有对应的name字段,如果有,则填充value。
116
- * @param list 入参数组 Array<FormItem>
117
- * @param obj 需要填充到list的属性
218
+ * 乘法
219
+ * @param nums 数组
220
+ * @param precision 精度
118
221
  */
119
- fillArrayFormItem: (ɵ1),
222
+ multiply: /**
223
+ * 乘法
224
+ * @param {?} nums 数组
225
+ * @param {?=} precision 精度
226
+ * @return {?}
227
+ */
228
+ function (nums, precision) {
229
+ var e_3, _a;
230
+ if (precision === void 0) { precision = 2; }
231
+ if (!Array.isArray(nums)) {
232
+ throw new Error('参数必须是数组');
233
+ }
234
+ if (nums.some((/**
235
+ * @param {?} num
236
+ * @return {?}
237
+ */
238
+ function (num) { return typeof num !== 'number'; }))) {
239
+ throw new Error('数组元素必须是数字');
240
+ }
241
+ /** @type {?} */
242
+ var result = 1;
243
+ try {
244
+ for (var nums_3 = tslib_1.__values(nums), nums_3_1 = nums_3.next(); !nums_3_1.done; nums_3_1 = nums_3.next()) {
245
+ var num = nums_3_1.value;
246
+ result = result * num;
247
+ }
248
+ }
249
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
250
+ finally {
251
+ try {
252
+ if (nums_3_1 && !nums_3_1.done && (_a = nums_3.return)) _a.call(nums_3);
253
+ }
254
+ finally { if (e_3) throw e_3.error; }
255
+ }
256
+ return round(result, precision);
257
+ },
120
258
  /**
121
- * 数组转换成选择器的选项数组
122
- * @param list 入参数组 字符串数组或对象数组
123
- * @param option 转换选项
124
- * 注:list为字符串数组,option不需要传,按照标准的label、value转换
259
+ * 除法
260
+ * @param nums 数组
261
+ * @param precision 精度
262
+ */
263
+ divide: /**
264
+ * 除法
265
+ * @param {?} nums 数组
266
+ * @param {?=} precision 精度
267
+ * @return {?}
125
268
  */
126
- arrayToSelectOptionList: (ɵ2)
269
+ function (nums, precision) {
270
+ var e_4, _a;
271
+ if (precision === void 0) { precision = 2; }
272
+ if (!Array.isArray(nums)) {
273
+ throw new Error('参数必须是数组');
274
+ }
275
+ if (nums.some((/**
276
+ * @param {?} num
277
+ * @return {?}
278
+ */
279
+ function (num) { return typeof num !== 'number'; }))) {
280
+ throw new Error('数组元素必须是数字');
281
+ }
282
+ if (nums.length < 2) {
283
+ throw new Error('除法入参数量至少要2个!');
284
+ }
285
+ /** @type {?} */
286
+ var result = nums.shift();
287
+ try {
288
+ for (var nums_4 = tslib_1.__values(nums), nums_4_1 = nums_4.next(); !nums_4_1.done; nums_4_1 = nums_4.next()) {
289
+ var num = nums_4_1.value;
290
+ if (num === 0) {
291
+ throw new Error('除数不能为0!');
292
+ }
293
+ result = result / num;
294
+ }
295
+ }
296
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
297
+ finally {
298
+ try {
299
+ if (nums_4_1 && !nums_4_1.done && (_a = nums_4.return)) _a.call(nums_4);
300
+ }
301
+ finally { if (e_4) throw e_4.error; }
302
+ }
303
+ return round(result, precision);
304
+ }
127
305
  };
128
- export { ɵ0, ɵ1, ɵ2 };
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVVvQixVQUFVLFFBQW9CLEVBQUUsSUFBWSxFQUFFLE9BQW1COztRQUM3RSxVQUFVLEdBQUcsUUFBUTtJQUN6QixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUNyQyxPQUFPLFVBQVUsQ0FBQztLQUNuQjs7UUFDSyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU07SUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMvQixJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztTQUNqRDtLQUNGO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQzs7Ozs7QUFPa0IsVUFBVSxJQUFxQixFQUFFLEdBQVc7O1FBQ3pELFVBQVUsR0FBRyxFQUFFO0lBQ25CLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ3pCLE9BQU8sVUFBVSxDQUFDO0tBQ25COztRQUNLLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTTtJQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9CLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQzs7Ozs7QUFRd0IsVUFBVSxJQUFnQixFQUFFLE1BQStFOztRQUM5SCxVQUFVLEdBQUcsRUFBRTtJQUNuQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUN6QixPQUFPLFVBQVUsQ0FBQztLQUNuQjtJQUNELElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFDLElBQUk7O29CQUNaLFVBQVUsR0FBUSxJQUFJO2dCQUMxQixVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUNuQixVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2xEO2dCQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtvQkFDbkIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNsRDtnQkFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlCLENBQUMsRUFBQyxDQUFBO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPOzs7O1lBQUMsVUFBQyxJQUFJOztvQkFDWixVQUFVLEdBQVEsSUFBSTtnQkFDMUIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUIsQ0FBQyxFQUFDLENBQUE7U0FDSDtLQUNGO1NBQU07UUFDTCxJQUFJLENBQUMsT0FBTzs7OztRQUFDLFVBQUMsSUFBSTs7Z0JBQ1osVUFBVSxHQUFRLEVBQUU7WUFDeEIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDeEIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDeEIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixDQUFDLEVBQUMsQ0FBQTtLQUNIO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQzs7QUFsRkgsTUFBTSxLQUFPLEtBQUssR0FBRzs7Ozs7OztJQU9uQixnQkFBZ0IsTUFZZjs7Ozs7O0lBT0QsaUJBQWlCLE1BWWhCOzs7Ozs7O0lBUUQsdUJBQXVCLE1Bb0N0QjtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUl0ZW0gfSBmcm9tIFwiLi9oZC1mb3JtL2hkLWZvcm0uc2VydmljZVwiO1xuXG4vLyDlt6XlhbfnsbtcbmV4cG9ydCBjb25zdCBVdGlscyA9IHtcbiAgLyoqXG4gICAqIOWhq+WFhXNlbGVjdOaOp+S7tumAiemhuVxuICAgKiBAcGFyYW0gZm9ybUxpc3Qg5YWl5Y+C5pWw57uEIEFycmF5PGFueT5cbiAgICogQHBhcmFtIG5hbWUg6ZyA6KaB5aGr5YWFb3B0aW9uc+eahOWxnuaAp+WQjeensFxuICAgKiBAcGFyYW0gb3B0aW9ucyDpgInpobnliJfooahcbiAgICovXG4gIGZpbGxTZWxlY3RPcHRpb246IGZ1bmN0aW9uIChmb3JtTGlzdDogQXJyYXk8YW55PiwgbmFtZTogc3RyaW5nLCBvcHRpb25zOiBBcnJheTxhbnk+KSB7XG4gICAgbGV0IHJldHVybkRhdGEgPSBmb3JtTGlzdDtcbiAgICBpZiAoIXJldHVybkRhdGEgfHwgIXJldHVybkRhdGEubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmV0dXJuRGF0YTtcbiAgICB9XG4gICAgY29uc3QgbGVuZ3RoID0gZm9ybUxpc3QubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChyZXR1cm5EYXRhW2ldLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgcmV0dXJuRGF0YVtpXS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCA9IG9wdGlvbnM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5EYXRhO1xuICB9LFxuXG4gIC8qKlxuICAgKiDloavlhYVGb3JtSXRlbeaVsOe7hO+8mumSiOWvueWFpeWPgmxpc3TnmoTmr4/kuIDkuKpGb3JtSXRlbe+8jOWIpOaWrW9iauS4reaYr+WQpuacieWvueW6lOeahG5hbWXlrZfmrrXvvIzlpoLmnpzmnInvvIzliJnloavlhYV2YWx1ZeOAglxuICAgKiBAcGFyYW0gbGlzdCDlhaXlj4LmlbDnu4QgQXJyYXk8Rm9ybUl0ZW0+XG4gICAqIEBwYXJhbSBvYmog6ZyA6KaB5aGr5YWF5YiwbGlzdOeahOWxnuaAp1xuICAgKi9cbiAgZmlsbEFycmF5Rm9ybUl0ZW06IGZ1bmN0aW9uIChsaXN0OiBBcnJheTxGb3JtSXRlbT4sIG9iajogT2JqZWN0KSB7XG4gICAgbGV0IHJldHVybkRhdGEgPSBbXTtcbiAgICBpZiAoIWxpc3QgfHwgIWxpc3QubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmV0dXJuRGF0YTtcbiAgICB9XG4gICAgY29uc3QgbGVuZ3RoID0gbGlzdC5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgaWYgKG9ialtsaXN0W2ldLm5hbWVdKSB7XG4gICAgICAgIGxpc3RbaV0udmFsdWUgPSBvYmpbbGlzdFtpXS5uYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH0sXG5cbiAgLyoqXG4gICAqIOaVsOe7hOi9rOaNouaIkOmAieaLqeWZqOeahOmAiemhueaVsOe7hFxuICAgKiBAcGFyYW0gbGlzdCDlhaXlj4LmlbDnu4Qg5a2X56ym5Liy5pWw57uE5oiW5a+56LGh5pWw57uEXG4gICAqIEBwYXJhbSBvcHRpb24g6L2s5o2i6YCJ6aG5XG4gICAqIOazqO+8mmxpc3TkuLrlrZfnrKbkuLLmlbDnu4TvvIxvcHRpb27kuI3pnIDopoHkvKDvvIzmjInnhafmoIflh4bnmoRsYWJlbOOAgXZhbHVl6L2s5o2iXG4gICAqL1xuICBhcnJheVRvU2VsZWN0T3B0aW9uTGlzdDogZnVuY3Rpb24gKGxpc3Q6IEFycmF5PGFueT4sIG9wdGlvbj86IHsgdmFsdWU6IHN0cmluZywgbGFiZWw6IHN0cmluZywgdmFsdWVUaXA/OiBzdHJpbmcsIGxhYmVsVGlwPzogc3RyaW5nIH0pIHtcbiAgICBsZXQgcmV0dXJuRGF0YSA9IFtdO1xuICAgIGlmICghbGlzdCB8fCAhbGlzdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiByZXR1cm5EYXRhO1xuICAgIH1cbiAgICBpZiAob3B0aW9uKSB7XG4gICAgICBpZiAob3B0aW9uLmxhYmVsVGlwICYmIG9wdGlvbi52YWx1ZVRpcCkge1xuICAgICAgICBsaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBsZXQgcmV0dXJuSXRlbTogYW55ID0gaXRlbTtcbiAgICAgICAgICByZXR1cm5JdGVtLmxhYmVsID0gaXRlbVtvcHRpb24ubGFiZWxdO1xuICAgICAgICAgIHJldHVybkl0ZW0udmFsdWUgPSBpdGVtW29wdGlvbi52YWx1ZV07XG4gICAgICAgICAgaWYgKG9wdGlvbi52YWx1ZVRpcCkge1xuICAgICAgICAgICAgcmV0dXJuSXRlbVtvcHRpb24udmFsdWVUaXBdID0gaXRlbVtvcHRpb24udmFsdWVdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0aW9uLmxhYmVsVGlwKSB7XG4gICAgICAgICAgICByZXR1cm5JdGVtW29wdGlvbi5sYWJlbFRpcF0gPSBpdGVtW29wdGlvbi5sYWJlbF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybkRhdGEucHVzaChyZXR1cm5JdGVtKTtcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGxldCByZXR1cm5JdGVtOiBhbnkgPSBpdGVtO1xuICAgICAgICAgIHJldHVybkl0ZW0ubGFiZWwgPSBpdGVtW29wdGlvbi5sYWJlbF07XG4gICAgICAgICAgcmV0dXJuSXRlbS52YWx1ZSA9IGl0ZW1bb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgICByZXR1cm5EYXRhLnB1c2gocmV0dXJuSXRlbSk7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBsZXQgcmV0dXJuSXRlbTogYW55ID0ge307XG4gICAgICAgIHJldHVybkl0ZW0ubGFiZWwgPSBpdGVtO1xuICAgICAgICByZXR1cm5JdGVtLnZhbHVlID0gaXRlbTtcbiAgICAgICAgcmV0dXJuRGF0YS5wdXNoKHJldHVybkl0ZW0pO1xuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybkRhdGE7XG4gIH1cbn1cbiJdfQ==
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7OztBQUUvQixNQUFNLEtBQU8sS0FBSyxHQUFHO0lBQ25COzs7OztPQUtHO0lBQ0gsZ0JBQWdCOzs7Ozs7O0lBQWhCLFVBQWlCLFFBQW9CLEVBQUUsSUFBWSxFQUFFLE9BQW1COztZQUNoRSxVQUFVLEdBQUcsUUFBUTtRQUMzQixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxPQUFPLFVBQVUsQ0FBQztTQUNuQjs7WUFDSyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU07UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMvQixJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUMvQixVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7YUFDakQ7U0FDRjtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCOzs7Ozs7SUFBakIsVUFBa0IsSUFBcUIsRUFBRSxHQUFXOztZQUM1QyxVQUFVLEdBQUcsRUFBRTtRQUNyQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN6QixPQUFPLFVBQVUsQ0FBQztTQUNuQjs7WUFDSyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU07UUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMvQixJQUFJLEdBQUcsQ0FB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QyxTQUFTLENBQUMsQ0FBQztpQkFDNUI7Z0JBQ0QsTUFBTSxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7YUFDdkI7Ozs7Ozs7OztRQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtSXRlbSB9IGZyb20gJy4vaGQtZm9ybS9oZC1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tICdsb2Rhc2gnO1xuLy8g5bel5YW357G7XG5leHBvcnQgY29uc3QgVXRpbHMgPSB7XG4gIC8qKlxuICAgKiDloavlhYVzZWxlY3Tmjqfku7bpgInpoblcbiAgICogQHBhcmFtIGZvcm1MaXN0IOWFpeWPguaVsOe7hCBBcnJheTxhbnk+XG4gICAqIEBwYXJhbSBuYW1lIOmcgOimgeWhq+WFhW9wdGlvbnPnmoTlsZ7mgKflkI3np7BcbiAgICogQHBhcmFtIG9wdGlvbnMg6YCJ6aG55YiX6KGoXG4gICAqL1xuICBmaWxsU2VsZWN0T3B0aW9uKGZvcm1MaXN0OiBBcnJheTxhbnk+LCBuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEFycmF5PGFueT4pIHtcbiAgICBjb25zdCByZXR1cm5EYXRhID0gZm9ybUxpc3Q7XG4gICAgaWYgKCFyZXR1cm5EYXRhIHx8ICFyZXR1cm5EYXRhLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJldHVybkRhdGE7XG4gICAgfVxuICAgIGNvbnN0IGxlbmd0aCA9IGZvcm1MaXN0Lmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocmV0dXJuRGF0YVtpXS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgIHJldHVybkRhdGFbaV0uc2VsZWN0T3B0aW9uLnNlbGVjdExpc3QgPSBvcHRpb25zO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0dXJuRGF0YTtcbiAgfSxcblxuICAvKipcbiAgICog5aGr5YWFRm9ybUl0ZW3mlbDnu4TvvJrpkojlr7nlhaXlj4JsaXN055qE5q+P5LiA5LiqRm9ybUl0ZW3vvIzliKTmlq1vYmrkuK3mmK/lkKbmnInlr7nlupTnmoRuYW1l5a2X5q6177yM5aaC5p6c5pyJ77yM5YiZ5aGr5YWFdmFsdWXjgIJcbiAgICogQHBhcmFtIGxpc3Qg5YWl5Y+C5pWw57uEIEFycmF5PEZvcm1JdGVtPlxuICAgKiBAcGFyYW0gb2JqIOmcgOimgeWhq+WFheWIsGxpc3TnmoTlsZ7mgKdcbiAgICovXG4gIGZpbGxBcnJheUZvcm1JdGVtKGxpc3Q6IEFycmF5PEZvcm1JdGVtPiwgb2JqOiBPYmplY3QpIHtcbiAgICBjb25zdCByZXR1cm5EYXRhID0gW107XG4gICAgaWYgKCFsaXN0IHx8ICFsaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJldHVybkRhdGE7XG4gICAgfVxuICAgIGNvbnN0IGxlbmd0aCA9IGxpc3QubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChvYmpbbGlzdFtpXS5uYW1lXSkge1xuICAgICAgICBsaXN0W2ldLnZhbHVlID0gb2JqW2xpc3RbaV0ubmFtZV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaXN0O1xuICB9LFxuXG4gIC8qKlxuICAgKiDmlbDnu4TovazmjaLmiJDpgInmi6nlmajnmoTpgInpobnmlbDnu4RcbiAgICogQHBhcmFtIGxpc3Qg5YWl5Y+C5pWw57uEIOWtl+espuS4suaVsOe7hOaIluWvueixoeaVsOe7hFxuICAgKiBAcGFyYW0gb3B0aW9uIOi9rOaNoumAiemhuVxuICAgKiDms6jvvJpsaXN05Li65a2X56ym5Liy5pWw57uE77yMb3B0aW9u5LiN6ZyA6KaB5Lyg77yM5oyJ54Wn5qCH5YeG55qEbGFiZWzjgIF2YWx1Zei9rOaNolxuICAgKi9cbiAgYXJyYXlUb1NlbGVjdE9wdGlvbkxpc3QobGlzdDogQXJyYXk8YW55Piwgb3B0aW9uPzoge1xuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgbGFiZWw6IHN0cmluZyxcbiAgICB2YWx1ZVRpcD86IHN0cmluZyxcbiAgICBsYWJlbFRpcD86IHN0cmluZ1xuICB9KSB7XG4gICAgY29uc3QgcmV0dXJuRGF0YSA9IFtdO1xuICAgIGlmICghbGlzdCB8fCAhbGlzdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiByZXR1cm5EYXRhO1xuICAgIH1cbiAgICBpZiAob3B0aW9uKSB7XG4gICAgICBpZiAob3B0aW9uLmxhYmVsVGlwICYmIG9wdGlvbi52YWx1ZVRpcCkge1xuICAgICAgICBsaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCByZXR1cm5JdGVtOiBhbnkgPSBpdGVtO1xuICAgICAgICAgIHJldHVybkl0ZW0ubGFiZWwgPSBpdGVtW29wdGlvbi5sYWJlbF07XG4gICAgICAgICAgcmV0dXJuSXRlbS52YWx1ZSA9IGl0ZW1bb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgICBpZiAob3B0aW9uLnZhbHVlVGlwKSB7XG4gICAgICAgICAgICByZXR1cm5JdGVtW29wdGlvbi52YWx1ZVRpcF0gPSBpdGVtW29wdGlvbi52YWx1ZV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvcHRpb24ubGFiZWxUaXApIHtcbiAgICAgICAgICAgIHJldHVybkl0ZW1bb3B0aW9uLmxhYmVsVGlwXSA9IGl0ZW1bb3B0aW9uLmxhYmVsXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuRGF0YS5wdXNoKHJldHVybkl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJldHVybkl0ZW06IGFueSA9IGl0ZW07XG4gICAgICAgICAgcmV0dXJuSXRlbS5sYWJlbCA9IGl0ZW1bb3B0aW9uLmxhYmVsXTtcbiAgICAgICAgICByZXR1cm5JdGVtLnZhbHVlID0gaXRlbVtvcHRpb24udmFsdWVdO1xuICAgICAgICAgIHJldHVybkRhdGEucHVzaChyZXR1cm5JdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCByZXR1cm5JdGVtOiBhbnkgPSB7fTtcbiAgICAgICAgcmV0dXJuSXRlbS5sYWJlbCA9IGl0ZW07XG4gICAgICAgIHJldHVybkl0ZW0udmFsdWUgPSBpdGVtO1xuICAgICAgICByZXR1cm5EYXRhLnB1c2gocmV0dXJuSXRlbSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybkRhdGE7XG4gIH0sXG5cbiAgLyoqXG4gICAqIOaxguWSjFxuICAgKiBAcGFyYW0gbnVtcyDmlbDnu4RcbiAgICogQHBhcmFtIHByZWNpc2lvbiDnsr7luqZcbiAgICovXG4gIGFkZChudW1zOiBudW1iZXJbXSwgcHJlY2lzaW9uOiBudW1iZXIgPSAyKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG51bXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ+WPguaVsOW/hemhu+aYr+aVsOe7hCcpO1xuICAgIH1cbiAgICBpZiAobnVtcy5zb21lKG51bSA9PiB0eXBlb2YgbnVtICE9PSAnbnVtYmVyJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcign5pWw57uE5YWD57Sg5b+F6aG75piv5pWw5a2XJyk7XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSAwO1xuICAgIGZvciAoY29uc3QgbnVtIG9mIG51bXMpIHtcbiAgICAgIHJlc3VsdCArPSBudW07XG4gICAgfVxuICAgIHJldHVybiByb3VuZChyZXN1bHQsIHByZWNpc2lvbik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIOWHj+azlVxuICAgKiBAcGFyYW0gbnVtcyDmlbDnu4RcbiAgICogQHBhcmFtIHByZWNpc2lvbiDnsr7luqZcbiAgICovXG4gIHN1YnRyYWN0KG51bXM6IG51bWJlcltdLCBwcmVjaXNpb246IG51bWJlciA9IDIpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobnVtcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcign5Y+C5pWw5b+F6aG75piv5pWw57uEJyk7XG4gICAgfVxuICAgIGlmIChudW1zLnNvbWUobnVtID0+IHR5cGVvZiBudW0gIT09ICdudW1iZXInKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCfmlbDnu4TlhYPntKDlv4XpobvmmK/mlbDlrZcnKTtcbiAgICB9XG4gICAgaWYgKG51bXMubGVuZ3RoIDwgMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCflh4/ms5XlhaXlj4LmlbDph4/oh7PlsJHopoEy5Liq77yBJyk7XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSBudW1zLnNoaWZ0KCk7XG4gICAgZm9yIChjb25zdCBudW0gb2YgbnVtcykge1xuICAgICAgcmVzdWx0IC09IG51bTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdW5kKHJlc3VsdCwgcHJlY2lzaW9uKTtcbiAgfSxcblxuICAvKipcbiAgICog5LmY5rOVXG4gICAqIEBwYXJhbSBudW1zIOaVsOe7hFxuICAgKiBAcGFyYW0gcHJlY2lzaW9uIOeyvuW6plxuICAgKi9cbiAgbXVsdGlwbHkobnVtczogbnVtYmVyW10sIHByZWNpc2lvbjogbnVtYmVyID0gMikge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShudW1zKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCflj4LmlbDlv4XpobvmmK/mlbDnu4QnKTtcbiAgICB9XG4gICAgaWYgKG51bXMuc29tZShudW0gPT4gdHlwZW9mIG51bSAhPT0gJ251bWJlcicpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ+aVsOe7hOWFg+e0oOW/hemhu+aYr+aVsOWtlycpO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0gMTtcbiAgICBmb3IgKGNvbnN0IG51bSBvZiBudW1zKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQgKiBudW07XG4gICAgfVxuICAgIHJldHVybiByb3VuZChyZXN1bHQsIHByZWNpc2lvbik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIOmZpOazlVxuICAgKiBAcGFyYW0gbnVtcyDmlbDnu4RcbiAgICogQHBhcmFtIHByZWNpc2lvbiDnsr7luqZcbiAgICovXG4gIGRpdmlkZShudW1zOiBudW1iZXJbXSwgcHJlY2lzaW9uOiBudW1iZXIgPSAyKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG51bXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ+WPguaVsOW/hemhu+aYr+aVsOe7hCcpO1xuICAgIH1cbiAgICBpZiAobnVtcy5zb21lKG51bSA9PiB0eXBlb2YgbnVtICE9PSAnbnVtYmVyJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcign5pWw57uE5YWD57Sg5b+F6aG75piv5pWw5a2XJyk7XG4gICAgfVxuICAgIGlmIChudW1zLmxlbmd0aCA8IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcign6Zmk5rOV5YWl5Y+C5pWw6YeP6Iez5bCR6KaBMuS4qu+8gScpO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0gbnVtcy5zaGlmdCgpO1xuICAgIGZvciAoY29uc3QgbnVtIG9mIG51bXMpIHtcbiAgICAgIGlmIChudW0gPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfpmaTmlbDkuI3og73kuLow77yBJyk7XG4gICAgICB9XG4gICAgICByZXN1bHQgPSByZXN1bHQgLyBudW07XG4gICAgfVxuICAgIHJldHVybiByb3VuZChyZXN1bHQsIHByZWNpc2lvbik7XG4gIH1cbn07XG4iXX0=