@delon/util 12.4.2 → 13.1.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.
- package/{date-time/delon-util-date-time.d.ts → array/array.d.ts} +1 -0
- package/array/array.service.d.ts +3 -0
- package/array/package.json +6 -7
- package/browser/browser.d.ts +1 -0
- package/browser/cookie.service.d.ts +3 -0
- package/browser/copy.d.ts +1 -1
- package/browser/package.json +5 -6
- package/browser/scroll.service.d.ts +3 -0
- package/config/abc/pdf.type.d.ts +1 -1
- package/config/abc/qr.type.d.ts +1 -1
- package/config/config.d.ts +5 -0
- package/config/config.service.d.ts +3 -0
- package/config/package.json +6 -7
- package/date-time/date-time.d.ts +5 -0
- package/date-time/package.json +6 -7
- package/decorator/decorator.d.ts +5 -0
- package/decorator/package.json +6 -7
- package/delon-util.d.ts +1 -0
- package/{esm2015/array/array-type.service.js → esm2020/array/array-type.service.mjs} +0 -0
- package/esm2020/array/array.mjs +5 -0
- package/esm2020/array/array.service.mjs +278 -0
- package/{esm2015/array/index.js → esm2020/array/index.mjs} +0 -0
- package/{esm2015/browser/browser.js → esm2020/browser/browser.mjs} +0 -0
- package/esm2020/browser/cookie.service.mjs +103 -0
- package/esm2020/browser/copy.mjs +9 -0
- package/{esm2015/browser/index.js → esm2020/browser/index.mjs} +0 -0
- package/{esm2015/browser/is-empty.js → esm2020/browser/is-empty.mjs} +0 -0
- package/esm2020/browser/scroll.service.mjs +88 -0
- package/{esm2015/browser/style.js → esm2020/browser/style.mjs} +2 -2
- package/{esm2015/config/abc/date-picker.type.js → esm2020/config/abc/date-picker.type.mjs} +0 -0
- package/{esm2015/config/abc/error-collect.type.js → esm2020/config/abc/error-collect.type.mjs} +0 -0
- package/{esm2015/config/abc/image.type.js → esm2020/config/abc/image.type.mjs} +0 -0
- package/{esm2015/config/abc/index.js → esm2020/config/abc/index.mjs} +0 -0
- package/{esm2015/config/abc/loading.type.js → esm2020/config/abc/loading.type.mjs} +0 -0
- package/{esm2015/config/abc/lodop.type.js → esm2020/config/abc/lodop.type.mjs} +0 -0
- package/{esm2015/config/abc/media.type.js → esm2020/config/abc/media.type.mjs} +0 -0
- package/{esm2015/config/abc/onboarding.type.js → esm2020/config/abc/onboarding.type.mjs} +0 -0
- package/{esm2015/config/abc/page-header.type.js → esm2020/config/abc/page-header.type.mjs} +0 -0
- package/esm2020/config/abc/pdf.type.mjs +2 -0
- package/esm2020/config/abc/qr.type.mjs +2 -0
- package/{esm2015/config/abc/se.type.js → esm2020/config/abc/se.type.mjs} +0 -0
- package/{esm2015/config/abc/sg.type.js → esm2020/config/abc/sg.type.mjs} +0 -0
- package/{esm2015/config/abc/st.type.js → esm2020/config/abc/st.type.mjs} +0 -0
- package/{esm2015/config/abc/sv.type.js → esm2020/config/abc/sv.type.mjs} +0 -0
- package/{esm2015/config/abc/xlsx.type.js → esm2020/config/abc/xlsx.type.mjs} +0 -0
- package/{esm2015/config/abc/zip.type.js → esm2020/config/abc/zip.type.mjs} +0 -0
- package/{esm2015/config/acl/acl.type.js → esm2020/config/acl/acl.type.mjs} +0 -0
- package/{esm2015/config/auth/auth.type.js → esm2020/config/auth/auth.type.mjs} +0 -0
- package/{esm2015/config/cache/cache.type.js → esm2020/config/cache/cache.type.mjs} +0 -0
- package/{esm2015/config/chart/chart.type.js → esm2020/config/chart/chart.type.mjs} +0 -0
- package/esm2020/config/config.mjs +5 -0
- package/esm2020/config/config.service.mjs +37 -0
- package/{esm2015/config/config.types.js → esm2020/config/config.types.mjs} +0 -0
- package/{esm2015/config/index.js → esm2020/config/index.mjs} +0 -0
- package/{esm2015/config/mock/mock.type.js → esm2020/config/mock/mock.type.mjs} +0 -0
- package/{esm2015/config/sf/sf.type.js → esm2020/config/sf/sf.type.mjs} +0 -0
- package/{esm2015/config/theme/http.type.js → esm2020/config/theme/http.type.mjs} +0 -0
- package/{esm2015/config/theme/i18n.type.js → esm2020/config/theme/i18n.type.mjs} +0 -0
- package/{esm2015/config/theme/index.js → esm2020/config/theme/index.mjs} +0 -0
- package/{esm2015/config/theme/responsive.type.js → esm2020/config/theme/responsive.type.mjs} +0 -0
- package/{esm2015/config/util/array.type.js → esm2020/config/util/array.type.mjs} +0 -0
- package/{esm2015/config/util/currency.type.js → esm2020/config/util/currency.type.mjs} +0 -0
- package/esm2020/date-time/date-time.mjs +5 -0
- package/{esm2015/date-time/index.js → esm2020/date-time/index.mjs} +0 -0
- package/esm2020/date-time/picker.mjs +116 -0
- package/{esm2015/date-time/time.js → esm2020/date-time/time.mjs} +6 -2
- package/esm2020/decorator/convert.mjs +58 -0
- package/esm2020/decorator/decorator.mjs +5 -0
- package/{esm2015/decorator/index.js → esm2020/decorator/index.mjs} +0 -0
- package/esm2020/decorator/zone-outside.mjs +57 -0
- package/{esm2015/delon-util.js → esm2020/delon-util.mjs} +0 -0
- package/esm2020/form/form.mjs +5 -0
- package/{esm2015/form/index.js → esm2020/form/index.mjs} +0 -0
- package/{esm2015/form/match-control.js → esm2020/form/match-control.mjs} +0 -0
- package/{esm2015/form/validators.js → esm2020/form/validators.mjs} +0 -0
- package/esm2020/format/currency.service.mjs +238 -0
- package/{esm2015/format/currency.types.js → esm2020/format/currency.types.mjs} +0 -0
- package/esm2020/format/format.mjs +5 -0
- package/{esm2015/format/index.js → esm2020/format/index.mjs} +0 -0
- package/esm2020/format/string.mjs +85 -0
- package/{esm2015/format/validate.js → esm2020/format/validate.mjs} +0 -0
- package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/{esm2015/math/in-range.js → esm2020/math/in-range.mjs} +0 -0
- package/{esm2015/math/index.js → esm2020/math/index.mjs} +0 -0
- package/esm2020/math/math.mjs +5 -0
- package/{esm2015/math/round.js → esm2020/math/round.mjs} +0 -0
- package/{esm2015/other/assert.js → esm2020/other/assert.mjs} +0 -0
- package/{esm2015/other/deep.js → esm2020/other/deep.mjs} +0 -0
- package/{esm2015/other/index.js → esm2020/other/index.mjs} +0 -0
- package/esm2020/other/lazy.service.mjs +104 -0
- package/{esm2015/other/logger.js → esm2020/other/logger.mjs} +0 -0
- package/esm2020/other/other.mjs +5 -0
- package/esm2020/pipes/currency/cny.pipe.mjs +23 -0
- package/{esm2015/pipes/currency/index.js → esm2020/pipes/currency/index.mjs} +2 -1
- package/esm2020/pipes/currency/mega.pipe.mjs +29 -0
- package/esm2020/pipes/currency/module.mjs +19 -0
- package/esm2020/pipes/currency/pipe-currency.mjs +5 -0
- package/esm2020/pipes/currency/price.pipe.mjs +27 -0
- package/esm2020/pipes/filter/filter.pipe.mjs +19 -0
- package/{esm2015/pipes/filter/index.js → esm2020/pipes/filter/index.mjs} +0 -0
- package/esm2020/pipes/filter/module.mjs +17 -0
- package/{esm2015/array/delon-util-array.js → esm2020/pipes/filter/pipe-filter.mjs} +1 -1
- package/{esm2015/pipes/format/index.js → esm2020/pipes/format/index.mjs} +0 -0
- package/esm2020/pipes/format/mask.pipe.mjs +34 -0
- package/esm2020/pipes/format/module.mjs +17 -0
- package/{esm2015/other/delon-util-other.js → esm2020/pipes/format/pipe-format.mjs} +1 -1
- package/{esm2015/pipes/index.js → esm2020/pipes/index.mjs} +0 -0
- package/esm2020/pipes/pipes.mjs +5 -0
- package/{esm2015/token/index.js → esm2020/token/index.mjs} +0 -0
- package/{esm2015/token/page-visibility.js → esm2020/token/page-visibility.mjs} +0 -0
- package/esm2020/token/token.mjs +5 -0
- package/{esm2015/token/window.js → esm2020/token/window.mjs} +0 -0
- package/fesm2015/{delon-util-array.js → array.mjs} +8 -10
- package/fesm2015/array.mjs.map +1 -0
- package/fesm2015/{browser.js → browser.mjs} +28 -42
- package/fesm2015/browser.mjs.map +1 -0
- package/fesm2015/{delon-util-config.js → config.mjs} +14 -8
- package/fesm2015/config.mjs.map +1 -0
- package/fesm2015/{delon-util-date-time.js → date-time.mjs} +1 -1
- package/fesm2015/date-time.mjs.map +1 -0
- package/fesm2015/{delon-util-decorator.js → decorator.mjs} +8 -4
- package/fesm2015/decorator.mjs.map +1 -0
- package/fesm2015/{delon-util.js → delon-util.mjs} +1 -1
- package/fesm2015/delon-util.mjs.map +1 -0
- package/fesm2015/{delon-util-form.js → form.mjs} +1 -1
- package/fesm2015/form.mjs.map +1 -0
- package/fesm2015/{delon-util-format.js → format.mjs} +18 -14
- package/fesm2015/format.mjs.map +1 -0
- package/fesm2015/{delon-util-math.js → math.mjs} +1 -1
- package/fesm2015/math.mjs.map +1 -0
- package/fesm2015/{delon-util-other.js → other.mjs} +17 -29
- package/fesm2015/other.mjs.map +1 -0
- package/fesm2015/pipe-currency.mjs +96 -0
- package/fesm2015/pipe-currency.mjs.map +1 -0
- package/fesm2015/pipe-filter.mjs +40 -0
- package/fesm2015/pipe-filter.mjs.map +1 -0
- package/fesm2015/pipe-format.mjs +55 -0
- package/fesm2015/pipe-format.mjs.map +1 -0
- package/fesm2015/{delon-util-pipes.js → pipes.mjs} +1 -1
- package/fesm2015/pipes.mjs.map +1 -0
- package/fesm2015/{delon-util-token.js → token.mjs} +1 -1
- package/fesm2015/token.mjs.map +1 -0
- package/fesm2020/array.mjs +285 -0
- package/fesm2020/array.mjs.map +1 -0
- package/fesm2020/browser.mjs +260 -0
- package/fesm2020/browser.mjs.map +1 -0
- package/fesm2020/config.mjs +54 -0
- package/fesm2020/config.mjs.map +1 -0
- package/fesm2020/date-time.mjs +210 -0
- package/fesm2020/date-time.mjs.map +1 -0
- package/fesm2020/decorator.mjs +121 -0
- package/fesm2020/decorator.mjs.map +1 -0
- package/fesm2020/delon-util.mjs +16 -0
- package/fesm2020/delon-util.mjs.map +1 -0
- package/fesm2020/form.mjs +118 -0
- package/fesm2020/form.mjs.map +1 -0
- package/fesm2020/format.mjs +431 -0
- package/fesm2020/format.mjs.map +1 -0
- package/fesm2020/math.mjs +85 -0
- package/fesm2020/math.mjs.map +1 -0
- package/fesm2020/other.mjs +286 -0
- package/fesm2020/other.mjs.map +1 -0
- package/fesm2020/pipe-currency.mjs +94 -0
- package/fesm2020/pipe-currency.mjs.map +1 -0
- package/fesm2020/pipe-filter.mjs +40 -0
- package/fesm2020/pipe-filter.mjs.map +1 -0
- package/fesm2020/pipe-format.mjs +55 -0
- package/fesm2020/pipe-format.mjs.map +1 -0
- package/fesm2020/pipes.mjs +8 -0
- package/fesm2020/pipes.mjs.map +1 -0
- package/fesm2020/token.mjs +38 -0
- package/fesm2020/token.mjs.map +1 -0
- package/{array/delon-util-array.d.ts → form/form.d.ts} +1 -0
- package/form/package.json +6 -7
- package/format/currency.service.d.ts +3 -0
- package/format/format.d.ts +5 -0
- package/format/package.json +6 -7
- package/{config/delon-util-config.d.ts → math/math.d.ts} +1 -0
- package/math/package.json +6 -7
- package/other/lazy.service.d.ts +3 -0
- package/{decorator/delon-util-decorator.d.ts → other/other.d.ts} +1 -0
- package/other/package.json +6 -7
- package/package.json +132 -8
- package/pipes/currency/cny.pipe.d.ts +3 -0
- package/pipes/currency/index.d.ts +1 -0
- package/pipes/currency/mega.pipe.d.ts +3 -0
- package/pipes/currency/module.d.ts +7 -0
- package/pipes/currency/package.json +6 -7
- package/pipes/currency/pipe-currency.d.ts +5 -0
- package/pipes/currency/price.pipe.d.ts +3 -0
- package/pipes/filter/filter.pipe.d.ts +3 -0
- package/pipes/filter/module.d.ts +5 -0
- package/pipes/filter/package.json +6 -7
- package/pipes/filter/pipe-filter.d.ts +5 -0
- package/pipes/format/mask.pipe.d.ts +3 -0
- package/pipes/format/module.d.ts +5 -0
- package/pipes/format/package.json +6 -7
- package/pipes/format/pipe-format.d.ts +5 -0
- package/pipes/package.json +6 -7
- package/pipes/pipes.d.ts +5 -0
- package/token/package.json +6 -7
- package/token/token.d.ts +5 -0
- package/array/delon-util-array.metadata.json +0 -1
- package/browser/browser.metadata.json +0 -1
- package/bundles/browser.umd.js +0 -325
- package/bundles/browser.umd.js.map +0 -1
- package/bundles/delon-util-array.umd.js +0 -641
- package/bundles/delon-util-array.umd.js.map +0 -1
- package/bundles/delon-util-config.umd.js +0 -411
- package/bundles/delon-util-config.umd.js.map +0 -1
- package/bundles/delon-util-date-time.umd.js +0 -238
- package/bundles/delon-util-date-time.umd.js.map +0 -1
- package/bundles/delon-util-decorator.umd.js +0 -462
- package/bundles/delon-util-decorator.umd.js.map +0 -1
- package/bundles/delon-util-form.umd.js +0 -135
- package/bundles/delon-util-form.umd.js.map +0 -1
- package/bundles/delon-util-format.umd.js +0 -785
- package/bundles/delon-util-format.umd.js.map +0 -1
- package/bundles/delon-util-math.umd.js +0 -104
- package/bundles/delon-util-math.umd.js.map +0 -1
- package/bundles/delon-util-other.umd.js +0 -714
- package/bundles/delon-util-other.umd.js.map +0 -1
- package/bundles/delon-util-pipes-currency.umd.js +0 -108
- package/bundles/delon-util-pipes-currency.umd.js.map +0 -1
- package/bundles/delon-util-pipes-filter.umd.js +0 -374
- package/bundles/delon-util-pipes-filter.umd.js.map +0 -1
- package/bundles/delon-util-pipes-format.umd.js +0 -66
- package/bundles/delon-util-pipes-format.umd.js.map +0 -1
- package/bundles/delon-util-pipes.umd.js +0 -38
- package/bundles/delon-util-pipes.umd.js.map +0 -1
- package/bundles/delon-util-token.umd.js +0 -49
- package/bundles/delon-util-token.umd.js.map +0 -1
- package/bundles/delon-util.umd.js +0 -86
- package/bundles/delon-util.umd.js.map +0 -1
- package/config/delon-util-config.metadata.json +0 -1
- package/date-time/delon-util-date-time.metadata.json +0 -1
- package/decorator/delon-util-decorator.metadata.json +0 -1
- package/delon-util.metadata.json +0 -1
- package/esm2015/array/array.service.js +0 -250
- package/esm2015/browser/cookie.service.js +0 -104
- package/esm2015/browser/copy.js +0 -27
- package/esm2015/browser/scroll.service.js +0 -89
- package/esm2015/config/abc/pdf.type.js +0 -2
- package/esm2015/config/abc/qr.type.js +0 -2
- package/esm2015/config/config.service.js +0 -34
- package/esm2015/config/delon-util-config.js +0 -5
- package/esm2015/date-time/delon-util-date-time.js +0 -5
- package/esm2015/date-time/picker.js +0 -116
- package/esm2015/decorator/convert.js +0 -56
- package/esm2015/decorator/delon-util-decorator.js +0 -5
- package/esm2015/decorator/zone-outside.js +0 -55
- package/esm2015/form/delon-util-form.js +0 -5
- package/esm2015/format/currency.service.js +0 -225
- package/esm2015/format/delon-util-format.js +0 -5
- package/esm2015/format/string.js +0 -76
- package/esm2015/math/delon-util-math.js +0 -5
- package/esm2015/other/lazy.service.js +0 -118
- package/esm2015/pipes/currency/cny.pipe.js +0 -22
- package/esm2015/pipes/currency/delon-util-pipes-currency.js +0 -6
- package/esm2015/pipes/currency/mega.pipe.js +0 -26
- package/esm2015/pipes/currency/module.js +0 -14
- package/esm2015/pipes/currency/price.pipe.js +0 -26
- package/esm2015/pipes/delon-util-pipes.js +0 -5
- package/esm2015/pipes/filter/delon-util-pipes-filter.js +0 -5
- package/esm2015/pipes/filter/filter.pipe.js +0 -15
- package/esm2015/pipes/filter/module.js +0 -12
- package/esm2015/pipes/format/delon-util-pipes-format.js +0 -5
- package/esm2015/pipes/format/mask.pipe.js +0 -30
- package/esm2015/pipes/format/module.js +0 -12
- package/esm2015/token/delon-util-token.js +0 -5
- package/fesm2015/browser.js.map +0 -1
- package/fesm2015/delon-util-array.js.map +0 -1
- package/fesm2015/delon-util-config.js.map +0 -1
- package/fesm2015/delon-util-date-time.js.map +0 -1
- package/fesm2015/delon-util-decorator.js.map +0 -1
- package/fesm2015/delon-util-form.js.map +0 -1
- package/fesm2015/delon-util-format.js.map +0 -1
- package/fesm2015/delon-util-math.js.map +0 -1
- package/fesm2015/delon-util-other.js.map +0 -1
- package/fesm2015/delon-util-pipes-currency.js +0 -87
- package/fesm2015/delon-util-pipes-currency.js.map +0 -1
- package/fesm2015/delon-util-pipes-filter.js +0 -32
- package/fesm2015/delon-util-pipes-filter.js.map +0 -1
- package/fesm2015/delon-util-pipes-format.js +0 -47
- package/fesm2015/delon-util-pipes-format.js.map +0 -1
- package/fesm2015/delon-util-pipes.js.map +0 -1
- package/fesm2015/delon-util-token.js.map +0 -1
- package/fesm2015/delon-util.js.map +0 -1
- package/form/delon-util-form.d.ts +0 -4
- package/form/delon-util-form.metadata.json +0 -1
- package/format/delon-util-format.d.ts +0 -4
- package/format/delon-util-format.metadata.json +0 -1
- package/math/delon-util-math.d.ts +0 -4
- package/math/delon-util-math.metadata.json +0 -1
- package/other/delon-util-other.d.ts +0 -4
- package/other/delon-util-other.metadata.json +0 -1
- package/pipes/currency/delon-util-pipes-currency.d.ts +0 -5
- package/pipes/currency/delon-util-pipes-currency.metadata.json +0 -1
- package/pipes/delon-util-pipes.d.ts +0 -4
- package/pipes/delon-util-pipes.metadata.json +0 -1
- package/pipes/filter/delon-util-pipes-filter.d.ts +0 -4
- package/pipes/filter/delon-util-pipes-filter.metadata.json +0 -1
- package/pipes/format/delon-util-pipes-format.d.ts +0 -4
- package/pipes/format/delon-util-pipes-format.metadata.json +0 -1
- package/token/delon-util-token.d.ts +0 -4
- package/token/delon-util-token.metadata.json +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { warn } from '@delon/util/other';
|
|
2
|
+
function propDecoratorFactory(name, fallback, defaultValue) {
|
|
3
|
+
function propDecorator(target, propName, originalDescriptor) {
|
|
4
|
+
const privatePropName = `$$__${propName}`;
|
|
5
|
+
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
6
|
+
if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {
|
|
7
|
+
warn(`The prop "${privatePropName}" is already exist, it will be overrided by ${name} decorator.`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(target, privatePropName, {
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true
|
|
13
|
+
});
|
|
14
|
+
return {
|
|
15
|
+
get() {
|
|
16
|
+
return originalDescriptor && originalDescriptor.get
|
|
17
|
+
? originalDescriptor.get.bind(this)()
|
|
18
|
+
: this[privatePropName];
|
|
19
|
+
},
|
|
20
|
+
set(value) {
|
|
21
|
+
if (originalDescriptor && originalDescriptor.set) {
|
|
22
|
+
originalDescriptor.set.bind(this)(fallback(value, defaultValue));
|
|
23
|
+
}
|
|
24
|
+
this[privatePropName] = fallback(value, defaultValue);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return propDecorator;
|
|
29
|
+
}
|
|
30
|
+
export function toBoolean(value, defaultValue = false) {
|
|
31
|
+
return value == null ? defaultValue : `${value}` !== 'false';
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Input decorator that handle a prop to do get/set automatically with toBoolean
|
|
35
|
+
*
|
|
36
|
+
* ```ts
|
|
37
|
+
* {AT}Input() {AT}InputBoolean() visible: boolean = false;
|
|
38
|
+
* {AT}Input() {AT}InputBoolean(null) visible: boolean = false;
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export function InputBoolean(defaultValue = false) {
|
|
42
|
+
return propDecoratorFactory('InputBoolean', toBoolean, defaultValue);
|
|
43
|
+
}
|
|
44
|
+
export function toNumber(value, fallbackValue = 0) {
|
|
45
|
+
return !isNaN(parseFloat(value)) && !isNaN(Number(value)) ? Number(value) : fallbackValue;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Input decorator that handle a prop to do get/set automatically with toNumber
|
|
49
|
+
*
|
|
50
|
+
* ```ts
|
|
51
|
+
* {AT}Input() {AT}InputNumber() visible: number = 1;
|
|
52
|
+
* {AT}Input() {AT}InputNumber(null) visible: number = 2;
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function InputNumber(defaultValue = 0) {
|
|
56
|
+
return propDecoratorFactory('InputNumber', toNumber, defaultValue);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWwvZGVjb3JhdG9yL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBTXpDLFNBQVMsb0JBQW9CLENBQzNCLElBQVksRUFDWixRQUFzQyxFQUN0QyxZQUF1QjtJQUV2QixTQUFTLGFBQWEsQ0FDcEIsTUFBaUIsRUFDakIsUUFBZ0IsRUFDaEIsa0JBQXVEO1FBRXZELE1BQU0sZUFBZSxHQUFHLE9BQU8sUUFBUSxFQUFFLENBQUM7UUFFMUMsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFO1lBQ2pELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDakUsSUFBSSxDQUFDLGFBQWEsZUFBZSwrQ0FBK0MsSUFBSSxhQUFhLENBQUMsQ0FBQzthQUNwRztTQUNGO1FBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFO1lBQzdDLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNMLEdBQUc7Z0JBQ0QsT0FBTyxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHO29CQUNqRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDckMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBQ0QsR0FBRyxDQUFDLEtBQVE7Z0JBQ1YsSUFBSSxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLEVBQUU7b0JBQ2hELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO2lCQUNsRTtnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN4RCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsS0FBYyxFQUNkLGVBQTJDLEtBQUs7SUFFaEQsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLEtBQUssT0FBTyxDQUFDO0FBQy9ELENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxlQUErQixLQUFLO0lBQy9ELE9BQU8sb0JBQW9CLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBSUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFjLEVBQUUsZ0JBQXdCLENBQUM7SUFDaEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0FBQ3pHLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxlQUE4QixDQUFDO0lBQ3pELE9BQU8sb0JBQW9CLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2FybiB9IGZyb20gJ0BkZWxvbi91dGlsL290aGVyJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgQm9vbGVhbklucHV0ID0gYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw7XG5leHBvcnQgdHlwZSBOdW1iZXJJbnB1dCA9IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbmZ1bmN0aW9uIHByb3BEZWNvcmF0b3JGYWN0b3J5PFQsIEQ+KFxuICBuYW1lOiBzdHJpbmcsXG4gIGZhbGxiYWNrOiAodjogVCwgZGVmYXVsdFZhbHVlOiBEKSA9PiBELFxuICBkZWZhdWx0VmFsdWU6IE56U2FmZUFueVxuKTogKHRhcmdldDogTnpTYWZlQW55LCBwcm9wTmFtZTogc3RyaW5nKSA9PiB2b2lkIHtcbiAgZnVuY3Rpb24gcHJvcERlY29yYXRvcihcbiAgICB0YXJnZXQ6IE56U2FmZUFueSxcbiAgICBwcm9wTmFtZTogc3RyaW5nLFxuICAgIG9yaWdpbmFsRGVzY3JpcHRvcj86IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPE56U2FmZUFueT5cbiAgKTogTnpTYWZlQW55IHtcbiAgICBjb25zdCBwcml2YXRlUHJvcE5hbWUgPSBgJCRfXyR7cHJvcE5hbWV9YDtcblxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBwcml2YXRlUHJvcE5hbWUpKSB7XG4gICAgICAgIHdhcm4oYFRoZSBwcm9wIFwiJHtwcml2YXRlUHJvcE5hbWV9XCIgaXMgYWxyZWFkeSBleGlzdCwgaXQgd2lsbCBiZSBvdmVycmlkZWQgYnkgJHtuYW1lfSBkZWNvcmF0b3IuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJpdmF0ZVByb3BOYW1lLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGdldCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gb3JpZ2luYWxEZXNjcmlwdG9yICYmIG9yaWdpbmFsRGVzY3JpcHRvci5nZXRcbiAgICAgICAgICA/IG9yaWdpbmFsRGVzY3JpcHRvci5nZXQuYmluZCh0aGlzKSgpXG4gICAgICAgICAgOiB0aGlzW3ByaXZhdGVQcm9wTmFtZV07XG4gICAgICB9LFxuICAgICAgc2V0KHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGlmIChvcmlnaW5hbERlc2NyaXB0b3IgJiYgb3JpZ2luYWxEZXNjcmlwdG9yLnNldCkge1xuICAgICAgICAgIG9yaWdpbmFsRGVzY3JpcHRvci5zZXQuYmluZCh0aGlzKShmYWxsYmFjayh2YWx1ZSwgZGVmYXVsdFZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpc1twcml2YXRlUHJvcE5hbWVdID0gZmFsbGJhY2sodmFsdWUsIGRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBwcm9wRGVjb3JhdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9Cb29sZWFuKFxuICB2YWx1ZTogdW5rbm93bixcbiAgZGVmYXVsdFZhbHVlOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCA9IGZhbHNlXG4pOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gZGVmYXVsdFZhbHVlIDogYCR7dmFsdWV9YCAhPT0gJ2ZhbHNlJztcbn1cblxuLyoqXG4gKiBJbnB1dCBkZWNvcmF0b3IgdGhhdCBoYW5kbGUgYSBwcm9wIHRvIGRvIGdldC9zZXQgYXV0b21hdGljYWxseSB3aXRoIHRvQm9vbGVhblxuICpcbiAqIGBgYHRzXG4gKiB7QVR9SW5wdXQoKSB7QVR9SW5wdXRCb29sZWFuKCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICoge0FUfUlucHV0KCkge0FUfUlucHV0Qm9vbGVhbihudWxsKSB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIElucHV0Qm9vbGVhbihkZWZhdWx0VmFsdWU6IGJvb2xlYW4gfCBudWxsID0gZmFsc2UpOiBOelNhZmVBbnkge1xuICByZXR1cm4gcHJvcERlY29yYXRvckZhY3RvcnkoJ0lucHV0Qm9vbGVhbicsIHRvQm9vbGVhbiwgZGVmYXVsdFZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlOiB1bmtub3duKTogbnVtYmVyO1xuZXhwb3J0IGZ1bmN0aW9uIHRvTnVtYmVyPEQ+KHZhbHVlOiB1bmtub3duLCBmYWxsYmFjazogRCk6IG51bWJlciB8IEQ7XG5leHBvcnQgZnVuY3Rpb24gdG9OdW1iZXIodmFsdWU6IHVua25vd24sIGZhbGxiYWNrVmFsdWU6IG51bWJlciA9IDApOiBudW1iZXIge1xuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUgYXMgTnpTYWZlQW55KSkgJiYgIWlzTmFOKE51bWJlcih2YWx1ZSkpID8gTnVtYmVyKHZhbHVlKSA6IGZhbGxiYWNrVmFsdWU7XG59XG5cbi8qKlxuICogSW5wdXQgZGVjb3JhdG9yIHRoYXQgaGFuZGxlIGEgcHJvcCB0byBkbyBnZXQvc2V0IGF1dG9tYXRpY2FsbHkgd2l0aCB0b051bWJlclxuICpcbiAqIGBgYHRzXG4gKiB7QVR9SW5wdXQoKSB7QVR9SW5wdXROdW1iZXIoKSB2aXNpYmxlOiBudW1iZXIgPSAxO1xuICoge0FUfUlucHV0KCkge0FUfUlucHV0TnVtYmVyKG51bGwpIHZpc2libGU6IG51bWJlciA9IDI7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIElucHV0TnVtYmVyKGRlZmF1bHRWYWx1ZTogbnVtYmVyIHwgbnVsbCA9IDApOiBOelNhZmVBbnkge1xuICByZXR1cm4gcHJvcERlY29yYXRvckZhY3RvcnkoJ0lucHV0TnVtYmVyJywgdG9OdW1iZXIsIGRlZmF1bHRWYWx1ZSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbC9kZWNvcmF0b3IvZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
File without changes
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { warn } from '@delon/util/other';
|
|
2
|
+
function makeFn(type, options) {
|
|
3
|
+
return (_, __, descriptor) => {
|
|
4
|
+
const source = descriptor.value;
|
|
5
|
+
descriptor.value = function (...data) {
|
|
6
|
+
const that = this;
|
|
7
|
+
const ngZone = that[options?.ngZoneName || 'ngZone'];
|
|
8
|
+
if (!ngZone) {
|
|
9
|
+
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
10
|
+
warn(`ZoneOutside: Decorator should have 'ngZone' property with 'NgZone' class.`);
|
|
11
|
+
}
|
|
12
|
+
return source.call(this, ...data);
|
|
13
|
+
}
|
|
14
|
+
let res;
|
|
15
|
+
ngZone[type](() => {
|
|
16
|
+
res = source.call(this, ...data);
|
|
17
|
+
});
|
|
18
|
+
return res;
|
|
19
|
+
};
|
|
20
|
+
return descriptor;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The decoration method runs in `runOutsideAngular`
|
|
25
|
+
*
|
|
26
|
+
* 装饰方法运行在 `runOutsideAngular` 内
|
|
27
|
+
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* class MockClass {
|
|
30
|
+
* constructor(public ngZone: NgZone) {}
|
|
31
|
+
*
|
|
32
|
+
* {AT}ZoneOutside()
|
|
33
|
+
* runOutsideAngular(): void {}
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function ZoneOutside(options) {
|
|
38
|
+
return makeFn('runOutsideAngular', options);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The decoration method runs in `run`
|
|
42
|
+
*
|
|
43
|
+
* 装饰方法运行在 `run` 内
|
|
44
|
+
*
|
|
45
|
+
* ```ts
|
|
46
|
+
* class MockClass {
|
|
47
|
+
* constructor(public ngZone: NgZone) {}
|
|
48
|
+
*
|
|
49
|
+
* {AT}ZoneRun()
|
|
50
|
+
* run(): void {}
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function ZoneRun(options) {
|
|
55
|
+
return makeFn('run', options);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS1vdXRzaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbC9kZWNvcmF0b3Ivem9uZS1vdXRzaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVN6QyxTQUFTLE1BQU0sQ0FBQyxJQUFpQyxFQUFFLE9BQXFCO0lBQ3RFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFO1FBQzNCLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDaEMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBaUI7WUFDL0MsTUFBTSxJQUFJLEdBQUcsSUFBaUIsQ0FBQztZQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxRQUFRLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtvQkFDakQsSUFBSSxDQUFDLDJFQUEyRSxDQUFDLENBQUM7aUJBQ25GO2dCQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQzthQUNuQztZQUNELElBQUksR0FBYyxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hCLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUM7UUFFRixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBcUI7SUFDL0MsT0FBTyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQXFCO0lBQzNDLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2FybiB9IGZyb20gJ0BkZWxvbi91dGlsL290aGVyJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBab25lT3B0aW9ucyB7XG4gIG5nWm9uZU5hbWU/OiBzdHJpbmc7XG59XG5cbnR5cGUgRGVjb3JhdG9yVHlwZSA9ICh0YXJnZXQ6IHVua25vd24sIGZuOiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikgPT4gUHJvcGVydHlEZXNjcmlwdG9yO1xuXG5mdW5jdGlvbiBtYWtlRm4odHlwZTogJ3J1bk91dHNpZGVBbmd1bGFyJyB8ICdydW4nLCBvcHRpb25zPzogWm9uZU9wdGlvbnMpOiBEZWNvcmF0b3JUeXBlIHtcbiAgcmV0dXJuIChfLCBfXywgZGVzY3JpcHRvcikgPT4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5kYXRhOiBOelNhZmVBbnlbXSk6ICgpID0+IHZvaWQge1xuICAgICAgY29uc3QgdGhhdCA9IHRoaXMgYXMgTnpTYWZlQW55O1xuICAgICAgY29uc3Qgbmdab25lID0gdGhhdFtvcHRpb25zPy5uZ1pvbmVOYW1lIHx8ICduZ1pvbmUnXTtcbiAgICAgIGlmICghbmdab25lKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICB3YXJuKGBab25lT3V0c2lkZTogRGVjb3JhdG9yIHNob3VsZCBoYXZlICduZ1pvbmUnIHByb3BlcnR5IHdpdGggJ05nWm9uZScgY2xhc3MuYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNvdXJjZS5jYWxsKHRoaXMsIC4uLmRhdGEpO1xuICAgICAgfVxuICAgICAgbGV0IHJlczogTnpTYWZlQW55O1xuICAgICAgbmdab25lW3R5cGVdKCgpID0+IHtcbiAgICAgICAgcmVzID0gc291cmNlLmNhbGwodGhpcywgLi4uZGF0YSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcblxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICB9O1xufVxuXG4vKipcbiAqIFRoZSBkZWNvcmF0aW9uIG1ldGhvZCBydW5zIGluIGBydW5PdXRzaWRlQW5ndWxhcmBcbiAqXG4gKiDoo4XppbDmlrnms5Xov5DooYzlnKggYHJ1bk91dHNpZGVBbmd1bGFyYCDlhoVcbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgTW9ja0NsYXNzIHtcbiAqICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdab25lOiBOZ1pvbmUpIHt9XG4gKlxuICogIHtBVH1ab25lT3V0c2lkZSgpXG4gKiAgcnVuT3V0c2lkZUFuZ3VsYXIoKTogdm9pZCB7fVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBab25lT3V0c2lkZShvcHRpb25zPzogWm9uZU9wdGlvbnMpOiBEZWNvcmF0b3JUeXBlIHtcbiAgcmV0dXJuIG1ha2VGbigncnVuT3V0c2lkZUFuZ3VsYXInLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBUaGUgZGVjb3JhdGlvbiBtZXRob2QgcnVucyBpbiBgcnVuYFxuICpcbiAqIOijhemlsOaWueazlei/kOihjOWcqCBgcnVuYCDlhoVcbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgTW9ja0NsYXNzIHtcbiAqICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdab25lOiBOZ1pvbmUpIHt9XG4gKlxuICogIHtBVH1ab25lUnVuKClcbiAqICBydW4oKTogdm9pZCB7fVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBab25lUnVuKG9wdGlvbnM/OiBab25lT3B0aW9ucyk6IERlY29yYXRvclR5cGUge1xuICByZXR1cm4gbWFrZUZuKCdydW4nLCBvcHRpb25zKTtcbn1cbiJdfQ==
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWwvZm9ybS9mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { CurrencyPipe, formatNumber } from '@angular/common';
|
|
2
|
+
import { DEFAULT_CURRENCY_CODE, Inject, Injectable, LOCALE_ID } from '@angular/core';
|
|
3
|
+
import { CurrencyMega_Powers } from './currency.types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@delon/util/config";
|
|
6
|
+
export class CurrencyService {
|
|
7
|
+
constructor(cog, locale, _defaultCurrencyCode = 'USD') {
|
|
8
|
+
this.locale = locale;
|
|
9
|
+
this.currencyPipe = new CurrencyPipe(locale, _defaultCurrencyCode);
|
|
10
|
+
this.c = cog.merge('utilCurrency', {
|
|
11
|
+
startingUnit: 'yuan',
|
|
12
|
+
megaUnit: { Q: '京', T: '兆', B: '亿', M: '万', K: '千' },
|
|
13
|
+
precision: 2,
|
|
14
|
+
ingoreZeroPrecision: true
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Format a number with commas as thousands separators
|
|
19
|
+
*
|
|
20
|
+
* 格式化货币,用逗号将数字格式化为千位分隔符
|
|
21
|
+
* ```ts
|
|
22
|
+
* 10000 => `10,000`
|
|
23
|
+
* 10000.567 => `10,000.57`
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
format(value, options) {
|
|
27
|
+
options = {
|
|
28
|
+
startingUnit: this.c.startingUnit,
|
|
29
|
+
precision: this.c.precision,
|
|
30
|
+
ingoreZeroPrecision: this.c.ingoreZeroPrecision,
|
|
31
|
+
ngCurrency: this.c.ngCurrency,
|
|
32
|
+
...options
|
|
33
|
+
};
|
|
34
|
+
let truthValue = Number(value);
|
|
35
|
+
if (value == null || isNaN(truthValue)) {
|
|
36
|
+
return '';
|
|
37
|
+
}
|
|
38
|
+
if (options.startingUnit === 'cent') {
|
|
39
|
+
truthValue = truthValue / 100;
|
|
40
|
+
}
|
|
41
|
+
if (options.ngCurrency != null) {
|
|
42
|
+
const cur = options.ngCurrency;
|
|
43
|
+
return this.currencyPipe.transform(truthValue, cur.currencyCode, cur.display, cur.digitsInfo, cur.locale || this.locale);
|
|
44
|
+
}
|
|
45
|
+
const res = formatNumber(truthValue, this.locale, `.${options.ingoreZeroPrecision ? 1 : options.precision}-${options.precision}`);
|
|
46
|
+
return options.ingoreZeroPrecision ? res.replace(/(?:\.[0]+)$/g, '') : res;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Large number format filter
|
|
50
|
+
*
|
|
51
|
+
* 大数据格式化
|
|
52
|
+
* ```ts
|
|
53
|
+
* 1000 => { value: '1', unit: 'K', unitI18n: '千' }
|
|
54
|
+
* 12456 => { value: '12.46', unit: 'K', unitI18n: '千' }
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
mega(value, options) {
|
|
58
|
+
options = { precision: this.c.precision, unitI18n: this.c.megaUnit, startingUnit: this.c.startingUnit, ...options };
|
|
59
|
+
let num = Number(value);
|
|
60
|
+
const res = { raw: value, value: '', unit: '', unitI18n: '' };
|
|
61
|
+
if (isNaN(num) || num === 0) {
|
|
62
|
+
res.value = value.toString();
|
|
63
|
+
return res;
|
|
64
|
+
}
|
|
65
|
+
if (options.startingUnit === 'cent') {
|
|
66
|
+
num = num / 100;
|
|
67
|
+
}
|
|
68
|
+
let abs = Math.abs(+num);
|
|
69
|
+
const rounder = Math.pow(10, options.precision);
|
|
70
|
+
const isNegative = num < 0;
|
|
71
|
+
for (const p of CurrencyMega_Powers) {
|
|
72
|
+
let reduced = abs / p.value;
|
|
73
|
+
reduced = Math.round(reduced * rounder) / rounder;
|
|
74
|
+
if (reduced >= 1) {
|
|
75
|
+
abs = reduced;
|
|
76
|
+
res.unit = p.unit;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
res.value = (isNegative ? '-' : '') + abs;
|
|
81
|
+
res.unitI18n = options.unitI18n[res.unit];
|
|
82
|
+
return res;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Converted into RMB notation.
|
|
86
|
+
*
|
|
87
|
+
* 转化成人民币表示法
|
|
88
|
+
*/
|
|
89
|
+
cny(value, options) {
|
|
90
|
+
options = {
|
|
91
|
+
inWords: true,
|
|
92
|
+
minusSymbol: '负',
|
|
93
|
+
startingUnit: this.c.startingUnit,
|
|
94
|
+
...options
|
|
95
|
+
};
|
|
96
|
+
value = Number(value);
|
|
97
|
+
if (isNaN(value)) {
|
|
98
|
+
return '';
|
|
99
|
+
}
|
|
100
|
+
if (options.startingUnit === 'cent') {
|
|
101
|
+
value = value / 100;
|
|
102
|
+
}
|
|
103
|
+
value = value.toString();
|
|
104
|
+
let integer;
|
|
105
|
+
let decimal;
|
|
106
|
+
[integer, decimal] = value.split('.');
|
|
107
|
+
let symbol = '';
|
|
108
|
+
if (integer.startsWith('-')) {
|
|
109
|
+
symbol = options.minusSymbol;
|
|
110
|
+
integer = integer.substring(1);
|
|
111
|
+
}
|
|
112
|
+
if (/^-?\d+$/.test(value)) {
|
|
113
|
+
decimal = null;
|
|
114
|
+
}
|
|
115
|
+
integer = (+integer).toString();
|
|
116
|
+
const inWords = options.inWords;
|
|
117
|
+
const unit = {
|
|
118
|
+
num: inWords
|
|
119
|
+
? ['', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '点']
|
|
120
|
+
: ['', '一', '二', '三', '四', '五', '六', '七', '八', '九', '点'],
|
|
121
|
+
radice: inWords
|
|
122
|
+
? [
|
|
123
|
+
'',
|
|
124
|
+
'拾',
|
|
125
|
+
'佰',
|
|
126
|
+
'仟',
|
|
127
|
+
'万',
|
|
128
|
+
'拾',
|
|
129
|
+
'佰',
|
|
130
|
+
'仟',
|
|
131
|
+
'亿',
|
|
132
|
+
'拾',
|
|
133
|
+
'佰',
|
|
134
|
+
'仟',
|
|
135
|
+
'万亿',
|
|
136
|
+
'拾',
|
|
137
|
+
'佰',
|
|
138
|
+
'仟',
|
|
139
|
+
'兆',
|
|
140
|
+
'拾',
|
|
141
|
+
'佰',
|
|
142
|
+
'仟'
|
|
143
|
+
]
|
|
144
|
+
: [
|
|
145
|
+
'',
|
|
146
|
+
'十',
|
|
147
|
+
'百',
|
|
148
|
+
'千',
|
|
149
|
+
'万',
|
|
150
|
+
'十',
|
|
151
|
+
'百',
|
|
152
|
+
'千',
|
|
153
|
+
'亿',
|
|
154
|
+
'十',
|
|
155
|
+
'百',
|
|
156
|
+
'千',
|
|
157
|
+
'万亿',
|
|
158
|
+
'十',
|
|
159
|
+
'百',
|
|
160
|
+
'千',
|
|
161
|
+
'兆',
|
|
162
|
+
'十',
|
|
163
|
+
'百',
|
|
164
|
+
'千'
|
|
165
|
+
],
|
|
166
|
+
dec: ['角', '分', '厘', '毫']
|
|
167
|
+
};
|
|
168
|
+
if (inWords) {
|
|
169
|
+
value = (+value).toFixed(5).toString();
|
|
170
|
+
}
|
|
171
|
+
let integerRes = '';
|
|
172
|
+
const integerCount = integer.length;
|
|
173
|
+
if (integer === '0' || integerCount === 0) {
|
|
174
|
+
integerRes = '零';
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
let cnDesc = '';
|
|
178
|
+
for (let i = 0; i < integerCount; i++) {
|
|
179
|
+
const n = +integer[i];
|
|
180
|
+
const j = integerCount - i - 1;
|
|
181
|
+
const isZero = i > 1 && n !== 0 && integer[i - 1] === '0';
|
|
182
|
+
const cnZero = isZero ? '零' : '';
|
|
183
|
+
const isEmpptyUnit = (n === 0 && j % 4 !== 0) || integer.substring(i - 3, i - 3 + 4) === '0000';
|
|
184
|
+
const descMark = cnDesc;
|
|
185
|
+
let cnNum = unit.num[n];
|
|
186
|
+
cnDesc = isEmpptyUnit ? '' : unit.radice[j];
|
|
187
|
+
// 第一位是一十
|
|
188
|
+
if (i === 0 && cnNum === '一' && cnDesc === '十')
|
|
189
|
+
cnNum = '';
|
|
190
|
+
const isChangeEr = n > 1 &&
|
|
191
|
+
cnNum === '二' && // 去除首位
|
|
192
|
+
['', '十', '百'].indexOf(cnDesc) === -1 && // 不读两\两十\两百
|
|
193
|
+
descMark !== '十'; // 不读十两
|
|
194
|
+
if (isChangeEr)
|
|
195
|
+
cnNum = '两';
|
|
196
|
+
integerRes += cnZero + cnNum + cnDesc;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// 小数部分拼接
|
|
200
|
+
let decimalRes = '';
|
|
201
|
+
const decimalCount = decimal ? decimal.toString().length : 0;
|
|
202
|
+
if (decimal === null) {
|
|
203
|
+
decimalRes = inWords ? '整' : '';
|
|
204
|
+
}
|
|
205
|
+
else if (decimal === '0') {
|
|
206
|
+
decimalRes = '零';
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
for (let i = 0; i < decimalCount; i++) {
|
|
210
|
+
if (inWords && i > unit.dec.length - 1)
|
|
211
|
+
break;
|
|
212
|
+
const n = decimal[i];
|
|
213
|
+
const cnZero = n === '0' ? '零' : '';
|
|
214
|
+
const cnNum = unit.num[+n];
|
|
215
|
+
const cnDesc = inWords ? unit.dec[i] : '';
|
|
216
|
+
decimalRes += cnZero + cnNum + cnDesc;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
const ret = symbol +
|
|
220
|
+
(inWords
|
|
221
|
+
? integerRes + (decimalRes === '零' ? '元整' : `元${decimalRes}`)
|
|
222
|
+
: integerRes + (decimalRes === '' ? '' : `点${decimalRes}`));
|
|
223
|
+
return ret;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
CurrencyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: CurrencyService, deps: [{ token: i1.AlainConfigService }, { token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
227
|
+
CurrencyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: CurrencyService, providedIn: 'root' });
|
|
228
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: CurrencyService, decorators: [{
|
|
229
|
+
type: Injectable,
|
|
230
|
+
args: [{ providedIn: 'root' }]
|
|
231
|
+
}], ctorParameters: function () { return [{ type: i1.AlainConfigService }, { type: undefined, decorators: [{
|
|
232
|
+
type: Inject,
|
|
233
|
+
args: [LOCALE_ID]
|
|
234
|
+
}] }, { type: undefined, decorators: [{
|
|
235
|
+
type: Inject,
|
|
236
|
+
args: [DEFAULT_CURRENCY_CODE]
|
|
237
|
+
}] }]; } });
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWwvZm9ybWF0L2N1cnJlbmN5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLckYsT0FBTyxFQUtMLG1CQUFtQixFQUNwQixNQUFNLGtCQUFrQixDQUFDOzs7QUFHMUIsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFDRSxHQUF1QixFQUNJLE1BQWMsRUFDVix1QkFBK0IsS0FBSztRQUR4QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBR3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRTtZQUNqQyxZQUFZLEVBQUUsTUFBTTtZQUNwQixRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDcEQsU0FBUyxFQUFFLENBQUM7WUFDWixtQkFBbUIsRUFBRSxJQUFJO1NBQzFCLENBQUUsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sQ0FBQyxLQUFzQixFQUFFLE9BQStCO1FBQzVELE9BQU8sR0FBRztZQUNSLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVk7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMz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Q2IsQ0FBQzs7NEdBL09VLGVBQWUsb0RBTWhCLFNBQVMsYUFDVCxxQkFBcUI7Z0hBUHBCLGVBQWUsY0FERixNQUFNOzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBTzdCLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlLCBmb3JtYXROdW1iZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgREVGQVVMVF9DVVJSRU5DWV9DT0RFLCBJbmplY3QsIEluamVjdGFibGUsIExPQ0FMRV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBbGFpbkNvbmZpZ1NlcnZpY2UsIEFsYWluVXRpbEN1cnJlbmN5Q29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtcbiAgQ3VycmVuY3lDTllPcHRpb25zLFxuICBDdXJyZW5jeUZvcm1hdE9wdGlvbnMsXG4gIEN1cnJlbmN5TWVnYU9wdGlvbnMsXG4gIEN1cnJlbmN5TWVnYVJlc3VsdCxcbiAgQ3VycmVuY3lNZWdhX1Bvd2Vyc1xufSBmcm9tICcuL2N1cnJlbmN5LnR5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeVNlcnZpY2Uge1xuICBwcml2YXRlIGM6IEFsYWluVXRpbEN1cnJlbmN5Q29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvZzogQWxhaW5Db25maWdTZXJ2aWNlLFxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZTogc3RyaW5nLFxuICAgIEBJbmplY3QoREVGQVVMVF9DVVJSRU5DWV9DT0RFKSBfZGVmYXVsdEN1cnJlbmN5Q29kZTogc3RyaW5nID0gJ1VTRCdcbiAgKSB7XG4gICAgdGhpcy5jdXJyZW5jeVBpcGUgPSBuZXcgQ3VycmVuY3lQaXBlKGxvY2FsZSwgX2RlZmF1bHRDdXJyZW5jeUNvZGUpO1xuICAgIHRoaXMuYyA9IGNvZy5tZXJnZSgndXRpbEN1cnJlbmN5Jywge1xuICAgICAgc3RhcnRpbmdVbml0OiAneXVhbicsXG4gICAgICBtZWdhVW5pdDogeyBROiAn5LqsJywgVDogJ+WFhicsIEI6ICfkur8nLCBNOiAn5LiHJywgSzogJ+WNgycgfSxcbiAgICAgIHByZWNpc2lvbjogMixcbiAgICAgIGluZ29yZVplcm9QcmVjaXNpb246IHRydWVcbiAgICB9KSE7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGEgbnVtYmVyIHdpdGggY29tbWFzIGFzIHRob3VzYW5kcyBzZXBhcmF0b3JzXG4gICAqXG4gICAqIOagvOW8j+WMlui0p+W4ge+8jOeUqOmAl+WPt+WwhuaVsOWtl+agvOW8j+WMluS4uuWNg+S9jeWIhumalOesplxuICAgKiBgYGB0c1xuICAgKiAxMDAwMCA9PiBgMTAsMDAwYFxuICAgKiAxMDAwMC41NjcgPT4gYDEwLDAwMC41N2BcbiAgICogYGBgXG4gICAqL1xuICBmb3JtYXQodmFsdWU6IG51bWJlciB8IHN0cmluZywgb3B0aW9ucz86IEN1cnJlbmN5Rm9ybWF0T3B0aW9ucyk6IHN0cmluZyB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHN0YXJ0aW5nVW5pdDogdGhpcy5jLnN0YXJ0aW5nVW5pdCxcbiAgICAgIHByZWNpc2lvbjogdGhpcy5jLnByZWNpc2lvbixcbiAgICAgIGluZ29yZVplcm9QcmVjaXNpb246IHRoaXMuYy5pbmdvcmVaZXJvUHJlY2lzaW9uLFxuICAgICAgbmdDdXJyZW5jeTogdGhpcy5jLm5nQ3VycmVuY3ksXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcbiAgICBsZXQgdHJ1dGhWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgaXNOYU4odHJ1dGhWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuc3RhcnRpbmdVbml0ID09PSAnY2VudCcpIHtcbiAgICAgIHRydXRoVmFsdWUgPSB0cnV0aFZhbHVlIC8gMTAwO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5uZ0N1cnJlbmN5ICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGN1ciA9IG9wdGlvbnMubmdDdXJyZW5jeSE7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVBpcGUudHJhbnNmb3JtKFxuICAgICAgICB0cnV0aFZhbHVlLFxuICAgICAgICBjdXIuY3VycmVuY3lDb2RlLFxuICAgICAgICBjdXIuZGlzcGxheSxcbiAgICAgICAgY3VyLmRpZ2l0c0luZm8sXG4gICAgICAgIGN1ci5sb2NhbGUgfHwgdGhpcy5sb2NhbGVcbiAgICAgICkhO1xuICAgIH1cbiAgICBjb25zdCByZXMgPSBmb3JtYXROdW1iZXIoXG4gICAgICB0cnV0aFZhbHVlLFxuICAgICAgdGhpcy5sb2NhbGUsXG4gICAgICBgLiR7b3B0aW9ucy5pbmdvcmVaZXJvUHJlY2lzaW9uID8gMSA6IG9wdGlvbnMucHJlY2lzaW9ufS0ke29wdGlvbnMucHJlY2lzaW9ufWBcbiAgICApO1xuICAgIHJldHVybiBvcHRpb25zLmluZ29yZVplcm9QcmVjaXNpb24gPyByZXMucmVwbGFjZSgvKD86XFwuWzBdKykkL2csICcnKSA6IHJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBMYXJnZSBudW1iZXIgZm9ybWF0IGZpbHRlclxuICAgKlxuICAgKiDlpKfmlbDmja7moLzlvI/ljJZcbiAgICogYGBgdHNcbiAgICogMTAwMCA9PiB7IHZhbHVlOiAnMScsIHVuaXQ6ICdLJywgdW5pdEkxOG46ICfljYMnIH1cbiAgICogMTI0NTYgPT4geyB2YWx1ZTogJzEyLjQ2JywgdW5pdDogJ0snLCB1bml0STE4bjogJ+WNgycgfVxuICAgKiBgYGBcbiAgICovXG4gIG1lZ2EodmFsdWU6IG51bWJlciB8IHN0cmluZywgb3B0aW9ucz86IEN1cnJlbmN5TWVnYU9wdGlvbnMpOiBDdXJyZW5jeU1lZ2FSZXN1bHQge1xuICAgIG9wdGlvbnMgPSB7IHByZWNpc2lvbjogdGhpcy5jLnByZWNpc2lvbiwgdW5pdEkxOG46IHRoaXMuYy5tZWdhVW5pdCwgc3RhcnRpbmdVbml0OiB0aGlzLmMuc3RhcnRpbmdVbml0LCAuLi5vcHRpb25zIH07XG4gICAgbGV0IG51bSA9IE51bWJlcih2YWx1ZSk7XG4gICAgY29uc3QgcmVzOiBDdXJyZW5jeU1lZ2FSZXN1bHQgPSB7IHJhdzogdmFsdWUsIHZhbHVlOiAnJywgdW5pdDogJycsIHVuaXRJMThuOiAnJyB9O1xuICAgIGlmIChpc05hTihudW0pIHx8IG51bSA9PT0gMCkge1xuICAgICAgcmVzLnZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnN0YXJ0aW5nVW5pdCA9PT0gJ2NlbnQnKSB7XG4gICAgICBudW0gPSBudW0gLyAxMDA7XG4gICAgfVxuICAgIGxldCBhYnMgPSBNYXRoLmFicygrbnVtKTtcbiAgICBjb25zdCByb3VuZGVyID0gTWF0aC5wb3coMTAsIG9wdGlvbnMucHJlY2lzaW9uISk7XG4gICAgY29uc3QgaXNOZWdhdGl2ZSA9IG51bSA8IDA7XG4gICAgZm9yIChjb25zdCBwIG9mIEN1cnJlbmN5TWVnYV9Qb3dlcnMpIHtcbiAgICAgIGxldCByZWR1Y2VkID0gYWJzIC8gcC52YWx1ZTtcblxuICAgICAgcmVkdWNlZCA9IE1hdGgucm91bmQocmVkdWNlZCAqIHJvdW5kZXIpIC8gcm91bmRlcjtcblxuICAgICAgaWYgKHJlZHVjZWQgPj0gMSkge1xuICAgICAgICBhYnMgPSByZWR1Y2VkO1xuICAgICAgICByZXMudW5pdCA9IHAudW5pdDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVzLnZhbHVlID0gKGlzTmVnYXRpdmUgPyAnLScgOiAnJykgKyBhYnM7XG4gICAgcmVzLnVuaXRJMThuID0gKG9wdGlvbnMudW5pdEkxOG4gYXMgeyBba2V5OiBzdHJpbmddOiBOelNhZmVBbnkgfSlbcmVzLnVuaXRdO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydGVkIGludG8gUk1CIG5vdGF0aW9uLlxuICAgKlxuICAgKiDovazljJbmiJDkurrmsJHluIHooajnpLrms5VcbiAgICovXG4gIGNueSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBvcHRpb25zPzogQ3VycmVuY3lDTllPcHRpb25zKTogc3RyaW5nIHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgaW5Xb3JkczogdHJ1ZSxcbiAgICAgIG1pbnVzU3ltYm9sOiAn6LSfJyxcbiAgICAgIHN0YXJ0aW5nVW5pdDogdGhpcy5jLnN0YXJ0aW5nVW5pdCxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9O1xuXG4gICAgdmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuc3RhcnRpbmdVbml0ID09PSAnY2VudCcpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUgLyAxMDA7XG4gICAgfVxuICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICBsZXQgaW50ZWdlcjogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGxldCBkZWNpbWFsOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsO1xuICAgIFtpbnRlZ2VyLCBkZWNpbWFsXSA9IHZhbHVlLnNwbGl0KCcuJyk7XG4gICAgbGV0IHN5bWJvbCA9ICcnO1xuICAgIGlmIChpbnRlZ2VyLnN0YXJ0c1dpdGgoJy0nKSkge1xuICAgICAgc3ltYm9sID0gb3B0aW9ucy5taW51c1N5bWJvbCE7XG4gICAgICBpbnRlZ2VyID0gaW50ZWdlci5zdWJzdHJpbmcoMSk7XG4gICAgfVxuICAgIGlmICgvXi0/XFxkKyQvLnRlc3QodmFsdWUpKSB7XG4gICAgICBkZWNpbWFsID0gbnVsbDtcbiAgICB9XG4gICAgaW50ZWdlciA9ICgraW50ZWdlcikudG9TdHJpbmcoKTtcbiAgICBjb25zdCBpbldvcmRzID0gb3B0aW9ucy5pbldvcmRzO1xuICAgIGNvbnN0IHVuaXQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHtcbiAgICAgIG51bTogaW5Xb3Jkc1xuICAgICAgICA/IFsnJywgJ+WjuScsICfotLAnLCAn5Y+BJywgJ+iChicsICfkvI0nLCAn6ZmGJywgJ+afkicsICfmjYwnLCAn546WJywgJ+eCuSddXG4gICAgICAgIDogWycnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nLCAn5LiDJywgJ+WFqycsICfkuZ0nLCAn54K5J10sXG4gICAgICByYWRpY2U6IGluV29yZHNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICfmi74nLFxuICAgICAgICAgICAgJ+S9sCcsXG4gICAgICAgICAgICAn5LufJyxcbiAgICAgICAgICAgICfkuIcnLFxuICAgICAgICAgICAgJ+aLvicsXG4gICAgICAgICAgICAn5L2wJyxcbiAgICAgICAgICAgICfku58nLFxuICAgICAgICAgICAgJ+S6vycsXG4gICAgICAgICAgICAn5ou+JyxcbiAgICAgICAgICAgICfkvbAnLFxuICAgICAgICAgICAgJ+S7nycsXG4gICAgICAgICAgICAn5LiH5Lq/JyxcbiAgICAgICAgICAgICfmi74nLFxuICAgICAgICAgICAgJ+S9sCcsXG4gICAgICAgICAgICAn5LufJyxcbiAgICAgICAgICAgICflhYYnLFxuICAgICAgICAgICAgJ+aLvicsXG4gICAgICAgICAgICAn5L2wJyxcbiAgICAgICAgICAgICfku58nXG4gICAgICAgICAgXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgJ+WNgScsXG4gICAgICAgICAgICAn55m+JyxcbiAgICAgICAgICAgICfljYMnLFxuICAgICAgICAgICAgJ+S4hycsXG4gICAgICAgICAgICAn5Y2BJyxcbiAgICAgICAgICAgICfnmb4nLFxuICAgICAgICAgICAgJ+WNgycsXG4gICAgICAgICAgICAn5Lq/JyxcbiAgICAgICAgICAgICfljYEnLFxuICAgICAgICAgICAgJ+eZvicsXG4gICAgICAgICAgICAn5Y2DJyxcbiAgICAgICAgICAgICfkuIfkur8nLFxuICAgICAgICAgICAgJ+WNgScsXG4gICAgICAgICAgICAn55m+JyxcbiAgICAgICAgICAgICfljYMnLFxuICAgICAgICAgICAgJ+WFhicsXG4gICAgICAgICAgICAn5Y2BJyxcbiAgICAgICAgICAgICfnmb4nLFxuICAgICAgICAgICAgJ+WNgydcbiAgICAgICAgICBdLFxuICAgICAgZGVjOiBbJ+inkicsICfliIYnLCAn5Y6YJywgJ+avqyddXG4gICAgfTtcbiAgICBpZiAoaW5Xb3Jkcykge1xuICAgICAgdmFsdWUgPSAoK3ZhbHVlKS50b0ZpeGVkKDUpLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIGxldCBpbnRlZ2VyUmVzID0gJyc7XG4gICAgY29uc3QgaW50ZWdlckNvdW50ID0gaW50ZWdlci5sZW5ndGg7XG4gICAgaWYgKGludGVnZXIgPT09ICcwJyB8fCBpbnRlZ2VyQ291bnQgPT09IDApIHtcbiAgICAgIGludGVnZXJSZXMgPSAn6Zu2JztcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGNuRGVzYyA9ICcnO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnRlZ2VyQ291bnQ7IGkrKykge1xuICAgICAgICBjb25zdCBuID0gK2ludGVnZXJbaV07XG4gICAgICAgIGNvbnN0IGogPSBpbnRlZ2VyQ291bnQgLSBpIC0gMTtcbiAgICAgICAgY29uc3QgaXNaZXJvID0gaSA+IDEgJiYgbiAhPT0gMCAmJiBpbnRlZ2VyW2kgLSAxXSA9PT0gJzAnO1xuICAgICAgICBjb25zdCBjblplcm8gPSBpc1plcm8gPyAn6Zu2JyA6ICcnO1xuICAgICAgICBjb25zdCBpc0VtcHB0eVVuaXQgPSAobiA9PT0gMCAmJiBqICUgNCAhPT0gMCkgfHwgaW50ZWdlci5zdWJzdHJpbmcoaSAtIDMsIGkgLSAzICsgNCkgPT09ICcwMDAwJztcbiAgICAgICAgY29uc3QgZGVzY01hcmsgPSBjbkRlc2M7XG4gICAgICAgIGxldCBjbk51bSA9IHVuaXQubnVtW25dO1xuXG4gICAgICAgIGNuRGVzYyA9IGlzRW1wcHR5VW5pdCA/ICcnIDogdW5pdC5yYWRpY2Vbal07XG4gICAgICAgIC8vIOesrOS4gOS9jeaYr+S4gOWNgVxuICAgICAgICBpZiAoaSA9PT0gMCAmJiBjbk51bSA9PT0gJ+S4gCcgJiYgY25EZXNjID09PSAn5Y2BJykgY25OdW0gPSAnJztcbiAgICAgICAgY29uc3QgaXNDaGFuZ2VFciA9XG4gICAgICAgICAgbiA+IDEgJiZcbiAgICAgICAgICBjbk51bSA9PT0gJ+S6jCcgJiYgLy8g5Y676Zmk6aaW5L2NXG4gICAgICAgICAgWycnLCAn5Y2BJywgJ+eZviddLmluZGV4T2YoY25EZXNjKSA9PT0gLTEgJiYgLy8g5LiN6K+75LikXFzkuKTljYFcXOS4pOeZvlxuICAgICAgICAgIGRlc2NNYXJrICE9PSAn5Y2BJzsgLy8g5LiN6K+75Y2B5LikXG4gICAgICAgIGlmIChpc0NoYW5nZUVyKSBjbk51bSA9ICfkuKQnO1xuICAgICAgICBpbnRlZ2VyUmVzICs9IGNuWmVybyArIGNuTnVtICsgY25EZXNjO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIOWwj+aVsOmDqOWIhuaLvOaOpVxuICAgIGxldCBkZWNpbWFsUmVzID0gJyc7XG4gICAgY29uc3QgZGVjaW1hbENvdW50ID0gZGVjaW1hbCA/IGRlY2ltYWwudG9TdHJpbmcoKS5sZW5ndGggOiAwO1xuICAgIGlmIChkZWNpbWFsID09PSBudWxsKSB7XG4gICAgICBkZWNpbWFsUmVzID0gaW5Xb3JkcyA/ICfmlbQnIDogJyc7XG4gICAgfSBlbHNlIGlmIChkZWNpbWFsID09PSAnMCcpIHtcbiAgICAgIGRlY2ltYWxSZXMgPSAn6Zu2JztcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWNpbWFsQ291bnQ7IGkrKykge1xuICAgICAgICBpZiAoaW5Xb3JkcyAmJiBpID4gdW5pdC5kZWMubGVuZ3RoIC0gMSkgYnJlYWs7XG4gICAgICAgIGNvbnN0IG4gPSBkZWNpbWFsW2ldO1xuICAgICAgICBjb25zdCBjblplcm8gPSBuID09PSAnMCcgPyAn6Zu2JyA6ICcnO1xuICAgICAgICBjb25zdCBjbk51bSA9IHVuaXQubnVtWytuXTtcbiAgICAgICAgY29uc3QgY25EZXNjID0gaW5Xb3JkcyA/IHVuaXQuZGVjW2ldIDogJyc7XG4gICAgICAgIGRlY2ltYWxSZXMgKz0gY25aZXJvICsgY25OdW0gKyBjbkRlc2M7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJldCA9XG4gICAgICBzeW1ib2wgK1xuICAgICAgKGluV29yZHNcbiAgICAgICAgPyBpbnRlZ2VyUmVzICsgKGRlY2ltYWxSZXMgPT09ICfpm7YnID8gJ+WFg+aVtCcgOiBg5YWDJHtkZWNpbWFsUmVzfWApXG4gICAgICAgIDogaW50ZWdlclJlcyArIChkZWNpbWFsUmVzID09PSAnJyA/ICcnIDogYOeCuSR7ZGVjaW1hbFJlc31gKSk7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuIl19
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbC9mb3JtYXQvZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
File without changes
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { deepGet } from '@delon/util/other';
|
|
2
|
+
/**
|
|
3
|
+
* String formatting
|
|
4
|
+
*
|
|
5
|
+
* 字符串格式化
|
|
6
|
+
* ```
|
|
7
|
+
* format('this is ${name}', { name: 'asdf' })
|
|
8
|
+
* // output: this is asdf
|
|
9
|
+
* format('this is ${user.name}', { user: { name: 'asdf' } }, true)
|
|
10
|
+
* // output: this is asdf
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export function format(str, obj, needDeepGet = false) {
|
|
14
|
+
return (str || '').replace(/\${([^}]+)}/g, (_work, key) => needDeepGet ? deepGet(obj, key.split('.'), '') : (obj || {})[key] || '');
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Format mask
|
|
18
|
+
*
|
|
19
|
+
* 格式化掩码
|
|
20
|
+
*
|
|
21
|
+
* | 字符 | 描述 |
|
|
22
|
+
* | --- | --- |
|
|
23
|
+
* | `0` | 任意数字,若该位置字符不符合,则默认为 `0` 填充 |
|
|
24
|
+
* | `9` | 任意数字 |
|
|
25
|
+
* | `#` | 任意字符 |
|
|
26
|
+
* | `U` | 转换大写 |
|
|
27
|
+
* | `L` | 转换小写 |
|
|
28
|
+
* | `*` | 转换为 `*` 字符 |
|
|
29
|
+
*
|
|
30
|
+
* ```ts
|
|
31
|
+
* formatMask('123', '(###)') => (123)
|
|
32
|
+
* formatMask('15900000000', '999****9999') => 159****0000
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export function formatMask(value, option) {
|
|
36
|
+
if (!value) {
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
const opt = {
|
|
40
|
+
...(typeof option === 'string' ? { mask: option } : option)
|
|
41
|
+
};
|
|
42
|
+
const tokens = {
|
|
43
|
+
'0': { pattern: /\d/, default: '0' },
|
|
44
|
+
'9': { pattern: /\d/ },
|
|
45
|
+
'#': { pattern: /[a-zA-Z0-9]/ },
|
|
46
|
+
U: {
|
|
47
|
+
pattern: /[a-zA-Z]/,
|
|
48
|
+
transform: char => char.toLocaleUpperCase()
|
|
49
|
+
},
|
|
50
|
+
L: {
|
|
51
|
+
pattern: /[a-zA-Z]/,
|
|
52
|
+
transform: char => char.toLocaleLowerCase()
|
|
53
|
+
},
|
|
54
|
+
'*': {
|
|
55
|
+
pattern: /.*/,
|
|
56
|
+
transform: _ => `*`
|
|
57
|
+
},
|
|
58
|
+
...opt.tokens
|
|
59
|
+
};
|
|
60
|
+
const splitValue = value.split('');
|
|
61
|
+
return opt.mask
|
|
62
|
+
.split('')
|
|
63
|
+
.reduce((res, cur) => {
|
|
64
|
+
const token = tokens[cur];
|
|
65
|
+
if (!token) {
|
|
66
|
+
res.push(cur);
|
|
67
|
+
return res;
|
|
68
|
+
}
|
|
69
|
+
const value = splitValue.shift() ?? '';
|
|
70
|
+
if (!token.pattern.test(value)) {
|
|
71
|
+
if (token.default)
|
|
72
|
+
res.push(token.default);
|
|
73
|
+
return res;
|
|
74
|
+
}
|
|
75
|
+
if (typeof token.transform === 'function') {
|
|
76
|
+
res.push(token.transform(value));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
res.push(value);
|
|
80
|
+
}
|
|
81
|
+
return res;
|
|
82
|
+
}, [])
|
|
83
|
+
.join('');
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbC9mb3JtYXQvc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc1Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsR0FBOEIsRUFDOUIsR0FBaUMsRUFDakMsY0FBdUIsS0FBSztJQUU1QixPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEVBQUUsQ0FDeEUsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FDeEUsQ0FBQztBQUNKLENBQUM7QUFhRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFhLEVBQUUsTUFBaUM7SUFDekUsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxNQUFNLEdBQUcsR0FBcUI7UUFDNUIsR0FBRyxDQUFDLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztLQUM1RCxDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQXVDO1FBQ2pELEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNwQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1FBQ3RCLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUU7UUFDL0IsQ0FBQyxFQUFFO1lBQ0QsT0FBTyxFQUFFLFVBQVU7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1NBQzVDO1FBQ0QsQ0FBQyxFQUFFO1lBQ0QsT0FBTyxFQUFFLFVBQVU7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1NBQzVDO1FBQ0QsR0FBRyxFQUFFO1lBQ0gsT0FBTyxFQUFFLElBQUk7WUFDYixTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHO1NBQ3BCO1FBQ0QsR0FBRyxHQUFHLENBQUMsTUFBTTtLQUNkLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sR0FBRyxDQUFDLElBQUk7U0FDWixLQUFLLENBQUMsRUFBRSxDQUFDO1NBQ1QsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ25CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QixJQUFJLEtBQUssQ0FBQyxPQUFPO2dCQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFFRCxJQUFJLE9BQU8sS0FBSyxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUU7WUFDekMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDbEM7YUFBTTtZQUNMLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakI7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFjLENBQUM7U0FDakIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZXBHZXQgfSBmcm9tICdAZGVsb24vdXRpbC9vdGhlcic7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbi8qKlxuICogU3RyaW5nIGZvcm1hdHRpbmdcbiAqXG4gKiDlrZfnrKbkuLLmoLzlvI/ljJZcbiAqIGBgYFxuICogZm9ybWF0KCd0aGlzIGlzICR7bmFtZX0nLCB7IG5hbWU6ICdhc2RmJyB9KVxuICogLy8gb3V0cHV0OiB0aGlzIGlzIGFzZGZcbiAqIGZvcm1hdCgndGhpcyBpcyAke3VzZXIubmFtZX0nLCB7IHVzZXI6IHsgbmFtZTogJ2FzZGYnIH0gfSwgdHJ1ZSlcbiAqIC8vIG91dHB1dDogdGhpcyBpcyBhc2RmXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdChcbiAgc3RyOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBvYmo6IE56U2FmZUFueSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIG5lZWREZWVwR2V0OiBib29sZWFuID0gZmFsc2Vcbik6IHN0cmluZyB7XG4gIHJldHVybiAoc3RyIHx8ICcnKS5yZXBsYWNlKC9cXCR7KFtefV0rKX0vZywgKF93b3JrOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PlxuICAgIG5lZWREZWVwR2V0ID8gZGVlcEdldChvYmosIGtleS5zcGxpdCgnLicpLCAnJykgOiAob2JqIHx8IHt9KVtrZXldIHx8ICcnXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0TWFza09wdGlvbiB7XG4gIG1hc2s6IHN0cmluZztcbiAgdG9rZW5zPzogeyBba2V5OiBzdHJpbmddOiBGb3JtYXRNYXNrVG9rZW4gfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRNYXNrVG9rZW4ge1xuICBwYXR0ZXJuOiBSZWdFeHA7XG4gIGRlZmF1bHQ/OiBOelNhZmVBbnk7XG4gIHRyYW5zZm9ybT86IChjaGFyOiBzdHJpbmcpID0+IHN0cmluZztcbn1cblxuLyoqXG4gKiBGb3JtYXQgbWFza1xuICpcbiAqIOagvOW8j+WMluaOqeeggVxuICpcbiAqIHwg5a2X56ymIHwg5o+P6L+wIHxcbiAqIHwgLS0tIHwgLS0tIHxcbiAqIHwgYDBgIHwg5Lu75oSP5pWw5a2X77yM6Iul6K+l5L2N572u5a2X56ym5LiN56ym5ZCI77yM5YiZ6buY6K6k5Li6IGAwYCDloavlhYUgfFxuICogfCBgOWAgfCDku7vmhI/mlbDlrZcgfFxuICogfCBgI2AgfCDku7vmhI/lrZfnrKYgfFxuICogfCBgVWAgfCDovazmjaLlpKflhpkgfFxuICogfCBgTGAgfCDovazmjaLlsI/lhpkgfFxuICogfCBgKmAgfCDovazmjaLkuLogYCpgIOWtl+espiB8XG4gKlxuICogYGBgdHNcbiAqIGZvcm1hdE1hc2soJzEyMycsICcoIyMjKScpID0+ICgxMjMpXG4gKiBmb3JtYXRNYXNrKCcxNTkwMDAwMDAwMCcsICc5OTkqKioqOTk5OScpID0+IDE1OSoqKiowMDAwXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE1hc2sodmFsdWU6IHN0cmluZywgb3B0aW9uOiBzdHJpbmcgfCBGb3JtYXRNYXNrT3B0aW9uKTogc3RyaW5nIHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zdCBvcHQ6IEZvcm1hdE1hc2tPcHRpb24gPSB7XG4gICAgLi4uKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnID8geyBtYXNrOiBvcHRpb24gfSA6IG9wdGlvbilcbiAgfTtcbiAgY29uc3QgdG9rZW5zOiB7IFtrZXk6IHN0cmluZ106IEZvcm1hdE1hc2tUb2tlbiB9ID0ge1xuICAgICcwJzogeyBwYXR0ZXJuOiAvXFxkLywgZGVmYXVsdDogJzAnIH0sXG4gICAgJzknOiB7IHBhdHRlcm46IC9cXGQvIH0sXG4gICAgJyMnOiB7IHBhdHRlcm46IC9bYS16QS1aMC05XS8gfSxcbiAgICBVOiB7XG4gICAgICBwYXR0ZXJuOiAvW2EtekEtWl0vLFxuICAgICAgdHJhbnNmb3JtOiBjaGFyID0+IGNoYXIudG9Mb2NhbGVVcHBlckNhc2UoKVxuICAgIH0sXG4gICAgTDoge1xuICAgICAgcGF0dGVybjogL1thLXpBLVpdLyxcbiAgICAgIHRyYW5zZm9ybTogY2hhciA9PiBjaGFyLnRvTG9jYWxlTG93ZXJDYXNlKClcbiAgICB9LFxuICAgICcqJzoge1xuICAgICAgcGF0dGVybjogLy4qLyxcbiAgICAgIHRyYW5zZm9ybTogXyA9PiBgKmBcbiAgICB9LFxuICAgIC4uLm9wdC50b2tlbnNcbiAgfTtcblxuICBjb25zdCBzcGxpdFZhbHVlID0gdmFsdWUuc3BsaXQoJycpO1xuICByZXR1cm4gb3B0Lm1hc2tcbiAgICAuc3BsaXQoJycpXG4gICAgLnJlZHVjZSgocmVzLCBjdXIpID0+IHtcbiAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2N1cl07XG4gICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgIHJlcy5wdXNoKGN1cik7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gc3BsaXRWYWx1ZS5zaGlmdCgpID8/ICcnO1xuICAgICAgaWYgKCF0b2tlbi5wYXR0ZXJuLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIGlmICh0b2tlbi5kZWZhdWx0KSByZXMucHVzaCh0b2tlbi5kZWZhdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0b2tlbi50cmFuc2Zvcm0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVzLnB1c2godG9rZW4udHJhbnNmb3JtKHZhbHVlKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXMucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0sIFtdIGFzIHN0cmluZ1tdKVxuICAgIC5qb2luKCcnKTtcbn1cbiJdfQ==
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWwvbWF0aC9tYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|