@delon/util 15.2.1 → 16.0.0-beta.0

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 (171) hide show
  1. package/esm2022/array/array.service.mjs +279 -0
  2. package/esm2022/browser/cookie.service.mjs +104 -0
  3. package/esm2022/browser/scroll.service.mjs +89 -0
  4. package/esm2022/config/config.service.mjs +39 -0
  5. package/esm2022/format/currency.service.mjs +239 -0
  6. package/esm2022/other/lazy.service.mjs +133 -0
  7. package/esm2022/pipes/currency/cny.pipe.mjs +24 -0
  8. package/esm2022/pipes/currency/mega.pipe.mjs +30 -0
  9. package/esm2022/pipes/currency/module.mjs +20 -0
  10. package/esm2022/pipes/currency/price.pipe.mjs +28 -0
  11. package/esm2022/pipes/filter/filter.pipe.mjs +20 -0
  12. package/esm2022/pipes/filter/module.mjs +18 -0
  13. package/esm2022/pipes/format/mask.pipe.mjs +35 -0
  14. package/esm2022/pipes/format/module.mjs +18 -0
  15. package/{fesm2020 → fesm2022}/array.mjs +3 -3
  16. package/{fesm2015 → fesm2022}/array.mjs.map +1 -1
  17. package/{fesm2020 → fesm2022}/browser.mjs +6 -6
  18. package/{fesm2020 → fesm2022}/browser.mjs.map +1 -1
  19. package/{fesm2020 → fesm2022}/config.mjs +3 -3
  20. package/{fesm2020 → fesm2022}/config.mjs.map +1 -1
  21. package/{fesm2020 → fesm2022}/format.mjs +3 -3
  22. package/{fesm2020 → fesm2022}/format.mjs.map +1 -1
  23. package/{fesm2020 → fesm2022}/other.mjs +3 -3
  24. package/{fesm2020 → fesm2022}/other.mjs.map +1 -1
  25. package/{fesm2020 → fesm2022}/pipe-currency.mjs +13 -13
  26. package/{fesm2020 → fesm2022}/pipe-currency.mjs.map +1 -1
  27. package/fesm2022/pipe-filter.mjs +40 -0
  28. package/{fesm2015 → fesm2022}/pipe-filter.mjs.map +1 -1
  29. package/{fesm2015 → fesm2022}/pipe-format.mjs +7 -7
  30. package/{fesm2015 → fesm2022}/pipe-format.mjs.map +1 -1
  31. package/package.json +53 -87
  32. package/esm2020/array/array.service.mjs +0 -278
  33. package/esm2020/browser/cookie.service.mjs +0 -103
  34. package/esm2020/browser/scroll.service.mjs +0 -88
  35. package/esm2020/config/config.service.mjs +0 -38
  36. package/esm2020/format/currency.service.mjs +0 -238
  37. package/esm2020/other/lazy.service.mjs +0 -132
  38. package/esm2020/pipes/currency/cny.pipe.mjs +0 -23
  39. package/esm2020/pipes/currency/mega.pipe.mjs +0 -29
  40. package/esm2020/pipes/currency/module.mjs +0 -19
  41. package/esm2020/pipes/currency/price.pipe.mjs +0 -27
  42. package/esm2020/pipes/filter/filter.pipe.mjs +0 -19
  43. package/esm2020/pipes/filter/module.mjs +0 -17
  44. package/esm2020/pipes/format/mask.pipe.mjs +0 -34
  45. package/esm2020/pipes/format/module.mjs +0 -17
  46. package/fesm2015/array.mjs +0 -255
  47. package/fesm2015/browser.mjs +0 -283
  48. package/fesm2015/browser.mjs.map +0 -1
  49. package/fesm2015/config.mjs +0 -57
  50. package/fesm2015/config.mjs.map +0 -1
  51. package/fesm2015/date-time.mjs +0 -207
  52. package/fesm2015/date-time.mjs.map +0 -1
  53. package/fesm2015/decorator.mjs +0 -121
  54. package/fesm2015/decorator.mjs.map +0 -1
  55. package/fesm2015/format.mjs +0 -413
  56. package/fesm2015/format.mjs.map +0 -1
  57. package/fesm2015/other.mjs +0 -319
  58. package/fesm2015/other.mjs.map +0 -1
  59. package/fesm2015/pipe-currency.mjs +0 -96
  60. package/fesm2015/pipe-currency.mjs.map +0 -1
  61. package/fesm2015/pipe-filter.mjs +0 -40
  62. package/fesm2020/array.mjs.map +0 -1
  63. package/fesm2020/delon-util.mjs +0 -16
  64. package/fesm2020/delon-util.mjs.map +0 -1
  65. package/fesm2020/form.mjs +0 -118
  66. package/fesm2020/form.mjs.map +0 -1
  67. package/fesm2020/math.mjs +0 -85
  68. package/fesm2020/math.mjs.map +0 -1
  69. package/fesm2020/pipe-filter.mjs +0 -40
  70. package/fesm2020/pipe-filter.mjs.map +0 -1
  71. package/fesm2020/pipe-format.mjs +0 -55
  72. package/fesm2020/pipe-format.mjs.map +0 -1
  73. package/fesm2020/pipes.mjs +0 -8
  74. package/fesm2020/pipes.mjs.map +0 -1
  75. package/fesm2020/token.mjs +0 -37
  76. package/fesm2020/token.mjs.map +0 -1
  77. /package/{esm2020 → esm2022}/array/array-type.service.mjs +0 -0
  78. /package/{esm2020 → esm2022}/array/array.mjs +0 -0
  79. /package/{esm2020 → esm2022}/array/index.mjs +0 -0
  80. /package/{esm2020 → esm2022}/browser/browser.mjs +0 -0
  81. /package/{esm2020 → esm2022}/browser/copy.mjs +0 -0
  82. /package/{esm2020 → esm2022}/browser/index.mjs +0 -0
  83. /package/{esm2020 → esm2022}/browser/is-empty.mjs +0 -0
  84. /package/{esm2020 → esm2022}/browser/style.mjs +0 -0
  85. /package/{esm2020 → esm2022}/config/abc/date-picker.type.mjs +0 -0
  86. /package/{esm2020 → esm2022}/config/abc/error-collect.type.mjs +0 -0
  87. /package/{esm2020 → esm2022}/config/abc/exception.type.mjs +0 -0
  88. /package/{esm2020 → esm2022}/config/abc/image.type.mjs +0 -0
  89. /package/{esm2020 → esm2022}/config/abc/index.mjs +0 -0
  90. /package/{esm2020 → esm2022}/config/abc/loading.type.mjs +0 -0
  91. /package/{esm2020 → esm2022}/config/abc/lodop.type.mjs +0 -0
  92. /package/{esm2020 → esm2022}/config/abc/media.type.mjs +0 -0
  93. /package/{esm2020 → esm2022}/config/abc/onboarding.type.mjs +0 -0
  94. /package/{esm2020 → esm2022}/config/abc/page-header.type.mjs +0 -0
  95. /package/{esm2020 → esm2022}/config/abc/pdf.type.mjs +0 -0
  96. /package/{esm2020 → esm2022}/config/abc/qr.type.mjs +0 -0
  97. /package/{esm2020 → esm2022}/config/abc/se.type.mjs +0 -0
  98. /package/{esm2020 → esm2022}/config/abc/sg.type.mjs +0 -0
  99. /package/{esm2020 → esm2022}/config/abc/st.type.mjs +0 -0
  100. /package/{esm2020 → esm2022}/config/abc/sv.type.mjs +0 -0
  101. /package/{esm2020 → esm2022}/config/abc/xlsx.type.mjs +0 -0
  102. /package/{esm2020 → esm2022}/config/abc/zip.type.mjs +0 -0
  103. /package/{esm2020 → esm2022}/config/acl/acl.type.mjs +0 -0
  104. /package/{esm2020 → esm2022}/config/auth/auth.type.mjs +0 -0
  105. /package/{esm2020 → esm2022}/config/cache/cache.type.mjs +0 -0
  106. /package/{esm2020 → esm2022}/config/chart/chart.type.mjs +0 -0
  107. /package/{esm2020 → esm2022}/config/config.mjs +0 -0
  108. /package/{esm2020 → esm2022}/config/config.types.mjs +0 -0
  109. /package/{esm2020 → esm2022}/config/index.mjs +0 -0
  110. /package/{esm2020 → esm2022}/config/mock/mock.type.mjs +0 -0
  111. /package/{esm2020 → esm2022}/config/sf/sf.type.mjs +0 -0
  112. /package/{esm2020 → esm2022}/config/theme/http.type.mjs +0 -0
  113. /package/{esm2020 → esm2022}/config/theme/i18n.type.mjs +0 -0
  114. /package/{esm2020 → esm2022}/config/theme/index.mjs +0 -0
  115. /package/{esm2020 → esm2022}/config/theme/responsive.type.mjs +0 -0
  116. /package/{esm2020 → esm2022}/config/util/array.type.mjs +0 -0
  117. /package/{esm2020 → esm2022}/config/util/currency.type.mjs +0 -0
  118. /package/{esm2020 → esm2022}/date-time/date-time.mjs +0 -0
  119. /package/{esm2020 → esm2022}/date-time/index.mjs +0 -0
  120. /package/{esm2020 → esm2022}/date-time/picker.mjs +0 -0
  121. /package/{esm2020 → esm2022}/date-time/time.mjs +0 -0
  122. /package/{esm2020 → esm2022}/decorator/convert.mjs +0 -0
  123. /package/{esm2020 → esm2022}/decorator/decorator.mjs +0 -0
  124. /package/{esm2020 → esm2022}/decorator/index.mjs +0 -0
  125. /package/{esm2020 → esm2022}/decorator/zone-outside.mjs +0 -0
  126. /package/{esm2020 → esm2022}/delon-util.mjs +0 -0
  127. /package/{esm2020 → esm2022}/form/form.mjs +0 -0
  128. /package/{esm2020 → esm2022}/form/index.mjs +0 -0
  129. /package/{esm2020 → esm2022}/form/match-control.mjs +0 -0
  130. /package/{esm2020 → esm2022}/form/validators.mjs +0 -0
  131. /package/{esm2020 → esm2022}/format/currency.types.mjs +0 -0
  132. /package/{esm2020 → esm2022}/format/format.mjs +0 -0
  133. /package/{esm2020 → esm2022}/format/index.mjs +0 -0
  134. /package/{esm2020 → esm2022}/format/string.mjs +0 -0
  135. /package/{esm2020 → esm2022}/format/validate.mjs +0 -0
  136. /package/{esm2020 → esm2022}/index.mjs +0 -0
  137. /package/{esm2020 → esm2022}/math/in-range.mjs +0 -0
  138. /package/{esm2020 → esm2022}/math/index.mjs +0 -0
  139. /package/{esm2020 → esm2022}/math/math.mjs +0 -0
  140. /package/{esm2020 → esm2022}/math/round.mjs +0 -0
  141. /package/{esm2020 → esm2022}/other/assert.mjs +0 -0
  142. /package/{esm2020 → esm2022}/other/deep.mjs +0 -0
  143. /package/{esm2020 → esm2022}/other/index.mjs +0 -0
  144. /package/{esm2020 → esm2022}/other/logger.mjs +0 -0
  145. /package/{esm2020 → esm2022}/other/other.mjs +0 -0
  146. /package/{esm2020 → esm2022}/pipes/currency/index.mjs +0 -0
  147. /package/{esm2020 → esm2022}/pipes/currency/pipe-currency.mjs +0 -0
  148. /package/{esm2020 → esm2022}/pipes/filter/index.mjs +0 -0
  149. /package/{esm2020 → esm2022}/pipes/filter/pipe-filter.mjs +0 -0
  150. /package/{esm2020 → esm2022}/pipes/format/index.mjs +0 -0
  151. /package/{esm2020 → esm2022}/pipes/format/pipe-format.mjs +0 -0
  152. /package/{esm2020 → esm2022}/pipes/index.mjs +0 -0
  153. /package/{esm2020 → esm2022}/pipes/pipes.mjs +0 -0
  154. /package/{esm2020 → esm2022}/token/index.mjs +0 -0
  155. /package/{esm2020 → esm2022}/token/page-visibility.mjs +0 -0
  156. /package/{esm2020 → esm2022}/token/token.mjs +0 -0
  157. /package/{esm2020 → esm2022}/token/window.mjs +0 -0
  158. /package/{fesm2020 → fesm2022}/date-time.mjs +0 -0
  159. /package/{fesm2020 → fesm2022}/date-time.mjs.map +0 -0
  160. /package/{fesm2020 → fesm2022}/decorator.mjs +0 -0
  161. /package/{fesm2020 → fesm2022}/decorator.mjs.map +0 -0
  162. /package/{fesm2015 → fesm2022}/delon-util.mjs +0 -0
  163. /package/{fesm2015 → fesm2022}/delon-util.mjs.map +0 -0
  164. /package/{fesm2015 → fesm2022}/form.mjs +0 -0
  165. /package/{fesm2015 → fesm2022}/form.mjs.map +0 -0
  166. /package/{fesm2015 → fesm2022}/math.mjs +0 -0
  167. /package/{fesm2015 → fesm2022}/math.mjs.map +0 -0
  168. /package/{fesm2015 → fesm2022}/pipes.mjs +0 -0
  169. /package/{fesm2015 → fesm2022}/pipes.mjs.map +0 -0
  170. /package/{fesm2015 → fesm2022}/token.mjs +0 -0
  171. /package/{fesm2015 → fesm2022}/token.mjs.map +0 -0
