@owocow/saber-ui 0.0.2 → 0.0.4

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 (131) hide show
  1. package/README.md +206 -11
  2. package/dist/BadgeStatus.types.d.ts +1 -1
  3. package/dist/BadgeStatus.vue.d.ts +1 -1
  4. package/dist/SaberConfirmModal.vue_vue_type_script_setup_true_lang-Cqp9krYl.js +86 -0
  5. package/dist/SaberConfirmProvider.vue_vue_type_script_setup_true_lang-DUJ6ftNJ.js +30 -0
  6. package/dist/SaberDictCheckbox.vue_vue_type_script_setup_true_lang-DUbzy_C6.js +34 -0
  7. package/dist/SaberDictRadio.vue_vue_type_script_setup_true_lang-DR6-jSID.js +50 -0
  8. package/dist/SaberDictSelect.vue_vue_type_script_setup_true_lang-B8PTKNKX.js +35 -0
  9. package/dist/SaberDistrictSelect.vue_vue_type_script_setup_true_lang-BX8nLC35.js +257 -0
  10. package/dist/SaberInfo.vue_vue_type_script_setup_true_lang-B3W5VsGR.js +58 -0
  11. package/dist/SaberInfoProvider.vue_vue_type_script_setup_true_lang-3rF6bSCn.js +28 -0
  12. package/dist/SaberModal.vue_vue_type_script_setup_true_lang-DJno3jA3.js +71 -0
  13. package/dist/SaberModalWithMobile.vue_vue_type_script_setup_true_lang-aQlToncY.js +87 -0
  14. package/dist/SaberNoData.types.d.ts +11 -0
  15. package/dist/SaberNoData.vue.d.ts +24 -0
  16. package/dist/SaberPopSelect.vue_vue_type_script_setup_true_lang-BcS27NXI.js +125 -0
  17. package/dist/SaberStatus.vue_vue_type_script_setup_true_lang-D9aRVCow.js +38 -0
  18. package/dist/SaberSwitchBar.vue_vue_type_script_setup_true_lang-CDx3Dcas.js +47 -0
  19. package/dist/SaberUploadImage.vue_vue_type_script_setup_true_lang-CAwci2Vr.js +224 -0
  20. package/dist/colors.d.ts +1 -1
  21. package/dist/components/SaberConfirmModal.mjs +4 -0
  22. package/dist/components/SaberConfirmModal.vue.d.ts +28 -0
  23. package/dist/components/SaberConfirmProvider.mjs +4 -0
  24. package/dist/components/SaberConfirmProvider.vue.d.ts +2 -0
  25. package/dist/components/SaberInfo.mjs +4 -0
  26. package/dist/components/SaberInfo.types.d.ts +14 -0
  27. package/dist/components/SaberInfo.vue.d.ts +21 -0
  28. package/dist/components/SaberInfoProvider.mjs +4 -0
  29. package/dist/components/SaberInfoProvider.vue.d.ts +20 -0
  30. package/dist/components/SaberModalWithMobile.mjs +4 -0
  31. package/dist/components/SaberModalWithMobile.vue.d.ts +36 -0
  32. package/dist/components/SaberStatus.mjs +4 -0
  33. package/dist/components/SaberStatus.types.d.ts +1 -0
  34. package/dist/components/SaberStatus.vue.d.ts +8 -0
  35. package/dist/components/SaberSwitchBar.mjs +4 -0
  36. package/dist/components/SaberSwitchBar.types.d.ts +13 -0
  37. package/dist/components/SaberSwitchBar.vue.d.ts +18 -0
  38. package/dist/components/info-context.d.ts +3 -0
  39. package/dist/composables/index.d.ts +12 -0
  40. package/dist/composables/use-address-parse.d.ts +15 -0
  41. package/dist/composables/use-address-parse.mjs +20 -0
  42. package/dist/composables/use-boolean.d.ts +8 -0
  43. package/dist/composables/use-boolean.mjs +20 -0
  44. package/dist/composables/use-confirm.d.ts +34 -0
  45. package/dist/composables/use-confirm.mjs +28 -0
  46. package/dist/composables/use-delay-unmount.d.ts +7 -0
  47. package/dist/composables/use-delay-unmount.mjs +26 -0
  48. package/dist/composables/use-delete.d.ts +13 -0
  49. package/dist/composables/use-delete.mjs +19 -0
  50. package/dist/composables/use-loading.d.ts +6 -0
  51. package/dist/composables/use-loading.mjs +8 -0
  52. package/dist/composables/use-skeleton.d.ts +5 -0
  53. package/dist/composables/use-skeleton.mjs +23 -0
  54. package/dist/composables/use-table.d.ts +57 -0
  55. package/dist/composables/use-table.mjs +87 -0
  56. package/dist/composables.mjs +21 -0
  57. package/dist/district-service-cOu1tbQG.js +147 -0
  58. package/dist/district.d.ts +3 -0
  59. package/dist/district.mjs +8 -0
  60. package/dist/forms/components/SaberFilterBar.vue.d.ts +41 -0
  61. package/dist/forms/components/SaberFormModal.vue.d.ts +31 -0
  62. package/dist/forms/components/SaberModal.vue.d.ts +34 -0
  63. package/dist/forms/components/fields/SaberDictCheckbox.vue.d.ts +24 -0
  64. package/dist/forms/components/fields/SaberDictRadio.vue.d.ts +24 -0
  65. package/dist/forms/components/fields/SaberDictSelect.vue.d.ts +28 -0
  66. package/dist/forms/components/fields/SaberDistrictSelect.vue.d.ts +31 -0
  67. package/dist/forms/components/fields/SaberInput.vue.d.ts +16 -0
  68. package/dist/forms/components/fields/SaberInputNumber.vue.d.ts +11 -0
  69. package/dist/forms/components/fields/SaberPopSelect.vue.d.ts +25 -0
  70. package/dist/forms/components/fields/SaberRadioGroup.vue.d.ts +11 -0
  71. package/dist/forms/components/fields/SaberSelect.vue.d.ts +11 -0
  72. package/dist/forms/components/fields/SaberTextarea.vue.d.ts +11 -0
  73. package/dist/forms/components/fields/SaberUploadImage.vue.d.ts +113 -0
  74. package/dist/forms/dict-checkbox.mjs +4 -0
  75. package/dist/forms/dict-radio.mjs +4 -0
  76. package/dist/forms/dict-select.mjs +4 -0
  77. package/dist/forms/dict-source.d.ts +3 -0
  78. package/dist/forms/district-select.mjs +4 -0
  79. package/dist/forms/district-service.d.ts +46 -0
  80. package/dist/forms/filter-state.d.ts +4 -0
  81. package/dist/forms/index.d.ts +24 -0
  82. package/dist/forms/plugin.d.ts +20 -0
  83. package/dist/forms/pop-select.mjs +4 -0
  84. package/dist/forms/presets/basic.d.ts +5 -0
  85. package/dist/forms/registry.d.ts +15 -0
  86. package/dist/forms/types.d.ts +102 -0
  87. package/dist/forms/upload-image-source.d.ts +3 -0
  88. package/dist/forms/upload-image.mjs +4 -0
  89. package/dist/forms/use-dict-options.d.ts +8 -0
  90. package/dist/forms.mjs +45 -0
  91. package/dist/index-BealGwXp.js +5020 -0
  92. package/dist/index.d.ts +62 -1
  93. package/dist/index.mjs +122 -33
  94. package/dist/info-context-MfOfJNDT.js +4 -0
  95. package/dist/plugin-Dr3z0YFg.js +396 -0
  96. package/dist/types/api.d.ts +30 -0
  97. package/dist/types/auth.d.ts +54 -0
  98. package/dist/types/common.d.ts +14 -0
  99. package/dist/types/index.d.ts +3 -0
  100. package/dist/types/index.mjs +1 -0
  101. package/dist/upload-image-source-On8NHgmx.js +4 -0
  102. package/dist/use-dict-options-DjtbYYIa.js +38 -0
  103. package/dist/utils/addressParse.d.ts +37 -0
  104. package/dist/utils/addressParse.mjs +623 -0
  105. package/dist/utils/crypto.d.ts +11 -0
  106. package/dist/utils/crypto.mjs +36 -0
  107. package/dist/utils/filter.d.ts +20 -0
  108. package/dist/utils/filter.mjs +11 -0
  109. package/dist/utils/format.d.ts +9 -0
  110. package/dist/utils/format.mjs +7 -0
  111. package/dist/utils/http.d.ts +45 -0
  112. package/dist/utils/http.mjs +147 -0
  113. package/dist/utils/index.d.ts +12 -0
  114. package/dist/utils/index.mjs +41 -0
  115. package/dist/utils/klona.d.ts +2 -0
  116. package/dist/utils/klona.mjs +4 -0
  117. package/dist/utils/nanoid.d.ts +2 -0
  118. package/dist/utils/nanoid.mjs +4 -0
  119. package/dist/utils/permission.d.ts +45 -0
  120. package/dist/utils/permission.mjs +38 -0
  121. package/dist/utils/rsa.d.ts +26 -0
  122. package/dist/utils/rsa.mjs +2073 -0
  123. package/dist/utils/storage.d.ts +29 -0
  124. package/dist/utils/storage.mjs +39 -0
  125. package/dist/utils/toast.d.ts +26 -0
  126. package/dist/utils/toast.mjs +17 -0
  127. package/dist/utils/tree.d.ts +20 -0
  128. package/dist/utils/tree.mjs +30 -0
  129. package/package.json +179 -9
  130. package/dist/index.cjs +0 -1
  131. package/dist/vite.cjs +0 -1
