@yelon/util 17.3.2 → 18.0.0

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