@yelon/util 15.1.2 → 15.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +22 -22
  3. package/array/array-type.service.d.ts +68 -68
  4. package/array/array.service.d.ts +78 -78
  5. package/array/index.d.ts +2 -2
  6. package/browser/cookie.service.d.ts +67 -67
  7. package/browser/copy.d.ts +6 -6
  8. package/browser/index.d.ts +5 -5
  9. package/browser/is-empty.d.ts +6 -6
  10. package/browser/scroll.service.d.ts +37 -37
  11. package/browser/style.d.ts +21 -21
  12. package/config/abc/date-picker.type.d.ts +52 -52
  13. package/config/abc/error-collect.type.d.ts +10 -10
  14. package/config/abc/exception.type.d.ts +9 -9
  15. package/config/abc/image.type.d.ts +15 -15
  16. package/config/abc/index.d.ts +17 -17
  17. package/config/abc/loading.type.d.ts +31 -31
  18. package/config/abc/lodop.type.d.ts +33 -33
  19. package/config/abc/media.type.d.ts +11 -11
  20. package/config/abc/onboarding.type.d.ts +4 -4
  21. package/config/abc/page-header.type.d.ts +39 -39
  22. package/config/abc/pdf.type.d.ts +35 -35
  23. package/config/abc/qr.type.d.ts +25 -25
  24. package/config/abc/se.type.d.ts +32 -32
  25. package/config/abc/sg.type.d.ts +10 -10
  26. package/config/abc/st.type.d.ts +465 -465
  27. package/config/abc/sv.type.d.ts +14 -14
  28. package/config/abc/xlsx.type.d.ts +12 -12
  29. package/config/abc/zip.type.d.ts +10 -10
  30. package/config/acl/acl.type.d.ts +32 -32
  31. package/config/auth/auth.type.d.ts +55 -55
  32. package/config/bis/bis.type.d.ts +7 -7
  33. package/config/cache/cache.type.d.ts +40 -40
  34. package/config/chart/chart.type.d.ts +33 -33
  35. package/config/config.service.d.ts +13 -13
  36. package/config/config.types.d.ts +48 -48
  37. package/config/index.d.ts +14 -14
  38. package/config/mock/mock.type.d.ts +18 -18
  39. package/config/sf/sf.type.d.ts +133 -133
  40. package/config/socket/socket.type.d.ts +4 -4
  41. package/config/theme/http.type.d.ts +14 -14
  42. package/config/theme/i18n.type.d.ts +14 -14
  43. package/config/theme/index.d.ts +3 -3
  44. package/config/theme/responsive.type.d.ts +12 -12
  45. package/config/util/array.type.d.ts +22 -22
  46. package/config/util/currency.type.d.ts +39 -39
  47. package/date-time/index.d.ts +2 -2
  48. package/date-time/picker.d.ts +68 -68
  49. package/date-time/time.d.ts +29 -29
  50. package/decorator/convert.d.ts +24 -24
  51. package/decorator/index.d.ts +2 -2
  52. package/decorator/zone-outside.d.ts +35 -35
  53. package/esm2020/array/array-type.service.mjs +1 -1
  54. package/esm2020/array/array.mjs +4 -4
  55. package/esm2020/array/array.service.mjs +276 -276
  56. package/esm2020/array/index.mjs +2 -2
  57. package/esm2020/browser/browser.mjs +4 -4
  58. package/esm2020/browser/cookie.service.mjs +102 -102
  59. package/esm2020/browser/copy.mjs +27 -27
  60. package/esm2020/browser/index.mjs +5 -5
  61. package/esm2020/browser/is-empty.mjs +18 -18
  62. package/esm2020/browser/scroll.service.mjs +87 -87
  63. package/esm2020/browser/style.mjs +37 -37
  64. package/esm2020/config/abc/date-picker.type.mjs +1 -1
  65. package/esm2020/config/abc/error-collect.type.mjs +1 -1
  66. package/esm2020/config/abc/exception.type.mjs +1 -1
  67. package/esm2020/config/abc/image.type.mjs +1 -1
  68. package/esm2020/config/abc/index.mjs +17 -17
  69. package/esm2020/config/abc/loading.type.mjs +1 -1
  70. package/esm2020/config/abc/lodop.type.mjs +1 -1
  71. package/esm2020/config/abc/media.type.mjs +1 -1
  72. package/esm2020/config/abc/onboarding.type.mjs +1 -1
  73. package/esm2020/config/abc/page-header.type.mjs +1 -1
  74. package/esm2020/config/abc/pdf.type.mjs +1 -1
  75. package/esm2020/config/abc/qr.type.mjs +1 -1
  76. package/esm2020/config/abc/se.type.mjs +1 -1
  77. package/esm2020/config/abc/sg.type.mjs +1 -1
  78. package/esm2020/config/abc/st.type.mjs +1 -1
  79. package/esm2020/config/abc/sv.type.mjs +2 -2
  80. package/esm2020/config/abc/xlsx.type.mjs +1 -1
  81. package/esm2020/config/abc/zip.type.mjs +1 -1
  82. package/esm2020/config/acl/acl.type.mjs +1 -1
  83. package/esm2020/config/auth/auth.type.mjs +1 -1
  84. package/esm2020/config/bis/bis.type.mjs +1 -1
  85. package/esm2020/config/cache/cache.type.mjs +1 -1
  86. package/esm2020/config/chart/chart.type.mjs +1 -1
  87. package/esm2020/config/config.mjs +4 -4
  88. package/esm2020/config/config.service.mjs +36 -36
  89. package/esm2020/config/config.types.mjs +8 -8
  90. package/esm2020/config/index.mjs +14 -14
  91. package/esm2020/config/mock/mock.type.mjs +1 -1
  92. package/esm2020/config/sf/sf.type.mjs +1 -1
  93. package/esm2020/config/socket/socket.type.mjs +1 -1
  94. package/esm2020/config/theme/http.type.mjs +1 -1
  95. package/esm2020/config/theme/i18n.type.mjs +1 -1
  96. package/esm2020/config/theme/index.mjs +3 -3
  97. package/esm2020/config/theme/responsive.type.mjs +1 -1
  98. package/esm2020/config/util/array.type.mjs +1 -1
  99. package/esm2020/config/util/currency.type.mjs +1 -1
  100. package/esm2020/date-time/date-time.mjs +4 -4
  101. package/esm2020/date-time/index.mjs +2 -2
  102. package/esm2020/date-time/picker.mjs +115 -115
  103. package/esm2020/date-time/time.mjs +88 -88
  104. package/esm2020/decorator/convert.mjs +57 -57
  105. package/esm2020/decorator/decorator.mjs +4 -4
  106. package/esm2020/decorator/index.mjs +2 -2
  107. package/esm2020/decorator/zone-outside.mjs +56 -56
  108. package/esm2020/form/form.mjs +4 -4
  109. package/esm2020/form/index.mjs +2 -2
  110. package/esm2020/form/match-control.mjs +29 -29
  111. package/esm2020/form/validators.mjs +80 -80
  112. package/esm2020/format/currency.service.mjs +237 -237
  113. package/esm2020/format/currency.types.mjs +7 -7
  114. package/esm2020/format/format.mjs +4 -4
  115. package/esm2020/format/index.mjs +4 -4
  116. package/esm2020/format/string.mjs +84 -84
  117. package/esm2020/format/validate.mjs +93 -93
  118. package/esm2020/index.mjs +11 -11
  119. package/esm2020/math/in-range.mjs +24 -24
  120. package/esm2020/math/index.mjs +2 -2
  121. package/esm2020/math/math.mjs +4 -4
  122. package/esm2020/math/round.mjs +52 -52
  123. package/esm2020/other/assert.mjs +66 -66
  124. package/esm2020/other/deep.mjs +78 -76
  125. package/esm2020/other/favicon.mjs +28 -28
  126. package/esm2020/other/index.mjs +7 -7
  127. package/esm2020/other/lazy.service.mjs +131 -131
  128. package/esm2020/other/logger.mjs +32 -32
  129. package/esm2020/other/other.mjs +4 -4
  130. package/esm2020/other/path-to-regexp.service.mjs +238 -238
  131. package/esm2020/other/resize.mjs +3 -3
  132. package/esm2020/pipes/currency/cny.pipe.mjs +22 -22
  133. package/esm2020/pipes/currency/index.mjs +4 -4
  134. package/esm2020/pipes/currency/mega.pipe.mjs +28 -28
  135. package/esm2020/pipes/currency/module.mjs +18 -18
  136. package/esm2020/pipes/currency/pipe-currency.mjs +4 -4
  137. package/esm2020/pipes/currency/price.pipe.mjs +26 -26
  138. package/esm2020/pipes/filter/filter.pipe.mjs +18 -18
  139. package/esm2020/pipes/filter/index.mjs +2 -2
  140. package/esm2020/pipes/filter/module.mjs +16 -16
  141. package/esm2020/pipes/filter/pipe-filter.mjs +4 -4
  142. package/esm2020/pipes/format/index.mjs +2 -2
  143. package/esm2020/pipes/format/mask.pipe.mjs +33 -33
  144. package/esm2020/pipes/format/module.mjs +16 -16
  145. package/esm2020/pipes/format/pipe-format.mjs +4 -4
  146. package/esm2020/pipes/index.mjs +3 -3
  147. package/esm2020/pipes/pipes.mjs +4 -4
  148. package/esm2020/token/index.mjs +2 -2
  149. package/esm2020/token/page-visibility.mjs +14 -14
  150. package/esm2020/token/token.mjs +4 -4
  151. package/esm2020/token/window.mjs +16 -16
  152. package/esm2020/yelon-util.mjs +4 -4
  153. package/fesm2015/array.mjs +254 -254
  154. package/fesm2015/browser.mjs +283 -283
  155. package/fesm2015/config.mjs +56 -56
  156. package/fesm2015/date-time.mjs +207 -207
  157. package/fesm2015/decorator.mjs +121 -121
  158. package/fesm2015/form.mjs +118 -118
  159. package/fesm2015/format.mjs +413 -413
  160. package/fesm2015/math.mjs +85 -85
  161. package/fesm2015/other.mjs +589 -587
  162. package/fesm2015/other.mjs.map +1 -1
  163. package/fesm2015/pipe-currency.mjs +96 -96
  164. package/fesm2015/pipe-filter.mjs +40 -40
  165. package/fesm2015/pipe-format.mjs +55 -55
  166. package/fesm2015/pipes.mjs +8 -8
  167. package/fesm2015/token.mjs +37 -37
  168. package/fesm2015/yelon-util.mjs +16 -16
  169. package/fesm2020/array.mjs +284 -284
  170. package/fesm2020/browser.mjs +279 -279
  171. package/fesm2020/config.mjs +54 -54
  172. package/fesm2020/date-time.mjs +211 -211
  173. package/fesm2020/decorator.mjs +121 -121
  174. package/fesm2020/form.mjs +118 -118
  175. package/fesm2020/format.mjs +431 -431
  176. package/fesm2020/math.mjs +85 -85
  177. package/fesm2020/other.mjs +586 -584
  178. package/fesm2020/other.mjs.map +1 -1
  179. package/fesm2020/pipe-currency.mjs +94 -94
  180. package/fesm2020/pipe-filter.mjs +40 -40
  181. package/fesm2020/pipe-format.mjs +55 -55
  182. package/fesm2020/pipes.mjs +8 -8
  183. package/fesm2020/token.mjs +37 -37
  184. package/fesm2020/yelon-util.mjs +16 -16
  185. package/form/index.d.ts +2 -2
  186. package/form/match-control.d.ts +15 -15
  187. package/form/validators.d.ts +62 -62
  188. package/format/currency.service.d.ts +37 -37
  189. package/format/currency.types.d.ts +77 -77
  190. package/format/index.d.ts +4 -4
  191. package/format/string.d.ts +44 -44
  192. package/format/validate.d.ts +72 -72
  193. package/index.d.ts +11 -11
  194. package/math/in-range.d.ts +14 -14
  195. package/math/index.d.ts +2 -2
  196. package/math/round.d.ts +33 -33
  197. package/other/assert.d.ts +36 -36
  198. package/other/deep.d.ts +35 -33
  199. package/other/favicon.d.ts +2 -2
  200. package/other/index.d.ts +7 -7
  201. package/other/lazy.service.d.ts +48 -48
  202. package/other/logger.d.ts +5 -5
  203. package/other/path-to-regexp.service.d.ts +26 -26
  204. package/other/resize.d.ts +1 -1
  205. package/package.json +157 -157
  206. package/pipes/currency/cny.pipe.d.ts +15 -15
  207. package/pipes/currency/index.d.ts +4 -4
  208. package/pipes/currency/mega.pipe.d.ts +16 -16
  209. package/pipes/currency/module.d.ts +9 -9
  210. package/pipes/currency/price.pipe.d.ts +19 -19
  211. package/pipes/filter/filter.pipe.d.ts +13 -13
  212. package/pipes/filter/index.d.ts +2 -2
  213. package/pipes/filter/module.d.ts +7 -7
  214. package/pipes/format/index.d.ts +2 -2
  215. package/pipes/format/mask.pipe.d.ts +27 -27
  216. package/pipes/format/module.d.ts +7 -7
  217. package/pipes/index.d.ts +3 -3
  218. package/token/index.d.ts +2 -2
  219. package/token/page-visibility.d.ts +8 -8
  220. package/token/window.d.ts +7 -7