@@ -1,255 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Injectable } from '@angular/core';
3
- import { NzTreeNode } from 'ng-zorro-antd/core/tree';
4
- import * as i1 from '@delon/util/config';
5
-
6
- /* eslint-disable @typescript-eslint/no-explicit-any */
7
- class ArrayService {
8
- constructor(cog) {
9
- this.c = cog.merge('utilArray', {
10
- deepMapName: 'deep',
11
- parentMapName: 'parent',
12
- idMapName: 'id',
13
- parentIdMapName: 'parent_id',
14
- childrenMapName: 'children',
15
- titleMapName: 'title',
16
- checkedMapname: 'checked',
17
- selectedMapname: 'selected',
18
- expandedMapname: 'expanded',
19
- disabledMapname: 'disabled'
20
- });
21
- }
22
- /**
23
- * Convert tree structure to array structure
24
- *
25
- * 将树结构转换成数组结构
26
- */
27
- treeToArr(tree, options) {
28
- const opt = Object.assign({ deepMapName: this.c.deepMapName, parentMapName: this.c.parentMapName, childrenMapName: this.c.childrenMapName, clearChildren: true, cb: null }, options);
29
- const result = [];
30
- const inFn = (list, parent, deep = 0) => {
31
- for (const i of list) {
32
- i[opt.deepMapName] = deep;
33
- i[opt.parentMapName] = parent;
34
- if (opt.cb) {
35
- opt.cb(i, parent, deep);
36
- }
37
- result.push(i);
38
- const children = i[opt.childrenMapName];
39
- if (children != null && Array.isArray(children) && children.length > 0) {
40
- inFn(children, i, deep + 1);
41
- }
42
- if (opt.clearChildren) {
43
- delete i[opt.childrenMapName];
44
- }
45
- }
46
- };
47
- inFn(tree, null);
48
- return result;
49
- }
50
- /**
51
- * Convert array structure to tree structure
52
- *
53
- * 数组转换成树数据
54
- */
55
- arrToTree(arr, options) {
56
- if (!Array.isArray(arr) || arr.length === 0) {
57
- return [];
58
- }
59
- const opt = Object.assign({ idMapName: this.c.idMapName, parentIdMapName: this.c.parentIdMapName, childrenMapName: this.c.childrenMapName, cb: null }, options);
60
- const tree = [];
61
- const childrenOf = {};
62
- let rootPid = opt.rootParentIdValue;
63
- const arrType = arr;
64
- if (!rootPid) {
65
- const pids = arrType.map(i => i[opt.parentIdMapName]);
66
- const emptyPid = pids.findIndex(w => w == null);
67
- rootPid = emptyPid !== -1 ? pids[emptyPid] : pids.sort()[0];
68
- }
69
- for (const item of arrType) {
70
- const id = item[opt.idMapName];
71
- const pid = item[opt.parentIdMapName];
72
- childrenOf[id] = childrenOf[id] || [];
73
- item[opt.childrenMapName] = childrenOf[id];
74
- if (opt.cb) {
75
- opt.cb(item);
76
- }
77
- if (pid !== rootPid) {
78
- childrenOf[pid] = childrenOf[pid] || [];
79
- childrenOf[pid].push(item);
80
- }
81
- else {
82
- tree.push(item);
83
- }
84
- }
85
- return tree;
86
- }
87
- /**
88
- * 数组转换成 `nz-tree` 数据源,通过 `options` 转化项名,也可以使用 `options.cb` 更高级决定数据项
89
- */
90
- arrToTreeNode(arr, options) {
91
- const opt = Object.assign({ idMapName: this.c.idMapName, parentIdMapName: this.c.parentIdMapName, titleMapName: this.c.titleMapName, isLeafMapName: 'isLeaf', checkedMapname: this.c.checkedMapname, selectedMapname: this.c.selectedMapname, expandedMapname: this.c.expandedMapname, disabledMapname: this.c.disabledMapname, cb: null }, options);
92
- const tree = this.arrToTree(arr, {
93
- idMapName: opt.idMapName,
94
- parentIdMapName: opt.parentIdMapName,
95
- childrenMapName: 'children'
96
- });
97
- this.visitTree(tree, (item, parent, deep) => {
98
- item.key = item[opt.idMapName];
99
- item.title = item[opt.titleMapName];
100
- item.checked = item[opt.checkedMapname];
101
- item.selected = item[opt.selectedMapname];
102
- item.expanded = item[opt.expandedMapname];
103
- item.disabled = item[opt.disabledMapname];
104
- if (item[opt.isLeafMapName] == null) {
105
- item.isLeaf = item.children.length === 0;
106
- }
107
- else {
108
- item.isLeaf = item[opt.isLeafMapName];
109
- }
110
- if (opt.cb) {
111
- opt.cb(item, parent, deep);
112
- }
113
- });
114
- return tree.map(node => new NzTreeNode(node));
115
- }
116
- /**
117
- * 递归访问整个树
118
- */
119
- visitTree(tree, cb, options) {
120
- options = Object.assign({ childrenMapName: this.c.childrenMapName }, options);
121
- const inFn = (data, parent, deep) => {
122
- for (const item of data) {
123
- cb(item, parent, deep);
124
- const childrenVal = item[options.childrenMapName];
125
- if (Array.isArray(childrenVal) && childrenVal.length > 0) {
126
- inFn(childrenVal, item, deep + 1);
127
- }
128
- }
129
- };
130
- inFn(tree, null, 1);
131
- }
132
- /**
133
- * Return the value of the first tree value in the tree where predicate is true, and `undefined` otherwise
134
- *
135
- * 根据条件返回树的第一个值,否则返回 `undefined`
136
- */
137
- findTree(tree, predicate, options) {
138
- let res;
139
- this.visitTree(tree, item => {
140
- if (res === undefined && predicate(item)) {
141
- res = item;
142
- }
143
- }, options);
144
- return res;
145
- }
146
- /**
147
- * 获取所有已经选中的 `key` 值
148
- */
149
- getKeysByTreeNode(tree, options) {
150
- const opt = Object.assign({ includeHalfChecked: true }, options);
151
- const keys = [];
152
- this.visitTree(tree, (item, parent, deep) => {
153
- if (item.isChecked || (opt.includeHalfChecked && item.isHalfChecked)) {
154
- keys.push(opt.cb ? opt.cb(item, parent, deep) : opt.keyMapName ? item.origin[opt.keyMapName] : item.key);
155
- }
156
- });
157
- return keys;
158
- }
159
- baseFlat(array, depth, result = []) {
160
- let index = -1;
161
- while (++index < array.length) {
162
- const value = array[index];
163
- if (depth > 0 && Array.isArray(value)) {
164
- if (depth > 1) {
165
- this.baseFlat(value, depth - 1, result);
166
- }
167
- else {
168
- let pushIndex = -1;
169
- const offset = result.length;
170
- while (++pushIndex < value.length) {
171
- result[offset + pushIndex] = value[pushIndex];
172
- }
173
- }
174
- }
175
- else {
176
- result[result.length] = value;
177
- }
178
- }
179
- return result;
180
- }
181
- /**
182
- * Recursively flattens array
183
- *
184
- * 递归扁平数组
185
- * ```ts
186
- * srv.flat([1, [2, 3, [4, 5, [6]]]]) => [1,2,3,4,5,6]
187
- * srv.flat([1, [2, 3, [4, 5, [6]]]], 1) => [1,2,3,[4, 5, [6]]]
188
- * ```
189
- */
190
- flat(array, depth = 1 / 0) {
191
- return Array.isArray(array) ? this.baseFlat(array, depth) : array;
192
- }
193
- /**
194
- * Group the array
195
- *
196
- * 对数组进行分组
197
- * ```ts
198
- * srv.groupBy([6.1, 4.2, 6.3], Math.floor) => {"4":[4.2],"6":[6.1,6.3]}
199
- * srv.groupBy(['one', 'two', 'three'], v => v.length) => {"3":["one","two"],"5":["three"]}
200
- * ```
201
- */
202
- groupBy(array, iteratee) {
203
- if (!Array.isArray(array)) {
204
- return {};
205
- }
206
- return array.reduce((result, value) => {
207
- const key = iteratee(value);
208
- if (Object.prototype.hasOwnProperty.call(result, key)) {
209
- result[key].push(value);
210
- }
211
- else {
212
- result[key] = [value];
213
- }
214
- return result;
215
- }, {});
216
- }
217
- /**
218
- * Creates a duplicate-free version of an array
219
- *
220
- * 创建去重后的数组
221
- * ```ts
222
- * uniq([1, 2, 2, 3, 1]) => [1,2,3]
223
- * uniq([{ a: 1 }, { a: 1 }, { a: 2 }], 'a') => [{"a":1},{"a":2}]
224
- * uniq([{ a: 1 }, { a: 1 }, { a: 2 }], i => (i.a === 1 ? 'a' : 'b')) => [{"a":1},{"a":2}]
225
- * ```
226
- */
227
- uniq(array, predicate) {
228
- return Array.from(array
229
- .reduce((map, value) => {
230
- const key = predicate
231
- ? typeof predicate === 'string'
232
- ? value[predicate]
233
- : predicate(value)
234
- : value;
235
- if (!map.has(key)) {
236
- map.set(key, value);
237
- }
238
- return map;
239
- }, new Map())
240
- .values());
241
- }
242
- }
243
- ArrayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ArrayService, deps: [{ token: i1.AlainConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
244
- ArrayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ArrayService, providedIn: 'root' });
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ArrayService, decorators: [{
246
- type: Injectable,
247
- args: [{ providedIn: 'root' }]
248
- }], ctorParameters: function () { return [{ type: i1.AlainConfigService }]; } });
249
-
250
- /**
251
- * Generated bundle index. Do not edit.
252
- */
253
-
254
- export { ArrayService };
255
- //# sourceMappingURL=array.mjs.map
@@ -1,283 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { Injectable, Inject } from '@angular/core';
4
- import * as i1 from '@angular/cdk/platform';
5
-
6
- /**
7
- * A set of simple Cookie manipulation classes.
8
- *
9
- * 一组简单的 Cookie 操作类。
10
- */
11
- class CookieService {
12
- get doc() {
13
- return this._doc || document;
14
- }
15
- /**
16
- * Original cookie value
17
- *
18
- * 原始Cookie值
19
- */
20
- get cookie() {
21
- return this.platform.isBrowser ? this.doc.cookie : '';
22
- }
23
- constructor(_doc, platform) {
24
- this._doc = _doc;
25
- this.platform = platform;
26
- }
27
- /**
28
- * Get all cookie key-value pairs
29
- *
30
- * 获取所有Cookie键值对
31
- */
32
- getAll() {
33
- const ret = {};
34
- const arr = this.cookie.split('; ');
35
- for (let i = 0; i < arr.length; i++) {
36
- const cookie = arr[i];
37
- const index = cookie.indexOf('=');
38
- if (index > 0) {
39
- const name = decodeURIComponent(cookie.substring(0, index));
40
- if (ret[name] == null) {
41
- ret[name] = decodeURIComponent(cookie.substring(index + 1));
42
- }
43
- }
44
- }
45
- return ret;
46
- }
47
- /**
48
- * Get the value of given cookie `key`
49
- *
50
- * 获取指定 `key` 的值
51
- */
52
- get(key) {
53
- return this.getAll()[key];
54
- }
55
- /**
56
- * Sets a value for given cookie key
57
- *
58
- * 设置指定 Cookie 键的值
59
- */
60
- put(key, value, options) {
61
- if (!this.platform.isBrowser) {
62
- return;
63
- }
64
- const opt = Object.assign({ path: '/' }, options);
65
- if (typeof opt.expires === 'number') {
66
- opt.expires = new Date(+new Date() + opt.expires * 1e3);
67
- }
68
- if (typeof opt.expires !== 'string') {
69
- opt.expires = opt.expires ? opt.expires.toUTCString() : '';
70
- }
71
- const optStr = opt;
72
- const attributes = Object.keys(optStr)
73
- .filter(k => optStr[k] && optStr[k] !== true)
74
- .map(k => `${k}=${optStr[k].split(';')[0]}`)
75
- .join(';');
76
- this.doc.cookie = `${encodeURIComponent(String(key))}=${encodeURIComponent(String(value))}${attributes ? `; ${attributes}` : ''}`;
77
- }
78
- /**
79
- * Remove given cookie
80
- *
81
- * 移除指定 Cookie
82
- */
83
- remove(key, options) {
84
- this.put(key, '', options);
85
- }
86
- /**
87
- * Remove all cookies
88
- *
89
- * 移除所有 Cookies
90
- */
91
- removeAll() {
92
- this.doc.cookie = '';
93
- }
94
- }
95
- CookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CookieService, deps: [{ token: DOCUMENT }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
96
- CookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CookieService, providedIn: 'root' });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CookieService, decorators: [{
98
- type: Injectable,
99
- args: [{ providedIn: 'root' }]
100
- }], ctorParameters: function () {
101
- return [{ type: undefined, decorators: [{
102
- type: Inject,
103
- args: [DOCUMENT]
104
- }] }, { type: i1.Platform }];
105
- } });
106
-
107
- /**
108
- * Copy text to clipboard
109
- *
110
- * 复制字符串文档至剪贴板
111
- */
112
- function copy(value) {
113
- return new Promise((resolve) => {
114
- let copyTextArea = null;
115
- try {
116
- copyTextArea = document.createElement('textarea');
117
- copyTextArea.style.height = '0px';
118
- copyTextArea.style.opacity = '0';
119
- copyTextArea.style.width = '0px';
120
- document.body.appendChild(copyTextArea);
121
- copyTextArea.value = value;
122
- copyTextArea.select();
123
- // eslint-disable-next-line deprecation/deprecation
124
- document.execCommand('copy');
125
- resolve(value);
126
- }
127
- finally {
128
- if (copyTextArea && copyTextArea.parentNode) {
129
- copyTextArea.parentNode.removeChild(copyTextArea);
130
- }
131
- }
132
- });
133
- }
134
-
135
- /**
136
- * Used to verify `<ng-content></ng-content>` is empty, useful for custom components.
137
- *
138
- * 用于校验 `<ng-content></ng-content>` 是否为空,自定义组件时蛮有用。
139
- */
140
- function isEmpty(element) {
141
- const nodes = element.childNodes;
142
- for (let i = 0; i < nodes.length; i++) {
143
- const node = nodes.item(i);
144
- if (node.nodeType === 1 && node.outerHTML.toString().trim().length !== 0) {
145
- return false;
146
- }
147
- else if (node.nodeType === 3 && node.textContent.toString().trim().length !== 0) {
148
- return false;
149
- }
150
- }
151
- return true;
152
- }
153
-
154
- class ScrollService {
155
- _getDoc() {
156
- return this._doc || document;
157
- }
158
- _getWin() {
159
- const doc = this._getDoc();
160
- return doc.defaultView || window;
161
- }
162
- constructor(_doc, platform) {
163
- this._doc = _doc;
164
- this.platform = platform;
165
- }
166
- /**
167
- * 获取滚动条位置
168
- *
169
- * @param element 指定元素,默认 `window`
170
- */
171
- getScrollPosition(element) {
172
- if (!this.platform.isBrowser) {
173
- return [0, 0];
174
- }
175
- const win = this._getWin();
176
- if (element && element !== win) {
177
- return [element.scrollLeft, element.scrollTop];
178
- }
179
- else {
180
- return [win.scrollX, win.scrollY];
181
- }
182
- }
183
- /**
184
- * 设置滚动条位置
185
- *
186
- * @param element 指定元素
187
- */
188
- scrollToPosition(element, position) {
189
- if (!this.platform.isBrowser) {
190
- return;
191
- }
192
- (element || this._getWin()).scrollTo(position[0], position[1]);
193
- }
194
- /**
195
- * 设置滚动条至指定元素
196
- *
197
- * @param element 指定元素,默认 `document.body`
198
- * @param topOffset 偏移值,默认 `0`
199
- */
200
- scrollToElement(element, topOffset = 0) {
201
- if (!this.platform.isBrowser) {
202
- return;
203
- }
204
- if (!element) {
205
- element = this._getDoc().body;
206
- }
207
- element.scrollIntoView();
208
- const win = this._getWin();
209
- if (win && win.scrollBy) {
210
- win.scrollBy(0, element.getBoundingClientRect().top - topOffset);
211
- if (win.scrollY < 20) {
212
- win.scrollBy(0, -win.scrollY);
213
- }
214
- }
215
- }
216
- /**
217
- * 滚动至顶部
218
- *
219
- * @param topOffset 偏移值,默认 `0`
220
- */
221
- scrollToTop(topOffset = 0) {
222
- if (!this.platform.isBrowser) {
223
- return;
224
- }
225
- this.scrollToElement(this._getDoc().body, topOffset);
226
- }
227
- }
228
- ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ScrollService, deps: [{ token: DOCUMENT }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
229
- ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ScrollService, providedIn: 'root' });
230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ScrollService, decorators: [{
231
- type: Injectable,
232
- args: [{ providedIn: 'root' }]
233
- }], ctorParameters: function () {
234
- return [{ type: undefined, decorators: [{
235
- type: Inject,
236
- args: [DOCUMENT]
237
- }] }, { type: i1.Platform }];
238
- } });
239
-
240
- function removeClass(el, classMap, renderer) {
241
- Object.keys(classMap).forEach(key => renderer.removeClass(el, key));
242
- }
243
- function addClass(el, classMap, renderer) {
244
- for (const i in classMap) {
245
- if (classMap[i]) {
246
- renderer.addClass(el, i);
247
- }
248
- }
249
- }
250
- /**
251
- * Update host component style `class`
252
- *
253
- * 更新宿主组件样式 `class`
254
- *
255
- * ```ts
256
- * updateHostClass(
257
- * this.el.nativeElement,
258
- * this.renderer,
259
- * {
260
- * [ 'classname' ]: true,
261
- * [ 'classname' ]: this.type === '1',
262
- * [ this.cls ]: true,
263
- * [ `a-${this.cls}` ]: true
264
- * })
265
- * ```
266
- */
267
- function updateHostClass(el, renderer, classMap, preClean = false) {
268
- if (preClean === true) {
269
- renderer.removeAttribute(el, 'class');
270
- }
271
- else {
272
- removeClass(el, classMap, renderer);
273
- }
274
- classMap = Object.assign({}, classMap);
275
- addClass(el, classMap, renderer);
276
- }
277
-
278
- /**
279
- * Generated bundle index. Do not edit.
280
- */
281
-
282
- export { CookieService, ScrollService, copy, isEmpty, updateHostClass };
283
- //# sourceMappingURL=browser.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.mjs","sources":["../../../../packages/util/browser/cookie.service.ts","../../../../packages/util/browser/copy.ts","../../../../packages/util/browser/is-empty.ts","../../../../packages/util/browser/scroll.service.ts","../../../../packages/util/browser/style.ts","../../../../packages/util/browser/browser.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface CookieOptions {\n path?: string;\n domain?: string;\n /**\n * Expiration time, `number` is seconds\n *\n * 过期时间,`number` 类型表示秒数\n */\n expires?: number | Date | string;\n secure?: boolean;\n HttpOnly?: boolean;\n SameSite?: boolean | 'lax' | 'strict' | 'none';\n}\n\n/**\n * A set of simple Cookie manipulation classes.\n *\n * 一组简单的 Cookie 操作类。\n */\n@Injectable({ providedIn: 'root' })\nexport class CookieService {\n private get doc(): Document {\n return this._doc || document;\n }\n\n /**\n * Original cookie value\n *\n * 原始Cookie值\n */\n get cookie(): string {\n return this.platform.isBrowser ? this.doc.cookie : '';\n }\n\n constructor(@Inject(DOCUMENT) private _doc: NzSafeAny, private platform: Platform) {}\n\n /**\n * Get all cookie key-value pairs\n *\n * 获取所有Cookie键值对\n */\n getAll(): { [key: string]: string } {\n const ret: { [key: string]: string } = {};\n const arr = this.cookie.split('; ');\n for (let i = 0; i < arr.length; i++) {\n const cookie = arr[i];\n const index = cookie.indexOf('=');\n if (index > 0) {\n const name = decodeURIComponent(cookie.substring(0, index));\n if (ret[name] == null) {\n ret[name] = decodeURIComponent(cookie.substring(index + 1));\n }\n }\n }\n return ret;\n }\n\n /**\n * Get the value of given cookie `key`\n *\n * 获取指定 `key` 的值\n */\n get(key: string): string | undefined {\n return this.getAll()[key];\n }\n\n /**\n * Sets a value for given cookie key\n *\n * 设置指定 Cookie 键的值\n */\n put(key: string, value: string, options?: CookieOptions): void {\n if (!this.platform.isBrowser) {\n return;\n }\n const opt = { path: '/', ...options };\n if (typeof opt.expires === 'number') {\n opt.expires = new Date(+new Date() + opt.expires * 1e3);\n }\n if (typeof opt.expires !== 'string') {\n opt.expires = opt.expires ? opt.expires.toUTCString() : '';\n }\n const optStr: { [key: string]: string | boolean } = opt as NzSafeAny;\n const attributes = Object.keys(optStr)\n .filter(k => optStr[k] && optStr[k] !== true)\n .map(k => `${k}=${(optStr[k] as string).split(';')[0]}`)\n .join(';');\n this.doc.cookie = `${encodeURIComponent(String(key))}=${encodeURIComponent(String(value))}${\n attributes ? `; ${attributes}` : ''\n }`;\n }\n\n /**\n * Remove given cookie\n *\n * 移除指定 Cookie\n */\n remove(key: string, options?: CookieOptions): void {\n this.put(key, '', options);\n }\n\n /**\n * Remove all cookies\n *\n * 移除所有 Cookies\n */\n removeAll(): void {\n this.doc.cookie = '';\n }\n}\n","/**\n * Copy text to clipboard\n *\n * 复制字符串文档至剪贴板\n */\nexport function copy(value: string): Promise<string> {\n return new Promise<string>((resolve): void => {\n let copyTextArea: HTMLTextAreaElement | null = null;\n try {\n copyTextArea = document.createElement('textarea');\n copyTextArea.style.height = '0px';\n copyTextArea.style.opacity = '0';\n copyTextArea.style.width = '0px';\n document.body.appendChild(copyTextArea);\n copyTextArea.value = value;\n copyTextArea.select();\n // eslint-disable-next-line deprecation/deprecation\n document.execCommand('copy');\n resolve(value);\n } finally {\n if (copyTextArea && copyTextArea.parentNode) {\n copyTextArea.parentNode.removeChild(copyTextArea);\n }\n }\n });\n}\n","/**\n * Used to verify `<ng-content></ng-content>` is empty, useful for custom components.\n *\n * 用于校验 `<ng-content></ng-content>` 是否为空,自定义组件时蛮有用。\n */\nexport function isEmpty(element: HTMLElement): boolean {\n const nodes = element.childNodes;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes.item(i);\n if (node.nodeType === 1 && (node as HTMLElement).outerHTML.toString().trim().length !== 0) {\n return false;\n } else if (node.nodeType === 3 && node.textContent!.toString().trim().length !== 0) {\n return false;\n }\n }\n return true;\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollService {\n private _getDoc(): Document {\n return this._doc || document;\n }\n\n private _getWin(): Window {\n const doc = this._getDoc();\n return doc.defaultView || window;\n }\n\n constructor(@Inject(DOCUMENT) private _doc: NzSafeAny, private platform: Platform) {}\n\n /**\n * 获取滚动条位置\n *\n * @param element 指定元素,默认 `window`\n */\n getScrollPosition(element?: Element | Window): [number, number] {\n if (!this.platform.isBrowser) {\n return [0, 0];\n }\n\n const win = this._getWin();\n if (element && element !== win) {\n return [(element as Element).scrollLeft, (element as Element).scrollTop];\n } else {\n return [win.scrollX, win.scrollY];\n }\n }\n\n /**\n * 设置滚动条位置\n *\n * @param element 指定元素\n */\n scrollToPosition(element: Element | Window | null | undefined, position: [number, number]): void {\n if (!this.platform.isBrowser) {\n return;\n }\n (element || this._getWin()).scrollTo(position[0], position[1]);\n }\n\n /**\n * 设置滚动条至指定元素\n *\n * @param element 指定元素,默认 `document.body`\n * @param topOffset 偏移值,默认 `0`\n */\n scrollToElement(element?: Element | null, topOffset: number = 0): void {\n if (!this.platform.isBrowser) {\n return;\n }\n if (!element) {\n element = this._getDoc().body;\n }\n\n element.scrollIntoView();\n\n const win = this._getWin();\n if (win && win.scrollBy) {\n win.scrollBy(0, element!.getBoundingClientRect().top - topOffset);\n\n if (win.scrollY < 20) {\n win.scrollBy(0, -win.scrollY);\n }\n }\n }\n\n /**\n * 滚动至顶部\n *\n * @param topOffset 偏移值,默认 `0`\n */\n scrollToTop(topOffset: number = 0): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.scrollToElement(this._getDoc().body, topOffset);\n }\n}\n","import { Renderer2 } from '@angular/core';\n\nfunction removeClass(el: HTMLElement, classMap: { [klass: string]: unknown }, renderer: Renderer2): void {\n Object.keys(classMap).forEach(key => renderer.removeClass(el, key));\n}\n\nfunction addClass(el: HTMLElement, classMap: { [klass: string]: unknown }, renderer: Renderer2): void {\n for (const i in classMap) {\n if (classMap[i]) {\n renderer.addClass(el, i);\n }\n }\n}\n\n/**\n * Update host component style `class`\n *\n * 更新宿主组件样式 `class`\n *\n * ```ts\n * updateHostClass(\n * this.el.nativeElement,\n * this.renderer,\n * {\n * [ 'classname' ]: true,\n * [ 'classname' ]: this.type === '1',\n * [ this.cls ]: true,\n * [ `a-${this.cls}` ]: true\n * })\n * ```\n */\nexport function updateHostClass(\n el: HTMLElement,\n renderer: Renderer2,\n classMap: { [klass: string]: unknown },\n preClean: boolean = false\n): void {\n if (preClean === true) {\n renderer.removeAttribute(el, 'class');\n } else {\n removeClass(el, classMap, renderer);\n }\n classMap = { ...classMap };\n addClass(el, classMap, renderer);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Optional, Inject } from '@angular/core';
3
- import { deepMergeKey } from '@delon/util/other';
4
-
5
- class AlainSVConfig {
6
- }
7
-
8
- const ALAIN_CONFIG = new InjectionToken('alain-config', {
9
- providedIn: 'root',
10
- factory: ALAIN_CONFIG_FACTORY
11
- });
12
- function ALAIN_CONFIG_FACTORY() {
13
- return {};
14
- }
15
-
16
- /* eslint-disable @typescript-eslint/no-explicit-any */
17
- class AlainConfigService {
18
- constructor(defaultConfig) {
19
- this.config = Object.assign({}, defaultConfig);
20
- }
21
- get(componentName, key) {
22
- const res = (this.config[componentName] || {});
23
- return key ? { [key]: res[key] } : res;
24
- }
25
- merge(componentName, ...defaultValues) {
26
- return deepMergeKey({}, true, ...defaultValues, this.get(componentName));
27
- }
28
- attach(componentThis, componentName, defaultValues) {
29
- Object.assign(componentThis, this.merge(componentName, defaultValues));
30
- }
31
- attachKey(componentThis, componentName, key) {
32
- Object.assign(componentThis, this.get(componentName, key));
33
- }
34
- set(componentName, value) {
35
- this.config[componentName] = Object.assign(Object.assign({}, this.config[componentName]), value);
36
- }
37
- }
38
- AlainConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainConfigService, deps: [{ token: ALAIN_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
39
- AlainConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainConfigService, providedIn: 'root' });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainConfigService, decorators: [{
41
- type: Injectable,
42
- args: [{ providedIn: 'root' }]
43
- }], ctorParameters: function () {
44
- return [{ type: undefined, decorators: [{
45
- type: Optional
46
- }, {
47
- type: Inject,
48
- args: [ALAIN_CONFIG]
49
- }] }];
50
- } });
51
-
52
- /**
53
- * Generated bundle index. Do not edit.
54
- */
55
-
56
- export { ALAIN_CONFIG, ALAIN_CONFIG_FACTORY, AlainConfigService, AlainSVConfig };
57
- //# sourceMappingURL=config.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.mjs","sources":["../../../../packages/util/config/abc/sv.type.ts","../../../../packages/util/config/config.types.ts","../../../../packages/util/config/config.service.ts","../../../../packages/util/config/config.ts"],"sourcesContent":["export class AlainSVConfig {\n /** 大小,默认:`large` */\n size?: 'small' | 'large';\n /** 间距,默认:`32` */\n gutter?: number;\n /** 布局,默认:`horizontal` */\n layout?: 'horizontal' | 'vertical';\n /** 列数,默认:`3` */\n col?: number;\n /** 是否显示默认值,当内容为空值时显示 `-`,默认:`true` */\n default?: boolean;\n /** `label` 固定宽度,若 `null` 或 `undefined` 表示非固定,默认:`null` */\n labelWidth?: number;\n}\n","import { InjectionToken } from '@angular/core';\n\nimport {\n AlainDateRangePickerConfig,\n AlainErrorCollectConfig,\n AlainExceptionType,\n AlainImageConfig,\n AlainLoadingConfig,\n AlainLodopConfig,\n AlainMediaConfig,\n AlainOnboardingConfig,\n AlainPageHeaderConfig,\n AlainPdfConfig,\n AlainQRConfig,\n AlainSEConfig,\n AlainSGConfig,\n AlainSTConfig,\n AlainSVConfig,\n AlainXlsxConfig,\n AlainZipConfig\n} from './abc/index';\nimport { AlainACLConfig } from './acl/acl.type';\nimport { AlainAuthConfig } from './auth/auth.type';\nimport { AlainCacheConfig } from './cache/cache.type';\nimport { AlainChartConfig } from './chart/chart.type';\nimport { AlainMockConfig } from './mock/mock.type';\nimport { AlainSFConfig } from './sf/sf.type';\nimport { AlainThemeHttpClientConfig, AlainThemeResponsiveConfig, AlainThemeI18nConfig } from './theme/index';\nimport { AlainUtilArrayConfig } from './util/array.type';\nimport { AlainUtilCurrencyConfig } from './util/currency.type';\n\nexport interface AlainConfig {\n dataRange?: AlainDateRangePickerConfig;\n exception?: AlainExceptionType;\n errorCollect?: AlainErrorCollectConfig;\n image?: AlainImageConfig;\n loading?: AlainLoadingConfig;\n onboarding?: AlainOnboardingConfig;\n lodop?: AlainLodopConfig;\n pageHeader?: AlainPageHeaderConfig;\n qr?: AlainQRConfig;\n se?: AlainSEConfig;\n sg?: AlainSGConfig;\n sv?: AlainSVConfig;\n st?: AlainSTConfig;\n sf?: AlainSFConfig;\n xlsx?: AlainXlsxConfig;\n zip?: AlainZipConfig;\n pdf?: AlainPdfConfig;\n media?: AlainMediaConfig;\n acl?: AlainACLConfig;\n auth?: AlainAuthConfig;\n cache?: AlainCacheConfig;\n chart?: AlainChartConfig;\n mock?: AlainMockConfig;\n utilArray?: AlainUtilArrayConfig;\n utilCurrency?: AlainUtilCurrencyConfig;\n themeHttp?: AlainThemeHttpClientConfig;\n themeResponsive?: AlainThemeResponsiveConfig;\n themeI18n?: AlainThemeI18nConfig;\n}\n\nexport type AlainConfigKey = keyof AlainConfig;\n\nexport const ALAIN_CONFIG = new InjectionToken<AlainConfig>('alain-config', {\n providedIn: 'root',\n factory: ALAIN_CONFIG_FACTORY\n});\n\nexport function ALAIN_CONFIG_FACTORY(): AlainConfig {\n return {};\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Inject, Injectable, Optional } from '@angular/core';\n\nimport { deepMergeKey } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { AlainConfig, AlainConfigKey, ALAIN_CONFIG } from './config.types';\n\n@Injectable({ providedIn: 'root' })\nexport class AlainConfigService {\n private config: AlainConfig;\n\n constructor(@Optional() @Inject(ALAIN_CONFIG) defaultConfig?: AlainConfig) {\n this.config = { ...defaultConfig };\n }\n\n get<T extends AlainConfigKey>(componentName: T, key?: string): AlainConfig[T] {\n const res = ((this.config[componentName] as { [key: string]: unknown }) || {}) as NzSafeAny;\n return key ? { [key]: res[key] } : res;\n }\n\n merge<T extends AlainConfigKey>(componentName: T, ...defaultValues: Array<AlainConfig[T]>): AlainConfig[T] {\n return deepMergeKey({}, true, ...defaultValues, this.get(componentName));\n }\n\n attach<T extends AlainConfigKey>(componentThis: unknown, componentName: T, defaultValues: AlainConfig[T]): void {\n Object.assign(componentThis as any, this.merge(componentName, defaultValues));\n }\n\n attachKey<T extends AlainConfigKey>(componentThis: unknown, componentName: T, key: string): void {\n Object.assign(componentThis as any, this.get(componentName, key));\n }\n\n set<T extends AlainConfigKey>(componentName: T, value: AlainConfig[T]): void {\n this.config[componentName] = { ...this.config[componentName], ...value };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAAa,aAAa,CAAA;AAazB;;MCmDY,YAAY,GAAG,IAAI,cAAc,CAAc,cAAc,EAAE;AAC1E,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,oBAAoB;AAC9B,CAAA,EAAE;SAEa,oBAAoB,GAAA;AAClC,IAAA,OAAO,EAAE,CAAC;AACZ;;ACvEA;MASa,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAA8C,aAA2B,EAAA;AACvE,QAAA,IAAI,CAAC,MAAM,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAa,CAAE,CAAC;KACpC;IAED,GAAG,CAA2B,aAAgB,EAAE,GAAY,EAAA;AAC1D,QAAA,MAAM,GAAG,IAAK,IAAI,CAAC,MAAM,CAAC,aAAa,CAAgC,IAAI,EAAE,CAAc,CAAC;AAC5F,QAAA,OAAO,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;KACxC;AAED,IAAA,KAAK,CAA2B,aAAgB,EAAE,GAAG,aAAoC,EAAA;AACvF,QAAA,OAAO,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;KAC1E;AAED,IAAA,MAAM,CAA2B,aAAsB,EAAE,aAAgB,EAAE,aAA6B,EAAA;AACtG,QAAA,MAAM,CAAC,MAAM,CAAC,aAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;KAC/E;AAED,IAAA,SAAS,CAA2B,aAAsB,EAAE,aAAgB,EAAE,GAAW,EAAA;AACvF,QAAA,MAAM,CAAC,MAAM,CAAC,aAAoB,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC;KACnE;IAED,GAAG,CAA2B,aAAgB,EAAE,KAAqB,EAAA;AACnE,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAK,EAAA,KAAK,CAAE,CAAC;KAC1E;;AA1BU,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAGG,YAAY,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHjC,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA,CAAA;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;8BAInB,QAAQ;;8BAAI,MAAM;+BAAC,YAAY,CAAA;;;;ACZ9C;;AAEG;;;;"}