ngx-vector-components 4.54.0 → 4.55.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/CHANGELOG.md +907 -900
- package/README.md +35 -35
- package/assets/icons/chevron_down_icon.svg +3 -3
- package/assets/icons/home_menu_icon.svg +3 -3
- package/assets/icons/logout_icon.svg +9 -9
- package/assets/icons/menu_footer_icon.svg +3 -3
- package/assets/icons/menu_hamburguer_icon.svg +3 -3
- package/assets/icons/terms_of_use_icon.svg +9 -9
- package/assets/icons/vector_admin_icon.svg +4 -4
- package/assets/icons/vector_fintech_icon.svg +3 -3
- package/assets/icons/vector_logtech_icon.svg +6 -6
- package/assets/icons/vector_marketplace_icon.svg +3 -3
- package/assets/images/bunge_logo.svg +23 -23
- package/assets/images/cofco_logo.svg +117 -117
- package/assets/images/emote_bad.svg +6 -6
- package/assets/images/emote_cool.svg +5 -5
- package/assets/images/emote_nice.svg +5 -5
- package/assets/images/success_sign.svg +4 -4
- package/assets/images/vector-logo-horizontal-inverse-color.svg +13 -13
- package/assets/images/vector_logo_horizontal.svg +13 -13
- package/assets/images/warn_sign.svg +4 -4
- package/assets/styles/_fonts.scss +114 -114
- package/assets/styles/_mixins.scss +7 -7
- package/assets/styles/_primeng-custom-theme.scss +978 -978
- package/assets/styles/_spinner.scss +35 -35
- package/assets/styles/_styles.scss +115 -115
- package/assets/styles/_variables.scss +27 -27
- package/esm2020/lib/components/badge/badge.component.mjs +39 -39
- package/esm2020/lib/components/badge/badge.module.mjs +19 -19
- package/esm2020/lib/components/badge/index.mjs +3 -3
- package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +65 -65
- package/esm2020/lib/components/breadcrumb/breadcrumb.module.mjs +18 -18
- package/esm2020/lib/components/breadcrumb/index.mjs +3 -3
- package/esm2020/lib/components/crud-base/crud-base.component.mjs +47 -47
- package/esm2020/lib/components/crud-base/index.mjs +2 -2
- package/esm2020/lib/components/crud-footer/crud-footer.component.mjs +31 -31
- package/esm2020/lib/components/crud-footer/crud-footer.module.mjs +19 -19
- package/esm2020/lib/components/crud-footer/index.mjs +3 -3
- package/esm2020/lib/components/crud-header/crud-header.component.mjs +30 -30
- package/esm2020/lib/components/crud-header/crud-header.module.mjs +19 -19
- package/esm2020/lib/components/crud-header/index.mjs +3 -3
- package/esm2020/lib/components/crud-history/crud-history.component.mjs +82 -82
- package/esm2020/lib/components/crud-history/crud-history.module.mjs +20 -20
- package/esm2020/lib/components/crud-history/index.mjs +3 -3
- package/esm2020/lib/components/fields/button/button.component.mjs +41 -41
- package/esm2020/lib/components/fields/button/index.mjs +2 -2
- package/esm2020/lib/components/fields/calendar-field/calendar-field.component.mjs +74 -74
- package/esm2020/lib/components/fields/calendar-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/checkbox-field/checkbox-field.component.mjs +46 -46
- package/esm2020/lib/components/fields/checkbox-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/currency-field/currency-field.component.mjs +87 -87
- package/esm2020/lib/components/fields/currency-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/data-table/data-table.component.mjs +365 -365
- package/esm2020/lib/components/fields/data-table/index.mjs +2 -2
- package/esm2020/lib/components/fields/dropdown-field/dropdown-field.component.mjs +196 -196
- package/esm2020/lib/components/fields/dropdown-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/field-error-message/field-error-message.component.mjs +30 -30
- package/esm2020/lib/components/fields/field-error-message/index.mjs +2 -2
- package/esm2020/lib/components/fields/fields.module.mjs +205 -205
- package/esm2020/lib/components/fields/filters/filters.component.mjs +195 -195
- package/esm2020/lib/components/fields/filters/index.mjs +2 -2
- package/esm2020/lib/components/fields/index.mjs +19 -19
- package/esm2020/lib/components/fields/input-number-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/input-number-field/input-number-field.component.mjs +82 -82
- package/esm2020/lib/components/fields/multiselect-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/multiselect-field/multiselect-field.component.mjs +47 -47
- package/esm2020/lib/components/fields/percentage-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/percentage-field/percentage-field.component.mjs +42 -42
- package/esm2020/lib/components/fields/radio-button-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/radio-button-field/radio-button-field.component.mjs +38 -38
- package/esm2020/lib/components/fields/range-value/index.mjs +2 -2
- package/esm2020/lib/components/fields/range-value/range-value.component.mjs +72 -72
- package/esm2020/lib/components/fields/search-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/search-field/search-field.component.mjs +33 -33
- package/esm2020/lib/components/fields/select-button-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/select-button-field/select-button-field.component.mjs +20 -20
- package/esm2020/lib/components/fields/text-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/text-field/text-field.component.mjs +211 -209
- package/esm2020/lib/components/fields/textarea-field/index.mjs +2 -2
- package/esm2020/lib/components/fields/textarea-field/textarea-field.component.mjs +75 -75
- package/esm2020/lib/components/generic-error-modal/generic-error-modal.component.mjs +30 -30
- package/esm2020/lib/components/generic-error-modal/generic-error-modal.module.mjs +20 -20
- package/esm2020/lib/components/generic-error-modal/index.mjs +3 -3
- package/esm2020/lib/components/generic-modal/generic-modal.component.mjs +66 -66
- package/esm2020/lib/components/generic-modal/generic-modal.module.mjs +20 -20
- package/esm2020/lib/components/generic-modal/index.mjs +3 -3
- package/esm2020/lib/components/index.mjs +13 -13
- package/esm2020/lib/components/menu/index.mjs +4 -4
- package/esm2020/lib/components/menu/menu.component.mjs +302 -302
- package/esm2020/lib/components/menu/menu.module.mjs +20 -20
- package/esm2020/lib/components/menu/sub-menus-list/sub-menus-list.component.mjs +42 -42
- package/esm2020/lib/components/panel/index.mjs +3 -3
- package/esm2020/lib/components/panel/panel.component.mjs +15 -15
- package/esm2020/lib/components/panel/panel.module.mjs +19 -19
- package/esm2020/lib/components/top-bar/index.mjs +3 -3
- package/esm2020/lib/components/top-bar/top-bar.component.mjs +102 -102
- package/esm2020/lib/components/top-bar/top-bar.module.mjs +19 -19
- package/esm2020/lib/guards/crud-list-has-items.guard.mjs +22 -22
- package/esm2020/lib/guards/get-token-by-guid.guard.mjs +54 -54
- package/esm2020/lib/guards/has-permission.guard.mjs +27 -27
- package/esm2020/lib/guards/index.mjs +6 -6
- package/esm2020/lib/guards/role.guard.mjs +24 -24
- package/esm2020/lib/guards/token-is-present.guard.mjs +26 -26
- package/esm2020/lib/interceptors/http-interceptor.mjs +183 -183
- package/esm2020/lib/interceptors/index.mjs +2 -2
- package/esm2020/lib/models/app-name.enum.mjs +9 -9
- package/esm2020/lib/models/boolean-type.enum.mjs +6 -6
- package/esm2020/lib/models/crud-history.model.mjs +3 -3
- package/esm2020/lib/models/crud-mode.enum.mjs +7 -7
- package/esm2020/lib/models/data-table.model.mjs +22 -22
- package/esm2020/lib/models/document-type.enum.mjs +6 -6
- package/esm2020/lib/models/filters.model.mjs +2 -2
- package/esm2020/lib/models/generic-modal.model.mjs +2 -2
- package/esm2020/lib/models/http-response.model.mjs +2 -2
- package/esm2020/lib/models/index.mjs +16 -16
- package/esm2020/lib/models/ip-info.enum.mjs +2 -2
- package/esm2020/lib/models/list-item.model.mjs +2 -2
- package/esm2020/lib/models/menu-item.model.mjs +2 -2
- package/esm2020/lib/models/message-status.enum.mjs +8 -8
- package/esm2020/lib/models/profile.model.mjs +217 -217
- package/esm2020/lib/models/role.enum.mjs +5 -5
- package/esm2020/lib/models/status.enum.mjs +8 -8
- package/esm2020/lib/models/view.enum.mjs +7 -7
- package/esm2020/lib/pipes/currency-brl.pipe.mjs +18 -18
- package/esm2020/lib/pipes/format-document.pipe.mjs +17 -17
- package/esm2020/lib/pipes/index.mjs +8 -8
- package/esm2020/lib/pipes/mask.pipe.mjs +21 -21
- package/esm2020/lib/pipes/not-hidden.pipe.mjs +16 -16
- package/esm2020/lib/pipes/only-active.pipe.mjs +16 -16
- package/esm2020/lib/pipes/pipes.module.mjs +21 -21
- package/esm2020/lib/pipes/remove-last-child.pipe.mjs +18 -18
- package/esm2020/lib/resolvers/get-selected-crud-item.resolver.mjs +28 -28
- package/esm2020/lib/resolvers/index.mjs +2 -2
- package/esm2020/lib/services/auth.service.mjs +77 -77
- package/esm2020/lib/services/base-dropdown.mjs +2 -2
- package/esm2020/lib/services/crud-base.service.mjs +14 -14
- package/esm2020/lib/services/enum.service.mjs +43 -43
- package/esm2020/lib/services/error-message.service.mjs +16 -16
- package/esm2020/lib/services/geolocation.service.mjs +23 -23
- package/esm2020/lib/services/index.mjs +12 -12
- package/esm2020/lib/services/loading.service.mjs +15 -15
- package/esm2020/lib/services/menu.service.mjs +147 -147
- package/esm2020/lib/services/modal.service.mjs +15 -15
- package/esm2020/lib/services/profile.service.mjs +100 -100
- package/esm2020/lib/services/storage.service.mjs +108 -108
- package/esm2020/lib/shared/shared.module.mjs +17 -17
- package/esm2020/lib/utils/cpf-cnpj-validator.util.mjs +116 -116
- package/esm2020/lib/utils/file.util.mjs +15 -15
- package/esm2020/lib/utils/index.mjs +8 -8
- package/esm2020/lib/utils/mask.util.mjs +66 -66
- package/esm2020/lib/utils/object.util.mjs +27 -27
- package/esm2020/lib/utils/string.util.mjs +16 -16
- package/esm2020/lib/utils/validation.util.mjs +234 -234
- package/esm2020/lib/utils/window.util.mjs +9 -9
- package/esm2020/ngx-vector-components.mjs +4 -4
- package/esm2020/public-api.mjs +9 -9
- package/fesm2015/ngx-vector-components.mjs +4219 -4217
- package/fesm2015/ngx-vector-components.mjs.map +1 -1
- package/fesm2020/ngx-vector-components.mjs +4196 -4194
- package/fesm2020/ngx-vector-components.mjs.map +1 -1
- package/lib/components/badge/badge.component.d.ts +15 -15
- package/lib/components/badge/badge.module.d.ts +9 -9
- package/lib/components/badge/index.d.ts +2 -2
- package/lib/components/breadcrumb/breadcrumb.component.d.ts +19 -19
- package/lib/components/breadcrumb/breadcrumb.module.d.ts +8 -8
- package/lib/components/breadcrumb/index.d.ts +2 -2
- package/lib/components/crud-base/crud-base.component.d.ts +20 -20
- package/lib/components/crud-base/index.d.ts +1 -1
- package/lib/components/crud-footer/crud-footer.component.d.ts +13 -13
- package/lib/components/crud-footer/crud-footer.module.d.ts +9 -9
- package/lib/components/crud-footer/index.d.ts +2 -2
- package/lib/components/crud-header/crud-header.component.d.ts +11 -11
- package/lib/components/crud-header/crud-header.module.d.ts +9 -9
- package/lib/components/crud-header/index.d.ts +2 -2
- package/lib/components/crud-history/crud-history.component.d.ts +12 -12
- package/lib/components/crud-history/crud-history.module.d.ts +10 -10
- package/lib/components/crud-history/index.d.ts +2 -2
- package/lib/components/fields/button/button.component.d.ts +17 -17
- package/lib/components/fields/button/index.d.ts +1 -1
- package/lib/components/fields/calendar-field/calendar-field.component.d.ts +23 -23
- package/lib/components/fields/calendar-field/index.d.ts +1 -1
- package/lib/components/fields/checkbox-field/checkbox-field.component.d.ts +19 -19
- package/lib/components/fields/checkbox-field/index.d.ts +1 -1
- package/lib/components/fields/currency-field/currency-field.component.d.ts +27 -27
- package/lib/components/fields/currency-field/index.d.ts +1 -1
- package/lib/components/fields/data-table/data-table.component.d.ts +78 -78
- package/lib/components/fields/data-table/index.d.ts +1 -1
- package/lib/components/fields/dropdown-field/dropdown-field.component.d.ts +50 -50
- package/lib/components/fields/dropdown-field/index.d.ts +1 -1
- package/lib/components/fields/field-error-message/field-error-message.component.d.ts +10 -10
- package/lib/components/fields/field-error-message/index.d.ts +1 -1
- package/lib/components/fields/fields.module.d.ts +46 -46
- package/lib/components/fields/filters/filters.component.d.ts +61 -61
- package/lib/components/fields/filters/index.d.ts +1 -1
- package/lib/components/fields/index.d.ts +18 -18
- package/lib/components/fields/input-number-field/index.d.ts +1 -1
- package/lib/components/fields/input-number-field/input-number-field.component.d.ts +27 -27
- package/lib/components/fields/multiselect-field/index.d.ts +1 -1
- package/lib/components/fields/multiselect-field/multiselect-field.component.d.ts +15 -15
- package/lib/components/fields/percentage-field/index.d.ts +1 -1
- package/lib/components/fields/percentage-field/percentage-field.component.d.ts +16 -16
- package/lib/components/fields/radio-button-field/index.d.ts +1 -1
- package/lib/components/fields/radio-button-field/radio-button-field.component.d.ts +21 -21
- package/lib/components/fields/range-value/index.d.ts +1 -1
- package/lib/components/fields/range-value/range-value.component.d.ts +18 -18
- package/lib/components/fields/search-field/index.d.ts +1 -1
- package/lib/components/fields/search-field/search-field.component.d.ts +14 -14
- package/lib/components/fields/select-button-field/index.d.ts +1 -1
- package/lib/components/fields/select-button-field/select-button-field.component.d.ts +9 -9
- package/lib/components/fields/text-field/index.d.ts +1 -1
- package/lib/components/fields/text-field/text-field.component.d.ts +49 -48
- package/lib/components/fields/textarea-field/index.d.ts +1 -1
- package/lib/components/fields/textarea-field/textarea-field.component.d.ts +20 -20
- package/lib/components/generic-error-modal/generic-error-modal.component.d.ts +14 -14
- package/lib/components/generic-error-modal/generic-error-modal.module.d.ts +10 -10
- package/lib/components/generic-error-modal/index.d.ts +2 -2
- package/lib/components/generic-modal/generic-modal.component.d.ts +24 -24
- package/lib/components/generic-modal/generic-modal.module.d.ts +10 -10
- package/lib/components/generic-modal/index.d.ts +2 -2
- package/lib/components/index.d.ts +12 -12
- package/lib/components/menu/index.d.ts +3 -3
- package/lib/components/menu/menu.component.d.ts +54 -54
- package/lib/components/menu/menu.module.d.ts +10 -10
- package/lib/components/menu/sub-menus-list/sub-menus-list.component.d.ts +14 -14
- package/lib/components/panel/index.d.ts +2 -2
- package/lib/components/panel/panel.component.d.ts +8 -8
- package/lib/components/panel/panel.module.d.ts +9 -9
- package/lib/components/top-bar/index.d.ts +2 -2
- package/lib/components/top-bar/top-bar.component.d.ts +38 -38
- package/lib/components/top-bar/top-bar.module.d.ts +9 -9
- package/lib/guards/crud-list-has-items.guard.d.ts +10 -10
- package/lib/guards/get-token-by-guid.guard.d.ts +15 -15
- package/lib/guards/has-permission.guard.d.ts +13 -13
- package/lib/guards/index.d.ts +5 -5
- package/lib/guards/role.guard.d.ts +11 -11
- package/lib/guards/token-is-present.guard.d.ts +11 -11
- package/lib/interceptors/http-interceptor.d.ts +31 -31
- package/lib/interceptors/index.d.ts +1 -1
- package/lib/models/app-name.enum.d.ts +7 -7
- package/lib/models/boolean-type.enum.d.ts +4 -4
- package/lib/models/crud-history.model.d.ts +13 -13
- package/lib/models/crud-mode.enum.d.ts +5 -5
- package/lib/models/data-table.model.d.ts +62 -62
- package/lib/models/document-type.enum.d.ts +4 -4
- package/lib/models/filters.model.d.ts +4 -4
- package/lib/models/generic-modal.model.d.ts +13 -13
- package/lib/models/http-response.model.d.ts +40 -40
- package/lib/models/index.d.ts +15 -15
- package/lib/models/ip-info.enum.d.ts +6 -6
- package/lib/models/list-item.model.d.ts +6 -6
- package/lib/models/menu-item.model.d.ts +16 -16
- package/lib/models/message-status.enum.d.ts +6 -6
- package/lib/models/profile.model.d.ts +238 -238
- package/lib/models/role.enum.d.ts +3 -3
- package/lib/models/status.enum.d.ts +6 -6
- package/lib/models/view.enum.d.ts +5 -5
- package/lib/pipes/currency-brl.pipe.d.ts +7 -7
- package/lib/pipes/format-document.pipe.d.ts +7 -7
- package/lib/pipes/index.d.ts +7 -7
- package/lib/pipes/mask.pipe.d.ts +7 -7
- package/lib/pipes/not-hidden.pipe.d.ts +7 -7
- package/lib/pipes/only-active.pipe.d.ts +7 -7
- package/lib/pipes/pipes.module.d.ts +12 -12
- package/lib/pipes/remove-last-child.pipe.d.ts +7 -7
- package/lib/resolvers/get-selected-crud-item.resolver.d.ts +10 -10
- package/lib/resolvers/index.d.ts +1 -1
- package/lib/services/auth.service.d.ts +24 -24
- package/lib/services/base-dropdown.d.ts +7 -7
- package/lib/services/crud-base.service.d.ts +7 -7
- package/lib/services/enum.service.d.ts +13 -13
- package/lib/services/error-message.service.d.ts +8 -8
- package/lib/services/geolocation.service.d.ts +13 -13
- package/lib/services/index.d.ts +11 -11
- package/lib/services/loading.service.d.ts +7 -7
- package/lib/services/menu.service.d.ts +37 -37
- package/lib/services/modal.service.d.ts +7 -7
- package/lib/services/profile.service.d.ts +26 -26
- package/lib/services/storage.service.d.ts +43 -43
- package/lib/shared/shared.module.d.ts +9 -9
- package/lib/utils/cpf-cnpj-validator.util.d.ts +5 -5
- package/lib/utils/file.util.d.ts +4 -4
- package/lib/utils/index.d.ts +7 -7
- package/lib/utils/mask.util.d.ts +17 -17
- package/lib/utils/object.util.d.ts +5 -5
- package/lib/utils/string.util.d.ts +4 -4
- package/lib/utils/validation.util.d.ts +17 -17
- package/lib/utils/window.util.d.ts +4 -4
- package/ngx-vector-components.d.ts +5 -5
- package/package.json +1 -1
- package/public-api.d.ts +8 -8
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
export class CpfCnpjValidator {
|
|
2
|
-
static validateCpfOrCnpj(taxId) {
|
|
3
|
-
taxId = taxId.replace(/[^0-9]+/g, '');
|
|
4
|
-
if (taxId.length == 11) {
|
|
5
|
-
return this.validateCpf(taxId);
|
|
6
|
-
}
|
|
7
|
-
else if (taxId.length == 14) {
|
|
8
|
-
return this.validateCnpj(taxId);
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
static validateCpf(cpf) {
|
|
15
|
-
if (!cpf?.trim() || cpf.length !== 11 || !cpf.match('^[0-9]+$')) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
if ([
|
|
19
|
-
'00000000000',
|
|
20
|
-
'11111111111',
|
|
21
|
-
'22222222222',
|
|
22
|
-
'33333333333',
|
|
23
|
-
'44444444444',
|
|
24
|
-
'55555555555',
|
|
25
|
-
'66666666666',
|
|
26
|
-
'77777777777',
|
|
27
|
-
'88888888888',
|
|
28
|
-
'99999999999',
|
|
29
|
-
].includes(cpf)) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
let num = 0;
|
|
33
|
-
let caracter = '';
|
|
34
|
-
let counter = 10;
|
|
35
|
-
let sum = 0;
|
|
36
|
-
let rest = 0;
|
|
37
|
-
let firstDigit = 0;
|
|
38
|
-
let secondDigit = 0;
|
|
39
|
-
let cpfAux = '';
|
|
40
|
-
cpfAux = cpf.substring(0, 9);
|
|
41
|
-
for (let i = 0; i < 9; i++) {
|
|
42
|
-
caracter = cpfAux.charAt(i);
|
|
43
|
-
num = Number(caracter);
|
|
44
|
-
sum = sum + num * counter;
|
|
45
|
-
counter--;
|
|
46
|
-
}
|
|
47
|
-
rest = sum % 11;
|
|
48
|
-
firstDigit = 11 - rest;
|
|
49
|
-
if (firstDigit > 9) {
|
|
50
|
-
firstDigit = 0;
|
|
51
|
-
}
|
|
52
|
-
counter = 11;
|
|
53
|
-
sum = 0;
|
|
54
|
-
cpfAux = cpfAux + firstDigit;
|
|
55
|
-
for (let i = 0; i < 10; i++) {
|
|
56
|
-
caracter = cpfAux.charAt(i);
|
|
57
|
-
num = Number(caracter);
|
|
58
|
-
sum = sum + num * counter;
|
|
59
|
-
counter--;
|
|
60
|
-
}
|
|
61
|
-
rest = sum % 11;
|
|
62
|
-
secondDigit = 11 - rest;
|
|
63
|
-
if (secondDigit > 9) {
|
|
64
|
-
secondDigit = 0;
|
|
65
|
-
}
|
|
66
|
-
cpfAux = cpfAux + secondDigit;
|
|
67
|
-
return cpf === cpfAux;
|
|
68
|
-
}
|
|
69
|
-
static validateCnpj(cnpj) {
|
|
70
|
-
cnpj = cnpj.replace(/[^\d]+/g, '');
|
|
71
|
-
if (cnpj == '')
|
|
72
|
-
return false;
|
|
73
|
-
if (cnpj.length != 14)
|
|
74
|
-
return false;
|
|
75
|
-
if ([
|
|
76
|
-
'00000000000000',
|
|
77
|
-
'11111111111111',
|
|
78
|
-
'22222222222222',
|
|
79
|
-
'33333333333333',
|
|
80
|
-
'44444444444444',
|
|
81
|
-
'55555555555555',
|
|
82
|
-
'66666666666666',
|
|
83
|
-
'77777777777777',
|
|
84
|
-
'88888888888888',
|
|
85
|
-
'99999999999999',
|
|
86
|
-
].includes(cnpj))
|
|
87
|
-
return false;
|
|
88
|
-
let size = cnpj.length - 2;
|
|
89
|
-
let numbers = cnpj.substring(0, size);
|
|
90
|
-
let digits = cnpj.substring(size);
|
|
91
|
-
let sum = 0;
|
|
92
|
-
let pos = size - 7;
|
|
93
|
-
for (let i = size; i >= 1; i--) {
|
|
94
|
-
sum += parseInt(numbers.charAt(size - i)) * pos--;
|
|
95
|
-
if (pos < 2)
|
|
96
|
-
pos = 9;
|
|
97
|
-
}
|
|
98
|
-
let resultado = sum % 11 < 2 ? 0 : 11 - (sum % 11);
|
|
99
|
-
if (resultado != parseInt(digits.charAt(0)))
|
|
100
|
-
return false;
|
|
101
|
-
size = size + 1;
|
|
102
|
-
numbers = cnpj.substring(0, size);
|
|
103
|
-
sum = 0;
|
|
104
|
-
pos = size - 7;
|
|
105
|
-
for (let i = size; i >= 1; i--) {
|
|
106
|
-
sum += parseInt(numbers.charAt(size - i)) * pos--;
|
|
107
|
-
if (pos < 2)
|
|
108
|
-
pos = 9;
|
|
109
|
-
}
|
|
110
|
-
resultado = sum % 11 < 2 ? 0 : 11 - (sum % 11);
|
|
111
|
-
if (resultado != parseInt(digits.charAt(1)))
|
|
112
|
-
return false;
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class CpfCnpjValidator {
|
|
2
|
+
static validateCpfOrCnpj(taxId) {
|
|
3
|
+
taxId = taxId.replace(/[^0-9]+/g, '');
|
|
4
|
+
if (taxId.length == 11) {
|
|
5
|
+
return this.validateCpf(taxId);
|
|
6
|
+
}
|
|
7
|
+
else if (taxId.length == 14) {
|
|
8
|
+
return this.validateCnpj(taxId);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
static validateCpf(cpf) {
|
|
15
|
+
if (!cpf?.trim() || cpf.length !== 11 || !cpf.match('^[0-9]+$')) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if ([
|
|
19
|
+
'00000000000',
|
|
20
|
+
'11111111111',
|
|
21
|
+
'22222222222',
|
|
22
|
+
'33333333333',
|
|
23
|
+
'44444444444',
|
|
24
|
+
'55555555555',
|
|
25
|
+
'66666666666',
|
|
26
|
+
'77777777777',
|
|
27
|
+
'88888888888',
|
|
28
|
+
'99999999999',
|
|
29
|
+
].includes(cpf)) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
let num = 0;
|
|
33
|
+
let caracter = '';
|
|
34
|
+
let counter = 10;
|
|
35
|
+
let sum = 0;
|
|
36
|
+
let rest = 0;
|
|
37
|
+
let firstDigit = 0;
|
|
38
|
+
let secondDigit = 0;
|
|
39
|
+
let cpfAux = '';
|
|
40
|
+
cpfAux = cpf.substring(0, 9);
|
|
41
|
+
for (let i = 0; i < 9; i++) {
|
|
42
|
+
caracter = cpfAux.charAt(i);
|
|
43
|
+
num = Number(caracter);
|
|
44
|
+
sum = sum + num * counter;
|
|
45
|
+
counter--;
|
|
46
|
+
}
|
|
47
|
+
rest = sum % 11;
|
|
48
|
+
firstDigit = 11 - rest;
|
|
49
|
+
if (firstDigit > 9) {
|
|
50
|
+
firstDigit = 0;
|
|
51
|
+
}
|
|
52
|
+
counter = 11;
|
|
53
|
+
sum = 0;
|
|
54
|
+
cpfAux = cpfAux + firstDigit;
|
|
55
|
+
for (let i = 0; i < 10; i++) {
|
|
56
|
+
caracter = cpfAux.charAt(i);
|
|
57
|
+
num = Number(caracter);
|
|
58
|
+
sum = sum + num * counter;
|
|
59
|
+
counter--;
|
|
60
|
+
}
|
|
61
|
+
rest = sum % 11;
|
|
62
|
+
secondDigit = 11 - rest;
|
|
63
|
+
if (secondDigit > 9) {
|
|
64
|
+
secondDigit = 0;
|
|
65
|
+
}
|
|
66
|
+
cpfAux = cpfAux + secondDigit;
|
|
67
|
+
return cpf === cpfAux;
|
|
68
|
+
}
|
|
69
|
+
static validateCnpj(cnpj) {
|
|
70
|
+
cnpj = cnpj.replace(/[^\d]+/g, '');
|
|
71
|
+
if (cnpj == '')
|
|
72
|
+
return false;
|
|
73
|
+
if (cnpj.length != 14)
|
|
74
|
+
return false;
|
|
75
|
+
if ([
|
|
76
|
+
'00000000000000',
|
|
77
|
+
'11111111111111',
|
|
78
|
+
'22222222222222',
|
|
79
|
+
'33333333333333',
|
|
80
|
+
'44444444444444',
|
|
81
|
+
'55555555555555',
|
|
82
|
+
'66666666666666',
|
|
83
|
+
'77777777777777',
|
|
84
|
+
'88888888888888',
|
|
85
|
+
'99999999999999',
|
|
86
|
+
].includes(cnpj))
|
|
87
|
+
return false;
|
|
88
|
+
let size = cnpj.length - 2;
|
|
89
|
+
let numbers = cnpj.substring(0, size);
|
|
90
|
+
let digits = cnpj.substring(size);
|
|
91
|
+
let sum = 0;
|
|
92
|
+
let pos = size - 7;
|
|
93
|
+
for (let i = size; i >= 1; i--) {
|
|
94
|
+
sum += parseInt(numbers.charAt(size - i)) * pos--;
|
|
95
|
+
if (pos < 2)
|
|
96
|
+
pos = 9;
|
|
97
|
+
}
|
|
98
|
+
let resultado = sum % 11 < 2 ? 0 : 11 - (sum % 11);
|
|
99
|
+
if (resultado != parseInt(digits.charAt(0)))
|
|
100
|
+
return false;
|
|
101
|
+
size = size + 1;
|
|
102
|
+
numbers = cnpj.substring(0, size);
|
|
103
|
+
sum = 0;
|
|
104
|
+
pos = size - 7;
|
|
105
|
+
for (let i = size; i >= 1; i--) {
|
|
106
|
+
sum += parseInt(numbers.charAt(size - i)) * pos--;
|
|
107
|
+
if (pos < 2)
|
|
108
|
+
pos = 9;
|
|
109
|
+
}
|
|
110
|
+
resultado = sum % 11 < 2 ? 0 : 11 - (sum % 11);
|
|
111
|
+
if (resultado != parseInt(digits.charAt(1)))
|
|
112
|
+
return false;
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BmLWNucGotdmFsaWRhdG9yLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9jcGYtY25wai12YWxpZGF0b3IudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFhO1FBQzNDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV0QyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQzthQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUNuQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMvRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFDRTtZQUNFLGFBQWE7WUFDYixhQUFhO1lBQ2IsYUFBYTtZQUNiLGFBQWE7WUFDYixhQUFhO1lBQ2IsYUFBYTtZQUNiLGFBQWE7WUFDYixhQUFhO1lBQ2IsYUFBYTtZQUNiLGFBQWE7U0FDZCxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFDZjtZQUNBLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLEdBQUcsR0FBVyxDQUFDLENBQUM7UUFD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LEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxTQUFTLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUxRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDcGZDbnBqVmFsaWRhdG9yIHtcclxuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlQ3BmT3JDbnBqKHRheElkOiBzdHJpbmcpIHtcclxuICAgIHRheElkID0gdGF4SWQucmVwbGFjZSgvW14wLTldKy9nLCAnJyk7XHJcblxyXG4gICAgaWYgKHRheElkLmxlbmd0aCA9PSAxMSkge1xyXG4gICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUNwZih0YXhJZCk7XHJcbiAgICB9IGVsc2UgaWYgKHRheElkLmxlbmd0aCA9PSAxNCkge1xyXG4gICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUNucGoodGF4SWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZUNwZihjcGY6IHN0cmluZykge1xyXG4gICAgaWYgKCFjcGY/LnRyaW0oKSB8fCBjcGYubGVuZ3RoICE9PSAxMSB8fCAhY3BmLm1hdGNoKCdeWzAtOV0rJCcpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIFtcclxuICAgICAgICAnMDAwMDAwMDAwMDAnLFxyXG4gICAgICAgICcxMTExMTExMTExMScsXHJcbiAgICAgICAgJzIyMjIyMjIyMjIyJyxcclxuICAgICAgICAnMzMzMzMzMzMzMzMnLFxyXG4gICAgICAgICc0NDQ0NDQ0NDQ0NCcsXHJcbiAgICAgICAgJzU1NTU1NTU1NTU1JyxcclxuICAgICAgICAnNjY2NjY2NjY2NjYnLFxyXG4gICAgICAgICc3Nzc3Nzc3Nzc3NycsXHJcbiAgICAgICAgJzg4ODg4ODg4ODg4JyxcclxuICAgICAgICAnOTk5OTk5OTk5OTknLFxyXG4gICAgICBdLmluY2x1ZGVzKGNwZilcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBsZXQgbnVtOiBudW1iZXIgPSAwO1xyXG4gICAgbGV0IGNhcmFjdGVyOiBzdHJpbmcgPSAnJztcclxuICAgIGxldCBjb3VudGVyOiBudW1iZXIgPSAxMDtcclxuICAgIGxldCBzdW06IG51bWJlciA9IDA7XHJcbiAgICBsZXQgcmVzdDogbnVtYmVyID0gMDtcclxuICAgIGxldCBmaXJzdERpZ2l0OiBudW1iZXIgPSAwO1xyXG4gICAgbGV0IHNlY29uZERpZ2l0OiBudW1iZXIgPSAwO1xyXG4gICAgbGV0IGNwZkF1eDogc3RyaW5nID0gJyc7XHJcbiAgICBjcGZBdXggPSBjcGYuc3Vic3RyaW5nKDAsIDkpO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IDk7IGkrKykge1xyXG4gICAgICBjYXJhY3RlciA9IGNwZkF1eC5jaGFyQXQoaSk7XHJcbiAgICAgIG51bSA9IE51bWJlcihjYXJhY3Rlcik7XHJcbiAgICAgIHN1bSA9IHN1bSArIG51bSAqIGNvdW50ZXI7XHJcbiAgICAgIGNvdW50ZXItLTtcclxuICAgIH1cclxuICAgIHJlc3QgPSBzdW0gJSAxMTtcclxuICAgIGZpcnN0RGlnaXQgPSAxMSAtIHJlc3Q7XHJcbiAgICBpZiAoZmlyc3REaWdpdCA+IDkpIHtcclxuICAgICAgZmlyc3REaWdpdCA9IDA7XHJcbiAgICB9XHJcbiAgICBjb3VudGVyID0gMTE7XHJcbiAgICBzdW0gPSAwO1xyXG4gICAgY3BmQXV4ID0gY3BmQXV4ICsgZmlyc3REaWdpdDtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgIGNhcmFjdGVyID0gY3BmQXV4LmNoYXJBdChpKTtcclxuICAgICAgbnVtID0gTnVtYmVyKGNhcmFjdGVyKTtcclxuICAgICAgc3VtID0gc3VtICsgbnVtICogY291bnRlcjtcclxuICAgICAgY291bnRlci0tO1xyXG4gICAgfVxyXG4gICAgcmVzdCA9IHN1bSAlIDExO1xyXG4gICAgc2Vjb25kRGlnaXQgPSAxMSAtIHJlc3Q7XHJcbiAgICBpZiAoc2Vjb25kRGlnaXQgPiA5KSB7XHJcbiAgICAgIHNlY29uZERpZ2l0ID0gMDtcclxuICAgIH1cclxuICAgIGNwZkF1eCA9IGNwZkF1eCArIHNlY29uZERpZ2l0O1xyXG4gICAgcmV0dXJuIGNwZiA9PT0gY3BmQXV4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZUNucGooY25wajogc3RyaW5nKSB7XHJcbiAgICBjbnBqID0gY25wai5yZXBsYWNlKC9bXlxcZF0rL2csICcnKTtcclxuXHJcbiAgICBpZiAoY25waiA9PSAnJykgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChjbnBqLmxlbmd0aCAhPSAxNCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgW1xyXG4gICAgICAgICcwMDAwMDAwMDAwMDAwMCcsXHJcbiAgICAgICAgJzExMTExMTExMTExMTExJyxcclxuICAgICAgICAnMjIyMjIyMjIyMjIyMjInLFxyXG4gICAgICAgICczMzMzMzMzMzMzMzMzMycsXHJcbiAgICAgICAgJzQ0NDQ0NDQ0NDQ0NDQ0JyxcclxuICAgICAgICAnNTU1NTU1NTU1NTU1NTUnLFxyXG4gICAgICAgICc2NjY2NjY2NjY2NjY2NicsXHJcbiAgICAgICAgJzc3Nzc3Nzc3Nzc3Nzc3JyxcclxuICAgICAgICAnODg4ODg4ODg4ODg4ODgnLFxyXG4gICAgICAgICc5OTk5OTk5OTk5OTk5OScsXHJcbiAgICAgIF0uaW5jbHVkZXMoY25wailcclxuICAgIClcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGxldCBzaXplID0gY25wai5sZW5ndGggLSAyO1xyXG4gICAgbGV0IG51bWJlcnMgPSBjbnBqLnN1YnN0cmluZygwLCBzaXplKTtcclxuICAgIGxldCBkaWdpdHMgPSBjbnBqLnN1YnN0cmluZyhzaXplKTtcclxuICAgIGxldCBzdW0gPSAwO1xyXG4gICAgbGV0IHBvcyA9IHNpemUgLSA3O1xyXG4gICAgZm9yIChsZXQgaSA9IHNpemU7IGkgPj0gMTsgaS0tKSB7XHJcbiAgICAgIHN1bSArPSBwYXJzZUludChudW1iZXJzLmNoYXJBdChzaXplIC0gaSkpICogcG9zLS07XHJcbiAgICAgIGlmIChwb3MgPCAyKSBwb3MgPSA5O1xyXG4gICAgfVxyXG4gICAgbGV0IHJlc3VsdGFkbyA9IHN1bSAlIDExIDwgMiA/IDAgOiAxMSAtIChzdW0gJSAxMSk7XHJcbiAgICBpZiAocmVzdWx0YWRvICE9IHBhcnNlSW50KGRpZ2l0cy5jaGFyQXQoMCkpKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgc2l6ZSA9IHNpemUgKyAxO1xyXG4gICAgbnVtYmVycyA9IGNucGouc3Vic3RyaW5nKDAsIHNpemUpO1xyXG4gICAgc3VtID0gMDtcclxuICAgIHBvcyA9IHNpemUgLSA3O1xyXG4gICAgZm9yIChsZXQgaSA9IHNpemU7IGkgPj0gMTsgaS0tKSB7XHJcbiAgICAgIHN1bSArPSBwYXJzZUludChudW1iZXJzLmNoYXJBdChzaXplIC0gaSkpICogcG9zLS07XHJcbiAgICAgIGlmIChwb3MgPCAyKSBwb3MgPSA5O1xyXG4gICAgfVxyXG4gICAgcmVzdWx0YWRvID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gKHN1bSAlIDExKTtcclxuICAgIGlmIChyZXN1bHRhZG8gIT0gcGFyc2VJbnQoZGlnaXRzLmNoYXJBdCgxKSkpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { saveAs } from 'file-saver';
|
|
2
|
-
export class FileUtil {
|
|
3
|
-
static getBlob(base64StringData, mimeType) {
|
|
4
|
-
const decodedData = atob(base64StringData);
|
|
5
|
-
const byteNumbers = new Array(decodedData.length);
|
|
6
|
-
for (let i = 0; i < decodedData.length; i++) {
|
|
7
|
-
byteNumbers[i] = decodedData.charCodeAt(i);
|
|
8
|
-
}
|
|
9
|
-
return new Blob([new Uint8Array(byteNumbers)], { type: mimeType });
|
|
10
|
-
}
|
|
11
|
-
static downloadFile(mimeType, base64StringData, fileName) {
|
|
12
|
-
saveAs(FileUtil.getBlob(base64StringData, mimeType), fileName);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { saveAs } from 'file-saver';
|
|
2
|
+
export class FileUtil {
|
|
3
|
+
static getBlob(base64StringData, mimeType) {
|
|
4
|
+
const decodedData = atob(base64StringData);
|
|
5
|
+
const byteNumbers = new Array(decodedData.length);
|
|
6
|
+
for (let i = 0; i < decodedData.length; i++) {
|
|
7
|
+
byteNumbers[i] = decodedData.charCodeAt(i);
|
|
8
|
+
}
|
|
9
|
+
return new Blob([new Uint8Array(byteNumbers)], { type: mimeType });
|
|
10
|
+
}
|
|
11
|
+
static downloadFile(mimeType, base64StringData, fileName) {
|
|
12
|
+
saveAs(FileUtil.getBlob(base64StringData, mimeType), fileName);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvdXRpbHMvZmlsZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFcEMsTUFBTSxPQUFPLFFBQVE7SUFDWixNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUF3QixFQUFFLFFBQWdCO1FBQzlELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNNLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBZ0IsRUFBRSxnQkFBd0IsRUFBRSxRQUFnQjtRQUNyRixNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXRpbCB7XHJcbiAgcHVibGljIHN0YXRpYyBnZXRCbG9iKGJhc2U2NFN0cmluZ0RhdGE6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGVjb2RlZERhdGEgPSBhdG9iKGJhc2U2NFN0cmluZ0RhdGEpO1xyXG4gICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoZGVjb2RlZERhdGEubGVuZ3RoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZERhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgYnl0ZU51bWJlcnNbaV0gPSBkZWNvZGVkRGF0YS5jaGFyQ29kZUF0KGkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFtuZXcgVWludDhBcnJheShieXRlTnVtYmVycyldLCB7IHR5cGU6IG1pbWVUeXBlIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgc3RhdGljIGRvd25sb2FkRmlsZShtaW1lVHlwZTogc3RyaW5nLCBiYXNlNjRTdHJpbmdEYXRhOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIHNhdmVBcyhGaWxlVXRpbC5nZXRCbG9iKGJhc2U2NFN0cmluZ0RhdGEsIG1pbWVUeXBlKSwgZmlsZU5hbWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from './cpf-cnpj-validator.util';
|
|
2
|
-
export * from './file.util';
|
|
3
|
-
export * from './mask.util';
|
|
4
|
-
export * from './object.util';
|
|
5
|
-
export * from './string.util';
|
|
6
|
-
export * from './validation.util';
|
|
7
|
-
export * from './window.util';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './cpf-cnpj-validator.util';
|
|
2
|
+
export * from './file.util';
|
|
3
|
+
export * from './mask.util';
|
|
4
|
+
export * from './object.util';
|
|
5
|
+
export * from './string.util';
|
|
6
|
+
export * from './validation.util';
|
|
7
|
+
export * from './window.util';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NwZi1jbnBqLXZhbGlkYXRvci51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlLnV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL21hc2sudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0LnV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0cmluZy51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0aW9uLnV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dpbmRvdy51dGlsJztcclxuIl19
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
const CPF_PATTERN = '###.###.###-##';
|
|
2
|
-
const CNPJ_PATTERN = '##.###.###/####-##';
|
|
3
|
-
const BOLETO_PATTERN = '#####.##### #####.###### #####.###### # ############## #';
|
|
4
|
-
const POSTALCODE_PATTERN = '#####-###';
|
|
5
|
-
const CELLPHONE_PATTERN = '(##) #####-####';
|
|
6
|
-
const PHONE_PATTERN = '(##) ####-####';
|
|
7
|
-
const PLATE_PATTERN = '###-####';
|
|
8
|
-
const HOURS_MINUTES_PATTERN = '##:##';
|
|
9
|
-
export class MaskUtil {
|
|
10
|
-
static formatDocument(stringValue) {
|
|
11
|
-
if (!stringValue) {
|
|
12
|
-
return '';
|
|
13
|
-
}
|
|
14
|
-
if (stringValue.length === 11) {
|
|
15
|
-
return this.doMaskString(stringValue, CPF_PATTERN);
|
|
16
|
-
}
|
|
17
|
-
if (stringValue.length === 14) {
|
|
18
|
-
return this.doMaskString(stringValue, CNPJ_PATTERN);
|
|
19
|
-
}
|
|
20
|
-
return stringValue;
|
|
21
|
-
}
|
|
22
|
-
static formatPostalCode(stringValue) {
|
|
23
|
-
return this.doMaskString(stringValue, POSTALCODE_PATTERN);
|
|
24
|
-
}
|
|
25
|
-
static formatBoleto(stringValue) {
|
|
26
|
-
return this.doMaskString(stringValue, BOLETO_PATTERN);
|
|
27
|
-
}
|
|
28
|
-
static formatPhone(stringValue) {
|
|
29
|
-
if (!stringValue) {
|
|
30
|
-
return '';
|
|
31
|
-
}
|
|
32
|
-
if (stringValue.length === 11) {
|
|
33
|
-
return this.doMaskString(stringValue, CELLPHONE_PATTERN);
|
|
34
|
-
}
|
|
35
|
-
else if (stringValue.length === 10) {
|
|
36
|
-
return this.doMaskString(stringValue, PHONE_PATTERN);
|
|
37
|
-
}
|
|
38
|
-
return stringValue;
|
|
39
|
-
}
|
|
40
|
-
static formatHoursMinutes(stringValue) {
|
|
41
|
-
return this.doMaskString(stringValue, HOURS_MINUTES_PATTERN);
|
|
42
|
-
}
|
|
43
|
-
static formatPlate(stringValue) {
|
|
44
|
-
return this.doMaskString(stringValue, PLATE_PATTERN);
|
|
45
|
-
}
|
|
46
|
-
static doMaskString(str, pattern) {
|
|
47
|
-
if (!str?.trim()) {
|
|
48
|
-
return '';
|
|
49
|
-
}
|
|
50
|
-
if (!pattern || !pattern.includes('#')) {
|
|
51
|
-
console.warn('Utilize uma máscara válida. Ex.: (##) #####-####');
|
|
52
|
-
return str;
|
|
53
|
-
}
|
|
54
|
-
let i = 0;
|
|
55
|
-
return pattern.replace(/#/g, () => str[i++]);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
MaskUtil.CPF_TEXT_FIELD_PATTERN = '999.999.999-99';
|
|
59
|
-
MaskUtil.CNPJ_TEXT_FIELD_PATTERN = '99.999.999/9999-99';
|
|
60
|
-
MaskUtil.BOLETO_TEXT_FIELD_PATTERN = '99999.99999 99999.999999 99999.999999 9 99999999999999 9';
|
|
61
|
-
MaskUtil.CELLPHONE_TEXT_FIELD_PATTERN = '(99) 99999-9999';
|
|
62
|
-
MaskUtil.PHONE_TEXT_FIELD_PATTERN = '(99) 9999-9999';
|
|
63
|
-
MaskUtil.POSTALCODE_TEXT_FIELD_PATTERN = '99999-999';
|
|
64
|
-
MaskUtil.PLATE_FIELD_PATTERN = 'aaa-9*99';
|
|
65
|
-
MaskUtil.HOURS_MINUTES_FIELD_PATTERN = '99:99';
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
const CPF_PATTERN = '###.###.###-##';
|
|
2
|
+
const CNPJ_PATTERN = '##.###.###/####-##';
|
|
3
|
+
const BOLETO_PATTERN = '#####.##### #####.###### #####.###### # ############## #';
|
|
4
|
+
const POSTALCODE_PATTERN = '#####-###';
|
|
5
|
+
const CELLPHONE_PATTERN = '(##) #####-####';
|
|
6
|
+
const PHONE_PATTERN = '(##) ####-####';
|
|
7
|
+
const PLATE_PATTERN = '###-####';
|
|
8
|
+
const HOURS_MINUTES_PATTERN = '##:##';
|
|
9
|
+
export class MaskUtil {
|
|
10
|
+
static formatDocument(stringValue) {
|
|
11
|
+
if (!stringValue) {
|
|
12
|
+
return '';
|
|
13
|
+
}
|
|
14
|
+
if (stringValue.length === 11) {
|
|
15
|
+
return this.doMaskString(stringValue, CPF_PATTERN);
|
|
16
|
+
}
|
|
17
|
+
if (stringValue.length === 14) {
|
|
18
|
+
return this.doMaskString(stringValue, CNPJ_PATTERN);
|
|
19
|
+
}
|
|
20
|
+
return stringValue;
|
|
21
|
+
}
|
|
22
|
+
static formatPostalCode(stringValue) {
|
|
23
|
+
return this.doMaskString(stringValue, POSTALCODE_PATTERN);
|
|
24
|
+
}
|
|
25
|
+
static formatBoleto(stringValue) {
|
|
26
|
+
return this.doMaskString(stringValue, BOLETO_PATTERN);
|
|
27
|
+
}
|
|
28
|
+
static formatPhone(stringValue) {
|
|
29
|
+
if (!stringValue) {
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
32
|
+
if (stringValue.length === 11) {
|
|
33
|
+
return this.doMaskString(stringValue, CELLPHONE_PATTERN);
|
|
34
|
+
}
|
|
35
|
+
else if (stringValue.length === 10) {
|
|
36
|
+
return this.doMaskString(stringValue, PHONE_PATTERN);
|
|
37
|
+
}
|
|
38
|
+
return stringValue;
|
|
39
|
+
}
|
|
40
|
+
static formatHoursMinutes(stringValue) {
|
|
41
|
+
return this.doMaskString(stringValue, HOURS_MINUTES_PATTERN);
|
|
42
|
+
}
|
|
43
|
+
static formatPlate(stringValue) {
|
|
44
|
+
return this.doMaskString(stringValue, PLATE_PATTERN);
|
|
45
|
+
}
|
|
46
|
+
static doMaskString(str, pattern) {
|
|
47
|
+
if (!str?.trim()) {
|
|
48
|
+
return '';
|
|
49
|
+
}
|
|
50
|
+
if (!pattern || !pattern.includes('#')) {
|
|
51
|
+
console.warn('Utilize uma máscara válida. Ex.: (##) #####-####');
|
|
52
|
+
return str;
|
|
53
|
+
}
|
|
54
|
+
let i = 0;
|
|
55
|
+
return pattern.replace(/#/g, () => str[i++]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
MaskUtil.CPF_TEXT_FIELD_PATTERN = '999.999.999-99';
|
|
59
|
+
MaskUtil.CNPJ_TEXT_FIELD_PATTERN = '99.999.999/9999-99';
|
|
60
|
+
MaskUtil.BOLETO_TEXT_FIELD_PATTERN = '99999.99999 99999.999999 99999.999999 9 99999999999999 9';
|
|
61
|
+
MaskUtil.CELLPHONE_TEXT_FIELD_PATTERN = '(99) 99999-9999';
|
|
62
|
+
MaskUtil.PHONE_TEXT_FIELD_PATTERN = '(99) 9999-9999';
|
|
63
|
+
MaskUtil.POSTALCODE_TEXT_FIELD_PATTERN = '99999-999';
|
|
64
|
+
MaskUtil.PLATE_FIELD_PATTERN = 'aaa-9*99';
|
|
65
|
+
MaskUtil.HOURS_MINUTES_FIELD_PATTERN = '99:99';
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvdXRpbHMvbWFzay51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDO0FBQ3JDLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQzFDLE1BQU0sY0FBYyxHQUFHLDBEQUEwRCxDQUFDO0FBQ2xGLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7QUFDNUMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFDdkMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQ2pDLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDO0FBRXRDLE1BQU0sT0FBTyxRQUFRO0lBVVosTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFtQjtRQUM5QyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDckQ7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQW1CO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFtQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQW1CO1FBQzNDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1NBQzFEO2FBQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUNwQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFtQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBbUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFXLEVBQUUsT0FBZ0I7UUFDdEQsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNoQixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7QUFsRWEsK0JBQXNCLEdBQUcsZ0JBQWdCLENBQUM7QUFDMUMsZ0NBQXVCLEdBQUcsb0JBQW9CLENBQUM7QUFDL0Msa0NBQXlCLEdBQUcsMERBQTBELENBQUM7QUFDdkYscUNBQTRCLEdBQUcsaUJBQWlCLENBQUM7QUFDakQsaUNBQXdCLEdBQUcsZ0JBQWdCLENBQUM7QUFDNUMsc0NBQTZCLEdBQUcsV0FBVyxDQUFDO0FBQzVDLDRCQUFtQixHQUFHLFVBQVUsQ0FBQztBQUNqQyxvQ0FBMkIsR0FBRyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBDUEZfUEFUVEVSTiA9ICcjIyMuIyMjLiMjIy0jIyc7XHJcbmNvbnN0IENOUEpfUEFUVEVSTiA9ICcjIy4jIyMuIyMjLyMjIyMtIyMnO1xyXG5jb25zdCBCT0xFVE9fUEFUVEVSTiA9ICcjIyMjIy4jIyMjIyAjIyMjIy4jIyMjIyMgIyMjIyMuIyMjIyMjICMgIyMjIyMjIyMjIyMjIyMgIyc7XHJcbmNvbnN0IFBPU1RBTENPREVfUEFUVEVSTiA9ICcjIyMjIy0jIyMnO1xyXG5jb25zdCBDRUxMUEhPTkVfUEFUVEVSTiA9ICcoIyMpICMjIyMjLSMjIyMnO1xyXG5jb25zdCBQSE9ORV9QQVRURVJOID0gJygjIykgIyMjIy0jIyMjJztcclxuY29uc3QgUExBVEVfUEFUVEVSTiA9ICcjIyMtIyMjIyc7XHJcbmNvbnN0IEhPVVJTX01JTlVURVNfUEFUVEVSTiA9ICcjIzojIyc7XHJcblxyXG5leHBvcnQgY2xhc3MgTWFza1V0aWwge1xyXG4gIHB1YmxpYyBzdGF0aWMgQ1BGX1RFWFRfRklFTERfUEFUVEVSTiA9ICc5OTkuOTk5Ljk5OS05OSc7XHJcbiAgcHVibGljIHN0YXRpYyBDTlBKX1RFWFRfRklFTERfUEFUVEVSTiA9ICc5OS45OTkuOTk5Lzk5OTktOTknO1xyXG4gIHB1YmxpYyBzdGF0aWMgQk9MRVRPX1RFWFRfRklFTERfUEFUVEVSTiA9ICc5OTk5OS45OTk5OSA5OTk5OS45OTk5OTkgOTk5OTkuOTk5OTk5IDkgOTk5OTk5OTk5OTk5OTkgOSc7XHJcbiAgcHVibGljIHN0YXRpYyBDRUxMUEhPTkVfVEVYVF9GSUVMRF9QQVRURVJOID0gJyg5OSkgOTk5OTktOTk5OSc7XHJcbiAgcHVibGljIHN0YXRpYyBQSE9ORV9URVhUX0ZJRUxEX1BBVFRFUk4gPSAnKDk5KSA5OTk5LTk5OTknO1xyXG4gIHB1YmxpYyBzdGF0aWMgUE9TVEFMQ09ERV9URVhUX0ZJRUxEX1BBVFRFUk4gPSAnOTk5OTktOTk5JztcclxuICBwdWJsaWMgc3RhdGljIFBMQVRFX0ZJRUxEX1BBVFRFUk4gPSAnYWFhLTkqOTknO1xyXG4gIHB1YmxpYyBzdGF0aWMgSE9VUlNfTUlOVVRFU19GSUVMRF9QQVRURVJOID0gJzk5Ojk5JztcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmb3JtYXREb2N1bWVudChzdHJpbmdWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXN0cmluZ1ZhbHVlKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyaW5nVmFsdWUubGVuZ3RoID09PSAxMSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb01hc2tTdHJpbmcoc3RyaW5nVmFsdWUsIENQRl9QQVRURVJOKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyaW5nVmFsdWUubGVuZ3RoID09PSAxNCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb01hc2tTdHJpbmcoc3RyaW5nVmFsdWUsIENOUEpfUEFUVEVSTik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHN0cmluZ1ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBmb3JtYXRQb3N0YWxDb2RlKHN0cmluZ1ZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmRvTWFza1N0cmluZyhzdHJpbmdWYWx1ZSwgUE9TVEFMQ09ERV9QQVRURVJOKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0Qm9sZXRvKHN0cmluZ1ZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmRvTWFza1N0cmluZyhzdHJpbmdWYWx1ZSwgQk9MRVRPX1BBVFRFUk4pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBmb3JtYXRQaG9uZShzdHJpbmdWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXN0cmluZ1ZhbHVlKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyaW5nVmFsdWUubGVuZ3RoID09PSAxMSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb01hc2tTdHJpbmcoc3RyaW5nVmFsdWUsIENFTExQSE9ORV9QQVRURVJOKTtcclxuICAgIH0gZWxzZSBpZiAoc3RyaW5nVmFsdWUubGVuZ3RoID09PSAxMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb01hc2tTdHJpbmcoc3RyaW5nVmFsdWUsIFBIT05FX1BBVFRFUk4pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdHJpbmdWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0SG91cnNNaW51dGVzKHN0cmluZ1ZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmRvTWFza1N0cmluZyhzdHJpbmdWYWx1ZSwgSE9VUlNfTUlOVVRFU19QQVRURVJOKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0UGxhdGUoc3RyaW5nVmFsdWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9NYXNrU3RyaW5nKHN0cmluZ1ZhbHVlLCBQTEFURV9QQVRURVJOKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZG9NYXNrU3RyaW5nKHN0cjogc3RyaW5nLCBwYXR0ZXJuPzogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXN0cj8udHJpbSgpKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXBhdHRlcm4gfHwgIXBhdHRlcm4uaW5jbHVkZXMoJyMnKSkge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1V0aWxpemUgdW1hIG3DoXNjYXJhIHbDoWxpZGEuIEV4LjogKCMjKSAjIyMjIy0jIyMjJyk7XHJcbiAgICAgIHJldHVybiBzdHI7XHJcbiAgICB9XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICByZXR1cm4gcGF0dGVybi5yZXBsYWNlKC8jL2csICgpID0+IHN0cltpKytdKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
export class ObjectUtil {
|
|
2
|
-
static getObjectKeys(obj) {
|
|
3
|
-
if (!obj) {
|
|
4
|
-
return [];
|
|
5
|
-
}
|
|
6
|
-
return Object.keys(obj).map((key) => key);
|
|
7
|
-
}
|
|
8
|
-
static isValid(obj) {
|
|
9
|
-
return obj !== null && obj !== undefined;
|
|
10
|
-
}
|
|
11
|
-
static getCodes(obj) {
|
|
12
|
-
if (!obj) {
|
|
13
|
-
return {};
|
|
14
|
-
}
|
|
15
|
-
return Object.keys(obj).reduce((acc, curr) => {
|
|
16
|
-
let value = obj[curr];
|
|
17
|
-
try {
|
|
18
|
-
value = JSON.parse(obj[curr]);
|
|
19
|
-
}
|
|
20
|
-
catch (_) {
|
|
21
|
-
value = obj[curr];
|
|
22
|
-
}
|
|
23
|
-
return { ...acc, [curr]: value?.code || value };
|
|
24
|
-
}, {});
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class ObjectUtil {
|
|
2
|
+
static getObjectKeys(obj) {
|
|
3
|
+
if (!obj) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
return Object.keys(obj).map((key) => key);
|
|
7
|
+
}
|
|
8
|
+
static isValid(obj) {
|
|
9
|
+
return obj !== null && obj !== undefined;
|
|
10
|
+
}
|
|
11
|
+
static getCodes(obj) {
|
|
12
|
+
if (!obj) {
|
|
13
|
+
return {};
|
|
14
|
+
}
|
|
15
|
+
return Object.keys(obj).reduce((acc, curr) => {
|
|
16
|
+
let value = obj[curr];
|
|
17
|
+
try {
|
|
18
|
+
value = JSON.parse(obj[curr]);
|
|
19
|
+
}
|
|
20
|
+
catch (_) {
|
|
21
|
+
value = obj[curr];
|
|
22
|
+
}
|
|
23
|
+
return { ...acc, [curr]: value?.code || value };
|
|
24
|
+
}, {});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9vYmplY3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNkLE1BQU0sQ0FBQyxhQUFhLENBQUksR0FBVztRQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQWMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVE7UUFDNUIsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDM0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBUTtRQUM3QixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLElBQUk7Z0JBQ0YsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDL0I7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25CO1lBQ0QsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNsRCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgT2JqZWN0VXRpbCB7XHJcbiAgcHVibGljIHN0YXRpYyBnZXRPYmplY3RLZXlzPFQ+KG9iajogT2JqZWN0KTogQXJyYXk8a2V5b2YgVD4ge1xyXG4gICAgaWYgKCFvYmopIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLm1hcCgoa2V5OiBzdHJpbmcpID0+IGtleSBhcyBrZXlvZiBUKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZChvYmo6IGFueSkge1xyXG4gICAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiBvYmogIT09IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q29kZXMob2JqOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKCFvYmopIHtcclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XHJcbiAgICAgIGxldCB2YWx1ZSA9IG9ialtjdXJyXTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB2YWx1ZSA9IEpTT04ucGFyc2Uob2JqW2N1cnJdKTtcclxuICAgICAgfSBjYXRjaCAoXykge1xyXG4gICAgICAgIHZhbHVlID0gb2JqW2N1cnJdO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IC4uLmFjYywgW2N1cnJdOiB2YWx1ZT8uY29kZSB8fCB2YWx1ZSB9O1xyXG4gICAgfSwge30pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export class StringUtil {
|
|
2
|
-
static getInitials(nameString) {
|
|
3
|
-
if (!nameString) {
|
|
4
|
-
return '';
|
|
5
|
-
}
|
|
6
|
-
const initials = nameString.split(' ').map((namePart) => namePart.substr(0, 1));
|
|
7
|
-
return initials ? `${initials[0]}${initials[initials.length - 1]}` : '';
|
|
8
|
-
}
|
|
9
|
-
static revertString(str) {
|
|
10
|
-
if (!str) {
|
|
11
|
-
return '';
|
|
12
|
-
}
|
|
13
|
-
return str.split('').reverse().join('');
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class StringUtil {
|
|
2
|
+
static getInitials(nameString) {
|
|
3
|
+
if (!nameString) {
|
|
4
|
+
return '';
|
|
5
|
+
}
|
|
6
|
+
const initials = nameString.split(' ').map((namePart) => namePart.substr(0, 1));
|
|
7
|
+
return initials ? `${initials[0]}${initials[initials.length - 1]}` : '';
|
|
8
|
+
}
|
|
9
|
+
static revertString(str) {
|
|
10
|
+
if (!str) {
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
return str.split('').reverse().join('');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9zdHJpbmcudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNkLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBbUI7UUFDM0MsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQVc7UUFDcEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdHJpbmdVdGlsIHtcclxuICBwdWJsaWMgc3RhdGljIGdldEluaXRpYWxzKG5hbWVTdHJpbmc/OiBzdHJpbmcpIHtcclxuICAgIGlmICghbmFtZVN0cmluZykge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5pdGlhbHMgPSBuYW1lU3RyaW5nLnNwbGl0KCcgJykubWFwKChuYW1lUGFydCkgPT4gbmFtZVBhcnQuc3Vic3RyKDAsIDEpKTtcclxuICAgIHJldHVybiBpbml0aWFscyA/IGAke2luaXRpYWxzWzBdfSR7aW5pdGlhbHNbaW5pdGlhbHMubGVuZ3RoIC0gMV19YCA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyByZXZlcnRTdHJpbmcoc3RyOiBzdHJpbmcpIHtcclxuICAgIGlmICghc3RyKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RyLnNwbGl0KCcnKS5yZXZlcnNlKCkuam9pbignJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|