monkey-style-guide 2.0.107 → 2.0.111
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/assets/scss/partials/_breakpoints.scss +35 -35
- package/assets/scss/partials/components/_badge.scss +55 -55
- package/assets/scss/partials/components/_date-range-picker.scss +1 -0
- package/assets/scss/partials/components/_expansion.scss +91 -91
- package/assets/scss/partials/components/_modal.scss +282 -282
- package/assets/scss/partials/components/_tab.scss +82 -82
- package/assets/scss/partials/components/_toggle.scss +103 -103
- package/{esm2015/lib/components/badge/badge.component.js → esm2020/lib/components/badge/badge.component.mjs} +4 -4
- package/{esm2015/lib/components/badge/badge.module.js → esm2020/lib/components/badge/badge.module.mjs} +5 -5
- package/{esm2015/lib/components/badge/index.js → esm2020/lib/components/badge/index.mjs} +1 -1
- package/{esm2015/lib/components/button/button-avatar.component.js → esm2020/lib/components/button/button-avatar.component.mjs} +5 -5
- package/{esm2015/lib/components/button/button-dropdown.component.js → esm2020/lib/components/button/button-dropdown.component.mjs} +4 -4
- package/{esm2015/lib/components/button/button.component.js → esm2020/lib/components/button/button.component.mjs} +4 -4
- package/{esm2015/lib/components/button/button.module.js → esm2020/lib/components/button/button.module.mjs} +5 -5
- package/{esm2015/lib/components/button/index.js → esm2020/lib/components/button/index.mjs} +0 -0
- package/{esm2015/lib/components/checkbox/checkbox.component.js → esm2020/lib/components/checkbox/checkbox.component.mjs} +6 -6
- package/{esm2015/lib/components/checkbox/checkbox.module.js → esm2020/lib/components/checkbox/checkbox.module.mjs} +5 -5
- package/{esm2015/lib/components/checkbox/index.js → esm2020/lib/components/checkbox/index.mjs} +0 -0
- package/esm2020/lib/components/date-range-picker/date-range-picker.component.mjs +569 -0
- package/{esm2015/lib/components/date-range-picker/date-range-picker.module.js → esm2020/lib/components/date-range-picker/date-range-picker.module.mjs} +5 -5
- package/{esm2015/lib/components/date-range-picker/index.js → esm2020/lib/components/date-range-picker/index.mjs} +0 -0
- package/{esm2015/lib/components/expansion/expansion.component.js → esm2020/lib/components/expansion/expansion.component.mjs} +71 -71
- package/{esm2015/lib/components/expansion/expansion.module.js → esm2020/lib/components/expansion/expansion.module.mjs} +5 -5
- package/{esm2015/lib/components/expansion/index.js → esm2020/lib/components/expansion/index.mjs} +1 -1
- package/{esm2015/lib/components/file-upload/file-upload.component.js → esm2020/lib/components/file-upload/file-upload.component.mjs} +6 -6
- package/{esm2015/lib/components/file-upload/file-upload.module.js → esm2020/lib/components/file-upload/file-upload.module.mjs} +5 -5
- package/{esm2015/lib/components/file-upload/index.js → esm2020/lib/components/file-upload/index.mjs} +0 -0
- package/esm2020/lib/components/icon/icon-arrow-down.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-arrow-left.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-arrow-right.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-arrow-up.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-bank.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-bell.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-book.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-box.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-calendar.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-camera.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-chat.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-check-circle-out.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-check-circle.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-check-grey.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-check-white.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-check.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-clipboard.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-clock.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-close.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-cnpj.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-codepen.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-company-name.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-contract.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-delete.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-document.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-dollar-sign.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-domain.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-download.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-edit.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-email.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-empty-doc.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-error.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-eye-closed.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-eye-open.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-filter.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-grid.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-help.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-hexagon.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-home.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-image.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-list.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-location-pin.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-login.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-logout.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-menu.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-money-sign.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-more.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-offered.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-password.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-people.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-percent.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-person-document.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-person-sad.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-phone.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-pork.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-refresh.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-repeat.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-search.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-second-warning.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-settings.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-trash.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-upload.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-user.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-wallet.component.mjs +15 -0
- package/esm2020/lib/components/icon/icon-warning.component.mjs +15 -0
- package/{esm2015/lib/components/icon/icon.component.js → esm2020/lib/components/icon/icon.component.mjs} +6 -6
- package/{esm2015/lib/components/icon/icon.module.js → esm2020/lib/components/icon/icon.module.mjs} +5 -5
- package/{esm2015/lib/components/icon/index.js → esm2020/lib/components/icon/index.mjs} +0 -0
- package/{esm2015/lib/components/image-crop/image-crop.component.js → esm2020/lib/components/image-crop/image-crop.component.mjs} +12 -5
- package/{esm2015/lib/components/image-crop/image-crop.module.js → esm2020/lib/components/image-crop/image-crop.module.mjs} +5 -5
- package/{esm2015/lib/components/image-crop/index.js → esm2020/lib/components/image-crop/index.mjs} +0 -0
- package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
- package/{esm2015/lib/components/input/index.js → esm2020/lib/components/input/index.mjs} +0 -0
- package/esm2020/lib/components/input/input-filter.component.mjs +261 -0
- package/esm2020/lib/components/input/input.component.mjs +380 -0
- package/{esm2015/lib/components/input/input.module.js → esm2020/lib/components/input/input.module.mjs} +5 -5
- package/{esm2015/lib/components/input-phone/index.js → esm2020/lib/components/input-phone/index.mjs} +0 -0
- package/esm2020/lib/components/input-phone/input-phone.component.mjs +304 -0
- package/{esm2015/lib/components/input-phone/input-phone.module.js → esm2020/lib/components/input-phone/input-phone.module.mjs} +5 -5
- package/{esm2015/lib/components/modal/index.js → esm2020/lib/components/modal/index.mjs} +0 -0
- package/esm2020/lib/components/modal/modal.component.mjs +236 -0
- package/{esm2015/lib/components/modal/modal.module.js → esm2020/lib/components/modal/modal.module.mjs} +5 -5
- package/{esm2015/lib/components/option/index.js → esm2020/lib/components/option/index.mjs} +0 -0
- package/{esm2015/lib/components/option/option.component.js → esm2020/lib/components/option/option.component.mjs} +4 -4
- package/{esm2015/lib/components/option/option.module.js → esm2020/lib/components/option/option.module.mjs} +5 -5
- package/{esm2015/lib/components/radiobutton/index.js → esm2020/lib/components/radiobutton/index.mjs} +0 -0
- package/{esm2015/lib/components/radiobutton/radiobutton.component.js → esm2020/lib/components/radiobutton/radiobutton.component.mjs} +6 -6
- package/{esm2015/lib/components/radiobutton/radiobutton.module.js → esm2020/lib/components/radiobutton/radiobutton.module.mjs} +5 -5
- package/{esm2015/lib/components/select/index.js → esm2020/lib/components/select/index.mjs} +0 -0
- package/{esm2015/lib/components/select/select-filter.component.js → esm2020/lib/components/select/select-filter.component.mjs} +6 -6
- package/esm2020/lib/components/select/select-multiple.component.mjs +304 -0
- package/esm2020/lib/components/select/select-search.component.mjs +306 -0
- package/{esm2015/lib/components/select/select.component.js → esm2020/lib/components/select/select.component.mjs} +6 -6
- package/{esm2015/lib/components/select/select.module.js → esm2020/lib/components/select/select.module.mjs} +5 -5
- package/{esm2015/lib/components/stepper/index.js → esm2020/lib/components/stepper/index.mjs} +0 -0
- package/{esm2015/lib/components/stepper/stepper.component.js → esm2020/lib/components/stepper/stepper.component.mjs} +4 -4
- package/{esm2015/lib/components/stepper/stepper.module.js → esm2020/lib/components/stepper/stepper.module.mjs} +5 -5
- package/{esm2015/lib/components/tab/index.js → esm2020/lib/components/tab/index.mjs} +1 -1
- package/{esm2015/lib/components/tab/tab.component.js → esm2020/lib/components/tab/tab.component.mjs} +12 -12
- package/{esm2015/lib/components/tab/tab.module.js → esm2020/lib/components/tab/tab.module.mjs} +5 -5
- package/{esm2015/lib/components/table/index.js → esm2020/lib/components/table/index.mjs} +0 -0
- package/{esm2015/lib/components/table/table-column.component.js → esm2020/lib/components/table/table-column.component.mjs} +4 -4
- package/esm2020/lib/components/table/table.component.mjs +203 -0
- package/{esm2015/lib/components/table/table.module.js → esm2020/lib/components/table/table.module.mjs} +5 -5
- package/{esm2015/lib/components/toggle/index.js → esm2020/lib/components/toggle/index.mjs} +1 -1
- package/esm2020/lib/components/toggle/toggle.component.mjs +56 -0
- package/{esm2015/lib/components/toggle/toggle.module.js → esm2020/lib/components/toggle/toggle.module.mjs} +5 -5
- package/{esm2015/lib/components/wizard/index.js → esm2020/lib/components/wizard/index.mjs} +0 -0
- package/{esm2015/lib/components/wizard/wizard.component.js → esm2020/lib/components/wizard/wizard.component.mjs} +4 -4
- package/{esm2015/lib/components/wizard/wizard.module.js → esm2020/lib/components/wizard/wizard.module.mjs} +5 -5
- package/{esm2015/lib/core/index.js → esm2020/lib/core/index.mjs} +0 -0
- package/{esm2015/lib/core/interfaces/index.js → esm2020/lib/core/interfaces/index.mjs} +1 -1
- package/esm2020/lib/core/interfaces/monkey-modal-settings.mjs +2 -0
- package/{esm2015/lib/core/interfaces/monkey-style-settings.js → esm2020/lib/core/interfaces/monkey-style-settings.mjs} +0 -0
- package/{esm2015/lib/core/services/index.js → esm2020/lib/core/services/index.mjs} +0 -0
- package/{esm2015/lib/core/services/modal/index.js → esm2020/lib/core/services/modal/index.mjs} +1 -1
- package/{esm2015/lib/core/services/modal/monkey-style-guide-modal-fixed.service.js → esm2020/lib/core/services/modal/monkey-style-guide-modal-fixed.service.mjs} +4 -4
- package/{esm2015/lib/core/services/modal/monkey-style-guide-modal.service.js → esm2020/lib/core/services/modal/monkey-style-guide-modal.service.mjs} +4 -4
- package/{esm2015/lib/core/services/monkey-style-guide.service.js → esm2020/lib/core/services/monkey-style-guide.service.mjs} +4 -4
- package/{esm2015/lib/core/services/settings/index.js → esm2020/lib/core/services/settings/index.mjs} +0 -0
- package/{esm2015/lib/core/services/settings/monkey-style-guide-settings.service.js → esm2020/lib/core/services/settings/monkey-style-guide-settings.service.mjs} +4 -4
- package/esm2020/lib/core/services/settings/monkey-style-guide-theme-settings.service.mjs +80 -0
- package/{esm2015/lib/core/services/snackbar/index.js → esm2020/lib/core/services/snackbar/index.mjs} +0 -0
- package/{esm2015/lib/core/services/snackbar/mokey-style-guide-snackbar.service.js → esm2020/lib/core/services/snackbar/mokey-style-guide-snackbar.service.mjs} +5 -5
- package/{esm2015/lib/core/utils/index.js → esm2020/lib/core/utils/index.mjs} +0 -0
- package/esm2020/lib/core/utils/utils.mjs +235 -0
- package/{esm2015/lib/monkey-style-guide.module.js → esm2020/lib/monkey-style-guide.module.mjs} +5 -5
- package/{esm2015/monkey-style-guide.js → esm2020/monkey-style-guide.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{monkey-style-guide.js → monkey-style-guide.mjs} +567 -807
- package/fesm2015/monkey-style-guide.mjs.map +1 -0
- package/fesm2020/monkey-style-guide.mjs +7921 -0
- package/fesm2020/monkey-style-guide.mjs.map +1 -0
- package/lib/components/date-range-picker/date-range-picker.component.d.ts +6 -5
- package/lib/core/utils/utils.d.ts +3 -3
- package/monkey-style-guide-2.0.111.tgz +0 -0
- package/package.json +22 -9
- package/bundles/monkey-style-guide.umd.js +0 -6220
- package/bundles/monkey-style-guide.umd.js.map +0 -1
- package/esm2015/lib/components/date-range-picker/date-range-picker.component.js +0 -553
- package/esm2015/lib/components/icon/icon-arrow-down.component.js +0 -19
- package/esm2015/lib/components/icon/icon-arrow-left.component.js +0 -19
- package/esm2015/lib/components/icon/icon-arrow-right.component.js +0 -19
- package/esm2015/lib/components/icon/icon-arrow-up.component.js +0 -19
- package/esm2015/lib/components/icon/icon-bank.component.js +0 -19
- package/esm2015/lib/components/icon/icon-bell.component.js +0 -19
- package/esm2015/lib/components/icon/icon-book.component.js +0 -19
- package/esm2015/lib/components/icon/icon-box.component.js +0 -19
- package/esm2015/lib/components/icon/icon-calendar.component.js +0 -19
- package/esm2015/lib/components/icon/icon-camera.component.js +0 -19
- package/esm2015/lib/components/icon/icon-chat.component.js +0 -19
- package/esm2015/lib/components/icon/icon-check-circle-out.component.js +0 -19
- package/esm2015/lib/components/icon/icon-check-circle.component.js +0 -19
- package/esm2015/lib/components/icon/icon-check-grey.component.js +0 -19
- package/esm2015/lib/components/icon/icon-check-white.component.js +0 -19
- package/esm2015/lib/components/icon/icon-check.component.js +0 -19
- package/esm2015/lib/components/icon/icon-clipboard.component.js +0 -19
- package/esm2015/lib/components/icon/icon-clock.component.js +0 -19
- package/esm2015/lib/components/icon/icon-close.component.js +0 -19
- package/esm2015/lib/components/icon/icon-cnpj.component.js +0 -19
- package/esm2015/lib/components/icon/icon-codepen.component.js +0 -19
- package/esm2015/lib/components/icon/icon-company-name.component.js +0 -19
- package/esm2015/lib/components/icon/icon-contract.component.js +0 -19
- package/esm2015/lib/components/icon/icon-delete.component.js +0 -19
- package/esm2015/lib/components/icon/icon-document.component.js +0 -19
- package/esm2015/lib/components/icon/icon-dollar-sign.component.js +0 -19
- package/esm2015/lib/components/icon/icon-domain.component.js +0 -19
- package/esm2015/lib/components/icon/icon-download.component.js +0 -19
- package/esm2015/lib/components/icon/icon-edit.component.js +0 -19
- package/esm2015/lib/components/icon/icon-email.component.js +0 -19
- package/esm2015/lib/components/icon/icon-empty-doc.component.js +0 -19
- package/esm2015/lib/components/icon/icon-error.component.js +0 -19
- package/esm2015/lib/components/icon/icon-eye-closed.component.js +0 -19
- package/esm2015/lib/components/icon/icon-eye-open.component.js +0 -19
- package/esm2015/lib/components/icon/icon-filter.component.js +0 -19
- package/esm2015/lib/components/icon/icon-grid.component.js +0 -19
- package/esm2015/lib/components/icon/icon-help.component.js +0 -19
- package/esm2015/lib/components/icon/icon-hexagon.component.js +0 -19
- package/esm2015/lib/components/icon/icon-home.component.js +0 -19
- package/esm2015/lib/components/icon/icon-image.component.js +0 -19
- package/esm2015/lib/components/icon/icon-list.component.js +0 -19
- package/esm2015/lib/components/icon/icon-location-pin.component.js +0 -19
- package/esm2015/lib/components/icon/icon-login.component.js +0 -19
- package/esm2015/lib/components/icon/icon-logout.component.js +0 -19
- package/esm2015/lib/components/icon/icon-menu.component.js +0 -19
- package/esm2015/lib/components/icon/icon-money-sign.component.js +0 -19
- package/esm2015/lib/components/icon/icon-more.component.js +0 -19
- package/esm2015/lib/components/icon/icon-offered.component.js +0 -19
- package/esm2015/lib/components/icon/icon-password.component.js +0 -19
- package/esm2015/lib/components/icon/icon-people.component.js +0 -19
- package/esm2015/lib/components/icon/icon-percent.component.js +0 -19
- package/esm2015/lib/components/icon/icon-person-document.component.js +0 -19
- package/esm2015/lib/components/icon/icon-person-sad.component.js +0 -19
- package/esm2015/lib/components/icon/icon-phone.component.js +0 -19
- package/esm2015/lib/components/icon/icon-pork.component.js +0 -19
- package/esm2015/lib/components/icon/icon-refresh.component.js +0 -19
- package/esm2015/lib/components/icon/icon-repeat.component.js +0 -19
- package/esm2015/lib/components/icon/icon-search.component.js +0 -19
- package/esm2015/lib/components/icon/icon-second-warning.component.js +0 -19
- package/esm2015/lib/components/icon/icon-settings.component.js +0 -19
- package/esm2015/lib/components/icon/icon-trash.component.js +0 -19
- package/esm2015/lib/components/icon/icon-upload.component.js +0 -19
- package/esm2015/lib/components/icon/icon-user.component.js +0 -19
- package/esm2015/lib/components/icon/icon-wallet.component.js +0 -19
- package/esm2015/lib/components/icon/icon-warning.component.js +0 -19
- package/esm2015/lib/components/input/input-filter.component.js +0 -262
- package/esm2015/lib/components/input/input.component.js +0 -384
- package/esm2015/lib/components/input-phone/input-phone.component.js +0 -307
- package/esm2015/lib/components/modal/modal.component.js +0 -241
- package/esm2015/lib/components/select/select-multiple.component.js +0 -308
- package/esm2015/lib/components/select/select-search.component.js +0 -308
- package/esm2015/lib/components/table/table.component.js +0 -204
- package/esm2015/lib/components/toggle/toggle.component.js +0 -56
- package/esm2015/lib/core/interfaces/monkey-modal-settings.js +0 -2
- package/esm2015/lib/core/services/settings/monkey-style-guide-theme-settings.service.js +0 -70
- package/esm2015/lib/core/utils/utils.js +0 -237
- package/fesm2015/monkey-style-guide.js.map +0 -1
- package/monkey-style-guide-2.0.107.tgz +0 -0
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**************************
|
|
2
|
-
* Copyright Monkey Exchange. All Rights Reserved
|
|
3
|
-
* This style guide was developed by Monkey Exchange Team
|
|
4
|
-
* MIT Licence
|
|
5
|
-
**************************/
|
|
6
|
-
import { Injectable, Inject } from '@angular/core';
|
|
7
|
-
import { DOCUMENT } from '@angular/common';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class MonkeyStyleGuideThemeSettingsService {
|
|
10
|
-
constructor(doc) {
|
|
11
|
-
this.doc = doc;
|
|
12
|
-
}
|
|
13
|
-
applyColors(settings) {
|
|
14
|
-
const colors = settings.colors;
|
|
15
|
-
let bucketColors = null;
|
|
16
|
-
['theme', 'error', 'warning', 'success', 'question'].forEach((color) => {
|
|
17
|
-
Object.entries(colors[color]).forEach(([paletteKey, paletteValue]) => {
|
|
18
|
-
if (paletteKey === 'contrast') {
|
|
19
|
-
Object.entries(paletteValue).forEach(([paletteContrastKey, paletteContrastValue]) => {
|
|
20
|
-
document.documentElement.style.setProperty(`--mecx-color-${color}-contrast-${paletteContrastKey}`, `${paletteContrastValue}`);
|
|
21
|
-
bucketColors = Object.assign(Object.assign({}, bucketColors), { [`--mecx-color-${color}-contrast-${paletteContrastKey}`]: `${paletteContrastValue}` });
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
document.documentElement.style.setProperty(`--mecx-color-${color}-${paletteKey}`, `${paletteValue}`);
|
|
26
|
-
bucketColors = Object.assign(Object.assign({}, bucketColors), { [`--mecx-color-${color}-${paletteKey}`]: `${paletteValue}` });
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
return bucketColors;
|
|
31
|
-
}
|
|
32
|
-
applyFonts(settings) {
|
|
33
|
-
const font = Object.assign({ url: 'https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap', name: 'Work Sans' }, settings.font);
|
|
34
|
-
document.documentElement.style.setProperty(`--mecx-font-name`, `${font.name}`);
|
|
35
|
-
let link = this.doc.createElement('link');
|
|
36
|
-
link.setAttribute('rel', 'stylesheet');
|
|
37
|
-
link.setAttribute('type', 'text/css');
|
|
38
|
-
link.setAttribute('href', `${font.url}`);
|
|
39
|
-
this.doc.head.appendChild(link);
|
|
40
|
-
}
|
|
41
|
-
applyTheme(settings) {
|
|
42
|
-
const { theme } = settings;
|
|
43
|
-
document.title = `${theme.title}`;
|
|
44
|
-
let link = this.doc.createElement('link');
|
|
45
|
-
link.setAttribute('rel', 'icon');
|
|
46
|
-
link.setAttribute('type', 'image/x-icon');
|
|
47
|
-
link.setAttribute('href', `${theme.favicon}`);
|
|
48
|
-
this.doc.head.appendChild(link);
|
|
49
|
-
}
|
|
50
|
-
apply(config, callback) {
|
|
51
|
-
const bucketColors = this.applyColors(config);
|
|
52
|
-
this.applyFonts(config);
|
|
53
|
-
this.applyTheme(config);
|
|
54
|
-
setTimeout(() => {
|
|
55
|
-
if (callback)
|
|
56
|
-
callback({
|
|
57
|
-
bucketColors,
|
|
58
|
-
});
|
|
59
|
-
}, 500);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
MonkeyStyleGuideThemeSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyStyleGuideThemeSettingsService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
63
|
-
MonkeyStyleGuideThemeSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyStyleGuideThemeSettingsService });
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyStyleGuideThemeSettingsService, decorators: [{
|
|
65
|
-
type: Injectable
|
|
66
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
67
|
-
type: Inject,
|
|
68
|
-
args: [DOCUMENT]
|
|
69
|
-
}] }]; } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5LXN0eWxlLWd1aWRlLXRoZW1lLXNldHRpbmdzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3NldHRpbmdzL21vbmtleS1zdHlsZS1ndWlkZS10aGVtZS1zZXR0aW5ncy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OzRCQUk0QjtBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxvQ0FBb0M7SUFDL0MsWUFBc0MsR0FBUTtRQUFSLFFBQUcsR0FBSCxHQUFHLENBQUs7SUFBRyxDQUFDO0lBRTFDLFdBQVcsQ0FBQyxRQUE2QjtRQUMvQyxNQUFNLE1BQU0sR0FBUSxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXBDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztRQUV4QixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNyRSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FDMUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFO2dCQUM3QixJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUU7b0JBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUNsQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxFQUFFO3dCQUM3QyxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENB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QUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb25rZXlTdHlsZVNldHRpbmdzLCBNb25rZXlTdHlsZUZvbnRTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlTdHlsZUd1aWRlVGhlbWVTZXR0aW5nc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBhbnkpIHt9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlDb2xvcnMoc2V0dGluZ3M6IE1vbmtleVN0eWxlU2V0dGluZ3MpOiBhbnkge1xyXG4gICAgY29uc3QgY29sb3JzOiBhbnkgPSBzZXR0aW5ncy5jb2xvcnM7XHJcblxyXG4gICAgbGV0IGJ1Y2tldENvbG9ycyA9IG51bGw7XHJcblxyXG4gICAgWyd0aGVtZScsICdlcnJvcicsICd3YXJuaW5nJywgJ3N1Y2Nlc3MnLCAncXVlc3Rpb24nXS5mb3JFYWNoKChjb2xvcikgPT4ge1xyXG4gICAgICBPYmplY3QuZW50cmllcyhjb2xvcnNbY29sb3JdIGFzIGFueSkuZm9yRWFjaChcclxuICAgICAgICAoW3BhbGV0dGVLZXksIHBhbGV0dGVWYWx1ZV0pID0+IHtcclxuICAgICAgICAgIGlmIChwYWxldHRlS2V5ID09PSAnY29udHJhc3QnKSB7XHJcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHBhbGV0dGVWYWx1ZSkuZm9yRWFjaChcclxuICAgICAgICAgICAgICAoW3BhbGV0dGVDb250cmFzdEtleSwgcGFsZXR0ZUNvbnRyYXN0VmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAgICAgICAgIGAtLW1lY3gtY29sb3ItJHtjb2xvcn0tY29udHJhc3QtJHtwYWxldHRlQ29udHJhc3RLZXl9YCxcclxuICAgICAgICAgICAgICAgICAgYCR7cGFsZXR0ZUNvbnRyYXN0VmFsdWV9YFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGJ1Y2tldENvbG9ycyA9IHtcclxuICAgICAgICAgICAgICAgICAgLi4uYnVja2V0Q29sb3JzLFxyXG4gICAgICAgICAgICAgICAgICBbYC0tbWVjeC1jb2xvci0ke2NvbG9yfS1jb250cmFzdC0ke3BhbGV0dGVDb250cmFzdEtleX1gXTogYCR7cGFsZXR0ZUNvbnRyYXN0VmFsdWV9YCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgIGAtLW1lY3gtY29sb3ItJHtjb2xvcn0tJHtwYWxldHRlS2V5fWAsXHJcbiAgICAgICAgICAgICAgYCR7cGFsZXR0ZVZhbHVlfWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgYnVja2V0Q29sb3JzID0ge1xyXG4gICAgICAgICAgICAgIC4uLmJ1Y2tldENvbG9ycyxcclxuICAgICAgICAgICAgICBbYC0tbWVjeC1jb2xvci0ke2NvbG9yfS0ke3BhbGV0dGVLZXl9YF06IGAke3BhbGV0dGVWYWx1ZX1gLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBidWNrZXRDb2xvcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5Rm9udHMoc2V0dGluZ3M6IE1vbmtleVN0eWxlU2V0dGluZ3MpIHtcclxuICAgIGNvbnN0IGZvbnQ6IE1vbmtleVN0eWxlRm9udFNldHRpbmdzID0ge1xyXG4gICAgICB1cmw6XHJcbiAgICAgICAgJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9V29yaytTYW5zOml0YWwsd2dodEAwLDIwMDswLDMwMDswLDQwMDswLDUwMDswLDYwMDswLDcwMDswLDgwMDswLDkwMDsxLDQwMDsxLDUwMDsxLDYwMDsxLDcwMDsxLDgwMDsxLDkwMCZkaXNwbGF5PXN3YXAnLFxyXG4gICAgICBuYW1lOiAnV29yayBTYW5zJyxcclxuICAgICAgLi4uc2V0dGluZ3MuZm9udCxcclxuICAgIH07XHJcblxyXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICBgLS1tZWN4LWZvbnQtbmFtZWAsXHJcbiAgICAgIGAke2ZvbnQubmFtZX1gXHJcbiAgICApO1xyXG5cclxuICAgIGxldCBsaW5rOiBIVE1MTGlua0VsZW1lbnQgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgncmVsJywgJ3N0eWxlc2hlZXQnKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvY3NzJyk7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIGAke2ZvbnQudXJsfWApO1xyXG4gICAgdGhpcy5kb2MuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlUaGVtZShzZXR0aW5nczogTW9ua2V5U3R5bGVTZXR0aW5ncykge1xyXG4gICAgY29uc3QgeyB0aGVtZSB9ID0gc2V0dGluZ3M7XHJcbiAgICBkb2N1bWVudC50aXRsZSA9IGAke3RoZW1lLnRpdGxlfWA7XHJcblxyXG4gICAgbGV0IGxpbms6IEhUTUxMaW5rRWxlbWVudCA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKCdyZWwnLCAnaWNvbicpO1xyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaW1hZ2UveC1pY29uJyk7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIGAke3RoZW1lLmZhdmljb259YCk7XHJcbiAgICB0aGlzLmRvYy5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5KGNvbmZpZzogTW9ua2V5U3R5bGVTZXR0aW5ncywgY2FsbGJhY2s/OiBGdW5jdGlvbikge1xyXG4gICAgY29uc3QgYnVja2V0Q29sb3JzID0gdGhpcy5hcHBseUNvbG9ycyhjb25maWcpO1xyXG4gICAgdGhpcy5hcHBseUZvbnRzKGNvbmZpZyk7XHJcbiAgICB0aGlzLmFwcGx5VGhlbWUoY29uZmlnKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoY2FsbGJhY2spXHJcbiAgICAgICAgY2FsbGJhY2soe1xyXG4gICAgICAgICAgYnVja2V0Q29sb3JzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
import { PhoneNumberUtil } from 'google-libphonenumber';
|
|
2
|
-
const phoneUtil = PhoneNumberUtil.getInstance();
|
|
3
|
-
export class MonkeyUtils {
|
|
4
|
-
static persistNullEmptyUndefined(tp) {
|
|
5
|
-
return tp !== null && tp !== undefined && tp !== '';
|
|
6
|
-
}
|
|
7
|
-
static getDocumentType(doc) {
|
|
8
|
-
if (!doc)
|
|
9
|
-
return '';
|
|
10
|
-
return doc.length <= 11 ? 'CPF' : 'CNPJ';
|
|
11
|
-
}
|
|
12
|
-
static getDocumentMask(type) {
|
|
13
|
-
if (type === 'CPF')
|
|
14
|
-
return '000.000.000-00';
|
|
15
|
-
return '00.000.000/0000-00';
|
|
16
|
-
}
|
|
17
|
-
static formatDocumentWithMask(doc, withType) {
|
|
18
|
-
if (!doc)
|
|
19
|
-
return doc;
|
|
20
|
-
let formated = '';
|
|
21
|
-
if (doc.length === 14)
|
|
22
|
-
formated = doc
|
|
23
|
-
.replace(/^(\d{2})(\d)/, '$1.$2')
|
|
24
|
-
.replace(/^(\d{2})\.(\d{3})(\d)/, '$1.$2.$3')
|
|
25
|
-
.replace(/\.(\d{3})(\d)/, '.$1/$2')
|
|
26
|
-
.replace(/(\d{4})(\d)/, '$1-$2');
|
|
27
|
-
else
|
|
28
|
-
formated = doc
|
|
29
|
-
.replace(/^(\d{3})(\d)/, '$1.$2')
|
|
30
|
-
.replace(/^(\d{3})\.(\d{3})(\d)/, '$1.$2.$3')
|
|
31
|
-
.replace(/\.(\d{3})(\d)/, '.$1-$2');
|
|
32
|
-
return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;
|
|
33
|
-
}
|
|
34
|
-
static cutFirstLastName(value, tp = 'first') {
|
|
35
|
-
var _a, _b;
|
|
36
|
-
const split = (_a = value === null || value === void 0 ? void 0 : value.trim()) === null || _a === void 0 ? void 0 : _a.split(' ');
|
|
37
|
-
if (tp === 'first')
|
|
38
|
-
return split[0];
|
|
39
|
-
return (_b = split === null || split === void 0 ? void 0 : split.splice(1, split.length)) === null || _b === void 0 ? void 0 : _b.join(' ');
|
|
40
|
-
}
|
|
41
|
-
static isCPFCNPJValid(document) {
|
|
42
|
-
document = document.replace(/[^\d]/g, '');
|
|
43
|
-
if (document.length === 11) {
|
|
44
|
-
let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
|
|
45
|
-
for (var i = 0, n = 0; i < 9; n += document[i] * base[i++])
|
|
46
|
-
;
|
|
47
|
-
if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
|
|
51
|
-
for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++])
|
|
52
|
-
;
|
|
53
|
-
if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
else if (document.length === 14 || /0{14}/.test(document)) {
|
|
59
|
-
let base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
60
|
-
for (var i = 0, n = 0; i < 12; n += document[i] * base[++i])
|
|
61
|
-
;
|
|
62
|
-
if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++])
|
|
66
|
-
;
|
|
67
|
-
if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
else
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
static isValidUrl(txt) {
|
|
76
|
-
const regex = new RegExp(/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)+[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,10}(:[0-9]{1,5})?(\/.*)?$/gm);
|
|
77
|
-
return regex.test(txt);
|
|
78
|
-
}
|
|
79
|
-
static isValidZipCode(zipCode) {
|
|
80
|
-
return `${this.handleOnlyNumbers(zipCode)}`.length === 8;
|
|
81
|
-
}
|
|
82
|
-
static getRandomString(len, charSet) {
|
|
83
|
-
charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
84
|
-
let randomString = Array.apply(null, Array(len))
|
|
85
|
-
.map(function () {
|
|
86
|
-
return charSet.charAt(Math.floor(Math.random() * charSet.length));
|
|
87
|
-
})
|
|
88
|
-
.join('');
|
|
89
|
-
return randomString;
|
|
90
|
-
}
|
|
91
|
-
static handleOnlyNumbers(value) {
|
|
92
|
-
if (!value)
|
|
93
|
-
return null;
|
|
94
|
-
return value.replace(new RegExp(/[^0-9]/g), '');
|
|
95
|
-
}
|
|
96
|
-
static handleOnlyAlphaNumeric(value) {
|
|
97
|
-
if (!value)
|
|
98
|
-
return '';
|
|
99
|
-
return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');
|
|
100
|
-
}
|
|
101
|
-
static capitalize(value) {
|
|
102
|
-
return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
|
|
103
|
-
}
|
|
104
|
-
static formatZipCode(zipCode) {
|
|
105
|
-
if (!zipCode)
|
|
106
|
-
return zipCode;
|
|
107
|
-
const formated = zipCode
|
|
108
|
-
.replace(/^(\d{5})(\d)/, '$1-$2')
|
|
109
|
-
.replace(/\.(\d{3})(\d)/, '.$1-$2');
|
|
110
|
-
return `${formated}`;
|
|
111
|
-
}
|
|
112
|
-
static formatFileSize(size) {
|
|
113
|
-
let units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
114
|
-
let l = 0;
|
|
115
|
-
while (size >= 1024 && ++l) {
|
|
116
|
-
size = size / 1024;
|
|
117
|
-
}
|
|
118
|
-
return size.toFixed(size < 10 && l > 0 ? 1 : 0) + ' ' + units[l];
|
|
119
|
-
}
|
|
120
|
-
static sufflue(data) {
|
|
121
|
-
for (let i = data.length - 1; i > 0; i--) {
|
|
122
|
-
const j = Math.floor(Math.random() * i);
|
|
123
|
-
const temp = data[i];
|
|
124
|
-
data[i] = data[j];
|
|
125
|
-
data[j] = temp;
|
|
126
|
-
}
|
|
127
|
-
return data;
|
|
128
|
-
}
|
|
129
|
-
static handleBlobFile(theBlob, fileName, fileType) {
|
|
130
|
-
function blobToFile(theBlob, fileName) {
|
|
131
|
-
const b = theBlob;
|
|
132
|
-
b.lastModifiedDate = new Date();
|
|
133
|
-
b.name = fileName;
|
|
134
|
-
return b;
|
|
135
|
-
}
|
|
136
|
-
let file;
|
|
137
|
-
if (!navigator.msSaveBlob) {
|
|
138
|
-
file = new File([theBlob], fileName, { type: fileType });
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
file = new Blob([theBlob], { type: fileType });
|
|
142
|
-
file = blobToFile(file, fileName);
|
|
143
|
-
}
|
|
144
|
-
return file;
|
|
145
|
-
}
|
|
146
|
-
static truncate(text, maxLength = 25) {
|
|
147
|
-
const midChar = '...';
|
|
148
|
-
if (!text)
|
|
149
|
-
return midChar;
|
|
150
|
-
if (text && text.length <= maxLength)
|
|
151
|
-
return text;
|
|
152
|
-
const left = Math.ceil(maxLength / 2);
|
|
153
|
-
const right = text.length - left + 1;
|
|
154
|
-
return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;
|
|
155
|
-
}
|
|
156
|
-
static isLocalhost() {
|
|
157
|
-
const { href } = window === null || window === void 0 ? void 0 : window.location;
|
|
158
|
-
if (!href)
|
|
159
|
-
return false;
|
|
160
|
-
return (href === null || href === void 0 ? void 0 : href.search('localhost')) >= 0;
|
|
161
|
-
}
|
|
162
|
-
static getPhoneRegions() {
|
|
163
|
-
return phoneUtil
|
|
164
|
-
.getSupportedRegions()
|
|
165
|
-
.map((code) => {
|
|
166
|
-
return phoneUtil.getCountryCodeForRegion(code);
|
|
167
|
-
})
|
|
168
|
-
.filter((v, i, a) => a.indexOf(v) === i)
|
|
169
|
-
.sort((a, b) => (a < b ? -1 : 1));
|
|
170
|
-
}
|
|
171
|
-
static getPhoneHandle(internationalNumber = 55) {
|
|
172
|
-
let maxLength = 14;
|
|
173
|
-
let mask = 'XX XXXXX-XXXX';
|
|
174
|
-
try {
|
|
175
|
-
const country = phoneUtil.getRegionCodeForCountryCode(internationalNumber);
|
|
176
|
-
const exampleNumber = phoneUtil.getExampleNumber(country)['values_']['2'];
|
|
177
|
-
const number = phoneUtil.parse(`${exampleNumber}`, country);
|
|
178
|
-
const formated = phoneUtil.format(number, null);
|
|
179
|
-
if (formated) {
|
|
180
|
-
maxLength = `${formated}`.length;
|
|
181
|
-
mask = `${formated}`.replace(new RegExp(/[^0-9]/g), '0');
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
catch (e) {
|
|
185
|
-
//not to do
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
maxLength,
|
|
189
|
-
mask,
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
static getPhoneCountryCode(phone) {
|
|
193
|
-
var _a;
|
|
194
|
-
if (!phone)
|
|
195
|
-
return '';
|
|
196
|
-
let cc = (_a = `${this.handleOnlyNumbers(phone)}`) === null || _a === void 0 ? void 0 : _a.substring(0, 2);
|
|
197
|
-
let code;
|
|
198
|
-
try {
|
|
199
|
-
const number = phoneUtil.parse(phone);
|
|
200
|
-
code = number.getCountryCodeOrDefault();
|
|
201
|
-
}
|
|
202
|
-
catch (e) {
|
|
203
|
-
//not to do
|
|
204
|
-
}
|
|
205
|
-
return code || cc;
|
|
206
|
-
}
|
|
207
|
-
static getPhoneNumberFormated(phone, internationalNumber = 55) {
|
|
208
|
-
if (!phone)
|
|
209
|
-
return '';
|
|
210
|
-
phone = phone.replace(`+${internationalNumber}`, '');
|
|
211
|
-
try {
|
|
212
|
-
const country = phoneUtil.getRegionCodeForCountryCode(internationalNumber);
|
|
213
|
-
const number = phoneUtil.parse(phone, country);
|
|
214
|
-
if (phoneUtil.isPossibleNumber(number)) {
|
|
215
|
-
return phoneUtil.format(number, null);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
catch (e) {
|
|
219
|
-
//not to do
|
|
220
|
-
}
|
|
221
|
-
return phone;
|
|
222
|
-
}
|
|
223
|
-
static isPhoneNumberValid(phone, internationalNumber = 55) {
|
|
224
|
-
if (!phone)
|
|
225
|
-
return false;
|
|
226
|
-
try {
|
|
227
|
-
const country = phoneUtil.getRegionCodeForCountryCode(internationalNumber);
|
|
228
|
-
const number = phoneUtil.parse(phone, country);
|
|
229
|
-
return phoneUtil.isValidNumberForRegion(number, country);
|
|
230
|
-
}
|
|
231
|
-
catch (e) {
|
|
232
|
-
//not to do
|
|
233
|
-
}
|
|
234
|
-
return false;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb3JlL3V0aWxzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7QUFFaEQsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMseUJBQXlCLENBQUMsRUFBTztRQUM3QyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDdkMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFZO1FBQ3hDLElBQUksSUFBSSxLQUFLLEtBQUs7WUFBRSxPQUFPLGdCQUFnQixDQUFDO1FBQzVDLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFXLEVBQUUsUUFBa0I7UUFDbEUsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUNyQixJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUU7WUFDbkIsUUFBUSxHQUFHLEdBQUc7aUJBQ1gsT0FBTyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUM7aUJBQ2hDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLENB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SSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFDLENBQUM7WUFDN0QsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNoRCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUFDLENBQUM7WUFDOUQsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNoRCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsT0FBTyxJQUFJLENBQUM7U0FDYjs7WUFBTSxPQUFPLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQ2xDLE1BQU0s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QyxDQUFDO1lBQzNFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLE9BQU8sU0FBUyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMxRDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsV0FBVztTQUNaO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaG9uZU51bWJlclV0aWwgfSBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xyXG5cclxuY29uc3QgcGhvbmVVdGlsID0gUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XHJcblxyXG5leHBvcnQgY2xhc3MgTW9ua2V5VXRpbHMge1xyXG4gIHB1YmxpYyBzdGF0aWMgcGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh0cDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHAgIT09IG51bGwgJiYgdHAgIT09IHVuZGVmaW5lZCAmJiB0cCAhPT0gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldERvY3VtZW50VHlwZShkb2M6IHN0cmluZykge1xyXG4gICAgaWYgKCFkb2MpIHJldHVybiAnJztcclxuICAgIHJldHVybiBkb2MubGVuZ3RoIDw9IDExID8gJ0NQRicgOiAnQ05QSic7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldERvY3VtZW50TWFzayh0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0eXBlID09PSAnQ1BGJykgcmV0dXJuICcwMDAuMDAwLjAwMC0wMCc7XHJcbiAgICByZXR1cm4gJzAwLjAwMC4wMDAvMDAwMC0wMCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGZvcm1hdERvY3VtZW50V2l0aE1hc2soZG9jOiBzdHJpbmcsIHdpdGhUeXBlPzogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBpZiAoIWRvYykgcmV0dXJuIGRvYztcclxuICAgIGxldCBmb3JtYXRlZDogc3RyaW5nID0gJyc7XHJcbiAgICBpZiAoZG9jLmxlbmd0aCA9PT0gMTQpXHJcbiAgICAgIGZvcm1hdGVkID0gZG9jXHJcbiAgICAgICAgLnJlcGxhY2UoL14oXFxkezJ9KShcXGQpLywgJyQxLiQyJylcclxuICAgICAgICAucmVwbGFjZSgvXihcXGR7Mn0pXFwuKFxcZHszfSkoXFxkKS8sICckMS4kMi4kMycpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLyQyJylcclxuICAgICAgICAucmVwbGFjZSgvKFxcZHs0fSkoXFxkKS8sICckMS0kMicpO1xyXG4gICAgZWxzZVxyXG4gICAgICBmb3JtYXRlZCA9IGRvY1xyXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSkoXFxkKS8sICckMS4kMicpXHJcbiAgICAgICAgLnJlcGxhY2UoL14oXFxkezN9KVxcLihcXGR7M30pKFxcZCkvLCAnJDEuJDIuJDMnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cXC4oXFxkezN9KShcXGQpLywgJy4kMS0kMicpO1xyXG5cclxuICAgIHJldHVybiBgJHt3aXRoVHlwZSA/IGAke3RoaXMuZ2V0RG9jdW1lbnRUeXBlKGRvYyl9OmAgOiAnJ30gJHtmb3JtYXRlZH1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjdXRGaXJzdExhc3ROYW1lKHZhbHVlOiBzdHJpbmcsIHRwOiBzdHJpbmcgPSAnZmlyc3QnKSB7XHJcbiAgICBjb25zdCBzcGxpdCA9IHZhbHVlPy50cmltKCk/LnNwbGl0KCcgJyk7XHJcblxyXG4gICAgaWYgKHRwID09PSAnZmlyc3QnKSByZXR1cm4gc3BsaXRbMF07XHJcbiAgICByZXR1cm4gc3BsaXQ/LnNwbGljZSgxLCBzcGxpdC5sZW5ndGgpPy5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzQ1BGQ05QSlZhbGlkKGRvY3VtZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGRvY3VtZW50ID0gZG9jdW1lbnQucmVwbGFjZSgvW15cXGRdL2csICcnKTtcclxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDExKSB7XHJcbiAgICAgIGxldCBiYXNlID0gWzEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwXTtcclxuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDwgOTsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbaSsrXSk7XHJcbiAgICAgIGlmIChkb2N1bWVudFs5XSAhPSAoKG4gJT0gMTEpIDw9IDEgPyAwIDogMTEgLSBuKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBiYXNlID0gWzExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMF07XHJcbiAgICAgIGZvciAodmFyIGkgPSAwLCBuID0gMDsgaSA8PSA5OyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKTtcclxuICAgICAgaWYgKGRvY3VtZW50WzEwXSAhPSAoKG4gJT0gMTEpIDw9IDEgPyAwIDogMTEgLSBuKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubGVuZ3RoID09PSAxNCB8fCAvMHsxNH0vLnRlc3QoZG9jdW1lbnQpKSB7XHJcbiAgICAgIGxldCBiYXNlID0gWzYsIDUsIDQsIDMsIDIsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDJdO1xyXG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCAxMjsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbKytpXSk7XHJcbiAgICAgIGlmIChkb2N1bWVudFsxMl0gIT0gKChuICU9IDExKSA8IDIgPyAwIDogMTEgLSBuKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDEyOyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKTtcclxuICAgICAgaWYgKGRvY3VtZW50WzEzXSAhPSAoKG4gJT0gMTEpIDwgMiA/IDAgOiAxMSAtIG4pKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRVcmwodHh0OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChcclxuICAgICAgL14oaHR0cDpcXC9cXC93d3dcXC58aHR0cHM6XFwvXFwvd3d3XFwufGh0dHA6XFwvXFwvfGh0dHBzOlxcL1xcLykrW2EtejAtOV0rKFtcXC1cXC5dezF9W2EtejAtOV0rKSpcXC5bYS16XXsyLDEwfSg6WzAtOV17MSw1fSk/KFxcLy4qKT8kL2dtXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QodHh0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFppcENvZGUoemlwQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5oYW5kbGVPbmx5TnVtYmVycyh6aXBDb2RlKX1gLmxlbmd0aCA9PT0gODtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UmFuZG9tU3RyaW5nKGxlbjogbnVtYmVyLCBjaGFyU2V0Pzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNoYXJTZXQgPSBjaGFyU2V0IHx8ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XHJcbiAgICBsZXQgcmFuZG9tU3RyaW5nOiBzdHJpbmcgPSBBcnJheS5hcHBseShudWxsLCBBcnJheShsZW4pKVxyXG4gICAgICAubWFwKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gY2hhclNldC5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhclNldC5sZW5ndGgpKTtcclxuICAgICAgfSlcclxuICAgICAgLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHJhbmRvbVN0cmluZztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlT25seU51bWJlcnModmFsdWU6IGFueSkge1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOV0vZyksICcnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlT25seUFscGhhTnVtZXJpYyh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOUEtWmEtel0vLCAnZycpLCAnJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNhcGl0YWxpemUodmFsdWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGAke3ZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7dmFsdWUuc2xpY2UoMSl9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0WmlwQ29kZSh6aXBDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF6aXBDb2RlKSByZXR1cm4gemlwQ29kZTtcclxuICAgIGNvbnN0IGZvcm1hdGVkOiBzdHJpbmcgPSB6aXBDb2RlXHJcbiAgICAgIC5yZXBsYWNlKC9eKFxcZHs1fSkoXFxkKS8sICckMS0kMicpXHJcbiAgICAgIC5yZXBsYWNlKC9cXC4oXFxkezN9KShcXGQpLywgJy4kMS0kMicpO1xyXG5cclxuICAgIHJldHVybiBgJHtmb3JtYXRlZH1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XHJcbiAgICBsZXQgbCA9IDA7XHJcbiAgICB3aGlsZSAoc2l6ZSA+PSAxMDI0ICYmICsrbCkge1xyXG4gICAgICBzaXplID0gc2l6ZSAvIDEwMjQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2l6ZS50b0ZpeGVkKHNpemUgPCAxMCAmJiBsID4gMCA/IDEgOiAwKSArICcgJyArIHVuaXRzW2xdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdWZmbHVlKGRhdGE6IGFueVtdKTogYW55W10ge1xyXG4gICAgZm9yIChsZXQgaSA9IGRhdGEubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xyXG4gICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaSk7XHJcbiAgICAgIGNvbnN0IHRlbXAgPSBkYXRhW2ldO1xyXG4gICAgICBkYXRhW2ldID0gZGF0YVtqXTtcclxuICAgICAgZGF0YVtqXSA9IHRlbXA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlQmxvYkZpbGUodGhlQmxvYjogYW55LCBmaWxlTmFtZTogc3RyaW5nLCBmaWxlVHlwZTogc3RyaW5nKSB7XHJcbiAgICBmdW5jdGlvbiBibG9iVG9GaWxlKHRoZUJsb2IsIGZpbGVOYW1lKSB7XHJcbiAgICAgIGNvbnN0IGIgPSB0aGVCbG9iO1xyXG4gICAgICBiLmxhc3RNb2RpZmllZERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBiLm5hbWUgPSBmaWxlTmFtZTtcclxuICAgICAgcmV0dXJuIGI7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpbGU6IGFueTtcclxuICAgIGlmICghKG5hdmlnYXRvciBhcyBhbnkpLm1zU2F2ZUJsb2IpIHtcclxuICAgICAgZmlsZSA9IG5ldyBGaWxlKFt0aGVCbG9iXSwgZmlsZU5hbWUsIHsgdHlwZTogZmlsZVR5cGUgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWxlID0gbmV3IEJsb2IoW3RoZUJsb2JdLCB7IHR5cGU6IGZpbGVUeXBlIH0pO1xyXG4gICAgICBmaWxlID0gYmxvYlRvRmlsZShmaWxlLCBmaWxlTmFtZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGUodGV4dDogc3RyaW5nLCBtYXhMZW5ndGg6IG51bWJlciA9IDI1KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1pZENoYXIgPSAnLi4uJztcclxuICAgIGlmICghdGV4dCkgcmV0dXJuIG1pZENoYXI7XHJcbiAgICBpZiAodGV4dCAmJiB0ZXh0Lmxlbmd0aCA8PSBtYXhMZW5ndGgpIHJldHVybiB0ZXh0O1xyXG5cclxuICAgIGNvbnN0IGxlZnQgPSBNYXRoLmNlaWwobWF4TGVuZ3RoIC8gMik7XHJcbiAgICBjb25zdCByaWdodCA9IHRleHQubGVuZ3RoIC0gbGVmdCArIDE7XHJcblxyXG4gICAgcmV0dXJuIGAke3RleHQuc3Vic3RyKDAsIGxlZnQpfSAke21pZENoYXJ9ICR7dGV4dC5zdWJzdHJpbmcocmlnaHQpfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzTG9jYWxob3N0KCkge1xyXG4gICAgY29uc3QgeyBocmVmIH0gPSB3aW5kb3c/LmxvY2F0aW9uO1xyXG4gICAgaWYgKCFocmVmKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gaHJlZj8uc2VhcmNoKCdsb2NhbGhvc3QnKSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRQaG9uZVJlZ2lvbnMoKSB7XHJcbiAgICByZXR1cm4gcGhvbmVVdGlsXHJcbiAgICAgIC5nZXRTdXBwb3J0ZWRSZWdpb25zKClcclxuICAgICAgLm1hcCgoY29kZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHBob25lVXRpbC5nZXRDb3VudHJ5Q29kZUZvclJlZ2lvbihjb2RlKTtcclxuICAgICAgfSlcclxuICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxyXG4gICAgICAuc29ydCgoYSwgYikgPT4gKGEgPCBiID8gLTEgOiAxKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldFBob25lSGFuZGxlKGludGVybmF0aW9uYWxOdW1iZXIgPSA1NSkge1xyXG4gICAgbGV0IG1heExlbmd0aCA9IDE0O1xyXG4gICAgbGV0IG1hc2sgPSAnWFggWFhYWFgtWFhYWCc7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBjb3VudHJ5ID0gcGhvbmVVdGlsLmdldFJlZ2lvbkNvZGVGb3JDb3VudHJ5Q29kZShpbnRlcm5hdGlvbmFsTnVtYmVyKTtcclxuICAgICAgY29uc3QgZXhhbXBsZU51bWJlciA9IHBob25lVXRpbC5nZXRFeGFtcGxlTnVtYmVyKGNvdW50cnkpWyd2YWx1ZXNfJ11bJzInXTtcclxuXHJcbiAgICAgIGNvbnN0IG51bWJlciA9IHBob25lVXRpbC5wYXJzZShgJHtleGFtcGxlTnVtYmVyfWAsIGNvdW50cnkpO1xyXG4gICAgICBjb25zdCBmb3JtYXRlZCA9IHBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBudWxsKTtcclxuICAgICAgaWYgKGZvcm1hdGVkKSB7XHJcbiAgICAgICAgbWF4TGVuZ3RoID0gYCR7Zm9ybWF0ZWR9YC5sZW5ndGg7XHJcbiAgICAgICAgbWFzayA9IGAke2Zvcm1hdGVkfWAucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOV0vZyksICcwJyk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy9ub3QgdG8gZG9cclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1heExlbmd0aCxcclxuICAgICAgbWFzayxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldFBob25lQ291bnRyeUNvZGUocGhvbmU6IHN0cmluZykge1xyXG4gICAgaWYgKCFwaG9uZSkgcmV0dXJuICcnO1xyXG4gICAgbGV0IGNjID0gYCR7dGhpcy5oYW5kbGVPbmx5TnVtYmVycyhwaG9uZSl9YD8uc3Vic3RyaW5nKDAsIDIpO1xyXG4gICAgbGV0IGNvZGU7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBudW1iZXIgPSBwaG9uZVV0aWwucGFyc2UocGhvbmUpO1xyXG4gICAgICBjb2RlID0gbnVtYmVyLmdldENvdW50cnlDb2RlT3JEZWZhdWx0KCk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vbm90IHRvIGRvXHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29kZSB8fCBjYztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UGhvbmVOdW1iZXJGb3JtYXRlZChwaG9uZTogc3RyaW5nLCBpbnRlcm5hdGlvbmFsTnVtYmVyID0gNTUpIHtcclxuICAgIGlmICghcGhvbmUpIHJldHVybiAnJztcclxuICAgIHBob25lID0gcGhvbmUucmVwbGFjZShgKyR7aW50ZXJuYXRpb25hbE51bWJlcn1gLCAnJyk7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBjb3VudHJ5ID0gcGhvbmVVdGlsLmdldFJlZ2lvbkNvZGVGb3JDb3VudHJ5Q29kZShpbnRlcm5hdGlvbmFsTnVtYmVyKTtcclxuICAgICAgY29uc3QgbnVtYmVyID0gcGhvbmVVdGlsLnBhcnNlKHBob25lLCBjb3VudHJ5KTtcclxuICAgICAgaWYgKHBob25lVXRpbC5pc1Bvc3NpYmxlTnVtYmVyKG51bWJlcikpIHtcclxuICAgICAgICByZXR1cm4gcGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vbm90IHRvIGRvXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGhvbmU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzUGhvbmVOdW1iZXJWYWxpZChwaG9uZTogc3RyaW5nLCBpbnRlcm5hdGlvbmFsTnVtYmVyID0gNTUpIHtcclxuICAgIGlmICghcGhvbmUpIHJldHVybiBmYWxzZTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGNvdW50cnkgPSBwaG9uZVV0aWwuZ2V0UmVnaW9uQ29kZUZvckNvdW50cnlDb2RlKGludGVybmF0aW9uYWxOdW1iZXIpO1xyXG4gICAgICBjb25zdCBudW1iZXIgPSBwaG9uZVV0aWwucGFyc2UocGhvbmUsIGNvdW50cnkpO1xyXG4gICAgICByZXR1cm4gcGhvbmVVdGlsLmlzVmFsaWROdW1iZXJGb3JSZWdpb24obnVtYmVyLCBjb3VudHJ5KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy9ub3QgdG8gZG9cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
|