@@ -1,279 +1,279 @@
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 = { 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.0", 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.0", ngImport: i0, type: CookieService, providedIn: 'root' });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: CookieService, decorators: [{
98
- type: Injectable,
99
- args: [{ providedIn: 'root' }]
100
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
101
- type: Inject,
102
- args: [DOCUMENT]
103
- }] }, { type: i1.Platform }]; } });
104
-
105
- /**
106
- * Copy text to clipboard
107
- *
108
- * 复制字符串文档至剪贴板
109
- */
110
- function copy(value) {
111
- return new Promise((resolve) => {
112
- let copyTextArea = null;
113
- try {
114
- copyTextArea = document.createElement('textarea');
115
- copyTextArea.style.height = '0px';
116
- copyTextArea.style.opacity = '0';
117
- copyTextArea.style.width = '0px';
118
- document.body.appendChild(copyTextArea);
119
- copyTextArea.value = value;
120
- copyTextArea.select();
121
- // eslint-disable-next-line deprecation/deprecation
122
- document.execCommand('copy');
123
- resolve(value);
124
- }
125
- finally {
126
- if (copyTextArea && copyTextArea.parentNode) {
127
- copyTextArea.parentNode.removeChild(copyTextArea);
128
- }
129
- }
130
- });
131
- }
132
-
133
- /**
134
- * Used to verify `<ng-content></ng-content>` is empty, useful for custom components.
135
- *
136
- * 用于校验 `<ng-content></ng-content>` 是否为空,自定义组件时蛮有用。
137
- */
138
- function isEmpty(element) {
139
- const nodes = element.childNodes;
140
- for (let i = 0; i < nodes.length; i++) {
141
- const node = nodes.item(i);
142
- if (node.nodeType === 1 && node.outerHTML.toString().trim().length !== 0) {
143
- return false;
144
- }
145
- else if (node.nodeType === 3 && node.textContent.toString().trim().length !== 0) {
146
- return false;
147
- }
148
- }
149
- return true;
150
- }
151
-
152
- class ScrollService {
153
- _getDoc() {
154
- return this._doc || document;
155
- }
156
- _getWin() {
157
- const doc = this._getDoc();
158
- return doc.defaultView || window;
159
- }
160
- constructor(_doc, platform) {
161
- this._doc = _doc;
162
- this.platform = platform;
163
- }
164
- /**
165
- * 获取滚动条位置
166
- *
167
- * @param element 指定元素,默认 `window`
168
- */
169
- getScrollPosition(element) {
170
- if (!this.platform.isBrowser) {
171
- return [0, 0];
172
- }
173
- const win = this._getWin();
174
- if (element && element !== win) {
175
- return [element.scrollLeft, element.scrollTop];
176
- }
177
- else {
178
- return [win.scrollX, win.scrollY];
179
- }
180
- }
181
- /**
182
- * 设置滚动条位置
183
- *
184
- * @param element 指定元素
185
- */
186
- scrollToPosition(element, position) {
187
- if (!this.platform.isBrowser) {
188
- return;
189
- }
190
- (element || this._getWin()).scrollTo(position[0], position[1]);
191
- }
192
- /**
193
- * 设置滚动条至指定元素
194
- *
195
- * @param element 指定元素,默认 `document.body`
196
- * @param topOffset 偏移值,默认 `0`
197
- */
198
- scrollToElement(element, topOffset = 0) {
199
- if (!this.platform.isBrowser) {
200
- return;
201
- }
202
- if (!element) {
203
- element = this._getDoc().body;
204
- }
205
- element.scrollIntoView();
206
- const win = this._getWin();
207
- if (win && win.scrollBy) {
208
- win.scrollBy(0, element.getBoundingClientRect().top - topOffset);
209
- if (win.scrollY < 20) {
210
- win.scrollBy(0, -win.scrollY);
211
- }
212
- }
213
- }
214
- /**
215
- * 滚动至顶部
216
- *
217
- * @param topOffset 偏移值,默认 `0`
218
- */
219
- scrollToTop(topOffset = 0) {
220
- if (!this.platform.isBrowser) {
221
- return;
222
- }
223
- this.scrollToElement(this._getDoc().body, topOffset);
224
- }
225
- }
226
- ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ScrollService, deps: [{ token: DOCUMENT }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
227
- ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ScrollService, providedIn: 'root' });
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ScrollService, decorators: [{
229
- type: Injectable,
230
- args: [{ providedIn: 'root' }]
231
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
232
- type: Inject,
233
- args: [DOCUMENT]
234
- }] }, { type: i1.Platform }]; } });
235
-
236
- function removeClass(el, classMap, renderer) {
237
- Object.keys(classMap).forEach(key => renderer.removeClass(el, key));
238
- }
239
- function addClass(el, classMap, renderer) {
240
- for (const i in classMap) {
241
- if (classMap[i]) {
242
- renderer.addClass(el, i);
243
- }
244
- }
245
- }
246
- /**
247
- * Update host component style `class`
248
- *
249
- * 更新宿主组件样式 `class`
250
- *
251
- * ```ts
252
- * updateHostClass(
253
- * this.el.nativeElement,
254
- * this.renderer,
255
- * {
256
- * [ 'classname' ]: true,
257
- * [ 'classname' ]: this.type === '1',
258
- * [ this.cls ]: true,
259
- * [ `a-${this.cls}` ]: true
260
- * })
261
- * ```
262
- */
263
- function updateHostClass(el, renderer, classMap, preClean = false) {
264
- if (preClean === true) {
265
- renderer.removeAttribute(el, 'class');
266
- }
267
- else {
268
- removeClass(el, classMap, renderer);
269
- }
270
- classMap = { ...classMap };
271
- addClass(el, classMap, renderer);
272
- }
273
-
274
- /**
275
- * Generated bundle index. Do not edit.
276
- */
277
-
278
- export { CookieService, ScrollService, copy, isEmpty, updateHostClass };
279
- //# sourceMappingURL=browser.mjs.map
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 = { 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 () { return [{ type: undefined, decorators: [{
101
+ type: Inject,
102
+ args: [DOCUMENT]
103
+ }] }, { type: i1.Platform }]; } });
104
+
105
+ /**
106
+ * Copy text to clipboard
107
+ *
108
+ * 复制字符串文档至剪贴板
109
+ */
110
+ function copy(value) {
111
+ return new Promise((resolve) => {
112
+ let copyTextArea = null;
113
+ try {
114
+ copyTextArea = document.createElement('textarea');
115
+ copyTextArea.style.height = '0px';
116
+ copyTextArea.style.opacity = '0';
117
+ copyTextArea.style.width = '0px';
118
+ document.body.appendChild(copyTextArea);
119
+ copyTextArea.value = value;
120
+ copyTextArea.select();
121
+ // eslint-disable-next-line deprecation/deprecation
122
+ document.execCommand('copy');
123
+ resolve(value);
124
+ }
125
+ finally {
126
+ if (copyTextArea && copyTextArea.parentNode) {
127
+ copyTextArea.parentNode.removeChild(copyTextArea);
128
+ }
129
+ }
130
+ });
131
+ }
132
+
133
+ /**
134
+ * Used to verify `<ng-content></ng-content>` is empty, useful for custom components.
135
+ *
136
+ * 用于校验 `<ng-content></ng-content>` 是否为空,自定义组件时蛮有用。
137
+ */
138
+ function isEmpty(element) {
139
+ const nodes = element.childNodes;
140
+ for (let i = 0; i < nodes.length; i++) {
141
+ const node = nodes.item(i);
142
+ if (node.nodeType === 1 && node.outerHTML.toString().trim().length !== 0) {
143
+ return false;
144
+ }
145
+ else if (node.nodeType === 3 && node.textContent.toString().trim().length !== 0) {
146
+ return false;
147
+ }
148
+ }
149
+ return true;
150
+ }
151
+
152
+ class ScrollService {
153
+ _getDoc() {
154
+ return this._doc || document;
155
+ }
156
+ _getWin() {
157
+ const doc = this._getDoc();
158
+ return doc.defaultView || window;
159
+ }
160
+ constructor(_doc, platform) {
161
+ this._doc = _doc;
162
+ this.platform = platform;
163
+ }
164
+ /**
165
+ * 获取滚动条位置
166
+ *
167
+ * @param element 指定元素,默认 `window`
168
+ */
169
+ getScrollPosition(element) {
170
+ if (!this.platform.isBrowser) {
171
+ return [0, 0];
172
+ }
173
+ const win = this._getWin();
174
+ if (element && element !== win) {
175
+ return [element.scrollLeft, element.scrollTop];
176
+ }
177
+ else {
178
+ return [win.scrollX, win.scrollY];
179
+ }
180
+ }
181
+ /**
182
+ * 设置滚动条位置
183
+ *
184
+ * @param element 指定元素
185
+ */
186
+ scrollToPosition(element, position) {
187
+ if (!this.platform.isBrowser) {
188
+ return;
189
+ }
190
+ (element || this._getWin()).scrollTo(position[0], position[1]);
191
+ }
192
+ /**
193
+ * 设置滚动条至指定元素
194
+ *
195
+ * @param element 指定元素,默认 `document.body`
196
+ * @param topOffset 偏移值,默认 `0`
197
+ */
198
+ scrollToElement(element, topOffset = 0) {
199
+ if (!this.platform.isBrowser) {
200
+ return;
201
+ }
202
+ if (!element) {
203
+ element = this._getDoc().body;
204
+ }
205
+ element.scrollIntoView();
206
+ const win = this._getWin();
207
+ if (win && win.scrollBy) {
208
+ win.scrollBy(0, element.getBoundingClientRect().top - topOffset);
209
+ if (win.scrollY < 20) {
210
+ win.scrollBy(0, -win.scrollY);
211
+ }
212
+ }
213
+ }
214
+ /**
215
+ * 滚动至顶部
216
+ *
217
+ * @param topOffset 偏移值,默认 `0`
218
+ */
219
+ scrollToTop(topOffset = 0) {
220
+ if (!this.platform.isBrowser) {
221
+ return;
222
+ }
223
+ this.scrollToElement(this._getDoc().body, topOffset);
224
+ }
225
+ }
226
+ 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 });
227
+ ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ScrollService, providedIn: 'root' });
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ScrollService, decorators: [{
229
+ type: Injectable,
230
+ args: [{ providedIn: 'root' }]
231
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
232
+ type: Inject,
233
+ args: [DOCUMENT]
234
+ }] }, { type: i1.Platform }]; } });
235
+
236
+ function removeClass(el, classMap, renderer) {
237
+ Object.keys(classMap).forEach(key => renderer.removeClass(el, key));
238
+ }
239
+ function addClass(el, classMap, renderer) {
240
+ for (const i in classMap) {
241
+ if (classMap[i]) {
242
+ renderer.addClass(el, i);
243
+ }
244
+ }
245
+ }
246
+ /**
247
+ * Update host component style `class`
248
+ *
249
+ * 更新宿主组件样式 `class`
250
+ *
251
+ * ```ts
252
+ * updateHostClass(
253
+ * this.el.nativeElement,
254
+ * this.renderer,
255
+ * {
256
+ * [ 'classname' ]: true,
257
+ * [ 'classname' ]: this.type === '1',
258
+ * [ this.cls ]: true,
259
+ * [ `a-${this.cls}` ]: true
260
+ * })
261
+ * ```
262
+ */
263
+ function updateHostClass(el, renderer, classMap, preClean = false) {
264
+ if (preClean === true) {
265
+ renderer.removeAttribute(el, 'class');
266
+ }
267
+ else {
268
+ removeClass(el, classMap, renderer);
269
+ }
270
+ classMap = { ...classMap };
271
+ addClass(el, classMap, renderer);
272
+ }
273
+
274
+ /**
275
+ * Generated bundle index. Do not edit.
276
+ */
277
+
278
+ export { CookieService, ScrollService, copy, isEmpty, updateHostClass };
279
+ //# sourceMappingURL=browser.mjs.map
@@ -1,54 +1,54 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Optional, Inject } from '@angular/core';
3
- import { deepMergeKey } from '@yelon/util/other';
4
-
5
- class YunzaiSVConfig {
6
- }
7
-
8
- const YUNZAI_CONFIG = new InjectionToken('yunzai-config', {
9
- providedIn: 'root',
10
- factory: YUNZAI_CONFIG_FACTORY
11
- });
12
- function YUNZAI_CONFIG_FACTORY() {
13
- return {};
14
- }
15
-
16
- class YunzaiConfigService {
17
- constructor(defaultConfig) {
18
- this.config = { ...defaultConfig };
19
- }
20
- get(componentName, key) {
21
- const res = (this.config[componentName] || {});
22
- return key ? { [key]: res[key] } : res;
23
- }
24
- merge(componentName, ...defaultValues) {
25
- return deepMergeKey({}, true, ...defaultValues, this.get(componentName));
26
- }
27
- attach(componentThis, componentName, defaultValues) {
28
- Object.assign(componentThis, this.merge(componentName, defaultValues));
29
- }
30
- attachKey(componentThis, componentName, key) {
31
- Object.assign(componentThis, this.get(componentName, key));
32
- }
33
- set(componentName, value) {
34
- this.config[componentName] = { ...this.config[componentName], ...value };
35
- }
36
- }
37
- YunzaiConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: YunzaiConfigService, deps: [{ token: YUNZAI_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
38
- YunzaiConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: YunzaiConfigService, providedIn: 'root' });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: YunzaiConfigService, decorators: [{
40
- type: Injectable,
41
- args: [{ providedIn: 'root' }]
42
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
43
- type: Optional
44
- }, {
45
- type: Inject,
46
- args: [YUNZAI_CONFIG]
47
- }] }]; } });
48
-
49
- /**
50
- * Generated bundle index. Do not edit.
51
- */
52
-
53
- export { YUNZAI_CONFIG, YUNZAI_CONFIG_FACTORY, YunzaiConfigService, YunzaiSVConfig };
54
- //# sourceMappingURL=config.mjs.map
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, Injectable, Optional, Inject } from '@angular/core';
3
+ import { deepMergeKey } from '@yelon/util/other';
4
+
5
+ class YunzaiSVConfig {
6
+ }
7
+
8
+ const YUNZAI_CONFIG = new InjectionToken('yunzai-config', {
9
+ providedIn: 'root',
10
+ factory: YUNZAI_CONFIG_FACTORY
11
+ });
12
+ function YUNZAI_CONFIG_FACTORY() {
13
+ return {};
14
+ }
15
+
16
+ class YunzaiConfigService {
17
+ constructor(defaultConfig) {
18
+ this.config = { ...defaultConfig };
19
+ }
20
+ get(componentName, key) {
21
+ const res = (this.config[componentName] || {});
22
+ return key ? { [key]: res[key] } : res;
23
+ }
24
+ merge(componentName, ...defaultValues) {
25
+ return deepMergeKey({}, true, ...defaultValues, this.get(componentName));
26
+ }
27
+ attach(componentThis, componentName, defaultValues) {
28
+ Object.assign(componentThis, this.merge(componentName, defaultValues));
29
+ }
30
+ attachKey(componentThis, componentName, key) {
31
+ Object.assign(componentThis, this.get(componentName, key));
32
+ }
33
+ set(componentName, value) {
34
+ this.config[componentName] = { ...this.config[componentName], ...value };
35
+ }
36
+ }
37
+ YunzaiConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: YunzaiConfigService, deps: [{ token: YUNZAI_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ YunzaiConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: YunzaiConfigService, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: YunzaiConfigService, decorators: [{
40
+ type: Injectable,
41
+ args: [{ providedIn: 'root' }]
42
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
43
+ type: Optional
44
+ }, {
45
+ type: Inject,
46
+ args: [YUNZAI_CONFIG]
47
+ }] }]; } });
48
+
49
+ /**
50
+ * Generated bundle index. Do not edit.
51
+ */
52
+
53
+ export { YUNZAI_CONFIG, YUNZAI_CONFIG_FACTORY, YunzaiConfigService, YunzaiSVConfig };
54
+ //# sourceMappingURL=config.mjs.map