@@ -0,0 +1,623 @@
1
+ function N(b) {
2
+ const _ = {}, v = {}, C = {};
3
+ for (const O of b) {
4
+ _[String(O.adcode)] = O.name;
5
+ for (const A of O.districts ?? []) {
6
+ v[String(A.adcode)] = A.name;
7
+ for (const S of A.districts ?? [])
8
+ C[String(S.adcode)] = S.name;
9
+ }
10
+ }
11
+ return { province_list: _, city_list: v, area_list: C };
12
+ }
13
+ function R(b) {
14
+ const _ = N(b);
15
+ function v(t) {
16
+ const s = `${t.slice(0, 2)}0000`, i = `${t.slice(0, 4)}00`;
17
+ return {
18
+ code: t,
19
+ province: _.province_list[s] || "",
20
+ city: _.city_list[i] || "",
21
+ area: _.area_list[t] || ""
22
+ };
23
+ }
24
+ function C(t, s) {
25
+ const i = [];
26
+ return i.unshift({
27
+ code: s,
28
+ name: _.area_list[s] || ""
29
+ }), ["city", "province"].includes(t) && (s = s.slice(0, 4) + "00", i.unshift({
30
+ code: s,
31
+ name: _.city_list[s] || ""
32
+ })), t === "province" && (s = s.slice(0, 2) + "0000", i.unshift({
33
+ code: s,
34
+ name: _.province_list[s] || ""
35
+ })), i;
36
+ }
37
+ function O(t, s, i) {
38
+ if (i) return C(t, s);
39
+ const e = [], r = _[{
40
+ city: "city_list",
41
+ area: "area_list"
42
+ }[t]];
43
+ if (s && r) {
44
+ s = s.toString();
45
+ const a = s.slice(0, 2), n = s.slice(2, 4);
46
+ if (t === "area" && n !== "00") {
47
+ s = `${a}${n}`;
48
+ for (let c = 0; c < 100; c++) {
49
+ const o = `${s}${c < 10 ? "0" : ""}${c}`;
50
+ r[o] && e.push({
51
+ code: o,
52
+ name: r[o]
53
+ });
54
+ }
55
+ } else
56
+ for (let c = 0; c < 91; c++)
57
+ if (s = `${a}${c < 10 ? "0" : ""}${c}${t === "city" ? "00" : ""}`, t === "city")
58
+ r[s] && e.push({
59
+ code: s,
60
+ name: r[s]
61
+ });
62
+ else
63
+ for (let o = 0; o < 100; o++) {
64
+ const p = `${s}${o < 10 ? "0" : ""}${o}`;
65
+ r[p] && e.push({
66
+ code: p,
67
+ name: r[p]
68
+ });
69
+ }
70
+ } else
71
+ for (const a in r)
72
+ e.push({
73
+ code: a,
74
+ name: r[a]
75
+ });
76
+ return e;
77
+ }
78
+ function A({ province: t, city: s, area: i }) {
79
+ const { province_list: e, city_list: r, area_list: a } = _, n = {
80
+ code: "",
81
+ province: "",
82
+ city: "",
83
+ area: ""
84
+ };
85
+ for (let c in e) {
86
+ const o = e[c];
87
+ if (o.indexOf(t) === 0) {
88
+ n.code = c, n.province = o, c = c.substr(0, 2);
89
+ for (let p in r)
90
+ if (p.indexOf(c) === 0) {
91
+ const y = r[p];
92
+ if (y.indexOf(s) === 0) {
93
+ if (n.code = p, n.city = y, i) {
94
+ p = p.substr(0, 4);
95
+ for (const u in a)
96
+ if (u.indexOf(p) === 0) {
97
+ const f = a[u];
98
+ if (f.indexOf(i) === 0) {
99
+ n.code = u, n.area = f;
100
+ break;
101
+ }
102
+ }
103
+ }
104
+ break;
105
+ }
106
+ }
107
+ break;
108
+ }
109
+ }
110
+ return n;
111
+ }
112
+ function S(t) {
113
+ let s = t.length, i = 0;
114
+ for (let e = 0; e < s; e++)
115
+ i += (t.charCodeAt(e) & 65280) !== 0 ? 2 : 1;
116
+ return i;
117
+ }
118
+ const B = {
119
+ mobile: /(86-[1][3-9][0-9]{9})|(86[1][3-9][0-9]{9})|([1][3-9][0-9]{9})/g,
120
+ phone: /(([0-9]{3,4}-)[0-9]{7,8})|([0-9]{12})|([0-9]{11})|([0-9]{10})|([0-9]{9})|([0-9]{8})|([0-9]{7})/g,
121
+ zipCode: /([0-9]{6})/g,
122
+ idNumber: /[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]/g
123
+ };
124
+ function k(t, s, i) {
125
+ let e = t.indexOf(s), r = s;
126
+ if (e > -1)
127
+ for (let a = s.length; a <= i.length; a++) {
128
+ const n = i.substr(0, a), c = t.indexOf(n);
129
+ if (c > -1)
130
+ e = c, r = n;
131
+ else
132
+ break;
133
+ }
134
+ return { index: e, matchName: r };
135
+ }
136
+ const h = {
137
+ shortIndexOf: k,
138
+ strLen: S,
139
+ getAreaByCode: v,
140
+ getAreaByAddress: A,
141
+ getTargetAreaListByCode: O,
142
+ Reg: B
143
+ }, $ = ["特别行政区", "古自治区", "维吾尔自治区", "壮族自治区", "回族自治区", "自治区", "省省直辖", "省", "市"], L = [
144
+ "布依族苗族自治州",
145
+ "苗族侗族自治州",
146
+ "藏族羌族自治州",
147
+ "哈尼族彝族自治州",
148
+ "壮族苗族自治州",
149
+ "傣族景颇族自治州",
150
+ "蒙古族藏族自治州",
151
+ "傣族自治州",
152
+ "白族自治州",
153
+ "藏族自治州",
154
+ "彝族自治州",
155
+ "回族自治州",
156
+ "蒙古自治州",
157
+ "朝鲜族自治州",
158
+ "地区",
159
+ "哈萨克自治州",
160
+ "盟",
161
+ "市"
162
+ ], P = [
163
+ "满族自治县",
164
+ "满族蒙古族自治县",
165
+ "蒙古族自治县",
166
+ "朝鲜族自治县",
167
+ "回族彝族自治县",
168
+ "彝族回族苗族自治县",
169
+ "彝族苗族自治县",
170
+ "土家族苗族自治县",
171
+ "布依族苗族自治县",
172
+ "苗族布依族自治县",
173
+ "苗族土家族自治县",
174
+ "彝族傣族自治县",
175
+ "傣族彝族自治县",
176
+ "仡佬族苗族自治县",
177
+ "黎族苗族自治县",
178
+ "苗族侗族自治县",
179
+ "哈尼族彝族傣族自治县",
180
+ "哈尼族彝族自治县",
181
+ "彝族哈尼族拉祜族自治县",
182
+ "傣族拉祜族佤族自治县",
183
+ "傣族佤族自治县",
184
+ "拉祜族佤族布朗族傣族自治县",
185
+ "苗族瑶族傣族自治县",
186
+ "彝族回族自治县",
187
+ "独龙族怒族自治县",
188
+ "保安族东乡族撒拉族自治县",
189
+ "回族土族自治县",
190
+ "撒拉族自治县",
191
+ "哈萨克自治县",
192
+ "塔吉克自治县",
193
+ "回族自治县",
194
+ "畲族自治县",
195
+ "土家族自治县",
196
+ "布依族自治县",
197
+ "苗族自治县",
198
+ "瑶族自治县",
199
+ "侗族自治县",
200
+ "水族自治县",
201
+ "傈僳族自治县",
202
+ "仫佬族自治县",
203
+ "毛南族自治县",
204
+ "黎族自治县",
205
+ "羌族自治县",
206
+ "彝族自治县",
207
+ "藏族自治县",
208
+ "纳西族自治县",
209
+ "裕固族自治县",
210
+ "哈萨克族自治县",
211
+ "哈尼族自治县",
212
+ "拉祜族自治县",
213
+ "佤族自治县",
214
+ "达斡尔族区",
215
+ "达斡尔族自治旗",
216
+ "左旗",
217
+ "右旗",
218
+ "中旗",
219
+ "后旗",
220
+ "联合旗",
221
+ "自治旗",
222
+ "旗",
223
+ "自治县",
224
+ "街道办事处",
225
+ "新区",
226
+ "区",
227
+ "县",
228
+ "市"
229
+ ], l = {
230
+ isInit: !1,
231
+ ProvinceShortList: [],
232
+ ProvinceShort: {},
233
+ CityShort: {},
234
+ AreaShort: {},
235
+ init() {
236
+ for (const t in _.province_list) {
237
+ const s = _.province_list[t];
238
+ l.ProvinceShort[t] = $.reduce((i, e) => i.replace(e, ""), s), l.ProvinceShortList.push(l.ProvinceShort[t]);
239
+ }
240
+ for (const t in _.city_list) {
241
+ const s = _.city_list[t];
242
+ s.length > 2 && (l.CityShort[t] = L.reduce((i, e) => i.replace(e, ""), s));
243
+ }
244
+ for (const t in _.area_list) {
245
+ let s = _.area_list[t];
246
+ s === "雨花台区" && (s = "雨花区"), s === "神农架林区" && (s = "神农架"), s.length > 2 && s !== "高新区" && (l.AreaShort[t] = P.reduce((i, e) => (i.indexOf(e) > 1 && (i = i.replace(e, "")), i), s));
247
+ }
248
+ l.isInit = !0;
249
+ },
250
+ /**
251
+ * 开始解析
252
+ * @param address string
253
+ * @param parseAll 是否执行全部解析 默认识别到city终止
254
+ * @returns {Array}
255
+ */
256
+ parse(t, s) {
257
+ if (this.results = [], this.results.unshift(...l.parseByProvince(t)), (s || !this.results[0] || !this.results[0].__parse) && (this.results.unshift(...l.parseByCity(t)), (s || !this.results[0] || !this.results[0].__parse) && this.results.unshift(...l.parseByArea(t))), this.results.length > 1)
258
+ for (const i of this.results) {
259
+ let e = t;
260
+ i.__parse = +i.__parse, i.__parse && i.province && e.includes(i.province) && (e = e.replace(i.province, ""), i.__parse += 1, i.city && (e.includes(i.city) ? ((i.city !== "县" || !e.indexOf(i.city)) && (e = e.replace(i.city, "")), i.__parse += 1, i.area && e.includes(i.area) && (i.__parse += 1)) : t.includes(i.city) && (i.__parse += 0.5, i.area && e.includes(i.area) && (i.__parse += 1)), i.area && e.includes(i.area) ? i.__parse += 1 : i.area && e.includes(i.area.substr(0, 2)) && (i.__parse += 0.5)));
261
+ }
262
+ return this.results.sort(
263
+ (i, e) => !i.__parse && !e.__parse && i.city && !e.city ? -1 : !i.__parse && !e.__parse && !i.city && e.city ? 1 : i.__parse && !e.__parse ? -1 : !i.__parse && e.__parse ? 1 : i.__parse && e.__parse && i.__parse > e.__parse ? -1 : i.__parse && e.__parse && i.__parse < e.__parse ? 1 : i.__parse && i.__type === "parseByProvince" ? -1 : e.__parse && e.__type === "parseByProvince" || i.name.length > e.name.length ? 1 : i.name.length < e.name.length ? -1 : 0
264
+ ), this.results;
265
+ },
266
+ /**
267
+ * 1.1 提取省份
268
+ */
269
+ parseByProvince(t) {
270
+ const s = _.province_list, i = [], e = {
271
+ province: "",
272
+ city: "",
273
+ area: "",
274
+ details: "",
275
+ name: "",
276
+ code: "",
277
+ __type: "parseByProvince",
278
+ __parse: !1
279
+ };
280
+ let r = t;
281
+ for (const a in s) {
282
+ const n = s[a];
283
+ let c = r.indexOf(n);
284
+ const o = c > -1 ? "" : l.ProvinceShort[a], p = o ? o.length : n.length;
285
+ if (o && (c = r.indexOf(o)), c > -1) {
286
+ c > 0 && (e.name = r.substr(0, c).trim(), r = r.substr(c).trim()), e.province = n, e.code = a;
287
+ const y = r.substr(p);
288
+ if ((y.charAt(0) !== "市" || y.indexOf(n) > -1) && (r = y), o)
289
+ for (const f of $)
290
+ r.indexOf(f) === 0 && (r = r.substr(f.length));
291
+ let u = l.parse_city_by_province(r, e);
292
+ if (e.city || (u = l.parse_area_by_province(r, e)), e.city) {
293
+ if (e.__parse = !0, r = u, c > 4 && l.ProvinceShortList.some((f) => e.name.includes(f))) {
294
+ const [f] = l.parseByProvince(e.name);
295
+ f.__parse && (Object.assign(e, f), r = t.substr(c).trim(), e.area || (r = l.parse_area_by_city(r, e)), e.__parse = 3);
296
+ }
297
+ break;
298
+ } else
299
+ i.unshift({ ...e, details: r.trim() }), e.province = "", e.code = "", e.name = "", r = t;
300
+ }
301
+ }
302
+ return e.code && i.unshift({ ...e, details: r.trim() }), i;
303
+ },
304
+ /**
305
+ * 1.2.提取城市
306
+ * @returns {boolean}
307
+ */
308
+ parse_city_by_province(t, s) {
309
+ const i = h.getTargetAreaListByCode("city", s.code), e = {
310
+ city: "",
311
+ code: "",
312
+ index: -1,
313
+ address: "",
314
+ isShort: !1
315
+ };
316
+ for (const r of i) {
317
+ let a = t.indexOf(r.name);
318
+ const n = a > -1 ? "" : l.CityShort[r.code], c = n ? n.length : r.name.length;
319
+ if (n && (a = t.indexOf(n)), a > -1 && (e.index === -1 || e.index > a || !n && e.isShort) && (e.city = r.name, e.code = r.code, e.index = a, e.address = t.substr(a + c), e.isShort = !!n, n))
320
+ for (const o of L)
321
+ t.indexOf(o) === 0 && o !== "市" && !["市北区", "市南区", "市中区", "市辖区"].some((p) => t.indexOf(p) === 0) && (t = t.substr(o.length));
322
+ if (a > -1 && a < 3 && (s.city = r.name, s.code = r.code, e.address = t.substr(a + c), n))
323
+ for (const o of L)
324
+ e.address.indexOf(o) === 0 && o !== "市" && !["市北区", "市南区", "市中区", "市辖区"].some((p) => e.address.indexOf(p) === 0) && (e.address = e.address.substr(o.length));
325
+ }
326
+ return e.index > -1 && (s.city = e.city, s.code = e.code, t = l.parse_area_by_city(e.address, s)), t;
327
+ },
328
+ /**
329
+ * 1.3.,2.2 已匹配城市的地址 提取地区
330
+ * @param address string
331
+ * @param result object
332
+ * @returns {string}
333
+ */
334
+ parse_area_by_city(t, s) {
335
+ const i = h.getTargetAreaListByCode("area", s.code), e = {
336
+ area: "",
337
+ code: "",
338
+ index: -1,
339
+ address: "",
340
+ isShort: !1
341
+ };
342
+ for (const r of i) {
343
+ let a = t.indexOf(r.name), n = a > -1 ? "" : l.AreaShort[r.code];
344
+ if (n) {
345
+ const { index: o, matchName: p } = h.shortIndexOf(t, n, r.name);
346
+ a = o, n = p;
347
+ }
348
+ const c = n ? n.length : r.name.length;
349
+ if (a > -1 && (e.index === -1 || e.index > a || !n && e.isShort) && (e.area = r.name, e.code = r.code, e.index = a, e.address = t.substr(a + c), e.isShort = !!n, n))
350
+ for (const o of P)
351
+ e.address.indexOf(o) === 0 && (e.address = e.address.substr(o.length));
352
+ }
353
+ return e.index > -1 && (s.area = e.area, s.code = e.code, t = e.address), t;
354
+ },
355
+ /**
356
+ * 1.4.提取省份但没有提取到城市的地址尝试通过省份下地区匹配
357
+ */
358
+ parse_area_by_province(t, s) {
359
+ const i = h.getTargetAreaListByCode("area", s.code);
360
+ for (const e of i) {
361
+ let r = t.indexOf(e.name), a = r > -1 ? "" : l.AreaShort[e.code];
362
+ if (a) {
363
+ const { index: c, matchName: o } = h.shortIndexOf(t, a, e.name);
364
+ r = c, a = o;
365
+ }
366
+ const n = a ? a.length : e.name.length;
367
+ if (r > -1 && r < 6) {
368
+ const [c] = h.getTargetAreaListByCode("city", e.code, !0);
369
+ if (s.city = c.name, s.area = e.name, s.code = e.code, t = t.substr(r + n), a)
370
+ for (const o of P)
371
+ t.indexOf(o) === 0 && (t = t.substr(o.length));
372
+ break;
373
+ }
374
+ }
375
+ return t;
376
+ },
377
+ /**
378
+ * 2.1 通过城市识别地址
379
+ * @param addressBase string
380
+ * @returns {Array}
381
+ */
382
+ parseByCity(t) {
383
+ const s = _.city_list, i = [], e = {
384
+ province: "",
385
+ city: "",
386
+ area: "",
387
+ details: "",
388
+ name: "",
389
+ code: "",
390
+ __type: "parseByCity",
391
+ __parse: !1
392
+ };
393
+ let r = t;
394
+ for (const a in s) {
395
+ const n = s[a];
396
+ if (n.length < 2) continue;
397
+ let c = r.indexOf(n);
398
+ const o = c > -1 ? "" : l.CityShort[a], p = o ? o.length : n.length;
399
+ if (o && (c = r.indexOf(o)), c > -1) {
400
+ const [y] = h.getTargetAreaListByCode("province", a, !0);
401
+ e.province = y.name, e.city = n, e.code = a;
402
+ let u = r.substr(0, c), f = "";
403
+ if (u) {
404
+ f = y.name;
405
+ let m = u.indexOf(f);
406
+ m === -1 && (f = l.ProvinceShort[y.code], m = u.indexOf(f), m === -1 && (f = "")), f && (u = u.replace(new RegExp(f, "g"), "")), u && (e.name = u);
407
+ }
408
+ if (r = r.substr(c + p), r = l.parse_area_by_city(r, e), f || e.area) {
409
+ e.__parse = !0;
410
+ break;
411
+ } else
412
+ i.unshift({ ...e, details: r.trim() }), e.name = "", e.city = "", e.province = "", e.code = "", r = t;
413
+ }
414
+ }
415
+ return e.code && i.unshift({ ...e, details: r.trim() }), i;
416
+ },
417
+ /**
418
+ * 3 通过地区识别地址
419
+ * @returns {Array}
420
+ */
421
+ parseByArea(t) {
422
+ const s = _.area_list, i = [], e = {
423
+ province: "",
424
+ city: "",
425
+ area: "",
426
+ details: "",
427
+ name: "",
428
+ code: "",
429
+ __type: "parseByArea",
430
+ __parse: !1
431
+ };
432
+ let r = t;
433
+ for (const a in s) {
434
+ const n = s[a];
435
+ if (n.length < 2) continue;
436
+ let c = r.indexOf(n), o = c > -1 ? "" : l.AreaShort[a];
437
+ if (o) {
438
+ const { index: y, matchName: u } = h.shortIndexOf(r, o, n);
439
+ c = y, o = u;
440
+ }
441
+ const p = o ? o.length : n.length;
442
+ if (c > -1) {
443
+ const [y, u] = h.getTargetAreaListByCode("province", a, !0);
444
+ e.province = y.name, e.city = u.name, e.area = n, e.code = a;
445
+ let f = r.substr(0, c), m = "", x = "";
446
+ if (f) {
447
+ m = y.name;
448
+ let g = f.indexOf(m);
449
+ g === -1 && (m = l.ProvinceShort[y.code], g = f.indexOf(m), g === -1 && (m = "")), m && (f = f.replace(new RegExp(m, "g"), "")), x = u.name, g = f.indexOf(x), g === -1 && (x = l.CityShort[u.code], g = f.indexOf(x), g === -1 && (x = "")), x && (f = f.replace(new RegExp(x, "g"), "")), f && (e.name = f);
450
+ }
451
+ if (m && !x) {
452
+ const [g] = l.parseByArea(r.substr(0, c));
453
+ if (g && g.__parse) {
454
+ Object.assign(e, g), r = r.substr(c).trim(), e.area || (r = l.parse_area_by_city(r, e)), e.__parse = 2;
455
+ break;
456
+ }
457
+ }
458
+ if (o && r.charAt(c + p) === "县" && (c += 1), r = r.substr(c + p), m || x) {
459
+ e.__parse = !0;
460
+ break;
461
+ } else
462
+ i.unshift({ ...e, details: r.trim() }), e.name = "", e.city = "", e.area = "", e.province = "", e.code = "", r = t;
463
+ }
464
+ }
465
+ return e.code && i.unshift({ ...e, details: r.trim() }), i;
466
+ }
467
+ }, d = {
468
+ ExcludeKeys: [
469
+ "发件人",
470
+ "收货地址",
471
+ "收货人",
472
+ "收件人",
473
+ "收货",
474
+ "手机号码",
475
+ "邮编",
476
+ "电话",
477
+ "所在地区",
478
+ "详细地址",
479
+ "地址",
480
+ ":",
481
+ ":",
482
+ ";",
483
+ ";",
484
+ ",",
485
+ ",",
486
+ "。",
487
+ "、"
488
+ ],
489
+ address: "",
490
+ result: {
491
+ mobile: "",
492
+ zip_code: "",
493
+ phone: "",
494
+ idNumber: ""
495
+ },
496
+ Reg: {
497
+ ...h.Reg
498
+ },
499
+ /**
500
+ * 开始解析
501
+ * @param address string 地址
502
+ * @param parseAll boolean 是否完全解析
503
+ * @returns {Array}
504
+ */
505
+ parse: (t, s) => {
506
+ let i = [];
507
+ if (t) {
508
+ d.result = {
509
+ mobile: "",
510
+ zip_code: "",
511
+ phone: "",
512
+ idNumber: ""
513
+ }, d.address = t, d.replace(), d.parseIdNumber(), d.parseMobile(), d.parsePhone(), d.parseZipCode(), d.address = d.address.replace(/ {2,}/, " ");
514
+ const e = d.parseName({ details: d.address });
515
+ i = l.parse(d.address, s);
516
+ for (const r of i)
517
+ Object.assign(r, d.result), r.name = r.name.trim(), d.parseName(r, { firstName: e }), d.handlerDetail(r);
518
+ if (!i.length) {
519
+ const r = Object.assign(d.result, {
520
+ province: "",
521
+ city: "",
522
+ area: "",
523
+ details: d.address,
524
+ name: "",
525
+ code: "",
526
+ __type: ""
527
+ });
528
+ d.parseName(r), i.push(r);
529
+ }
530
+ }
531
+ return i;
532
+ },
533
+ /**
534
+ * 替换无效字符
535
+ */
536
+ replace: () => {
537
+ let t = d.address;
538
+ for (const s of d.ExcludeKeys)
539
+ t = t.replace(new RegExp(s, "g"), " ");
540
+ d.address = t.replace(/\r\n/g, " ").replace(/\n/g, " ").replace(/\t/g, " ").replace(/ {2,}/g, " ").replace(/(\d{3})-(\d{4})-(\d{4})/g, "$1$2$3").replace(/(\d{3}) (\d{4}) (\d{4})/g, "$1$2$3");
541
+ },
542
+ /**
543
+ * 提取手机号码
544
+ */
545
+ parseMobile: () => {
546
+ d.Reg.mobile.lastIndex = 0;
547
+ const t = d.Reg.mobile.exec(d.address);
548
+ t && (d.result.mobile = t[0], d.address = d.address.replace(t[0], " "));
549
+ },
550
+ /**
551
+ * 提取电话号码
552
+ */
553
+ parsePhone: () => {
554
+ d.Reg.phone.lastIndex = 0;
555
+ const t = d.Reg.phone.exec(d.address);
556
+ t && (d.result.phone = t[0], d.address = d.address.replace(t[0], " "));
557
+ },
558
+ /**
559
+ * 提取邮编
560
+ */
561
+ parseZipCode: () => {
562
+ d.Reg.zipCode.lastIndex = 0;
563
+ const t = d.Reg.zipCode.exec(d.address);
564
+ t && (d.result.zip_code = t[0], d.address = d.address.replace(t[0], ""));
565
+ },
566
+ /**
567
+ * 提取身份证号
568
+ */
569
+ parseIdNumber: () => {
570
+ d.Reg.idNumber.lastIndex = 0;
571
+ const t = d.Reg.idNumber.exec(d.address);
572
+ t && (d.result.idNumber = t[0], d.address = d.address.replace(t[0], ""));
573
+ },
574
+ /**
575
+ * 提取姓名
576
+ * @param result
577
+ * @param maxLen 字符串占位 比这个数值短才识别为姓名 汉字2位英文1位
578
+ * @param firstName 最初切分地址识别到的name
579
+ */
580
+ parseName: (t, { maxLen: s = 11, firstName: i } = {}) => {
581
+ if (!t.name || h.strLen(t.name) > 15) {
582
+ const e = t.details.split(" "), r = {
583
+ value: "",
584
+ index: -1
585
+ };
586
+ if (e.length > 1) {
587
+ let a = 0;
588
+ for (const n of e) {
589
+ if ((n && !r.value || n && h.strLen(r.value) > h.strLen(n) || i && n === i) && (r.value = n, r.index = a, i && n === i))
590
+ break;
591
+ a += 1;
592
+ }
593
+ }
594
+ r.value && (t.name = r.value, e.splice(r.index, 1), t.details = e.join(" ").trim());
595
+ }
596
+ return t.name;
597
+ },
598
+ /**
599
+ * 清洗地址详情内的省市区
600
+ * @param result
601
+ */
602
+ handlerDetail: (t) => {
603
+ if (t.details.length > 5) {
604
+ const s = ["province", "city", "area"];
605
+ for (const i of s)
606
+ t.details.indexOf(t[i]) === 0 && (t.details = t.details.substr(t[i].length));
607
+ }
608
+ }
609
+ };
610
+ return l.init(), {
611
+ parse(t, s = !1) {
612
+ return d.parse(t, s);
613
+ }
614
+ };
615
+ }
616
+ function I(b, _, v = !1) {
617
+ return R(_).parse(b, v);
618
+ }
619
+ export {
620
+ I as addressParse,
621
+ R as createAddressParser,
622
+ I as default
623
+ };
@@ -0,0 +1,11 @@
1
+ import { default as CryptoJS } from 'crypto-js';
2
+ /** 随机生成 AES 密钥 */
3
+ export declare function generateAesKey(): CryptoJS.lib.WordArray;
4
+ /** 将 WordArray 转为 Base64 字符串 */
5
+ export declare function encryptBase64(str: CryptoJS.lib.WordArray): string;
6
+ /** Base64 字符串转 WordArray */
7
+ export declare function decryptBase64(str: string): CryptoJS.lib.WordArray;
8
+ /** 使用 AES 密钥加密 */
9
+ export declare function encryptWithAes(message: string, aesKey: CryptoJS.lib.WordArray): string;
10
+ /** 使用 AES 密钥解密 */
11
+ export declare function decryptWithAes(message: string, aesKey: CryptoJS.lib.WordArray): string;
@@ -0,0 +1,36 @@
1
+ import { C as t } from "../index-BealGwXp.js";
2
+ function o() {
3
+ const e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
4
+ let n = "";
5
+ for (let r = 0; r < 32; r++)
6
+ n += e.charAt(Math.floor(Math.random() * e.length));
7
+ return n;
8
+ }
9
+ function a() {
10
+ return t.enc.Utf8.parse(o());
11
+ }
12
+ function i(e) {
13
+ return t.enc.Base64.stringify(e);
14
+ }
15
+ function s(e) {
16
+ return t.enc.Base64.parse(e);
17
+ }
18
+ function d(e, n) {
19
+ return t.AES.encrypt(e, n, {
20
+ mode: t.mode.ECB,
21
+ padding: t.pad.Pkcs7
22
+ }).toString();
23
+ }
24
+ function p(e, n) {
25
+ return t.AES.decrypt(e, n, {
26
+ mode: t.mode.ECB,
27
+ padding: t.pad.Pkcs7
28
+ }).toString(t.enc.Utf8);
29
+ }
30
+ export {
31
+ s as decryptBase64,
32
+ p as decryptWithAes,
33
+ i as encryptBase64,
34
+ d as encryptWithAes,
35
+ a as generateAesKey
36
+ };
@@ -0,0 +1,20 @@
1
+ export interface StatusFilterOption {
2
+ label: string;
3
+ value: string | number | boolean;
4
+ }
5
+ export interface FilterOptions {
6
+ /** 筛选选项列表,用于 SaberSelect / USelect 的 items */
7
+ options: StatusFilterOption[];
8
+ /** value → label 映射,用于列表展示时反查文本 */
9
+ optionsMap: Record<string, string>;
10
+ /** value → SaberStatusType 映射,用于 SaberStatus 组件 */
11
+ statusTypeMap: Record<string, string>;
12
+ }
13
+ /**
14
+ * 从 'label:value[:statusType]' 格式的字符串数组生成筛选选项、反查 Map 与状态类型 Map
15
+ *
16
+ * @example
17
+ * createFilterOptions(['启用:1:success', '禁用:0:danger'])
18
+ * // { options: [{ label: '启用', value: '1' }, ...], optionsMap: { '1': '启用', ... }, statusTypeMap: { '1': 'success', ... } }
19
+ */
20
+ export declare function createFilterOptions(map: string[]): FilterOptions;
@@ -0,0 +1,11 @@
1
+ function r(a) {
2
+ const o = [], n = {}, p = {};
3
+ for (const i of a) {
4
+ const t = i.split(":"), c = t[0], s = t[1], e = t[2];
5
+ o.push({ label: c, value: s }), n[s] = c, e && (p[s] = e);
6
+ }
7
+ return { options: o, optionsMap: n, statusTypeMap: p };
8
+ }
9
+ export {
10
+ r as createFilterOptions
11
+ };