@factor_ec/utils 3.0.3 → 5.0.1
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/README.md +49 -10
- package/fesm2022/factor_ec-utils.mjs +608 -33
- package/fesm2022/factor_ec-utils.mjs.map +1 -1
- package/lib/array.service.d.ts +6 -0
- package/lib/csv.service.d.ts +88 -0
- package/lib/date.service.d.ts +6 -0
- package/lib/graphql.provider.d.ts +4 -0
- package/lib/graphql.service.d.ts +12 -0
- package/lib/models/auth-token-payload.d.ts +6 -0
- package/lib/models/auth-token.d.ts +4 -0
- package/lib/models/currency.d.ts +6 -0
- package/lib/models/error.d.ts +6 -0
- package/lib/models/language.d.ts +4 -0
- package/lib/models/login.d.ts +4 -0
- package/lib/models/operation.d.ts +4 -0
- package/lib/models/option.d.ts +5 -0
- package/lib/models/user.d.ts +5 -0
- package/lib/models/utils-options.d.ts +6 -0
- package/lib/object.service.d.ts +7 -0
- package/lib/rest.service.d.ts +16 -0
- package/lib/string.service.d.ts +14 -0
- package/lib/utils.service.d.ts +9 -0
- package/package.json +5 -5
- package/public-api.d.ts +18 -1
- package/esm2022/factor_ec-utils.mjs +0 -5
- package/esm2022/lib/color.service.mjs +0 -162
- package/esm2022/lib/files.service.mjs +0 -47
- package/esm2022/lib/google-tag-manager.service.mjs +0 -75
- package/esm2022/lib/storage.service.mjs +0 -90
- package/esm2022/lib/validators/ec/identification-type.mjs +0 -154
- package/esm2022/lib/validators/ec/identification-validator.mjs +0 -30
- package/esm2022/public-api.mjs +0 -10
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ColorService {
|
|
4
|
-
constructor() {
|
|
5
|
-
const options = {};
|
|
6
|
-
let LS = [options.lightness, options.saturation].map(function (param) {
|
|
7
|
-
param = param || [0.35, 0.5, 0.65]; // note that 3 is a prime
|
|
8
|
-
return Array.isArray(param) ? param.concat() : [param];
|
|
9
|
-
});
|
|
10
|
-
this.L = LS[0];
|
|
11
|
-
this.S = LS[1];
|
|
12
|
-
if (typeof options.hue === 'number') {
|
|
13
|
-
options.hue = { min: options.hue, max: options.hue };
|
|
14
|
-
}
|
|
15
|
-
if (typeof options.hue === 'object' && !Array.isArray(options.hue)) {
|
|
16
|
-
options.hue = [options.hue];
|
|
17
|
-
}
|
|
18
|
-
if (typeof options.hue === 'undefined') {
|
|
19
|
-
options.hue = [];
|
|
20
|
-
}
|
|
21
|
-
this.hueRanges = options.hue.map(function (range) {
|
|
22
|
-
return {
|
|
23
|
-
min: typeof range.min === 'undefined' ? 0 : range.min,
|
|
24
|
-
max: typeof range.max === 'undefined' ? 360 : range.max
|
|
25
|
-
};
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* BKDR Hash (modified version)
|
|
30
|
-
*
|
|
31
|
-
* @param str string to hash
|
|
32
|
-
*/
|
|
33
|
-
hash(str) {
|
|
34
|
-
let seed = 131;
|
|
35
|
-
let seed2 = 137;
|
|
36
|
-
let hash = 0;
|
|
37
|
-
// make hash more sensitive for short string like 'a', 'b', 'c'
|
|
38
|
-
str += 'x';
|
|
39
|
-
// Note: Number.MAX_SAFE_INTEGER equals 9007199254740991
|
|
40
|
-
const maxSafeInteger = Math.round(9007199254740991 / seed2);
|
|
41
|
-
for (let i = 0; i < str.length; i++) {
|
|
42
|
-
if (hash > maxSafeInteger) {
|
|
43
|
-
hash = Math.round(hash / seed2);
|
|
44
|
-
}
|
|
45
|
-
hash = hash * seed + str.charCodeAt(i);
|
|
46
|
-
}
|
|
47
|
-
return hash;
|
|
48
|
-
}
|
|
49
|
-
;
|
|
50
|
-
/**
|
|
51
|
-
* Convert RGB Array to HEX
|
|
52
|
-
*
|
|
53
|
-
* @param RGBArray - [R, G, B]
|
|
54
|
-
* @returns 6 digits hex starting with #
|
|
55
|
-
*/
|
|
56
|
-
rgb2hex(RGBArray) {
|
|
57
|
-
let hex = '#';
|
|
58
|
-
RGBArray.forEach(function (value) {
|
|
59
|
-
if (value < 16) {
|
|
60
|
-
hex += 0;
|
|
61
|
-
}
|
|
62
|
-
hex += value.toString(16);
|
|
63
|
-
});
|
|
64
|
-
return hex;
|
|
65
|
-
}
|
|
66
|
-
;
|
|
67
|
-
/**
|
|
68
|
-
* Convert HSL to RGB
|
|
69
|
-
*
|
|
70
|
-
* @see {@link http://zh.wikipedia.org/wiki/HSL和HSV色彩空间} for further information.
|
|
71
|
-
* @param H Hue ∈ [0, 360)
|
|
72
|
-
* @param S Saturation ∈ [0, 1]
|
|
73
|
-
* @param L Lightness ∈ [0, 1]
|
|
74
|
-
* @returns R, G, B ∈ [0, 255]
|
|
75
|
-
*/
|
|
76
|
-
hsl2rgb(H, S, L) {
|
|
77
|
-
H /= 360;
|
|
78
|
-
let q = L < 0.5 ? L * (1 + S) : L + S - L * S;
|
|
79
|
-
let p = 2 * L - q;
|
|
80
|
-
return [H + 1 / 3, H, H - 1 / 3].map(function (color) {
|
|
81
|
-
if (color < 0) {
|
|
82
|
-
color++;
|
|
83
|
-
}
|
|
84
|
-
if (color > 1) {
|
|
85
|
-
color--;
|
|
86
|
-
}
|
|
87
|
-
if (color < 1 / 6) {
|
|
88
|
-
color = p + (q - p) * 6 * color;
|
|
89
|
-
}
|
|
90
|
-
else if (color < 0.5) {
|
|
91
|
-
color = q;
|
|
92
|
-
}
|
|
93
|
-
else if (color < 2 / 3) {
|
|
94
|
-
color = p + (q - p) * 6 * (2 / 3 - color);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
color = p;
|
|
98
|
-
}
|
|
99
|
-
return Math.round(color * 255);
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
;
|
|
103
|
-
/**
|
|
104
|
-
* Returns the hash in [h, s, l].
|
|
105
|
-
* Note that H ∈ [0, 360); S ∈ [0, 1]; L ∈ [0, 1];
|
|
106
|
-
*
|
|
107
|
-
* @param str string to hash
|
|
108
|
-
* @returns [h, s, l]
|
|
109
|
-
*/
|
|
110
|
-
hsl(str) {
|
|
111
|
-
let H;
|
|
112
|
-
let S;
|
|
113
|
-
let L;
|
|
114
|
-
let hash = this.hash(str);
|
|
115
|
-
if (this.hueRanges.length) {
|
|
116
|
-
let range = this.hueRanges[hash % this.hueRanges.length];
|
|
117
|
-
let hueResolution = 727; // note that 727 is a prime
|
|
118
|
-
H = ((hash / this.hueRanges.length) % hueResolution) * (range.max - range.min) / hueResolution + range.min;
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
H = hash % 359; // note that 359 is a prime
|
|
122
|
-
}
|
|
123
|
-
hash = Math.round(hash / 360);
|
|
124
|
-
S = this.S[hash % this.S.length];
|
|
125
|
-
hash = Math.round(hash / this.S.length);
|
|
126
|
-
L = this.L[hash % this.L.length];
|
|
127
|
-
return [H, S, L];
|
|
128
|
-
}
|
|
129
|
-
;
|
|
130
|
-
/**
|
|
131
|
-
* Returns the hash in [r, g, b].
|
|
132
|
-
* Note that R, G, B ∈ [0, 255]
|
|
133
|
-
*
|
|
134
|
-
* @param str string to hash
|
|
135
|
-
* @returns [r, g, b]
|
|
136
|
-
*/
|
|
137
|
-
rgb(str) {
|
|
138
|
-
let hsl = this.hsl(str);
|
|
139
|
-
return this.hsl2rgb(hsl[0], hsl[1], hsl[2]);
|
|
140
|
-
}
|
|
141
|
-
;
|
|
142
|
-
/**
|
|
143
|
-
* Returns the hash in hex
|
|
144
|
-
*
|
|
145
|
-
* @param str string to hash
|
|
146
|
-
* @returns hex with #
|
|
147
|
-
*/
|
|
148
|
-
hex(str) {
|
|
149
|
-
let rgb = this.rgb(str);
|
|
150
|
-
return this.rgb2hex(rgb);
|
|
151
|
-
}
|
|
152
|
-
;
|
|
153
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ColorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
154
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ColorService, providedIn: 'root' }); }
|
|
155
|
-
}
|
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ColorService, decorators: [{
|
|
157
|
-
type: Injectable,
|
|
158
|
-
args: [{
|
|
159
|
-
providedIn: 'root'
|
|
160
|
-
}]
|
|
161
|
-
}], ctorParameters: function () { return []; } });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9saWIvY29sb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sWUFBWTtJQUt2QjtRQUNFLE1BQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUN4QixJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUs7WUFDbEUsS0FBSyxHQUFHLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7WUFDN0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWYsSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQ25DLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEUsT0FBTyxDQUFD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VUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb2xvclNlcnZpY2Uge1xuICBMOiBudW1iZXJbXTtcbiAgUzogbnVtYmVyW107XG4gIGh1ZVJhbmdlczogeyBtaW46IG51bWJlciwgbWF4OiBudW1iZXIgfVtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHt9O1xuICAgIGxldCBMUyA9IFtvcHRpb25zLmxpZ2h0bmVzcywgb3B0aW9ucy5zYXR1cmF0aW9uXS5tYXAoZnVuY3Rpb24gKHBhcmFtKSB7XG4gICAgICBwYXJhbSA9IHBhcmFtIHx8IFswLjM1LCAwLjUsIDAuNjVdOyAvLyBub3RlIHRoYXQgMyBpcyBhIHByaW1lXG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJhbSkgPyBwYXJhbS5jb25jYXQoKSA6IFtwYXJhbV07XG4gICAgfSk7XG5cbiAgICB0aGlzLkwgPSBMU1swXTtcbiAgICB0aGlzLlMgPSBMU1sxXTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5odWUgPT09ICdudW1iZXInKSB7XG4gICAgICBvcHRpb25zLmh1ZSA9IHsgbWluOiBvcHRpb25zLmh1ZSwgbWF4OiBvcHRpb25zLmh1ZSB9O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuaHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShvcHRpb25zLmh1ZSkpIHtcbiAgICAgIG9wdGlvbnMuaHVlID0gW29wdGlvbnMuaHVlXTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLmh1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIG9wdGlvbnMuaHVlID0gW107XG4gICAgfVxuICAgIHRoaXMuaHVlUmFuZ2VzID0gb3B0aW9ucy5odWUubWFwKGZ1bmN0aW9uIChyYW5nZTogeyBtaW46IG51bWJlciwgbWF4OiBudW1iZXIgfSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWluOiB0eXBlb2YgcmFuZ2UubWluID09PSAndW5kZWZpbmVkJyA/IDAgOiByYW5nZS5taW4sXG4gICAgICAgIG1heDogdHlwZW9mIHJhbmdlLm1heCA9PT0gJ3VuZGVmaW5lZCcgPyAzNjAgOiByYW5nZS5tYXhcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQktEUiBIYXNoIChtb2RpZmllZCB2ZXJzaW9uKVxuICAgKlxuICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBoYXNoXG4gICAqL1xuICBoYXNoKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgc2VlZCA9IDEzMTtcbiAgICBsZXQgc2VlZDIgPSAxMzc7XG4gICAgbGV0IGhhc2ggPSAwO1xuICAgIC8vIG1ha2UgaGFzaCBtb3JlIHNlbnNpdGl2ZSBmb3Igc2hvcnQgc3RyaW5nIGxpa2UgJ2EnLCAnYicsICdjJ1xuICAgIHN0ciArPSAneCc7XG4gICAgLy8gTm90ZTogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgZXF1YWxzIDkwMDcxOTkyNTQ3NDA5OTFcbiAgICBjb25zdCBtYXhTYWZlSW50ZWdlcjogbnVtYmVyID0gTWF0aC5yb3VuZCg5MDA3MTk5MjU0NzQwOTkxIC8gc2VlZDIpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoaGFzaCA+IG1heFNhZmVJbnRlZ2VyKSB7XG4gICAgICAgIGhhc2ggPSBNYXRoLnJvdW5kKGhhc2ggLyBzZWVkMik7XG4gICAgICB9XG4gICAgICBoYXNoID0gaGFzaCAqIHNlZWQgKyBzdHIuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc2g7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgUkdCIEFycmF5IHRvIEhFWFxuICAgKlxuICAgKiBAcGFyYW0gUkdCQXJyYXkgLSBbUiwgRywgQl1cbiAgICogQHJldHVybnMgNiBkaWdpdHMgaGV4IHN0YXJ0aW5nIHdpdGggI1xuICAgKi9cbiAgcmdiMmhleChSR0JBcnJheTogbnVtYmVyW10pOiBzdHJpbmcge1xuICAgIGxldCBoZXggPSAnIyc7XG4gICAgUkdCQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSA8IDE2KSB7XG4gICAgICAgIGhleCArPSAwO1xuICAgICAgfVxuICAgICAgaGV4ICs9IHZhbHVlLnRvU3RyaW5nKDE2KTtcbiAgICB9KTtcbiAgICByZXR1cm4gaGV4O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0IEhTTCB0byBSR0JcbiAgICpcbiAgICogQHNlZSB7QGxpbmsgaHR0cDovL3poLndpa2lwZWRpYS5vcmcvd2lraS9IU0zlkoxIU1boibLlvannqbrpl7R9IGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0gSCBIdWUg4oiIIFswLCAzNjApXG4gICAqIEBwYXJhbSBTIFNhdHVyYXRpb24g4oiIIFswLCAxXVxuICAgKiBAcGFyYW0gTCBMaWdodG5lc3Mg4oiIIFswLCAxXVxuICAgKiBAcmV0dXJucyBSLCBHLCBCIOKIiCBbMCwgMjU1XVxuICAgKi9cbiAgaHNsMnJnYihIOiBudW1iZXIsIFM6IG51bWJlciwgTDogbnVtYmVyKTogbnVtYmVyW10ge1xuICAgIEggLz0gMzYwO1xuXG4gICAgbGV0IHEgPSBMIDwgMC41ID8gTCAqICgxICsgUykgOiBMICsgUyAtIEwgKiBTO1xuICAgIGxldCBwID0gMiAqIEwgLSBxO1xuXG4gICAgcmV0dXJuIFtIICsgMSAvIDMsIEgsIEggLSAxIC8gM10ubWFwKGZ1bmN0aW9uIChjb2xvcikge1xuICAgICAgaWYgKGNvbG9yIDwgMCkge1xuICAgICAgICBjb2xvcisrO1xuICAgICAgfVxuICAgICAgaWYgKGNvbG9yID4gMSkge1xuICAgICAgICBjb2xvci0tO1xuICAgICAgfVxuICAgICAgaWYgKGNvbG9yIDwgMSAvIDYpIHtcbiAgICAgICAgY29sb3IgPSBwICsgKHEgLSBwKSAqIDYgKiBjb2xvcjtcbiAgICAgIH0gZWxzZSBpZiAoY29sb3IgPCAwLjUpIHtcbiAgICAgICAgY29sb3IgPSBxO1xuICAgICAgfSBlbHNlIGlmIChjb2xvciA8IDIgLyAzKSB7XG4gICAgICAgIGNvbG9yID0gcCArIChxIC0gcCkgKiA2ICogKDIgLyAzIC0gY29sb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29sb3IgPSBwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIE1hdGgucm91bmQoY29sb3IgKiAyNTUpO1xuICAgIH0pO1xuICB9O1xuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGhhc2ggaW4gW2gsIHMsIGxdLlxuICAgKiBOb3RlIHRoYXQgSCDiiIggWzAsIDM2MCk7IFMg4oiIIFswLCAxXTsgTCDiiIggWzAsIDFdO1xuICAgKlxuICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBoYXNoXG4gICAqIEByZXR1cm5zIFtoLCBzLCBsXVxuICAgKi9cbiAgaHNsKHN0cjogc3RyaW5nKTogYW55W10ge1xuICAgIGxldCBIO1xuICAgIGxldCBTO1xuICAgIGxldCBMO1xuICAgIGxldCBoYXNoID0gdGhpcy5oYXNoKHN0cik7XG5cbiAgICBpZiAodGhpcy5odWVSYW5nZXMubGVuZ3RoKSB7XG4gICAgICBsZXQgcmFuZ2UgPSB0aGlzLmh1ZVJhbmdlc1toYXNoICUgdGhpcy5odWVSYW5nZXMubGVuZ3RoXTtcbiAgICAgIGxldCBodWVSZXNvbHV0aW9uID0gNzI3OyAvLyBub3RlIHRoYXQgNzI3IGlzIGEgcHJpbWVcbiAgICAgIEggPSAoKGhhc2ggLyB0aGlzLmh1ZVJhbmdlcy5sZW5ndGgpICUgaHVlUmVzb2x1dGlvbikgKiAocmFuZ2UubWF4IC0gcmFuZ2UubWluKSAvIGh1ZVJlc29sdXRpb24gKyByYW5nZS5taW47XG4gICAgfSBlbHNlIHtcbiAgICAgIEggPSBoYXNoICUgMzU5OyAvLyBub3RlIHRoYXQgMzU5IGlzIGEgcHJpbWVcbiAgICB9XG4gICAgaGFzaCA9IE1hdGgucm91bmQoaGFzaCAvIDM2MCk7XG4gICAgUyA9IHRoaXMuU1toYXNoICUgdGhpcy5TLmxlbmd0aF07XG4gICAgaGFzaCA9IE1hdGgucm91bmQoaGFzaCAvIHRoaXMuUy5sZW5ndGgpO1xuICAgIEwgPSB0aGlzLkxbaGFzaCAlIHRoaXMuTC5sZW5ndGhdO1xuXG4gICAgcmV0dXJuIFtILCBTLCBMXTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaGFzaCBpbiBbciwgZywgYl0uXG4gICAqIE5vdGUgdGhhdCBSLCBHLCBCIOKIiCBbMCwgMjU1XVxuICAgKlxuICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBoYXNoXG4gICAqIEByZXR1cm5zIFtyLCBnLCBiXVxuICAgKi9cbiAgcmdiKHN0cjogc3RyaW5nKTogbnVtYmVyW10ge1xuICAgIGxldCBoc2wgPSB0aGlzLmhzbChzdHIpO1xuICAgIHJldHVybiB0aGlzLmhzbDJyZ2IoaHNsWzBdLCBoc2xbMV0sIGhzbFsyXSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGhhc2ggaW4gaGV4XG4gICAqXG4gICAqIEBwYXJhbSBzdHIgc3RyaW5nIHRvIGhhc2hcbiAgICogQHJldHVybnMgaGV4IHdpdGggI1xuICAgKi9cbiAgaGV4KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcmdiID0gdGhpcy5yZ2Ioc3RyKTtcbiAgICByZXR1cm4gdGhpcy5yZ2IyaGV4KHJnYik7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class FilesService {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.fileInput = document.createElement('input');
|
|
6
|
-
this.fileInput.type = 'file';
|
|
7
|
-
this.fileInput.addEventListener('change', (event) => {
|
|
8
|
-
this.loadValue(event.currentTarget.files);
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
loadValue(files) {
|
|
12
|
-
if (files && files.length > 0) {
|
|
13
|
-
let data = [];
|
|
14
|
-
for (let i = 0; i < files.length; i++) {
|
|
15
|
-
const file = files.item(i);
|
|
16
|
-
const reader = new FileReader();
|
|
17
|
-
reader.readAsDataURL(file);
|
|
18
|
-
reader.onload = () => {
|
|
19
|
-
data.push(Object.assign(file, {
|
|
20
|
-
data: reader.result
|
|
21
|
-
}));
|
|
22
|
-
if (data.length == files.length) {
|
|
23
|
-
this.callback(data.length > 0 ? data : null);
|
|
24
|
-
this.fileInput.value = '';
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
open(callback, options) {
|
|
31
|
-
this.fileInput.accept = options?.accept ? options.accept : '';
|
|
32
|
-
this.fileInput.multiple = options?.multiple || false;
|
|
33
|
-
this.fileInput.click();
|
|
34
|
-
if (callback) {
|
|
35
|
-
this.callback = callback;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: FilesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: FilesService, providedIn: 'root' }); }
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: FilesService, decorators: [{
|
|
42
|
-
type: Injectable,
|
|
43
|
-
args: [{
|
|
44
|
-
providedIn: 'root'
|
|
45
|
-
}]
|
|
46
|
-
}], ctorParameters: function () { return []; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9saWIvZmlsZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sWUFBWTtJQUl2QjtRQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ08sU0FBUyxDQUFDLEtBQWU7UUFDL0IsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxJQUFJLEdBQVUsRUFBRSxDQUFDO1lBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxNQUFNLElBQUksR0FBUSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTt3QkFDNUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNO3FCQUNwQixDQUFDLENBQUMsQ0FBQztvQkFDSixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTt3QkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO3FCQUMzQjtnQkFDSCxDQUFDLENBQUM7YUFDSDtTQUNGO0lBQ0gsQ0FBQztJQUNNLElBQUksQ0FBQyxRQUFtQixFQUFFLE9BQWlEO1FBQ2hGLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDMUI7SUFDSCxDQUFDOzhHQXJDVSxZQUFZO2tIQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsZXNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjYWxsYmFjayE6IEZ1bmN0aW9uO1xuICBwcml2YXRlIGZpbGVJbnB1dDogSFRNTElucHV0RWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZpbGVJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgdGhpcy5maWxlSW5wdXQudHlwZSA9ICdmaWxlJztcbiAgICB0aGlzLmZpbGVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5sb2FkVmFsdWUoZXZlbnQuY3VycmVudFRhcmdldC5maWxlcyk7XG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBsb2FkVmFsdWUoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBkYXRhOiBhbnlbXSA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBmaWxlOiBhbnkgPSBmaWxlcy5pdGVtKGkpO1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICBkYXRhLnB1c2goT2JqZWN0LmFzc2lnbihmaWxlLCB7XG4gICAgICAgICAgICBkYXRhOiByZWFkZXIucmVzdWx0XG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA9PSBmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2soZGF0YS5sZW5ndGggPiAwID8gZGF0YSA6IG51bGwpO1xuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQudmFsdWUgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBvcGVuKGNhbGxiYWNrPzogRnVuY3Rpb24sIG9wdGlvbnM/OiB7IGFjY2VwdD86IHN0cmluZywgbXVsdGlwbGU/OiBib29sZWFuIH0pIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5hY2NlcHQgPSBvcHRpb25zPy5hY2NlcHQgPyBvcHRpb25zLmFjY2VwdCA6ICcnO1xuICAgIHRoaXMuZmlsZUlucHV0Lm11bHRpcGxlID0gb3B0aW9ucz8ubXVsdGlwbGUgfHwgZmFsc2U7XG4gICAgdGhpcy5maWxlSW5wdXQuY2xpY2soKTtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
-
import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
|
|
3
|
-
import { NavigationEnd } from '@angular/router';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
export class GoogleTagManagerService {
|
|
7
|
-
constructor(platformId, router) {
|
|
8
|
-
this.platformId = platformId;
|
|
9
|
-
this.router = router;
|
|
10
|
-
}
|
|
11
|
-
appendTrackingCode(trackingId) {
|
|
12
|
-
try {
|
|
13
|
-
if (isPlatformBrowser(this.platformId) && trackingId) {
|
|
14
|
-
this.trackingId = trackingId;
|
|
15
|
-
const s1 = document.createElement('script');
|
|
16
|
-
s1.innerHTML = `
|
|
17
|
-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
18
|
-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
19
|
-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
20
|
-
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
21
|
-
})(window,document,'script','dataLayer','${trackingId}');
|
|
22
|
-
`;
|
|
23
|
-
document.head.appendChild(s1);
|
|
24
|
-
const s2 = document.createElement('noscript');
|
|
25
|
-
const s3 = document.createElement('iframe');
|
|
26
|
-
s3.width = '0';
|
|
27
|
-
s3.height = '0';
|
|
28
|
-
s3.style.display = 'none';
|
|
29
|
-
s3.style.visibility = 'hidden';
|
|
30
|
-
s3.src = `//www.googletagmanager.com/ns.html?id=${trackingId}`;
|
|
31
|
-
s2.appendChild(s3);
|
|
32
|
-
document.body.prepend(s2);
|
|
33
|
-
this.initSubscribers();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
catch (ex) {
|
|
37
|
-
console.error('Error appending google tag manager');
|
|
38
|
-
console.error(ex);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
addVariable(variable) {
|
|
42
|
-
if (isPlatformBrowser(this.platformId) && this.trackingId) {
|
|
43
|
-
window.dataLayer = window.dataLayer || [];
|
|
44
|
-
window.dataLayer.push(variable);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
initSubscribers() {
|
|
48
|
-
this.router.events.subscribe(event => {
|
|
49
|
-
try {
|
|
50
|
-
if (event instanceof NavigationEnd && this.trackingId) {
|
|
51
|
-
this.addVariable({
|
|
52
|
-
event: 'router.NavigationEnd',
|
|
53
|
-
pageTitle: document.title,
|
|
54
|
-
pagePath: event.urlAfterRedirects
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch (e) {
|
|
59
|
-
console.error(e);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: GoogleTagManagerService, deps: [{ token: PLATFORM_ID }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
64
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: GoogleTagManagerService, providedIn: 'root' }); }
|
|
65
|
-
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: GoogleTagManagerService, decorators: [{
|
|
67
|
-
type: Injectable,
|
|
68
|
-
args: [{
|
|
69
|
-
providedIn: 'root'
|
|
70
|
-
}]
|
|
71
|
-
}], ctorParameters: function () { return [{ type: Object, decorators: [{
|
|
72
|
-
type: Inject,
|
|
73
|
-
args: [PLATFORM_ID]
|
|
74
|
-
}] }, { type: i1.Router }]; } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91dGlscy9zcmMvbGliL2dvb2dsZS10YWctbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQVUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU94RCxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLFlBQytCLFVBQWtCLEVBQ3hDLE1BQWM7UUFEUSxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDbkIsQ0FBQztJQUVFLGtCQUFrQixDQUFDLFVBQWtCO1FBQzFDLElBQUk7WUFDRixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO2dCQUM3QixNQUFNLEVBQUUsR0FBZ0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekQsRUFBRSxDQUFDLFNBQVMsR0FBRzs7Ozs7cURBSzhCLFVBQVU7U0FDdEQsQ0FBQztnQkFDRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUIsTUFBTSxFQUFFLEdBQWdCLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzNELE1BQU0sRUFBRSxHQUFzQixRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMvRCxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDZixFQUFFLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztnQkFDaEIsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUMxQixFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7Z0JBQy9CLEVBQUUsQ0FBQyxHQUFHLEdBQUcseUNBQXlDLFVBQVUsRUFBRSxDQUFBO2dCQUM5RCxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQixRQUFRLENBQUMsSUFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN4QjtTQUNGO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFDTSxXQUFXLENBQUMsUUFBYTtRQUM5QixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3pELE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDMUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBQ08sZUFBZTtRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkMsSUFBSTtnQkFDRixJQUFJLEtBQUssWUFBWSxhQUFhLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQzt3QkFDZixLQUFLLEVBQUUsc0JBQXNCO3dCQUM3QixTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7d0JBQ3pCLFFBQVEsRUFBRSxLQUFLLENBQUMsaUJBQWlCO3FCQUNsQyxDQUFDLENBQUM7aUJBQ0o7YUFDRjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBekRVLHVCQUF1QixrQkFJeEIsV0FBVztrSEFKVix1QkFBdUIsY0FGdEIsTUFBTTs7MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuZGVjbGFyZSB2YXIgd2luZG93OiBhbnk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVRhZ01hbmFnZXJTZXJ2aWNlIHtcbiAgdHJhY2tpbmdJZCE6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXJcbiAgKSB7IH1cblxuICBwdWJsaWMgYXBwZW5kVHJhY2tpbmdDb2RlKHRyYWNraW5nSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0cmFja2luZ0lkKSB7XG4gICAgICAgIHRoaXMudHJhY2tpbmdJZCA9IHRyYWNraW5nSWQ7XG4gICAgICAgIGNvbnN0IHMxOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBzMS5pbm5lckhUTUwgPSBgXG4gICAgICAgICAgKGZ1bmN0aW9uKHcsZCxzLGwsaSl7d1tsXT13W2xdfHxbXTt3W2xdLnB1c2goeydndG0uc3RhcnQnOlxuICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXSxcbiAgICAgICAgICBqPWQuY3JlYXRlRWxlbWVudChzKSxkbD1sIT0nZGF0YUxheWVyJz8nJmw9JytsOicnO2ouYXN5bmM9dHJ1ZTtqLnNyYz1cbiAgICAgICAgICAnLy93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPScraStkbDtmLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGosZik7XG4gICAgICAgICAgfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdkYXRhTGF5ZXInLCcke3RyYWNraW5nSWR9Jyk7XG4gICAgICAgIGA7XG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoczEpO1xuICAgICAgICBjb25zdCBzMjogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdub3NjcmlwdCcpO1xuICAgICAgICBjb25zdCBzMzogSFRNTElGcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICAgICAgczMud2lkdGggPSAnMCc7XG4gICAgICAgIHMzLmhlaWdodCA9ICcwJztcbiAgICAgICAgczMuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgczMuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICBzMy5zcmMgPSBgLy93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vbnMuaHRtbD9pZD0ke3RyYWNraW5nSWR9YFxuICAgICAgICBzMi5hcHBlbmRDaGlsZChzMyk7XG4gICAgICAgIChkb2N1bWVudC5ib2R5IGFzIEhUTUxFbGVtZW50KS5wcmVwZW5kKHMyKTtcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaWJlcnMoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgYXBwZW5kaW5nIGdvb2dsZSB0YWcgbWFuYWdlcicpO1xuICAgICAgY29uc29sZS5lcnJvcihleCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBhZGRWYXJpYWJsZSh2YXJpYWJsZTogYW55KSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgdGhpcy50cmFja2luZ0lkKSB7XG4gICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtcbiAgICAgIHdpbmRvdy5kYXRhTGF5ZXIucHVzaCh2YXJpYWJsZSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaW5pdFN1YnNjcmliZXJzKCkge1xuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJiB0aGlzLnRyYWNraW5nSWQpIHtcbiAgICAgICAgICB0aGlzLmFkZFZhcmlhYmxlKHtcbiAgICAgICAgICAgIGV2ZW50OiAncm91dGVyLk5hdmlnYXRpb25FbmQnLFxuICAgICAgICAgICAgcGFnZVRpdGxlOiBkb2N1bWVudC50aXRsZSxcbiAgICAgICAgICAgIHBhZ2VQYXRoOiBldmVudC51cmxBZnRlclJlZGlyZWN0c1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
-
import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class StorageService {
|
|
5
|
-
constructor(platformId) {
|
|
6
|
-
this.platformId = platformId;
|
|
7
|
-
}
|
|
8
|
-
getValue(key, storage) {
|
|
9
|
-
let value;
|
|
10
|
-
if (!storage || typeof storage == 'string') {
|
|
11
|
-
switch (storage) {
|
|
12
|
-
case 'local':
|
|
13
|
-
value = localStorage[key];
|
|
14
|
-
break;
|
|
15
|
-
case 'memory':
|
|
16
|
-
value = this.memoryStorage[key];
|
|
17
|
-
break;
|
|
18
|
-
default:
|
|
19
|
-
value = sessionStorage[key];
|
|
20
|
-
break;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
else if (typeof storage == 'object') {
|
|
24
|
-
value = storage[key];
|
|
25
|
-
}
|
|
26
|
-
return value;
|
|
27
|
-
}
|
|
28
|
-
delete(key, storage) {
|
|
29
|
-
if (isPlatformBrowser(this.platformId)) {
|
|
30
|
-
if (!storage || typeof storage == 'string') {
|
|
31
|
-
switch (storage) {
|
|
32
|
-
case 'local':
|
|
33
|
-
delete localStorage[key];
|
|
34
|
-
break;
|
|
35
|
-
case 'memory':
|
|
36
|
-
delete this.memoryStorage[key];
|
|
37
|
-
break;
|
|
38
|
-
default:
|
|
39
|
-
delete sessionStorage[key];
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
else if (typeof storage == 'object') {
|
|
44
|
-
delete storage[key];
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
get(key, storage) {
|
|
49
|
-
let parsedValue;
|
|
50
|
-
if (isPlatformBrowser(this.platformId)) {
|
|
51
|
-
try {
|
|
52
|
-
parsedValue = JSON.parse(this.getValue(key, storage));
|
|
53
|
-
}
|
|
54
|
-
catch (err) {
|
|
55
|
-
parsedValue = this.getValue(key, storage);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return parsedValue;
|
|
59
|
-
}
|
|
60
|
-
set(key, value, storage) {
|
|
61
|
-
if (isPlatformBrowser(this.platformId)) {
|
|
62
|
-
const valueString = JSON.stringify(value);
|
|
63
|
-
if (!storage || typeof storage == 'string') {
|
|
64
|
-
switch (storage) {
|
|
65
|
-
case 'local':
|
|
66
|
-
localStorage[key] = valueString;
|
|
67
|
-
break;
|
|
68
|
-
case 'memory':
|
|
69
|
-
this.memoryStorage[key] = valueString;
|
|
70
|
-
break;
|
|
71
|
-
default:
|
|
72
|
-
sessionStorage[key] = valueString;
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: StorageService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
79
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: StorageService, providedIn: 'root' }); }
|
|
80
|
-
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: StorageService, decorators: [{
|
|
82
|
-
type: Injectable,
|
|
83
|
-
args: [{
|
|
84
|
-
providedIn: 'root'
|
|
85
|
-
}]
|
|
86
|
-
}], ctorParameters: function () { return [{ type: Object, decorators: [{
|
|
87
|
-
type: Inject,
|
|
88
|
-
args: [PLATFORM_ID]
|
|
89
|
-
}] }]; } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdXRpbHMvc3JjL2xpYi9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtoRSxNQUFNLE9BQU8sY0FBYztJQUl6QixZQUMrQixVQUFrQjtRQUFsQixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQzdDLENBQUM7SUFFRyxRQUFRLENBQUMsR0FBVyxFQUFFLE9BQXdDO1FBQ3BFLElBQUksS0FBVSxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDMUMsUUFBUSxPQUFPLEVBQUU7Z0JBQ2YsS0FBSyxPQUFPO29CQUNWLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzFCLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoQyxNQUFNO2dCQUNSO29CQUNFLEtBQUssR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzVCLE1BQU07YUFDVDtTQUNGO2FBQU0sSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDckMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN0QjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNNLE1BQU0sQ0FBQyxHQUFXLEVBQUUsT0FBd0M7UUFDakUsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRLEVBQUU7Z0JBQzFDLFFBQVEsT0FBTyxFQUFFO29CQUNmLEtBQUssT0FBTzt3QkFDVixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDekIsTUFBTTtvQkFDUixLQUFLLFFBQVE7d0JBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMvQixNQUFNO29CQUNSO3dCQUNFLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMzQixNQUFNO2lCQUNUO2FBQ0Y7aUJBQU0sSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRLEVBQUU7Z0JBQ3JDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDO0lBQ00sR0FBRyxDQUFDLEdBQVcsRUFBRSxPQUF3QztRQUM5RCxJQUFJLFdBQWdCLENBQUM7UUFDckIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSTtnQkFDRixXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3ZEO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQzNDO1NBQ0Y7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBQ00sR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsT0FBd0M7UUFDMUUsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxJQUFJLFFBQVEsRUFBRTtnQkFDMUMsUUFBUSxPQUFPLEVBQUU7b0JBQ2YsS0FBSyxPQUFPO3dCQUNWLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7d0JBQ2hDLE1BQU07b0JBQ1IsS0FBSyxRQUFRO3dCQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDO3dCQUN0QyxNQUFNO29CQUNSO3dCQUNFLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7d0JBQ2xDLE1BQU07aUJBQ1Q7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs4R0ExRVUsY0FBYyxrQkFLZixXQUFXO2tIQUxWLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XG4gIC8vVE9ETzogUmVwbGFjZSB3aXRoIE1hcCBvYmplY3QgaXQgaXMgbW9yZSBlZmZpY2llbnRcbiAgbWVtb3J5U3RvcmFnZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0XG4gICkgeyB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZShrZXk6IHN0cmluZywgc3RvcmFnZT86ICdsb2NhbCcgfCAnc2Vzc2lvbicgfCAnbWVtb3J5Jyk6IGFueSB7XG4gICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgaWYgKCFzdG9yYWdlIHx8IHR5cGVvZiBzdG9yYWdlID09ICdzdHJpbmcnKSB7XG4gICAgICBzd2l0Y2ggKHN0b3JhZ2UpIHtcbiAgICAgICAgY2FzZSAnbG9jYWwnOlxuICAgICAgICAgIHZhbHVlID0gbG9jYWxTdG9yYWdlW2tleV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21lbW9yeSc6XG4gICAgICAgICAgdmFsdWUgPSB0aGlzLm1lbW9yeVN0b3JhZ2Vba2V5XTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB2YWx1ZSA9IHNlc3Npb25TdG9yYWdlW2tleV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RvcmFnZSA9PSAnb2JqZWN0Jykge1xuICAgICAgdmFsdWUgPSBzdG9yYWdlW2tleV07XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZGVsZXRlKGtleTogc3RyaW5nLCBzdG9yYWdlPzogJ2xvY2FsJyB8ICdzZXNzaW9uJyB8ICdtZW1vcnknKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGlmICghc3RvcmFnZSB8fCB0eXBlb2Ygc3RvcmFnZSA9PSAnc3RyaW5nJykge1xuICAgICAgICBzd2l0Y2ggKHN0b3JhZ2UpIHtcbiAgICAgICAgICBjYXNlICdsb2NhbCc6XG4gICAgICAgICAgICBkZWxldGUgbG9jYWxTdG9yYWdlW2tleV07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdtZW1vcnknOlxuICAgICAgICAgICAgZGVsZXRlIHRoaXMubWVtb3J5U3RvcmFnZVtrZXldO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGRlbGV0ZSBzZXNzaW9uU3RvcmFnZVtrZXldO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0b3JhZ2UgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgZGVsZXRlIHN0b3JhZ2Vba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIGdldChrZXk6IHN0cmluZywgc3RvcmFnZT86ICdsb2NhbCcgfCAnc2Vzc2lvbicgfCAnbWVtb3J5Jyk6IGFueSB7XG4gICAgbGV0IHBhcnNlZFZhbHVlOiBhbnk7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnNlZFZhbHVlID0gSlNPTi5wYXJzZSh0aGlzLmdldFZhbHVlKGtleSwgc3RvcmFnZSkpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHBhcnNlZFZhbHVlID0gdGhpcy5nZXRWYWx1ZShrZXksIHN0b3JhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGFyc2VkVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgc3RvcmFnZT86ICdsb2NhbCcgfCAnc2Vzc2lvbicgfCAnbWVtb3J5Jykge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgIGlmICghc3RvcmFnZSB8fCB0eXBlb2Ygc3RvcmFnZSA9PSAnc3RyaW5nJykge1xuICAgICAgICBzd2l0Y2ggKHN0b3JhZ2UpIHtcbiAgICAgICAgICBjYXNlICdsb2NhbCc6XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Vba2V5XSA9IHZhbHVlU3RyaW5nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnbWVtb3J5JzpcbiAgICAgICAgICAgIHRoaXMubWVtb3J5U3RvcmFnZVtrZXldID0gdmFsdWVTdHJpbmc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Vba2V5XSA9IHZhbHVlU3RyaW5nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
function lengthValidator(number, digits) {
|
|
2
|
-
let value = true;
|
|
3
|
-
if (number.trim() === '') { // No puede estar vacio
|
|
4
|
-
value = false;
|
|
5
|
-
}
|
|
6
|
-
else if (number.trim().length !== digits) { // Cantidad de dígitos
|
|
7
|
-
value = false;
|
|
8
|
-
}
|
|
9
|
-
return value;
|
|
10
|
-
}
|
|
11
|
-
function provinceValidator(number) {
|
|
12
|
-
let value = true;
|
|
13
|
-
const code = Number(number);
|
|
14
|
-
if ((code < 0 || code > 24) && code !== 30) {
|
|
15
|
-
value = false;
|
|
16
|
-
}
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
function typeValidator(number, type) {
|
|
20
|
-
let value = true;
|
|
21
|
-
const code = Number(number);
|
|
22
|
-
switch (type) {
|
|
23
|
-
case 'cedula':
|
|
24
|
-
if (code < 0 || code > 6) {
|
|
25
|
-
value = false;
|
|
26
|
-
}
|
|
27
|
-
break;
|
|
28
|
-
case 'ruc_natural':
|
|
29
|
-
if (code < 0 || code > 5) {
|
|
30
|
-
value = false;
|
|
31
|
-
}
|
|
32
|
-
break;
|
|
33
|
-
case 'ruc_privada':
|
|
34
|
-
if (code !== 9) {
|
|
35
|
-
value = false;
|
|
36
|
-
}
|
|
37
|
-
break;
|
|
38
|
-
case 'ruc_publica':
|
|
39
|
-
if (code !== 6) {
|
|
40
|
-
value = false;
|
|
41
|
-
}
|
|
42
|
-
break;
|
|
43
|
-
default:
|
|
44
|
-
value = false;
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
return value;
|
|
48
|
-
}
|
|
49
|
-
function module10Validator(number, verifierCodeString) {
|
|
50
|
-
const coefficients = [2, 1, 2, 1, 2, 1, 2, 1, 2];
|
|
51
|
-
const verifierCode = Number(verifierCodeString);
|
|
52
|
-
const numberParts = number.split('');
|
|
53
|
-
let value = true;
|
|
54
|
-
let total = 0;
|
|
55
|
-
let result;
|
|
56
|
-
numberParts.forEach((part, index) => {
|
|
57
|
-
let valuePosition = Number(part) * coefficients[index];
|
|
58
|
-
if (valuePosition >= 10) {
|
|
59
|
-
let newValuePosition = String(valuePosition).split('');
|
|
60
|
-
let sum = newValuePosition.reduce((previousValue, currentValue) => {
|
|
61
|
-
return String(Number(currentValue) + Number(previousValue));
|
|
62
|
-
});
|
|
63
|
-
valuePosition = Number(sum);
|
|
64
|
-
}
|
|
65
|
-
total += valuePosition;
|
|
66
|
-
});
|
|
67
|
-
const residue = total % 10;
|
|
68
|
-
if (residue === 0) {
|
|
69
|
-
result = 0;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
result = 10 - residue;
|
|
73
|
-
}
|
|
74
|
-
if (result !== verifierCode) {
|
|
75
|
-
value = false;
|
|
76
|
-
}
|
|
77
|
-
return value;
|
|
78
|
-
}
|
|
79
|
-
function module11Validator(number, verifierCodeString, type) {
|
|
80
|
-
const verifierCode = Number(verifierCodeString);
|
|
81
|
-
const numberParts = number.split('');
|
|
82
|
-
let value = true;
|
|
83
|
-
let coefficients;
|
|
84
|
-
let total = 0;
|
|
85
|
-
let result;
|
|
86
|
-
switch (type) {
|
|
87
|
-
case 'ruc_privada':
|
|
88
|
-
coefficients = [4, 3, 2, 7, 6, 5, 4, 3, 2];
|
|
89
|
-
break;
|
|
90
|
-
case 'ruc_publica':
|
|
91
|
-
coefficients = [3, 2, 7, 6, 5, 4, 3, 2];
|
|
92
|
-
break;
|
|
93
|
-
default:
|
|
94
|
-
return false;
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
numberParts.forEach((part, index) => {
|
|
98
|
-
let valuePosition = Number(part) * coefficients[index];
|
|
99
|
-
total += valuePosition;
|
|
100
|
-
});
|
|
101
|
-
const residue = total % 11;
|
|
102
|
-
if (residue === 0) {
|
|
103
|
-
result = 0;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
result = 11 - residue;
|
|
107
|
-
}
|
|
108
|
-
if (result !== verifierCode) {
|
|
109
|
-
value = false;
|
|
110
|
-
}
|
|
111
|
-
return value;
|
|
112
|
-
}
|
|
113
|
-
function storeCodeValidator(number) {
|
|
114
|
-
let value = true;
|
|
115
|
-
const code = Number(number);
|
|
116
|
-
if (code < 1) {
|
|
117
|
-
value = false;
|
|
118
|
-
}
|
|
119
|
-
return value;
|
|
120
|
-
}
|
|
121
|
-
export function getIdentificationType(number) {
|
|
122
|
-
let type = null;
|
|
123
|
-
if (lengthValidator(number, 10) &&
|
|
124
|
-
provinceValidator(number.substr(0, 2)) &&
|
|
125
|
-
//typeValidator(number.substr(2, 1), 'cedula') &&
|
|
126
|
-
module10Validator(number.substr(0, 9), number.substr(9, 1))) {
|
|
127
|
-
type = 'cedula';
|
|
128
|
-
}
|
|
129
|
-
else if (lengthValidator(number, 13) &&
|
|
130
|
-
provinceValidator(number.substr(0, 2)) &&
|
|
131
|
-
//typeValidator(number.substr(2, 1), 'ruc_natural') &&
|
|
132
|
-
storeCodeValidator(number.substr(10, 3)) &&
|
|
133
|
-
module10Validator(number.substr(0, 9), number.substr(9, 1))) {
|
|
134
|
-
type = 'ruc_natural';
|
|
135
|
-
}
|
|
136
|
-
else if (lengthValidator(number, 13) &&
|
|
137
|
-
provinceValidator(number.substr(0, 2)) &&
|
|
138
|
-
typeValidator(number.substr(2, 1), 'ruc_privada') &&
|
|
139
|
-
storeCodeValidator(number.substr(10, 3)) //&&
|
|
140
|
-
//module11Validator(number.substr(0, 9), number.substr(9, 1), 'ruc_privada')
|
|
141
|
-
) {
|
|
142
|
-
type = 'ruc_privada';
|
|
143
|
-
}
|
|
144
|
-
else if (lengthValidator(number, 13) &&
|
|
145
|
-
provinceValidator(number.substr(0, 2)) &&
|
|
146
|
-
typeValidator(number.substr(2, 1), 'ruc_publica') &&
|
|
147
|
-
storeCodeValidator(number.substr(9, 4)) //&&
|
|
148
|
-
//module11Validator(number.substr(0, 8), number.substr(8, 1), 'ruc_publica')
|
|
149
|
-
) {
|
|
150
|
-
type = 'ruc_publica';
|
|
151
|
-
}
|
|
152
|
-
return type;
|
|
153
|
-
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmljYXRpb24tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9saWIvdmFsaWRhdG9ycy9lYy9pZGVudGlmaWNhdGlvbi10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsZUFBZSxDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQ25ELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztJQUNqQixJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSx1QkFBdUI7UUFDL0MsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNqQjtTQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsRUFBRSxzQkFBc0I7UUFDaEUsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNqQjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFDRCxTQUFTLGlCQUFpQixDQUFDLE1BQWM7SUFDckMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtRQUN4QyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ2pCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUNELFNBQVMsYUFBYSxDQUFDLE1BQWMsRUFBRSxJQUFZO0lBQy9DLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztJQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsUUFBUSxJQUFJLEVBQUU7UUFDVixLQUFLLFFBQVE7WUFDVCxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENB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O01BQzlFO1FBQ00sSUFBSSxHQUFHLGFBQWEsQ0FBQztLQUM1QjtTQUFNLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDbEMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUNqRCxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDNUMsNEVBQTRFO01BQzlFO1FBQ00sSUFBSSxHQUFHLGFBQWEsQ0FBQztLQUM1QjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBsZW5ndGhWYWxpZGF0b3IobnVtYmVyOiBzdHJpbmcsIGRpZ2l0czogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgbGV0IHZhbHVlID0gdHJ1ZTtcbiAgICBpZiAobnVtYmVyLnRyaW0oKSA9PT0gJycpIHsgLy8gTm8gcHVlZGUgZXN0YXIgdmFjaW9cbiAgICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKG51bWJlci50cmltKCkubGVuZ3RoICE9PSBkaWdpdHMpIHsgLy8gQ2FudGlkYWQgZGUgZMOtZ2l0b3NcbiAgICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuZnVuY3Rpb24gcHJvdmluY2VWYWxpZGF0b3IobnVtYmVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgdmFsdWUgPSB0cnVlO1xuICAgIGNvbnN0IGNvZGUgPSBOdW1iZXIobnVtYmVyKTtcbiAgICBpZiAoKGNvZGUgPCAwIHx8IGNvZGUgPiAyNCkgJiYgY29kZSAhPT0gMzApIHtcbiAgICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuZnVuY3Rpb24gdHlwZVZhbGlkYXRvcihudW1iZXI6IHN0cmluZywgdHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHZhbHVlID0gdHJ1ZTtcbiAgICBjb25zdCBjb2RlID0gTnVtYmVyKG51bWJlcik7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ2NlZHVsYSc6XG4gICAgICAgICAgICBpZiAoY29kZSA8IDAgfHwgY29kZSA+IDYpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3J1Y19uYXR1cmFsJzpcbiAgICAgICAgICAgIGlmIChjb2RlIDwgMCB8fCBjb2RlID4gNSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncnVjX3ByaXZhZGEnOlxuICAgICAgICAgICAgaWYgKGNvZGUgIT09IDkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3J1Y19wdWJsaWNhJzpcbiAgICAgICAgICAgIGlmIChjb2RlICE9PSA2KSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG5mdW5jdGlvbiBtb2R1bGUxMFZhbGlkYXRvcihudW1iZXI6IHN0cmluZywgdmVyaWZpZXJDb2RlU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2VmZmljaWVudHM6IG51bWJlcltdID0gWzIsIDEsIDIsIDEsIDIsIDEsIDIsIDEsIDJdO1xuICAgIGNvbnN0IHZlcmlmaWVyQ29kZSA9IE51bWJlcih2ZXJpZmllckNvZGVTdHJpbmcpO1xuICAgIGNvbnN0IG51bWJlclBhcnRzOiBzdHJpbmdbXSA9IG51bWJlci5zcGxpdCgnJyk7XG4gICAgbGV0IHZhbHVlID0gdHJ1ZTtcbiAgICBsZXQgdG90YWwgPSAwO1xuICAgIGxldCByZXN1bHQ6IG51bWJlcjtcbiAgICBudW1iZXJQYXJ0cy5mb3JFYWNoKChwYXJ0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgbGV0IHZhbHVlUG9zaXRpb246IG51bWJlciA9IE51bWJlcihwYXJ0KSAqIGNvZWZmaWNpZW50c1tpbmRleF07XG4gICAgICAgIGlmICh2YWx1ZVBvc2l0aW9uID49IDEwKSB7XG4gICAgICAgICAgICBsZXQgbmV3VmFsdWVQb3NpdGlvbjogc3RyaW5nW10gPSBTdHJpbmcodmFsdWVQb3NpdGlvbikuc3BsaXQoJycpO1xuICAgICAgICAgICAgbGV0IHN1bTogc3RyaW5nID0gbmV3VmFsdWVQb3NpdGlvbi5yZWR1Y2UoKHByZXZpb3VzVmFsdWU6IHN0cmluZywgY3VycmVudFZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKE51bWJlcihjdXJyZW50VmFsdWUpICsgTnVtYmVyKHByZXZpb3VzVmFsdWUpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFsdWVQb3NpdGlvbiA9IE51bWJlcihzdW0pO1xuICAgICAgICB9XG4gICAgICAgIHRvdGFsICs9IHZhbHVlUG9zaXRpb247XG4gICAgfSk7XG4gICAgY29uc3QgcmVzaWR1ZTogbnVtYmVyID0gdG90YWwgJSAxMDtcbiAgICBpZiAocmVzaWR1ZSA9PT0gMCkge1xuICAgICAgICByZXN1bHQgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IDEwIC0gcmVzaWR1ZTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPT0gdmVyaWZpZXJDb2RlKSB7XG4gICAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIG1vZHVsZTExVmFsaWRhdG9yKG51bWJlcjogc3RyaW5nLCB2ZXJpZmllckNvZGVTdHJpbmc6IHN0cmluZywgdHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmVyaWZpZXJDb2RlID0gTnVtYmVyKHZlcmlmaWVyQ29kZVN0cmluZyk7XG4gICAgY29uc3QgbnVtYmVyUGFydHM6IHN0cmluZ1tdID0gbnVtYmVyLnNwbGl0KCcnKTtcbiAgICBsZXQgdmFsdWUgPSB0cnVlO1xuICAgIGxldCBjb2VmZmljaWVudHM6IG51bWJlcltdO1xuICAgIGxldCB0b3RhbCA9IDA7XG4gICAgbGV0IHJlc3VsdDogbnVtYmVyO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdydWNfcHJpdmFkYSc6XG4gICAgICAgICAgICBjb2VmZmljaWVudHMgPSBbNCwgMywgMiwgNywgNiwgNSwgNCwgMywgMl07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncnVjX3B1YmxpY2EnOlxuICAgICAgICAgICAgY29lZmZpY2llbnRzID0gWzMsIDIsIDcsIDYsIDUsIDQsIDMsIDJdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgbnVtYmVyUGFydHMuZm9yRWFjaCgocGFydDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZVBvc2l0aW9uOiBudW1iZXIgPSBOdW1iZXIocGFydCkgKiBjb2VmZmljaWVudHNbaW5kZXhdO1xuICAgICAgICB0b3RhbCArPSB2YWx1ZVBvc2l0aW9uO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc2lkdWU6IG51bWJlciA9IHRvdGFsICUgMTE7XG4gICAgaWYgKHJlc2lkdWUgPT09IDApIHtcbiAgICAgICAgcmVzdWx0ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSAxMSAtIHJlc2lkdWU7XG4gICAgfVxuICAgIGlmIChyZXN1bHQgIT09IHZlcmlmaWVyQ29kZSkge1xuICAgICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG5mdW5jdGlvbiBzdG9yZUNvZGVWYWxpZGF0b3IobnVtYmVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgdmFsdWUgPSB0cnVlO1xuICAgIGNvbnN0IGNvZGUgPSBOdW1iZXIobnVtYmVyKTtcbiAgICBpZiAoY29kZSA8IDEpIHtcbiAgICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldElkZW50aWZpY2F0aW9uVHlwZShudW1iZXI6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCB0eXBlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBpZiAobGVuZ3RoVmFsaWRhdG9yKG51bWJlciwgMTApICYmXG4gICAgICAgIHByb3ZpbmNlVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoMCwgMikpICYmXG4gICAgICAgIC8vdHlwZVZhbGlkYXRvcihudW1iZXIuc3Vic3RyKDIsIDEpLCAnY2VkdWxhJykgJiZcbiAgICAgICAgbW9kdWxlMTBWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigwLCA5KSwgbnVtYmVyLnN1YnN0cig5LCAxKSkpIHtcbiAgICAgICAgICAgIHR5cGUgPSAnY2VkdWxhJztcbiAgICB9IGVsc2UgaWYgKGxlbmd0aFZhbGlkYXRvcihudW1iZXIsIDEzKSAmJlxuICAgICAgICBwcm92aW5jZVZhbGlkYXRvcihudW1iZXIuc3Vic3RyKDAsIDIpKSAmJlxuICAgICAgICAvL3R5cGVWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigyLCAxKSwgJ3J1Y19uYXR1cmFsJykgJiZcbiAgICAgICAgc3RvcmVDb2RlVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoMTAsIDMpKSAmJlxuICAgICAgICBtb2R1bGUxMFZhbGlkYXRvcihudW1iZXIuc3Vic3RyKDAsIDkpLCBudW1iZXIuc3Vic3RyKDksIDEpKVxuICAgICkge1xuICAgICAgICAgICAgdHlwZSA9ICdydWNfbmF0dXJhbCc7XG4gICAgfSBlbHNlIGlmIChsZW5ndGhWYWxpZGF0b3IobnVtYmVyLCAxMykgJiZcbiAgICAgICAgcHJvdmluY2VWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigwLCAyKSkgJiZcbiAgICAgICAgdHlwZVZhbGlkYXRvcihudW1iZXIuc3Vic3RyKDIsIDEpLCAncnVjX3ByaXZhZGEnKSAmJlxuICAgICAgICBzdG9yZUNvZGVWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigxMCwgMykpIC8vJiZcbiAgICAgICAgLy9tb2R1bGUxMVZhbGlkYXRvcihudW1iZXIuc3Vic3RyKDAsIDkpLCBudW1iZXIuc3Vic3RyKDksIDEpLCAncnVjX3ByaXZhZGEnKVxuICAgICkge1xuICAgICAgICAgICAgdHlwZSA9ICdydWNfcHJpdmFkYSc7XG4gICAgfSBlbHNlIGlmIChsZW5ndGhWYWxpZGF0b3IobnVtYmVyLCAxMykgJiZcbiAgICAgICAgcHJvdmluY2VWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigwLCAyKSkgJiZcbiAgICAgICAgdHlwZVZhbGlkYXRvcihudW1iZXIuc3Vic3RyKDIsIDEpLCAncnVjX3B1YmxpY2EnKSAmJlxuICAgICAgICBzdG9yZUNvZGVWYWxpZGF0b3IobnVtYmVyLnN1YnN0cig5LCA0KSkgLy8mJlxuICAgICAgICAvL21vZHVsZTExVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoMCwgOCksIG51bWJlci5zdWJzdHIoOCwgMSksICdydWNfcHVibGljYScpXG4gICAgKSB7XG4gICAgICAgICAgICB0eXBlID0gJ3J1Y19wdWJsaWNhJztcbiAgICB9XG4gICAgcmV0dXJuIHR5cGU7XG59Il19
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { getIdentificationType } from './identification-type';
|
|
2
|
-
export function identificationValidator(type) {
|
|
3
|
-
return (control) => {
|
|
4
|
-
const number = String(control.value);
|
|
5
|
-
if (number && number.trim() !== '') {
|
|
6
|
-
const parsedType = getIdentificationType(number);
|
|
7
|
-
switch (type) {
|
|
8
|
-
case 'cedula':
|
|
9
|
-
case 'ruc_natural':
|
|
10
|
-
case 'ruc_privada':
|
|
11
|
-
case 'ruc_publica':
|
|
12
|
-
return !parsedType || parsedType !== type ? { invalidIdentification: true } : null;
|
|
13
|
-
break;
|
|
14
|
-
case 'ruc':
|
|
15
|
-
return !parsedType || ['ruc_natural', 'ruc_privada', 'ruc_publica'].indexOf(parsedType) === -1 ? { invalidIdentification: true } : null;
|
|
16
|
-
break;
|
|
17
|
-
case 'id':
|
|
18
|
-
return !parsedType ? { invalidIdentification: true } : null;
|
|
19
|
-
break;
|
|
20
|
-
default:
|
|
21
|
-
return null;
|
|
22
|
-
break;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmljYXRpb24tdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXRpbHMvc3JjL2xpYi92YWxpZGF0b3JzL2VjL2lkZW50aWZpY2F0aW9uLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBNkU7SUFDbkgsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDM0QsTUFBTSxNQUFNLEdBQVcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2xDLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pELFFBQVEsSUFBSSxFQUFFO2dCQUNaLEtBQUssUUFBUSxDQUFDO2dCQUNkLEtBQUssYUFBYSxDQUFDO2dCQUNuQixLQUFLLGFBQWEsQ0FBQztnQkFDbkIsS0FBSyxhQUFhO29CQUNoQixPQUFPLENBQUMsVUFBVSxJQUFJLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDbkYsTUFBTTtnQkFDUixLQUFLLEtBQUs7b0JBQ1IsT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQ3hJLE1BQU07Z0JBQ1IsS0FBSyxJQUFJO29CQUNQLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDNUQsTUFBTTtnQkFDUjtvQkFDRSxPQUFPLElBQUksQ0FBQztvQkFDWixNQUFNO2FBQ1Q7U0FDRjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZ2V0SWRlbnRpZmljYXRpb25UeXBlIH0gZnJvbSAnLi9pZGVudGlmaWNhdGlvbi10eXBlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlkZW50aWZpY2F0aW9uVmFsaWRhdG9yKHR5cGU6ICdjZWR1bGEnIHwgJ3J1Y19uYXR1cmFsJyB8ICdydWNfcHJpdmFkYScgfCAncnVjX3B1YmxpY2EnIHwgJ3J1YycgfCAnaWQnKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBjb25zdCBudW1iZXI6IHN0cmluZyA9IFN0cmluZyhjb250cm9sLnZhbHVlKTtcbiAgICBpZiAobnVtYmVyICYmIG51bWJlci50cmltKCkgIT09ICcnKSB7XG4gICAgICBjb25zdCBwYXJzZWRUeXBlID0gZ2V0SWRlbnRpZmljYXRpb25UeXBlKG51bWJlcik7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnY2VkdWxhJzpcbiAgICAgICAgY2FzZSAncnVjX25hdHVyYWwnOlxuICAgICAgICBjYXNlICdydWNfcHJpdmFkYSc6XG4gICAgICAgIGNhc2UgJ3J1Y19wdWJsaWNhJzpcbiAgICAgICAgICByZXR1cm4gIXBhcnNlZFR5cGUgfHwgcGFyc2VkVHlwZSAhPT0gdHlwZSA/IHsgaW52YWxpZElkZW50aWZpY2F0aW9uOiB0cnVlIH0gOiBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdydWMnOlxuICAgICAgICAgIHJldHVybiAhcGFyc2VkVHlwZSB8fCBbJ3J1Y19uYXR1cmFsJywgJ3J1Y19wcml2YWRhJywgJ3J1Y19wdWJsaWNhJ10uaW5kZXhPZihwYXJzZWRUeXBlKSA9PT0gLTEgPyB7IGludmFsaWRJZGVudGlmaWNhdGlvbjogdHJ1ZSB9IDogbnVsbDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaWQnOlxuICAgICAgICAgIHJldHVybiAhcGFyc2VkVHlwZSA/IHsgaW52YWxpZElkZW50aWZpY2F0aW9uOiB0cnVlIH0gOiBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG59XG4iXX0=
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of utils
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/color.service';
|
|
5
|
-
export * from './lib/files.service';
|
|
6
|
-
export * from './lib/google-tag-manager.service';
|
|
7
|
-
export * from './lib/storage.service';
|
|
8
|
-
export * from './lib/validators/ec/identification-validator';
|
|
9
|
-
export * from './lib/validators/ec/identification-type';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHV0aWxzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sb3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWxlcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dvb2dsZS10YWctbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92YWxpZGF0b3JzL2VjL2lkZW50aWZpY2F0aW9uLXZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92YWxpZGF0b3JzL2VjL2lkZW50aWZpY2F0aW9uLXR5cGUnO1xuIl19
|