@bravobit/bb-foundation 0.26.3 → 0.27.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/auth/lib/directives/authenticated.directive.d.ts +1 -1
- package/collections/lib/components/collections-pager/collections-pager.component.d.ts +1 -1
- package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +1 -1
- package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +1 -1
- package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
- package/controls/lib/control-error/control-error/control-error.component.d.ts +1 -1
- package/controls/lib/form-control/form-control/form-control.component.d.ts +1 -1
- package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +1 -1
- package/controls/lib/form-control/form-control-input.directive.d.ts +1 -1
- package/controls/lib/radio/radio-button/radio-button.component.d.ts +1 -1
- package/controls/lib/radio/radio-group/radio-group.component.d.ts +1 -1
- package/controls/lib/toggle/toggle/toggle.component.d.ts +1 -1
- package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +1 -1
- package/dashboard/lib/dashboard/dashboard.component.d.ts +1 -1
- package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
- package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +1 -1
- package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +1 -1
- package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +1 -1
- package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
- package/elements/lib/avatar/avatar.component.d.ts +1 -1
- package/elements/lib/button/button.component.d.ts +2 -2
- package/elements/lib/checkbox/checkbox.component.d.ts +1 -1
- package/elements/lib/date-picker/date-picker.component.d.ts +1 -1
- package/elements/lib/directives/input.directive.d.ts +2 -2
- package/elements/lib/dropdown/dropdown.component.d.ts +1 -1
- package/elements/lib/file-picker/file-picker.component.d.ts +2 -2
- package/elements/lib/form-control/form-control.component.d.ts +1 -1
- package/elements/lib/form-error/form-error.component.d.ts +1 -1
- package/elements/lib/form-group/form-group.component.d.ts +1 -1
- package/elements/lib/icon/icon.component.d.ts +1 -1
- package/elements/lib/image-picker/image-picker.component.d.ts +1 -1
- package/elements/lib/spinner/spinner.component.d.ts +1 -1
- package/esm2022/auth/lib/auth.interceptor.mjs +91 -0
- package/esm2022/auth/lib/auth.module.mjs +36 -0
- package/esm2022/auth/lib/auth.service.mjs +271 -0
- package/esm2022/auth/lib/directives/authenticated.directive.mjs +43 -0
- package/esm2022/auth/lib/guards/anonymous.guard.mjs +54 -0
- package/esm2022/auth/lib/guards/authenticated.guard.mjs +57 -0
- package/esm2022/collections/lib/collections.module.mjs +55 -0
- package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +124 -0
- package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +32 -0
- package/esm2022/collections/lib/components/collections.directive.mjs +47 -0
- package/esm2022/controls/lib/checkbox/checkbox/checkbox.component.mjs +179 -0
- package/esm2022/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +69 -0
- package/esm2022/controls/lib/checkbox/checkbox.module.mjs +21 -0
- package/esm2022/controls/lib/control-error/control-error/control-error.component.mjs +64 -0
- package/esm2022/controls/lib/control-error/control-error-submit.directive.mjs +48 -0
- package/esm2022/controls/lib/control-error/control-error.module.mjs +20 -0
- package/esm2022/controls/lib/controls.module.mjs +63 -0
- package/esm2022/controls/lib/form-control/form-control/form-control.component.mjs +80 -0
- package/esm2022/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +23 -0
- package/esm2022/controls/lib/form-control/form-control-input.directive.mjs +125 -0
- package/esm2022/controls/lib/form-control/form-control.module.mjs +35 -0
- package/esm2022/controls/lib/radio/radio-button/radio-button.component.mjs +76 -0
- package/esm2022/controls/lib/radio/radio-group/radio-group.component.mjs +169 -0
- package/esm2022/controls/lib/radio/radio.module.mjs +22 -0
- package/esm2022/controls/lib/toggle/toggle/toggle.component.mjs +154 -0
- package/esm2022/controls/lib/toggle/toggle-group/toggle-group.component.mjs +63 -0
- package/esm2022/controls/lib/toggle/toggle.module.mjs +21 -0
- package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +58 -0
- package/{esm2020 → esm2022}/dashboard/lib/dashboard-header/dashboard-header.component.mjs +6 -5
- package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +32 -0
- package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +30 -0
- package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +76 -0
- package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +100 -0
- package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +63 -0
- package/esm2022/dashboard/lib/dashboard.module.mjs +48 -0
- package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +13 -0
- package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +47 -0
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +78 -0
- package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +19 -0
- package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +12 -0
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +68 -0
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +80 -0
- package/esm2022/dialog/lib/dialog.insertion.mjs +17 -0
- package/esm2022/dialog/lib/dialog.module.mjs +69 -0
- package/esm2022/dialog/lib/dialog.service.mjs +69 -0
- package/esm2022/elements/lib/avatar/avatar.component.mjs +150 -0
- package/esm2022/elements/lib/button/button.component.mjs +63 -0
- package/esm2022/elements/lib/checkbox/checkbox.component.mjs +74 -0
- package/esm2022/elements/lib/date-picker/date-picker.component.mjs +308 -0
- package/esm2022/elements/lib/directives/addon.directive.mjs +31 -0
- package/esm2022/elements/lib/directives/form-submit.directive.mjs +51 -0
- package/esm2022/elements/lib/directives/form-submitter.directive.mjs +26 -0
- package/esm2022/elements/lib/directives/input.directive.mjs +138 -0
- package/esm2022/elements/lib/dropdown/dropdown.component.mjs +102 -0
- package/esm2022/elements/lib/elements.module.mjs +178 -0
- package/esm2022/elements/lib/file-picker/file-picker.component.mjs +237 -0
- package/esm2022/elements/lib/form-control/form-control.component.mjs +50 -0
- package/esm2022/elements/lib/form-error/form-error.component.mjs +124 -0
- package/esm2022/elements/lib/form-group/form-group.component.mjs +19 -0
- package/esm2022/elements/lib/icon/icon.component.mjs +103 -0
- package/esm2022/elements/lib/image-picker/image-picker.component.mjs +107 -0
- package/esm2022/elements/lib/pipes/file-image.pipe.mjs +44 -0
- package/esm2022/elements/lib/pipes/file-size.pipe.mjs +29 -0
- package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +97 -0
- package/esm2022/elements/lib/spinner/spinner.component.mjs +26 -0
- package/esm2022/elements/lib/tag/tag.component.mjs +19 -0
- package/esm2022/http/lib/http.module.mjs +44 -0
- package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +51 -0
- package/esm2022/http/lib/interceptors/error.interceptor.mjs +33 -0
- package/esm2022/lib/core/services/clipboard.service.mjs +71 -0
- package/esm2022/lib/core/services/exif.service.mjs +164 -0
- package/esm2022/lib/core/services/file-loader.service.mjs +88 -0
- package/esm2022/lib/core/services/image-converter.service.mjs +124 -0
- package/esm2022/lib/core/services/languages.service.mjs +75 -0
- package/esm2022/lib/core/services/network.service.mjs +56 -0
- package/esm2022/lib/core/services/patch.service.mjs +64 -0
- package/esm2022/localize/lib/localize.module.mjs +82 -0
- package/esm2022/localize/lib/localize.pipe.mjs +47 -0
- package/esm2022/localize/lib/localize.service.mjs +186 -0
- package/{esm2020 → esm2022}/localize/lib/transforms/interpolate.transform.mjs +1 -1
- package/{esm2020 → esm2022}/localize/lib/transforms/reference.transform.mjs +1 -1
- package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +89 -0
- package/esm2022/localize/lib/views/localize-template.directive.mjs +22 -0
- package/esm2022/masking/lib/directives/currency-mask.directive.mjs +36 -0
- package/esm2022/masking/lib/directives/date-mask.directive.mjs +36 -0
- package/esm2022/masking/lib/directives/input-mask.directive.mjs +119 -0
- package/esm2022/masking/lib/masking.module.mjs +31 -0
- package/esm2022/masking/lib/masking.service.mjs +104 -0
- package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +101 -0
- package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +48 -0
- package/esm2022/notifications/lib/notifications.module.mjs +31 -0
- package/esm2022/notifications/lib/notifications.service.mjs +142 -0
- package/esm2022/permissions/lib/directives/permission.directive.mjs +89 -0
- package/esm2022/permissions/lib/guards/permission.guard.mjs +57 -0
- package/esm2022/permissions/lib/permissions.module.mjs +40 -0
- package/esm2022/permissions/lib/permissions.service.mjs +97 -0
- package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +220 -0
- package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +96 -0
- package/esm2022/recaptcha/lib/recaptcha.module.mjs +28 -0
- package/esm2022/storage/lib/storage.service.mjs +110 -0
- package/esm2022/table/lib/components/table/table.component.mjs +194 -0
- package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +12 -0
- package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +132 -0
- package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +137 -0
- package/esm2022/table/lib/table.module.mjs +43 -0
- package/esm2022/theming/lib/theming.directive.mjs +39 -0
- package/esm2022/theming/lib/theming.module.mjs +17 -0
- package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +32 -0
- package/esm2022/tooltip/lib/tooltip.directive.mjs +141 -0
- package/esm2022/tooltip/lib/tooltip.module.mjs +32 -0
- package/esm2022/utils/lib/directives/autosize.directive.mjs +73 -0
- package/esm2022/utils/lib/directives/focus-trap.directive.mjs +78 -0
- package/esm2022/utils/lib/directives/focus.directive.mjs +38 -0
- package/esm2022/utils/lib/directives/template.directive.mjs +29 -0
- package/esm2022/utils/lib/functions/parse-date.function.mjs +19 -0
- package/esm2022/utils/lib/utils.module.mjs +36 -0
- package/esm2022/utils/public_api.mjs +7 -0
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs +19 -19
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs +38 -38
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs +83 -83
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs +37 -37
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs +46 -46
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-elements.mjs +185 -185
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs +10 -10
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs +20 -20
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs +20 -20
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs +13 -13
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs +13 -13
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs +16 -16
- package/{fesm2015 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs +3 -3
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs +34 -34
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs +7 -7
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs +13 -13
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-utils.mjs +42 -23
- package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs +21 -21
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs.map +1 -1
- package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
- package/localize/lib/views/localize-template.directive.d.ts +1 -1
- package/masking/lib/directives/currency-mask.directive.d.ts +1 -1
- package/masking/lib/directives/date-mask.directive.d.ts +1 -1
- package/masking/lib/directives/input-mask.directive.d.ts +1 -1
- package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
- package/package.json +70 -112
- package/permissions/lib/directives/permission.directive.d.ts +1 -1
- package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +1 -1
- package/table/lib/components/table/table.component.d.ts +1 -1
- package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +1 -1
- package/table/lib/components/table-pager/table-pager.component.d.ts +1 -1
- package/theming/lib/theming.directive.d.ts +1 -1
- package/tooltip/lib/tooltip.directive.d.ts +1 -1
- package/utils/lib/directives/autosize.directive.d.ts +1 -1
- package/utils/lib/directives/template.directive.d.ts +1 -1
- package/utils/lib/functions/parse-date.function.d.ts +1 -0
- package/utils/public_api.d.ts +1 -0
- package/esm2020/auth/lib/auth.interceptor.mjs +0 -90
- package/esm2020/auth/lib/auth.module.mjs +0 -35
- package/esm2020/auth/lib/auth.service.mjs +0 -270
- package/esm2020/auth/lib/directives/authenticated.directive.mjs +0 -42
- package/esm2020/auth/lib/guards/anonymous.guard.mjs +0 -53
- package/esm2020/auth/lib/guards/authenticated.guard.mjs +0 -56
- package/esm2020/collections/lib/collections.module.mjs +0 -54
- package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +0 -123
- package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +0 -31
- package/esm2020/collections/lib/components/collections.directive.mjs +0 -43
- package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +0 -178
- package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +0 -68
- package/esm2020/controls/lib/checkbox/checkbox.module.mjs +0 -20
- package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +0 -63
- package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +0 -47
- package/esm2020/controls/lib/control-error/control-error.module.mjs +0 -19
- package/esm2020/controls/lib/controls.module.mjs +0 -62
- package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +0 -79
- package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +0 -22
- package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +0 -124
- package/esm2020/controls/lib/form-control/form-control.module.mjs +0 -34
- package/esm2020/controls/lib/radio/radio-button/radio-button.component.mjs +0 -75
- package/esm2020/controls/lib/radio/radio-group/radio-group.component.mjs +0 -168
- package/esm2020/controls/lib/radio/radio.module.mjs +0 -21
- package/esm2020/controls/lib/toggle/toggle/toggle.component.mjs +0 -153
- package/esm2020/controls/lib/toggle/toggle-group/toggle-group.component.mjs +0 -62
- package/esm2020/controls/lib/toggle/toggle.module.mjs +0 -20
- package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +0 -57
- package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +0 -31
- package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +0 -29
- package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +0 -75
- package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +0 -99
- package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +0 -62
- package/esm2020/dashboard/lib/dashboard.module.mjs +0 -47
- package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +0 -12
- package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +0 -46
- package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +0 -77
- package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +0 -18
- package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +0 -11
- package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +0 -67
- package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +0 -79
- package/esm2020/dialog/lib/dialog.insertion.mjs +0 -16
- package/esm2020/dialog/lib/dialog.module.mjs +0 -68
- package/esm2020/dialog/lib/dialog.service.mjs +0 -68
- package/esm2020/elements/lib/avatar/avatar.component.mjs +0 -149
- package/esm2020/elements/lib/button/button.component.mjs +0 -61
- package/esm2020/elements/lib/checkbox/checkbox.component.mjs +0 -73
- package/esm2020/elements/lib/date-picker/date-picker.component.mjs +0 -307
- package/esm2020/elements/lib/directives/addon.directive.mjs +0 -29
- package/esm2020/elements/lib/directives/form-submit.directive.mjs +0 -50
- package/esm2020/elements/lib/directives/form-submitter.directive.mjs +0 -25
- package/esm2020/elements/lib/directives/input.directive.mjs +0 -136
- package/esm2020/elements/lib/dropdown/dropdown.component.mjs +0 -100
- package/esm2020/elements/lib/elements.module.mjs +0 -177
- package/esm2020/elements/lib/file-picker/file-picker.component.mjs +0 -236
- package/esm2020/elements/lib/form-control/form-control.component.mjs +0 -49
- package/esm2020/elements/lib/form-error/form-error.component.mjs +0 -123
- package/esm2020/elements/lib/form-group/form-group.component.mjs +0 -18
- package/esm2020/elements/lib/icon/icon.component.mjs +0 -102
- package/esm2020/elements/lib/image-picker/image-picker.component.mjs +0 -106
- package/esm2020/elements/lib/pipes/file-image.pipe.mjs +0 -43
- package/esm2020/elements/lib/pipes/file-size.pipe.mjs +0 -28
- package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +0 -96
- package/esm2020/elements/lib/spinner/spinner.component.mjs +0 -25
- package/esm2020/elements/lib/tag/tag.component.mjs +0 -18
- package/esm2020/http/lib/http.module.mjs +0 -43
- package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +0 -50
- package/esm2020/http/lib/interceptors/error.interceptor.mjs +0 -32
- package/esm2020/lib/core/services/clipboard.service.mjs +0 -70
- package/esm2020/lib/core/services/exif.service.mjs +0 -163
- package/esm2020/lib/core/services/file-loader.service.mjs +0 -87
- package/esm2020/lib/core/services/image-converter.service.mjs +0 -123
- package/esm2020/lib/core/services/languages.service.mjs +0 -74
- package/esm2020/lib/core/services/network.service.mjs +0 -55
- package/esm2020/lib/core/services/patch.service.mjs +0 -63
- package/esm2020/localize/lib/localize.module.mjs +0 -81
- package/esm2020/localize/lib/localize.pipe.mjs +0 -46
- package/esm2020/localize/lib/localize.service.mjs +0 -185
- package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +0 -88
- package/esm2020/localize/lib/views/localize-template.directive.mjs +0 -21
- package/esm2020/masking/lib/directives/currency-mask.directive.mjs +0 -35
- package/esm2020/masking/lib/directives/date-mask.directive.mjs +0 -35
- package/esm2020/masking/lib/directives/input-mask.directive.mjs +0 -118
- package/esm2020/masking/lib/masking.module.mjs +0 -30
- package/esm2020/masking/lib/masking.service.mjs +0 -103
- package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +0 -100
- package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +0 -47
- package/esm2020/notifications/lib/notifications.module.mjs +0 -30
- package/esm2020/notifications/lib/notifications.service.mjs +0 -141
- package/esm2020/permissions/lib/directives/permission.directive.mjs +0 -88
- package/esm2020/permissions/lib/guards/permission.guard.mjs +0 -56
- package/esm2020/permissions/lib/permissions.module.mjs +0 -39
- package/esm2020/permissions/lib/permissions.service.mjs +0 -96
- package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +0 -219
- package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +0 -95
- package/esm2020/recaptcha/lib/recaptcha.module.mjs +0 -27
- package/esm2020/storage/lib/storage.service.mjs +0 -109
- package/esm2020/table/lib/components/table/table.component.mjs +0 -191
- package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +0 -11
- package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +0 -131
- package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +0 -136
- package/esm2020/table/lib/table.module.mjs +0 -42
- package/esm2020/theming/lib/theming.directive.mjs +0 -38
- package/esm2020/theming/lib/theming.module.mjs +0 -16
- package/esm2020/tooltip/lib/tooltip-container/tooltip-container.component.mjs +0 -31
- package/esm2020/tooltip/lib/tooltip.directive.mjs +0 -140
- package/esm2020/tooltip/lib/tooltip.module.mjs +0 -31
- package/esm2020/utils/lib/directives/autosize.directive.mjs +0 -72
- package/esm2020/utils/lib/directives/focus-trap.directive.mjs +0 -77
- package/esm2020/utils/lib/directives/focus.directive.mjs +0 -37
- package/esm2020/utils/lib/directives/template.directive.mjs +0 -28
- package/esm2020/utils/lib/utils.module.mjs +0 -35
- package/esm2020/utils/public_api.mjs +0 -6
- package/fesm2015/bravobit-bb-foundation-auth.mjs +0 -851
- package/fesm2015/bravobit-bb-foundation-auth.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-collections.mjs +0 -474
- package/fesm2015/bravobit-bb-foundation-collections.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-controls.mjs +0 -1217
- package/fesm2015/bravobit-bb-foundation-controls.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs +0 -417
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-dialog.mjs +0 -512
- package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-elements.mjs +0 -1883
- package/fesm2015/bravobit-bb-foundation-elements.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-http.mjs +0 -176
- package/fesm2015/bravobit-bb-foundation-http.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-localize.mjs +0 -835
- package/fesm2015/bravobit-bb-foundation-localize.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-masking.mjs +0 -334
- package/fesm2015/bravobit-bb-foundation-masking.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-notifications.mjs +0 -357
- package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-permissions.mjs +0 -310
- package/fesm2015/bravobit-bb-foundation-permissions.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +0 -349
- package/fesm2015/bravobit-bb-foundation-rxjs.mjs +0 -22
- package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-storage.mjs +0 -418
- package/fesm2015/bravobit-bb-foundation-storage.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-table.mjs +0 -613
- package/fesm2015/bravobit-bb-foundation-table.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-theming.mjs +0 -382
- package/fesm2015/bravobit-bb-foundation-theming.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-tooltip.mjs +0 -210
- package/fesm2015/bravobit-bb-foundation-tooltip.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-utils.mjs +0 -246
- package/fesm2015/bravobit-bb-foundation-utils.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation.mjs +0 -929
- package/fesm2015/bravobit-bb-foundation.mjs.map +0 -1
- package/fesm2020/bravobit-bb-foundation-elements.mjs.map +0 -1
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +0 -1
- package/fesm2020/bravobit-bb-foundation-utils.mjs.map +0 -1
- /package/{esm2020 → esm2022}/auth/bravobit-bb-foundation-auth.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/auth.session.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/directives/abstract.directive.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/helpers/jwt.helper.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/interfaces/config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/interfaces/provider.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/interfaces/token.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/providers/email.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/providers/verify.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/tokens/use-authorization.token.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/bravobit-bb-foundation.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/bravobit-bb-foundation-collections.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/collection.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/interfaces/collection.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/providers/api-collection.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/providers/collection.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/providers/local-collection.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/bravobit-bb-foundation-controls.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/control-error/control-error/control-error.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.defaults.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/controls.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -0
- /package/{esm2020 → esm2022}/dashboard/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/bravobit-bb-foundation-dialog.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/lib/dialog-container/dialog-container.animations.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/lib/dialog-overlay/dialog-overlay.animations.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/lib/dialog.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/lib/dialog.ref.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/elements/bravobit-bb-foundation-elements.mjs +0 -0
- /package/{esm2020 → esm2022}/elements/lib/elements.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/elements/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/http/bravobit-bb-foundation-http.mjs +0 -0
- /package/{esm2020 → esm2022}/http/lib/classes/http.config.mjs +0 -0
- /package/{esm2020 → esm2022}/http/lib/classes/http.error.mjs +0 -0
- /package/{esm2020 → esm2022}/http/lib/http.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/http/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/functions/date.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/functions/password.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/miscellaneous/regex.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/miscellaneous/validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/can-disable.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/can-hide-errors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/can-load.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/constructor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/has-error.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/is-focused.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/is-grouped.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/is-readonly.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/is-required.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/accept-language.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/base-url.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/cookie.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/location.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/navigator.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/window.token.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/bravobit-bb-foundation-localize.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.class.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.context.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.data.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/functions/date.function.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/functions/lowercase.function.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/functions/uppercase.function.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/handlers/missing.handler.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/config.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/functions.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/handlers.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/options.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/transforms.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/locale.token.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/localizations/dutch.localization.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/localizations/english.localization.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/transforms/abstract.transform.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/masking/bravobit-bb-foundation-masking.mjs +0 -0
- /package/{esm2020 → esm2022}/masking/lib/input-mask.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/masking/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/notifications/bravobit-bb-foundation-notifications.mjs +0 -0
- /package/{esm2020 → esm2022}/notifications/lib/notifications.animations.mjs +0 -0
- /package/{esm2020 → esm2022}/notifications/lib/notifications.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/notifications/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/bravobit-bb-foundation-permissions.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/lib/handlers/abstract.handler.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/lib/handlers/local.handler.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/lib/permissions.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -0
- /package/{esm2020 → esm2022}/recaptcha/lib/recaptcha.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/recaptcha/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/lib/observables/get-control-value.observable.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/lib/operators/filter-nil.operator.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/bravobit-bb-foundation-storage.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/interfaces/attributes.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/interfaces/memory.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/interfaces/strategy.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/strategies/cookie-storage.strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/strategies/memory-storage.strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/table/bravobit-bb-foundation-table.mjs +0 -0
- /package/{esm2020 → esm2022}/table/lib/data/datasource.data.mjs +0 -0
- /package/{esm2020 → esm2022}/table/lib/data/generic.data.mjs +0 -0
- /package/{esm2020 → esm2022}/table/lib/interfaces/datasource.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/table/lib/interfaces/table.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/table/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/bravobit-bb-foundation-theming.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/checkbox-group.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/checkbox.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/control-error.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/form-control-addon.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/form-control.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/radio-button.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/radio-group.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/toggle-group.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/toggle.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/theming.data.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/theming.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/utils/theming.variable.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/lib/tooltip.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/bravobit-bb-foundation-utils.mjs +0 -0
- /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs +0 -0
- /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs.map +0 -0
|
@@ -51,4 +51,4 @@ LocalizeInterpolateTransform = __decorate([
|
|
|
51
51
|
__param(1, Inject(LOCALIZE_FUNCTION))
|
|
52
52
|
], LocalizeInterpolateTransform);
|
|
53
53
|
export { LocalizeInterpolateTransform };
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJwb2xhdGUudHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL3RyYW5zZm9ybXMvaW50ZXJwb2xhdGUudHJhbnNmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQXdDLE1BQU0sb0NBQW9DLENBQUM7QUFHNUcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHL0MsSUFBYSw0QkFBNEIsR0FBekMsTUFBYSw0QkFBNkIsU0FBUSxpQkFBaUI7SUFRL0QsWUFBd0IsTUFBZ0MsRUFDTCxTQUF3QztRQUN2RixLQUFLLEVBQUUsQ0FBQztRQUZzQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUNLLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBUGxGLGtCQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLGlCQUFZLEdBQXdCLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDN0YsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztZQUN2QyxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFLUCxDQUFDO0lBRVEsT0FBTyxDQUFDLEtBQWEsRUFBRSxJQUE0QixFQUFFLFFBQWtCO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUzRCxpREFBaUQ7UUFDakQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3hDLDBCQUEwQjtZQUMxQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUV2RiwrQ0FBK0M7WUFDL0MsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUMvRCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRVMsdUJBQXVCLENBQUMsS0FBYSxFQUFFLElBQTRCLEVBQUUsUUFBa0I7UUFDN0YsNkNBQTZDO1FBQzdDLHNCQUFzQjtRQUN0QixNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlFLG1DQUFtQztRQUNuQywwQkFBMEI7UUFDMUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7UUFFbkQscURBQXFEO1FBQ3JELDhDQUE4QztRQUM5QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLEVBQUU7WUFDN0Msc0RBQXNEO1lBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV2RCwrQ0FBK0M7WUFDL0MsMkNBQTJDO1lBQzNDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2IsT0FBTyxNQUFNLENBQUM7YUFDakI7WUFFRCxtREFBbUQ7WUFDbkQsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25FLENBQUMsRUFBRSxHQUFHLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBRUosQ0FBQTtBQXBEWSw0QkFBNEI7SUFReEIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtJQUNWLFdBQUEsUUFBUSxFQUFFLENBQUE7SUFBRSxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0dBVHpDLDRCQUE0QixDQW9EeEM7U0FwRFksNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMT0NBTElaRV9GVU5DVElPTiwgTG9jYWxpemVGdW5jdGlvbiwgTG9jYWxpemVGdW5jdGlvbk1hcH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mdW5jdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0xvY2FsaXplUGFyYW1zfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0xvY2FsaXplQ29uZmlnfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7TG9jYWxpemVUcmFuc2Zvcm19IGZyb20gJy4vYWJzdHJhY3QudHJhbnNmb3JtJztcbmltcG9ydCB7SW5qZWN0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICcuLi9sb2NhbGl6ZS5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIExvY2FsaXplSW50ZXJwb2xhdGVUcmFuc2Zvcm0gZXh0ZW5kcyBMb2NhbGl6ZVRyYW5zZm9ybSB7XG5cbiAgICByZWFkb25seSBzdWJzdGl0dXRpb25zID0gdGhpcy5jb25maWc/LnN1YnN0aXR1dGlvbnM/LnJlZmVyZW5jZXMgPz8gWyd7eycsICd9fSddO1xuICAgIHJlYWRvbmx5IGZ1bmN0aW9uc01hcDogTG9jYWxpemVGdW5jdGlvbk1hcCA9ICh0aGlzLmZ1bmN0aW9ucyA/PyBbXSkucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgICAgICBwcmV2aW91c1tjdXJyZW50Py5rZXl3b3JkKCldID0gY3VycmVudDtcbiAgICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgIH0sIHt9KTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByb3RlY3RlZCBjb25maWc6IExvY2FsaXplQ29uZmlnLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTE9DQUxJWkVfRlVOQ1RJT04pIHByb3RlY3RlZCBmdW5jdGlvbnM/OiBMb2NhbGl6ZUZ1bmN0aW9uW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBleGVjdXRlKHZhbHVlOiBzdHJpbmcsIGRhdGE6IExvY2FsaXplUGFyYW1zWydkYXRhJ10sIGxvY2FsaXplOiBMb2NhbGl6ZSkge1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gdGhpcy5nZXRNYXRjaGVzKHZhbHVlLCB0aGlzLnN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIC8vIFJlcGxhY2UgYWxsIG1hdGNoZXMgd2l0aCB0aGUgdHJhbnNsYXRlZCB2YWx1ZS5cbiAgICAgICAgcmV0dXJuIG1hdGNoZXMucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gVHJ5IHRvIHBhcnNlIHRoZSB0b2tlbi5cbiAgICAgICAgICAgIGNvbnN0IGludGVycG9sYXRlZFRva2VuID0gdGhpcy5wYXJzZUludGVycG9sYXRpb25Ub2tlbihjdXJyZW50Py50b2tlbiwgZGF0YSwgbG9jYWxpemUpO1xuXG4gICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBtYXRjaCB3aXRoIHRoZSB0cmFuc2xhdGVkIHRva2VuLlxuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzLnJlcGxhY2UoY3VycmVudD8ubWF0Y2gsIGludGVycG9sYXRlZFRva2VuKTtcbiAgICAgICAgfSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBwYXJzZUludGVycG9sYXRpb25Ub2tlbih2YWx1ZTogc3RyaW5nLCBkYXRhOiBMb2NhbGl6ZVBhcmFtc1snZGF0YSddLCBsb2NhbGl6ZTogTG9jYWxpemUpIHtcbiAgICAgICAgLy8gR2V0IHRoZSB0b2tlbiBhbmQgdGhlIG1ldGhvZHMgYnkgc3BsaXR0aW5nXG4gICAgICAgIC8vIG9uIHRoZSBwaXBlIHN5bWJvbC5cbiAgICAgICAgY29uc3QgW3Rva2VuLCAuLi5tZXRob2RzXSA9ICh2YWx1ZSA/PyAnJykuc3BsaXQoJ3wnKS5tYXAoaXRlbSA9PiBpdGVtLnRyaW0oKSk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSB2YWx1ZSBmb3IgdGhlIHRva2VuIGZyb21cbiAgICAgICAgLy8gdGhlIGludGVycG9sYXRpb24gZGF0YS5cbiAgICAgICAgY29uc3QgaW50ZXJwb2xhdGlvblZhbHVlID0gZGF0YT8uW3Rva2VuXSA/PyAnbnVsbCc7XG5cbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIGFsbCB0aGUgbWlkZGxld2FyZSBtZXRob2RzIGFuZCB0cnkgdG9cbiAgICAgICAgLy8gY29uZm9ybSB0aGUgc3RyaW5nIHRvIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxuICAgICAgICByZXR1cm4gbWV0aG9kcy5yZWR1Y2UoKHN0cmluZywgbWlkZGxld2FyZU5hbWUpID0+IHtcbiAgICAgICAgICAgIC8vIFRyeSB0byByZXRyaWV2ZSB0aGUgbWlkZGxld2FyZSBmcm9tIHRoZSBjb2xsZWN0aW9uLlxuICAgICAgICAgICAgY29uc3QgbWlkZGxld2FyZSA9IHRoaXMuZnVuY3Rpb25zTWFwPy5bbWlkZGxld2FyZU5hbWVdO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgbWlkZGxld2FyZSBpcyBtaXNzaW5nIHJldHVybiBhbiBlcnJvclxuICAgICAgICAgICAgLy8gc28gdGhhdCB0aGUgdXNlciBrbm93cyBpdCB3YXMgbm90IGZvdW5kLlxuICAgICAgICAgICAgaWYgKCFtaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgbWlkZGxld2FyZSBmdW5jdGlvbiB3aXRoIHRoZSBzdHJpbmcuXG4gICAgICAgICAgICByZXR1cm4gbWlkZGxld2FyZS50cmFuc2Zvcm0oc3RyaW5nLCBsb2NhbGl6ZT8uY3VycmVudD8ubG9jYWxlKTtcbiAgICAgICAgfSwgYCR7aW50ZXJwb2xhdGlvblZhbHVlfWApO1xuICAgIH1cblxufVxuIl19
|
|
@@ -22,4 +22,4 @@ LocalizeReferenceTransform = __decorate([
|
|
|
22
22
|
__param(0, Optional())
|
|
23
23
|
], LocalizeReferenceTransform);
|
|
24
24
|
export { LocalizeReferenceTransform };
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLnRyYW5zZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi90cmFuc2Zvcm1zL3JlZmVyZW5jZS50cmFuc2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdkMsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMkIsU0FBUSxpQkFBaUI7SUFJN0QsWUFBd0IsTUFBZ0M7UUFDcEQsS0FBSyxFQUFFLENBQUM7UUFEc0IsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFGL0Msa0JBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFJL0UsQ0FBQztJQUVRLE9BQU8sQ0FBQyxLQUFhLEVBQUUsQ0FBeUIsRUFBRSxRQUFrQjtRQUN6RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFM0QsaURBQWlEO1FBQ2pELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN4Qyw4QkFBOEI7WUFDOUIsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFM0QsK0NBQStDO1lBQy9DLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzdELENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNkLENBQUM7Q0FFSixDQUFBO0FBckJZLDBCQUEwQjtJQUl0QixXQUFBLFFBQVEsRUFBRSxDQUFBO0dBSmQsMEJBQTBCLENBcUJ0QztTQXJCWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplUGFyYW1zfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0xvY2FsaXplQ29uZmlnfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7TG9jYWxpemVUcmFuc2Zvcm19IGZyb20gJy4vYWJzdHJhY3QudHJhbnNmb3JtJztcbmltcG9ydCB7TG9jYWxpemV9IGZyb20gJy4uL2xvY2FsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHtPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZVJlZmVyZW5jZVRyYW5zZm9ybSBleHRlbmRzIExvY2FsaXplVHJhbnNmb3JtIHtcblxuICAgIHJlYWRvbmx5IHN1YnN0aXR1dGlvbnMgPSB0aGlzLmNvbmZpZz8uc3Vic3RpdHV0aW9ucz8ucmVmZXJlbmNlcyA/PyBbJyMoJywgJyknXTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByb3RlY3RlZCBjb25maWc6IExvY2FsaXplQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgZXhlY3V0ZSh2YWx1ZTogc3RyaW5nLCBfOiBMb2NhbGl6ZVBhcmFtc1snZGF0YSddLCBsb2NhbGl6ZTogTG9jYWxpemUpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMuZ2V0TWF0Y2hlcyh2YWx1ZSwgdGhpcy5zdWJzdGl0dXRpb25zKTtcblxuICAgICAgICAvLyBSZXBsYWNlIGFsbCBtYXRjaGVzIHdpdGggdGhlIHRyYW5zbGF0ZWQgdmFsdWUuXG4gICAgICAgIHJldHVybiBtYXRjaGVzLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIFRyeSB0byB0cmFuc2xhdGUgdGhlIHRva2VuLlxuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZFRva2VuID0gbG9jYWxpemUudHJhbnNsYXRlKGN1cnJlbnQ/LnRva2VuKTtcblxuICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgbWF0Y2ggd2l0aCB0aGUgdHJhbnNsYXRlZCB0b2tlbi5cbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91cy5yZXBsYWNlKGN1cnJlbnQ/Lm1hdGNoLCB0cmFuc2xhdGVkVG9rZW4pO1xuICAgICAgICB9LCB2YWx1ZSk7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { BbLocalizeTemplate } from '../localize-template.directive';
|
|
3
|
+
import { startWith } from 'rxjs/operators';
|
|
4
|
+
import { Subscription } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@bravobit/bb-foundation/utils";
|
|
8
|
+
class BbLocalizeString {
|
|
9
|
+
set value(value) {
|
|
10
|
+
this._value = value;
|
|
11
|
+
this.revalidate();
|
|
12
|
+
}
|
|
13
|
+
get value() {
|
|
14
|
+
return this._value;
|
|
15
|
+
}
|
|
16
|
+
constructor(_changeDetection) {
|
|
17
|
+
this._changeDetection = _changeDetection;
|
|
18
|
+
// Inputs.
|
|
19
|
+
this.substitutions = ['[', ']'];
|
|
20
|
+
// Data.
|
|
21
|
+
this.components = [];
|
|
22
|
+
// Subscriptions.
|
|
23
|
+
this._subscription = new Subscription();
|
|
24
|
+
// State.
|
|
25
|
+
this._value = null;
|
|
26
|
+
}
|
|
27
|
+
ngAfterViewInit() {
|
|
28
|
+
this.observeItemChanges();
|
|
29
|
+
}
|
|
30
|
+
ngOnDestroy() {
|
|
31
|
+
this._subscription?.unsubscribe();
|
|
32
|
+
}
|
|
33
|
+
observeItemChanges() {
|
|
34
|
+
const subscription = this.items.changes.pipe(startWith(0)).subscribe(() => this.revalidate());
|
|
35
|
+
this._subscription.add(subscription);
|
|
36
|
+
}
|
|
37
|
+
revalidate() {
|
|
38
|
+
const items = this.items?.toArray() ?? [];
|
|
39
|
+
if (items.length <= 0) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.setComponents(items);
|
|
43
|
+
}
|
|
44
|
+
setComponents(items) {
|
|
45
|
+
const [start, end] = this.substitutions;
|
|
46
|
+
const templates = items.reduce((previous, current) => {
|
|
47
|
+
const template = current?.templateRef ?? null;
|
|
48
|
+
const name = current?.name ?? null;
|
|
49
|
+
if (!template || !name) {
|
|
50
|
+
return previous;
|
|
51
|
+
}
|
|
52
|
+
return { ...previous, [`${start}${name}${end}`]: template };
|
|
53
|
+
}, {});
|
|
54
|
+
this.components = this.getStringComponents(this._value)
|
|
55
|
+
.map(component => templates?.[component] ?? component ?? null)
|
|
56
|
+
.filter(item => !!item);
|
|
57
|
+
this._changeDetection.detectChanges();
|
|
58
|
+
}
|
|
59
|
+
getStringComponents(value) {
|
|
60
|
+
const [start, end] = this.getSubstitutions();
|
|
61
|
+
const regex = new RegExp(`(${start}[a-zA-Z]+${end})`, 'g');
|
|
62
|
+
return value.split(regex);
|
|
63
|
+
}
|
|
64
|
+
getSubstitutions() {
|
|
65
|
+
const [start, end] = this.substitutions;
|
|
66
|
+
const escape = /[.*+?^${}()|[\]\\]/g;
|
|
67
|
+
return [
|
|
68
|
+
start.replace(escape, '\\$&'),
|
|
69
|
+
end.replace(escape, '\\$&')
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: BbLocalizeString, selector: "bb-localize-string, [bb-localize-string]", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbTemplate]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
74
|
+
}
|
|
75
|
+
export { BbLocalizeString };
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbLocalizeString, decorators: [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{ selector: 'bb-localize-string, [bb-localize-string]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
79
|
+
'class': 'bb-localize-string'
|
|
80
|
+
}, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbTemplate]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"] }]
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
|
|
82
|
+
type: ContentChildren,
|
|
83
|
+
args: [BbLocalizeTemplate]
|
|
84
|
+
}], substitutions: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], value: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}] } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBSUwsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7O0FBRWxDLE1BV2EsZ0JBQWdCO0lBaUJ6QixJQUNJLEtBQUssQ0FBQyxLQUFvQjtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsWUFBb0IsZ0JBQW1DO1FBQW5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUF0QnZELFVBQVU7UUFDRCxrQkFBYSxHQUFxQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV0RCxRQUFRO1FBQ1IsZUFBVSxHQUFrQyxFQUFFLENBQUM7UUFFL0MsaUJBQWlCO1FBQ1Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNDLFNBQVM7UUFDRCxXQUFNLEdBQWtCLElBQUksQ0FBQztJQWFyQyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDeEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxVQUFVO1FBQ2QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDMUMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNuQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBMkI7UUFDN0MsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXhDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDakQsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUM7WUFDOUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDcEIsT0FBTyxRQUFRLENBQUM7YUFDbkI7WUFFRCxPQUFPLEVBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUMsQ0FBQztRQUM5RCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ2xELEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUM7YUFDN0QsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBYTtRQUNyQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQztRQUVyQyxPQUFPO1lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQzdCLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztTQUM5QixDQUFDO0lBQ04sQ0FBQzs4R0F6RlEsZ0JBQWdCO2tHQUFoQixnQkFBZ0Isa05BR1Isa0JBQWtCLDZCQzlCdkMscUpBR0E7O1NEd0JhLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQVg1QixTQUFTOytCQUNJLDBDQUEwQyxtQkFHbkMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxRQUNwQjt3QkFDRixPQUFPLEVBQUUsb0JBQW9CO3FCQUNoQzt3R0FLb0MsS0FBSztzQkFBekMsZUFBZTt1QkFBQyxrQkFBa0I7Z0JBRzFCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBWUYsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmJMb2NhbGl6ZVRlbXBsYXRlfSBmcm9tICcuLi9sb2NhbGl6ZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1sb2NhbGl6ZS1zdHJpbmcsIFtiYi1sb2NhbGl6ZS1zdHJpbmddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9sb2NhbGl6ZS1zdHJpbmcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLWxvY2FsaXplLXN0cmluZydcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEJiTG9jYWxpemVTdHJpbmcgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLy8gQ29udGVudCBjaGlsZHJlbi5cbiAgICBAQ29udGVudENoaWxkcmVuKEJiTG9jYWxpemVUZW1wbGF0ZSkgaXRlbXM/OiBRdWVyeUxpc3Q8QmJMb2NhbGl6ZVRlbXBsYXRlPjtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKSBzdWJzdGl0dXRpb25zOiBbc3RyaW5nLCBzdHJpbmddID0gWydbJywgJ10nXTtcblxuICAgIC8vIERhdGEuXG4gICAgY29tcG9uZW50czogKHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pW10gPSBbXTtcblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZXZhbGlkYXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlSXRlbUNoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZUl0ZW1DaGFuZ2VzKCkge1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLml0ZW1zLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgwKVxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJldmFsaWRhdGUoKSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmV2YWxpZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zPy50b0FycmF5KCkgPz8gW107XG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRzKGl0ZW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENvbXBvbmVudHMoaXRlbXM6IEJiTG9jYWxpemVUZW1wbGF0ZVtdKSB7XG4gICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMuc3Vic3RpdHV0aW9ucztcblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBpdGVtcy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IGN1cnJlbnQ/LnRlbXBsYXRlUmVmID8/IG51bGw7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gY3VycmVudD8ubmFtZSA/PyBudWxsO1xuICAgICAgICAgICAgaWYgKCF0ZW1wbGF0ZSB8fCAhbmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHsuLi5wcmV2aW91cywgW2Ake3N0YXJ0fSR7bmFtZX0ke2VuZH1gXTogdGVtcGxhdGV9O1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRzID0gdGhpcy5nZXRTdHJpbmdDb21wb25lbnRzKHRoaXMuX3ZhbHVlKVxuICAgICAgICAgICAgLm1hcChjb21wb25lbnQgPT4gdGVtcGxhdGVzPy5bY29tcG9uZW50XSA/PyBjb21wb25lbnQgPz8gbnVsbClcbiAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0pO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdGlvbi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdHJpbmdDb21wb25lbnRzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5nZXRTdWJzdGl0dXRpb25zKCk7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgKCR7c3RhcnR9W2EtekEtWl0rJHtlbmR9KWAsICdnJyk7XG4gICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdChyZWdleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdWJzdGl0dXRpb25zKCkge1xuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnN1YnN0aXR1dGlvbnM7XG4gICAgICAgIGNvbnN0IGVzY2FwZSA9IC9bLiorP14ke30oKXxbXFxdXFxcXF0vZztcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3RhcnQucmVwbGFjZShlc2NhcGUsICdcXFxcJCYnKSxcbiAgICAgICAgICAgIGVuZC5yZXBsYWNlKGVzY2FwZSwgJ1xcXFwkJicpXG4gICAgICAgIF07XG4gICAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb21wb25lbnQgb2YgY29tcG9uZW50c1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBbYmJUZW1wbGF0ZV09XCJjb21wb25lbnRcIj57eyBjb21wb25lbnQgfX08L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class BbLocalizeTemplate {
|
|
4
|
+
constructor(templateRef) {
|
|
5
|
+
this.templateRef = templateRef;
|
|
6
|
+
// Inputs.
|
|
7
|
+
this.name = null;
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 }); }
|
|
11
|
+
}
|
|
12
|
+
export { BbLocalizeTemplate };
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
|
|
14
|
+
type: Directive,
|
|
15
|
+
args: [{
|
|
16
|
+
selector: '[bbLocalizeTemplate]'
|
|
17
|
+
}]
|
|
18
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{
|
|
19
|
+
type: Input,
|
|
20
|
+
args: ['bbLocalizeTemplate']
|
|
21
|
+
}] } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL3ZpZXdzL2xvY2FsaXplLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUFFNUQsTUFHYSxrQkFBa0I7SUFLM0IsWUFBbUIsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBSGhELFVBQVU7UUFDbUIsU0FBSSxHQUFrQixJQUFJLENBQUM7SUFHeEQsQ0FBQzs4R0FOUSxrQkFBa0I7a0dBQWxCLGtCQUFrQjs7U0FBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtpQkFDbkM7a0dBSWdDLElBQUk7c0JBQWhDLEtBQUs7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiTG9jYWxpemVUZW1wbGF0ZV0nXG59KVxuZXhwb3J0IGNsYXNzIEJiTG9jYWxpemVUZW1wbGF0ZSB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCdiYkxvY2FsaXplVGVtcGxhdGUnKSBuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIH1cblxufVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Directive, Input, Self } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../masking.service";
|
|
4
|
+
import * as i2 from "./input-mask.directive";
|
|
5
|
+
class BbCurrencyMask {
|
|
6
|
+
constructor(_masking, _inputMask) {
|
|
7
|
+
this._masking = _masking;
|
|
8
|
+
this._inputMask = _inputMask;
|
|
9
|
+
// Inputs.
|
|
10
|
+
this.currencyCode = null;
|
|
11
|
+
this.options = null;
|
|
12
|
+
}
|
|
13
|
+
ngOnChanges(changes) {
|
|
14
|
+
const currencyCode = changes?.['currencyCode']?.currentValue ?? this.currencyCode ?? 'USD';
|
|
15
|
+
const options = changes?.['options']?.currentValue ?? this.options ?? {};
|
|
16
|
+
this._inputMask.mask = this._masking.currency(currencyCode, options);
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbCurrencyMask, deps: [{ token: i1.Masking }, { token: i2.BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
19
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: BbCurrencyMask, selector: "input[bbCurrencyMask]", inputs: { currencyCode: ["bbCurrencyMask", "currencyCode"], options: ["bbCurrencyMaskOptions", "options"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
20
|
+
}
|
|
21
|
+
export { BbCurrencyMask };
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbCurrencyMask, decorators: [{
|
|
23
|
+
type: Directive,
|
|
24
|
+
args: [{
|
|
25
|
+
selector: 'input[bbCurrencyMask]'
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i1.Masking }, { type: i2.BbInputMask, decorators: [{
|
|
28
|
+
type: Self
|
|
29
|
+
}] }]; }, propDecorators: { currencyCode: [{
|
|
30
|
+
type: Input,
|
|
31
|
+
args: ['bbCurrencyMask']
|
|
32
|
+
}], options: [{
|
|
33
|
+
type: Input,
|
|
34
|
+
args: ['bbCurrencyMaskOptions']
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL21hc2tpbmcvc3JjL2xpYi9kaXJlY3RpdmVzL2N1cnJlbmN5LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFhLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7Ozs7QUFLL0UsTUFHYSxjQUFjO0lBTXZCLFlBQW9CLFFBQWlCLEVBQ1QsVUFBdUI7UUFEL0IsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNULGVBQVUsR0FBVixVQUFVLENBQWE7UUFMbkQsVUFBVTtRQUNlLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUM1QixZQUFPLEdBQXdDLElBQUksQ0FBQztJQUlwRixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sWUFBWSxHQUFHLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQztRQUMzRixNQUFNLE9BQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFekUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OEdBZlEsY0FBYztrR0FBZCxjQUFjOztTQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFIMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO2lCQUNwQzs7MEJBUWdCLElBQUk7NENBSlEsWUFBWTtzQkFBcEMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ1MsT0FBTztzQkFBdEMsS0FBSzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgU2VsZiwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0N1cnJlbmN5TWFza09wdGlvbnN9IGZyb20gJy4uL2lucHV0LW1hc2suaW50ZXJmYWNlJztcbmltcG9ydCB7QmJJbnB1dE1hc2t9IGZyb20gJy4vaW5wdXQtbWFzay5kaXJlY3RpdmUnO1xuaW1wb3J0IHtNYXNraW5nfSBmcm9tICcuLi9tYXNraW5nLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2lucHV0W2JiQ3VycmVuY3lNYXNrXSdcbn0pXG5leHBvcnQgY2xhc3MgQmJDdXJyZW5jeU1hc2sgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgnYmJDdXJyZW5jeU1hc2snKSBjdXJyZW5jeUNvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgnYmJDdXJyZW5jeU1hc2tPcHRpb25zJykgb3B0aW9uczogUGFydGlhbDxDdXJyZW5jeU1hc2tPcHRpb25zPiB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfbWFza2luZzogTWFza2luZyxcbiAgICAgICAgICAgICAgICBAU2VsZigpIHByaXZhdGUgX2lucHV0TWFzazogQmJJbnB1dE1hc2spIHtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5Q29kZSA9IGNoYW5nZXM/LlsnY3VycmVuY3lDb2RlJ10/LmN1cnJlbnRWYWx1ZSA/PyB0aGlzLmN1cnJlbmN5Q29kZSA/PyAnVVNEJztcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNoYW5nZXM/Llsnb3B0aW9ucyddPy5jdXJyZW50VmFsdWUgPz8gdGhpcy5vcHRpb25zID8/IHt9O1xuXG4gICAgICAgIHRoaXMuX2lucHV0TWFzay5tYXNrID0gdGhpcy5fbWFza2luZy5jdXJyZW5jeShjdXJyZW5jeUNvZGUsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8vIFJlcXVpcmVkIHNvIHRoYXQgdGhlIHRlbXBsYXRlIHR5cGUgY2hlY2tlciBjYW4gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGNvZXJjZWQgaW5wdXRzLlxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9iYkN1cnJlbmN5TWFzazogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYmJDdXJyZW5jeU1hc2tPcHRpb25zOiBQYXJ0aWFsPEN1cnJlbmN5TWFza09wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZDtcblxufVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Directive, Input, Self } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../masking.service";
|
|
4
|
+
import * as i2 from "./input-mask.directive";
|
|
5
|
+
class BbDateMask {
|
|
6
|
+
constructor(_masking, _inputMask) {
|
|
7
|
+
this._masking = _masking;
|
|
8
|
+
this._inputMask = _inputMask;
|
|
9
|
+
// Inputs.
|
|
10
|
+
this.format = null;
|
|
11
|
+
this.separator = null;
|
|
12
|
+
}
|
|
13
|
+
ngOnChanges(changes) {
|
|
14
|
+
const format = changes?.['format']?.currentValue ?? this.format ?? null;
|
|
15
|
+
const separator = changes?.['separator']?.currentValue ?? this.separator ?? '-';
|
|
16
|
+
this._inputMask.mask = this._masking.date(format, separator);
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbDateMask, deps: [{ token: i1.Masking }, { token: i2.BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
19
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: BbDateMask, selector: "input[bbDateMask]", inputs: { format: ["bbDateMask", "format"], separator: ["bbDateMaskSeparator", "separator"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
20
|
+
}
|
|
21
|
+
export { BbDateMask };
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbDateMask, decorators: [{
|
|
23
|
+
type: Directive,
|
|
24
|
+
args: [{
|
|
25
|
+
selector: 'input[bbDateMask]'
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i1.Masking }, { type: i2.BbInputMask, decorators: [{
|
|
28
|
+
type: Self
|
|
29
|
+
}] }]; }, propDecorators: { format: [{
|
|
30
|
+
type: Input,
|
|
31
|
+
args: ['bbDateMask']
|
|
32
|
+
}], separator: [{
|
|
33
|
+
type: Input,
|
|
34
|
+
args: ['bbDateMaskSeparator']
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbWFza2luZy9zcmMvbGliL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOzs7O0FBSy9FLE1BR2EsVUFBVTtJQU1uQixZQUFvQixRQUFpQixFQUNULFVBQXVCO1FBRC9CLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDVCxlQUFVLEdBQVYsVUFBVSxDQUFhO1FBTG5ELFVBQVU7UUFDVyxXQUFNLEdBQTBCLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQWtCLElBQUksQ0FBQztJQUk5RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztRQUN4RSxNQUFNLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUM7UUFDaEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7OEdBZFEsVUFBVTtrR0FBVixVQUFVOztTQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFIdEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO2lCQUNoQzs7MEJBUWdCLElBQUk7NENBSkksTUFBTTtzQkFBMUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNXLFNBQVM7c0JBQXRDLEtBQUs7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXMsIFNlbGYsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEYXRlTWFza0Zvcm1hdH0gZnJvbSAnLi4vaW5wdXQtbWFzay5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCYklucHV0TWFza30gZnJvbSAnLi9pbnB1dC1tYXNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hc2tpbmd9IGZyb20gJy4uL21hc2tpbmcuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbYmJEYXRlTWFza10nXG59KVxuZXhwb3J0IGNsYXNzIEJiRGF0ZU1hc2sgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgnYmJEYXRlTWFzaycpIGZvcm1hdDogRGF0ZU1hc2tGb3JtYXQgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoJ2JiRGF0ZU1hc2tTZXBhcmF0b3InKSBzZXBhcmF0b3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfbWFza2luZzogTWFza2luZyxcbiAgICAgICAgICAgICAgICBAU2VsZigpIHByaXZhdGUgX2lucHV0TWFzazogQmJJbnB1dE1hc2spIHtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IGNoYW5nZXM/LlsnZm9ybWF0J10/LmN1cnJlbnRWYWx1ZSA/PyB0aGlzLmZvcm1hdCA/PyBudWxsO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBjaGFuZ2VzPy5bJ3NlcGFyYXRvciddPy5jdXJyZW50VmFsdWUgPz8gdGhpcy5zZXBhcmF0b3IgPz8gJy0nO1xuICAgICAgICB0aGlzLl9pbnB1dE1hc2subWFzayA9IHRoaXMuX21hc2tpbmcuZGF0ZShmb3JtYXQsIHNlcGFyYXRvcik7XG4gICAgfVxuXG4gICAgLy8gUmVxdWlyZWQgc28gdGhhdCB0aGUgdGVtcGxhdGUgdHlwZSBjaGVja2VyIGNhbiBpbmZlciB0aGUgdHlwZSBvZiB0aGUgY29lcmNlZCBpbnB1dHMuXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiRGF0ZU1hc2s6IERhdGVNYXNrRm9ybWF0IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYmJEYXRlTWFza1NlcGFyYXRvcjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxufVxuIl19
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Directive, HostListener, Input, Optional, Self } from '@angular/core';
|
|
2
|
+
import { fromEvent, merge } from 'rxjs';
|
|
3
|
+
import _Inputmask from 'inputmask';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/cdk/platform";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
const InputmaskConstructor = _Inputmask.default || _Inputmask;
|
|
8
|
+
class BbInputMask {
|
|
9
|
+
set mask(mask) {
|
|
10
|
+
if (!mask || typeof mask === 'string') {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
this._inputMaskOptions = mask;
|
|
14
|
+
this.updateMask();
|
|
15
|
+
}
|
|
16
|
+
constructor(_ngZone, _platform, _renderer, _elementRef, _control) {
|
|
17
|
+
this._ngZone = _ngZone;
|
|
18
|
+
this._platform = _platform;
|
|
19
|
+
this._renderer = _renderer;
|
|
20
|
+
this._elementRef = _elementRef;
|
|
21
|
+
this._control = _control;
|
|
22
|
+
// State.
|
|
23
|
+
this.inputMaskPlugin = null;
|
|
24
|
+
this.nativeInputElement = null;
|
|
25
|
+
this.eventsSubscription = null;
|
|
26
|
+
this._inputMaskOptions = null;
|
|
27
|
+
this._onChange = () => ({});
|
|
28
|
+
this.onInput = (_) => ({});
|
|
29
|
+
this.onTouched = () => ({});
|
|
30
|
+
this.validate = (control) => !control.value || !this.inputMaskPlugin || this.inputMaskPlugin?.isValid()
|
|
31
|
+
? null
|
|
32
|
+
: { inputMask: true };
|
|
33
|
+
this.nativeInputElement = this._elementRef.nativeElement;
|
|
34
|
+
if (this._control != null) {
|
|
35
|
+
this._control.valueAccessor = this;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
const control = this._control?.control;
|
|
40
|
+
if (!control) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
control?.setValidators(control.validator ? [control.validator, this.validate] : [this.validate]);
|
|
44
|
+
control?.updateValueAndValidity();
|
|
45
|
+
}
|
|
46
|
+
ngOnDestroy() {
|
|
47
|
+
this.destroyMask();
|
|
48
|
+
}
|
|
49
|
+
writeValue(value) {
|
|
50
|
+
if (!this.nativeInputElement) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this._renderer.setProperty(this.nativeInputElement, 'value', value ?? '');
|
|
54
|
+
}
|
|
55
|
+
registerOnChange(fn) {
|
|
56
|
+
this._onChange = fn;
|
|
57
|
+
const parser = this._inputMaskOptions?.parser;
|
|
58
|
+
this.onInput = value => this._onChange(parser ? parser(value) : value);
|
|
59
|
+
}
|
|
60
|
+
registerOnTouched(fn) {
|
|
61
|
+
this.onTouched = fn;
|
|
62
|
+
}
|
|
63
|
+
setDisabledState(isDisabled) {
|
|
64
|
+
if (!this.nativeInputElement) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
this._renderer.setProperty(this.nativeInputElement, 'disabled', isDisabled);
|
|
68
|
+
}
|
|
69
|
+
updateMask() {
|
|
70
|
+
this.destroyMask();
|
|
71
|
+
this.createMask();
|
|
72
|
+
this.registerOnChange(this._onChange);
|
|
73
|
+
}
|
|
74
|
+
createMask() {
|
|
75
|
+
if (!this._platform.isBrowser || !this.nativeInputElement || this._inputMaskOptions === null || Object.keys(this._inputMaskOptions).length === 0) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const { parser, ...options } = this._inputMaskOptions;
|
|
79
|
+
this.inputMaskPlugin = this._ngZone.runOutsideAngular(() => new InputmaskConstructor(options).mask(this.nativeInputElement));
|
|
80
|
+
const setValue$ = fromEvent(this.nativeInputElement, 'setvalue');
|
|
81
|
+
const cleared$ = fromEvent(this.nativeInputElement, 'cleared');
|
|
82
|
+
this.eventsSubscription = merge(setValue$, cleared$)
|
|
83
|
+
.subscribe(event => this.onInput(event?.target?.['value']));
|
|
84
|
+
const control = this._control?.control;
|
|
85
|
+
if (!control) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
setTimeout(() => control?.updateValueAndValidity());
|
|
89
|
+
}
|
|
90
|
+
destroyMask() {
|
|
91
|
+
this.eventsSubscription?.unsubscribe();
|
|
92
|
+
this.eventsSubscription = null;
|
|
93
|
+
this.inputMaskPlugin?.remove();
|
|
94
|
+
this.inputMaskPlugin = null;
|
|
95
|
+
}
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbInputMask, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
97
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: BbInputMask, selector: "input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]", inputs: { mask: ["bbInputMask", "mask"] }, host: { listeners: { "input": "onInput($event.target.value)", "blur": "onTouched($event.target.value)" } }, ngImport: i0 }); }
|
|
98
|
+
}
|
|
99
|
+
export { BbInputMask };
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BbInputMask, decorators: [{
|
|
101
|
+
type: Directive,
|
|
102
|
+
args: [{
|
|
103
|
+
selector: 'input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]'
|
|
104
|
+
}]
|
|
105
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.NgControl, decorators: [{
|
|
106
|
+
type: Optional
|
|
107
|
+
}, {
|
|
108
|
+
type: Self
|
|
109
|
+
}] }]; }, propDecorators: { mask: [{
|
|
110
|
+
type: Input,
|
|
111
|
+
args: ['bbInputMask']
|
|
112
|
+
}], onInput: [{
|
|
113
|
+
type: HostListener,
|
|
114
|
+
args: ['input', ['$event.target.value']]
|
|
115
|
+
}], onTouched: [{
|
|
116
|
+
type: HostListener,
|
|
117
|
+
args: ['blur', ['$event.target.value']]
|
|
118
|
+
}] } });
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL21hc2tpbmcvc3JjL2xpYi9kaXJlY3RpdmVzL2lucHV0LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBNkIsUUFBUSxFQUFhLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvSCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUdwRCxPQUFPLFVBQVUsTUFBTSxXQUFXLENBQUM7Ozs7QUFFbkMsTUFBTSxvQkFBb0IsR0FBSSxVQUF3RCxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUM7QUFFN0csTUFHYSxXQUFXO0lBRXBCLElBQ0ksSUFBSSxDQUFDLElBQXFEO1FBQzFELElBQUksQ0FBQyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ25DLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFVRCxZQUFvQixPQUFlLEVBQ2YsU0FBbUIsRUFDbkIsU0FBb0IsRUFDcEIsV0FBeUMsRUFDckIsUUFBb0I7UUFKeEMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBOEI7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQVo1RCxTQUFTO1FBQ1Qsb0JBQWUsR0FBOEIsSUFBSSxDQUFDO1FBQ2xELHVCQUFrQixHQUE0QixJQUFJLENBQUM7UUFDbkQsdUJBQWtCLEdBQXdCLElBQUksQ0FBQztRQUV2QyxzQkFB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Qy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7OEdBL0dRLFdBQVc7a0dBQVgsV0FBVzs7U0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDREQUE0RDtpQkFDekU7OzBCQXlCZ0IsUUFBUTs7MEJBQUksSUFBSTs0Q0FyQnpCLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxhQUFhO2dCQThCcEIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQUk5QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFJlbmRlcmVyMiwgU2VsZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCwgVmFsaWRhdG9yfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0lucHV0TWFza09wdGlvbnN9IGZyb20gJy4uL2lucHV0LW1hc2suaW50ZXJmYWNlJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgdHlwZSBJbnB1dG1hc2sgZnJvbSAnaW5wdXRtYXNrJztcbmltcG9ydCBfSW5wdXRtYXNrIGZyb20gJ2lucHV0bWFzayc7XG5cbmNvbnN0IElucHV0bWFza0NvbnN0cnVjdG9yID0gKF9JbnB1dG1hc2sgYXMgdW5rbm93biBhcyB7IGRlZmF1bHQ/OiBJbnB1dG1hc2suU3RhdGljIH0pLmRlZmF1bHQgfHwgX0lucHV0bWFzaztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFtiYklucHV0TWFza10saW5wdXRbYmJDdXJyZW5jeU1hc2tdLGlucHV0W2JiRGF0ZU1hc2tdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYklucHV0TWFzazxUID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcblxuICAgIEBJbnB1dCgnYmJJbnB1dE1hc2snKVxuICAgIHNldCBtYXNrKG1hc2s6IElucHV0TWFza09wdGlvbnM8VD4gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghbWFzayB8fCB0eXBlb2YgbWFzayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lucHV0TWFza09wdGlvbnMgPSBtYXNrO1xuICAgICAgICB0aGlzLnVwZGF0ZU1hc2soKTtcbiAgICB9XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBpbnB1dE1hc2tQbHVnaW46IElucHV0bWFzay5JbnN0YW5jZSB8IG51bGwgPSBudWxsO1xuICAgIG5hdGl2ZUlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIGV2ZW50c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIF9pbnB1dE1hc2tPcHRpb25zOiBJbnB1dE1hc2tPcHRpb25zPFQ+IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfb25DaGFuZ2U6ICh2YWx1ZTogVCB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgX2NvbnRyb2w/OiBOZ0NvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLl9jb250cm9sICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxuICAgIG9uSW5wdXQ6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKF86IGFueSkgPT4gKHt9KTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9jb250cm9sPy5jb250cm9sO1xuICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRyb2w/LnNldFZhbGlkYXRvcnMoY29udHJvbC52YWxpZGF0b3IgPyBbY29udHJvbC52YWxpZGF0b3IsIHRoaXMudmFsaWRhdGVdIDogW3RoaXMudmFsaWRhdGVdKTtcbiAgICAgICAgY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lNYXNrKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUgPz8gJycpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gdGhpcy5faW5wdXRNYXNrT3B0aW9ucz8ucGFyc2VyO1xuICAgICAgICB0aGlzLm9uSW5wdXQgPSB2YWx1ZSA9PiB0aGlzLl9vbkNoYW5nZShwYXJzZXIgPyBwYXJzZXIodmFsdWUpIDogdmFsdWUpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiAhY29udHJvbC52YWx1ZSB8fCAhdGhpcy5pbnB1dE1hc2tQbHVnaW4gfHwgdGhpcy5pbnB1dE1hc2tQbHVnaW4/LmlzVmFsaWQoKVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7aW5wdXRNYXNrOiB0cnVlfTtcblxuICAgIHByaXZhdGUgdXBkYXRlTWFzaygpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95TWFzaygpO1xuICAgICAgICB0aGlzLmNyZWF0ZU1hc2soKTtcbiAgICAgICAgdGhpcy5yZWdpc3Rlck9uQ2hhbmdlKHRoaXMuX29uQ2hhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZU1hc2soKSB7XG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyIHx8ICF0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCB8fCB0aGlzLl9pbnB1dE1hc2tPcHRpb25zID09PSBudWxsIHx8IE9iamVjdC5rZXlzKHRoaXMuX2lucHV0TWFza09wdGlvbnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3BhcnNlciwgLi4ub3B0aW9uc30gPSB0aGlzLl9pbnB1dE1hc2tPcHRpb25zO1xuICAgICAgICB0aGlzLmlucHV0TWFza1BsdWdpbiA9IHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBuZXcgSW5wdXRtYXNrQ29uc3RydWN0b3Iob3B0aW9ucykubWFzayh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCkpO1xuXG4gICAgICAgIGNvbnN0IHNldFZhbHVlJCA9IGZyb21FdmVudCh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCwgJ3NldHZhbHVlJyk7XG4gICAgICAgIGNvbnN0IGNsZWFyZWQkID0gZnJvbUV2ZW50KHRoaXMubmF0aXZlSW5wdXRFbGVtZW50LCAnY2xlYXJlZCcpO1xuXG4gICAgICAgIHRoaXMuZXZlbnRzU3Vic2NyaXB0aW9uID0gbWVyZ2Uoc2V0VmFsdWUkLCBjbGVhcmVkJClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5vbklucHV0KGV2ZW50Py50YXJnZXQ/LlsndmFsdWUnXSkpO1xuXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9jb250cm9sPy5jb250cm9sO1xuICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95TWFzaygpIHtcbiAgICAgICAgdGhpcy5ldmVudHNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZXZlbnRzU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5pbnB1dE1hc2tQbHVnaW4/LnJlbW92ZSgpO1xuICAgICAgICB0aGlzLmlucHV0TWFza1BsdWdpbiA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gUmVxdWlyZWQgc28gdGhhdCB0aGUgdGVtcGxhdGUgdHlwZSBjaGVja2VyIGNhbiBpbmZlciB0aGUgdHlwZSBvZiB0aGUgY29lcmNlZCBpbnB1dHMuXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiSW5wdXRNYXNrOiBJbnB1dE1hc2tPcHRpb25zPGFueT4gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { BbCurrencyMask } from './directives/currency-mask.directive';
|
|
2
|
+
import { BbInputMask } from './directives/input-mask.directive';
|
|
3
|
+
import { BbDateMask } from './directives/date-mask.directive';
|
|
4
|
+
import { NgModule } from '@angular/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
class MaskingModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: MaskingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: MaskingModule, declarations: [BbInputMask,
|
|
9
|
+
BbCurrencyMask,
|
|
10
|
+
BbDateMask], exports: [BbInputMask,
|
|
11
|
+
BbCurrencyMask,
|
|
12
|
+
BbDateMask] }); }
|
|
13
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: MaskingModule }); }
|
|
14
|
+
}
|
|
15
|
+
export { MaskingModule };
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: MaskingModule, decorators: [{
|
|
17
|
+
type: NgModule,
|
|
18
|
+
args: [{
|
|
19
|
+
declarations: [
|
|
20
|
+
BbInputMask,
|
|
21
|
+
BbCurrencyMask,
|
|
22
|
+
BbDateMask
|
|
23
|
+
],
|
|
24
|
+
exports: [
|
|
25
|
+
BbInputMask,
|
|
26
|
+
BbCurrencyMask,
|
|
27
|
+
BbDateMask
|
|
28
|
+
]
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2luZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL21hc2tpbmcvc3JjL2xpYi9tYXNraW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUV2QyxNQVlhLGFBQWE7OEdBQWIsYUFBYTsrR0FBYixhQUFhLGlCQVZsQixXQUFXO1lBQ1gsY0FBYztZQUNkLFVBQVUsYUFHVixXQUFXO1lBQ1gsY0FBYztZQUNkLFVBQVU7K0dBR0wsYUFBYTs7U0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBWnpCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxVQUFVO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDTCxXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsVUFBVTtxQkFDYjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmJDdXJyZW5jeU1hc2t9IGZyb20gJy4vZGlyZWN0aXZlcy9jdXJyZW5jeS1tYXNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiSW5wdXRNYXNrfSBmcm9tICcuL2RpcmVjdGl2ZXMvaW5wdXQtbWFzay5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkRhdGVNYXNrfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgQmJJbnB1dE1hc2ssXG4gICAgICAgIEJiQ3VycmVuY3lNYXNrLFxuICAgICAgICBCYkRhdGVNYXNrXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEJiSW5wdXRNYXNrLFxuICAgICAgICBCYkN1cnJlbmN5TWFzayxcbiAgICAgICAgQmJEYXRlTWFza1xuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTWFza2luZ01vZHVsZSB7XG59XG4iXX0=
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { formatDate, getCurrencySymbol, getLocaleNumberSymbol, getNumberOfCurrencyDigits, NumberSymbol } from '@angular/common';
|
|
2
|
+
import { createMask } from './input-mask.interface';
|
|
3
|
+
import { Injectable, Optional } from '@angular/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@bravobit/bb-foundation/localize";
|
|
6
|
+
class Masking {
|
|
7
|
+
constructor(_localize) {
|
|
8
|
+
this._localize = _localize;
|
|
9
|
+
}
|
|
10
|
+
date(format, separator = '-') {
|
|
11
|
+
const dateParts = this.getDateParts(format);
|
|
12
|
+
const inputFormat = dateParts.join(separator);
|
|
13
|
+
const outputFormat = 'yyyy-MM-dd';
|
|
14
|
+
const escape = /[.*+?^${}()\/|[\]\\]/g;
|
|
15
|
+
const escapedSeparator = separator.replace(escape, '\\$&');
|
|
16
|
+
const inputFormatRegexString = dateParts
|
|
17
|
+
.map(item => `(?<${item}>[0-9]{${item?.length}})`)
|
|
18
|
+
.join(escapedSeparator);
|
|
19
|
+
const inputFormatRegex = new RegExp(`^${inputFormatRegexString}$`);
|
|
20
|
+
return createMask({
|
|
21
|
+
alias: 'datetime',
|
|
22
|
+
inputFormat: inputFormat.toLowerCase(),
|
|
23
|
+
outputFormat: outputFormat.toLowerCase(),
|
|
24
|
+
nullable: false,
|
|
25
|
+
inputmode: 'numeric',
|
|
26
|
+
onBeforeMask: (initialValue) => {
|
|
27
|
+
return initialValue ? formatDate(initialValue, inputFormat, 'en-US') : null;
|
|
28
|
+
},
|
|
29
|
+
onBeforePaste: (value) => {
|
|
30
|
+
return value;
|
|
31
|
+
},
|
|
32
|
+
parser: (value) => {
|
|
33
|
+
if (!value || typeof value !== 'string' || !inputFormatRegex.test(value)) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const matches = value.match(inputFormatRegex);
|
|
37
|
+
const year = +matches?.groups?.['yyyy'];
|
|
38
|
+
const month = +matches?.groups?.['MM'] - 1;
|
|
39
|
+
const day = +matches?.groups?.['dd'];
|
|
40
|
+
const date = new Date(year, month, day);
|
|
41
|
+
return date instanceof Date && !isNaN(date)
|
|
42
|
+
? formatDate(date, outputFormat, 'en-US')
|
|
43
|
+
: null;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
currency(code, options) {
|
|
48
|
+
const locale = this._localize?.current?.locale ?? 'en';
|
|
49
|
+
const symbol = options?.symbol ?? getCurrencySymbol(code, options?.symbolFormat ?? 'narrow', locale);
|
|
50
|
+
const decimal = options?.decimalCharacter ?? getLocaleNumberSymbol(locale, NumberSymbol.CurrencyDecimal);
|
|
51
|
+
const group = options?.groupCharacter ?? getLocaleNumberSymbol(locale, NumberSymbol.CurrencyGroup);
|
|
52
|
+
const digits = options?.digits ?? getNumberOfCurrencyDigits(code);
|
|
53
|
+
const spacer = options?.spacer ?? ' ';
|
|
54
|
+
return createMask({
|
|
55
|
+
alias: 'numeric',
|
|
56
|
+
digits: digits,
|
|
57
|
+
allowMinus: options?.allowMinus ?? false,
|
|
58
|
+
min: options?.min ?? 0,
|
|
59
|
+
max: options?.max ?? Number.MAX_SAFE_INTEGER,
|
|
60
|
+
prefix: `${symbol}${spacer}`,
|
|
61
|
+
radixPoint: decimal ?? '.',
|
|
62
|
+
groupSeparator: group ?? ',',
|
|
63
|
+
digitsOptional: options?.digitsOptional ?? false,
|
|
64
|
+
nullable: options?.nullable ?? true,
|
|
65
|
+
autoUnmask: true,
|
|
66
|
+
unmaskAsNumber: true,
|
|
67
|
+
rightAlign: false,
|
|
68
|
+
showMaskOnHover: false,
|
|
69
|
+
showMaskOnFocus: false,
|
|
70
|
+
inputmode: digits > 0 ? 'decimal' : 'numeric',
|
|
71
|
+
parser: (value) => {
|
|
72
|
+
if (value === '') {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
getDateParts(format) {
|
|
80
|
+
switch (format) {
|
|
81
|
+
case 'day-month-year':
|
|
82
|
+
return ['dd', 'MM', 'yyyy'];
|
|
83
|
+
case 'month-day-year':
|
|
84
|
+
return ['MM', 'dd', 'yyyy'];
|
|
85
|
+
case 'year-day-month':
|
|
86
|
+
return ['yyyy', 'dd', 'MM'];
|
|
87
|
+
case 'year-month-day':
|
|
88
|
+
default:
|
|
89
|
+
return ['yyyy', 'MM', 'dd'];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Masking, deps: [{ token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
93
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Masking, providedIn: 'root' }); }
|
|
94
|
+
}
|
|
95
|
+
export { Masking };
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Masking, decorators: [{
|
|
97
|
+
type: Injectable,
|
|
98
|
+
args: [{
|
|
99
|
+
providedIn: 'root'
|
|
100
|
+
}]
|
|
101
|
+
}], ctorParameters: function () { return [{ type: i1.Localize, decorators: [{
|
|
102
|
+
type: Optional
|
|
103
|
+
}] }]; } });
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9tYXNraW5nL3NyYy9saWIvbWFza2luZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUgsT0FBTyxFQUFDLFVBQVUsRUFBc0MsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RixPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBRW5ELE1BR2EsT0FBTztJQUVoQixZQUFnQyxTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQ3BELENBQUM7SUFFRCxJQUFJLENBQUMsTUFBc0IsRUFBRSxZQUFvQixHQUFHO1FBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUM7UUFFbEMsTUFBTSxNQUFNLEdBQUcsdUJBQXVCLENBQUM7UUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRCxNQUFNLHNCQUFzQixHQUFHLFNBQVM7YUFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLFVBQVUsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDO2FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxzQkFBc0IsR0FBRyxDQUFD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TUFBTTtpQkFDckI7OzBCQUdnQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JtYXREYXRlLCBnZXRDdXJyZW5jeVN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sLCBnZXROdW1iZXJPZkN1cnJlbmN5RGlnaXRzLCBOdW1iZXJTeW1ib2x9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge2NyZWF0ZU1hc2ssIEN1cnJlbmN5TWFza09wdGlvbnMsIERhdGVNYXNrRm9ybWF0fSBmcm9tICcuL2lucHV0LW1hc2suaW50ZXJmYWNlJztcbmltcG9ydCB7TG9jYWxpemV9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2xvY2FsaXplJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1hc2tpbmcge1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbG9jYWxpemU/OiBMb2NhbGl6ZSkge1xuICAgIH1cblxuICAgIGRhdGUoZm9ybWF0OiBEYXRlTWFza0Zvcm1hdCwgc2VwYXJhdG9yOiBzdHJpbmcgPSAnLScpIHtcbiAgICAgICAgY29uc3QgZGF0ZVBhcnRzID0gdGhpcy5nZXREYXRlUGFydHMoZm9ybWF0KTtcbiAgICAgICAgY29uc3QgaW5wdXRGb3JtYXQgPSBkYXRlUGFydHMuam9pbihzZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCBvdXRwdXRGb3JtYXQgPSAneXl5eS1NTS1kZCc7XG5cbiAgICAgICAgY29uc3QgZXNjYXBlID0gL1suKis/XiR7fSgpXFwvfFtcXF1cXFxcXS9nO1xuICAgICAgICBjb25zdCBlc2NhcGVkU2VwYXJhdG9yID0gc2VwYXJhdG9yLnJlcGxhY2UoZXNjYXBlLCAnXFxcXCQmJyk7XG5cbiAgICAgICAgY29uc3QgaW5wdXRGb3JtYXRSZWdleFN0cmluZyA9IGRhdGVQYXJ0c1xuICAgICAgICAgICAgLm1hcChpdGVtID0+IGAoPzwke2l0ZW19PlswLTldeyR7aXRlbT8ubGVuZ3RofX0pYClcbiAgICAgICAgICAgIC5qb2luKGVzY2FwZWRTZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCBpbnB1dEZvcm1hdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7aW5wdXRGb3JtYXRSZWdleFN0cmluZ30kYCk7XG5cbiAgICAgICAgcmV0dXJuIGNyZWF0ZU1hc2soe1xuICAgICAgICAgICAgYWxpYXM6ICdkYXRldGltZScsXG4gICAgICAgICAgICBpbnB1dEZvcm1hdDogaW5wdXRGb3JtYXQudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIG91dHB1dEZvcm1hdDogb3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBpbnB1dG1vZGU6ICdudW1lcmljJyxcbiAgICAgICAgICAgIG9uQmVmb3JlTWFzazogKGluaXRpYWxWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZSA/IGZvcm1hdERhdGUoaW5pdGlhbFZhbHVlLCBpbnB1dEZvcm1hdCwgJ2VuLVVTJykgOiBudWxsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQmVmb3JlUGFzdGU6ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhcnNlcjogKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgfHwgIWlucHV0Rm9ybWF0UmVnZXgudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSB2YWx1ZS5tYXRjaChpbnB1dEZvcm1hdFJlZ2V4KTtcbiAgICAgICAgICAgICAgICBjb25zdCB5ZWFyID0gK21hdGNoZXM/Lmdyb3Vwcz8uWyd5eXl5J107XG4gICAgICAgICAgICAgICAgY29uc3QgbW9udGggPSArbWF0Y2hlcz8uZ3JvdXBzPy5bJ01NJ10gLSAxO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRheSA9ICttYXRjaGVzPy5ncm91cHM/LlsnZGQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKDxhbnk+ZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgPyBmb3JtYXREYXRlKGRhdGUsIG91dHB1dEZvcm1hdCwgJ2VuLVVTJylcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjdXJyZW5jeShjb2RlOiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJ0aWFsPEN1cnJlbmN5TWFza09wdGlvbnM+KSB7XG4gICAgICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuX2xvY2FsaXplPy5jdXJyZW50Py5sb2NhbGUgPz8gJ2VuJztcbiAgICAgICAgY29uc3Qgc3ltYm9sID0gb3B0aW9ucz8uc3ltYm9sID8/IGdldEN1cnJlbmN5U3ltYm9sKGNvZGUsIG9wdGlvbnM/LnN5bWJvbEZvcm1hdCA/PyAnbmFycm93JywgbG9jYWxlKTtcblxuICAgICAgICBjb25zdCBkZWNpbWFsID0gb3B0aW9ucz8uZGVjaW1hbENoYXJhY3RlciA/PyBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuQ3VycmVuY3lEZWNpbWFsKTtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSBvcHRpb25zPy5ncm91cENoYXJhY3RlciA/PyBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuQ3VycmVuY3lHcm91cCk7XG4gICAgICAgIGNvbnN0IGRpZ2l0cyA9IG9wdGlvbnM/LmRpZ2l0cyA/PyBnZXROdW1iZXJPZkN1cnJlbmN5RGlnaXRzKGNvZGUpO1xuICAgICAgICBjb25zdCBzcGFjZXIgPSBvcHRpb25zPy5zcGFjZXIgPz8gJyAnO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVNYXNrKHtcbiAgICAgICAgICAgIGFsaWFzOiAnbnVtZXJpYycsXG4gICAgICAgICAgICBkaWdpdHM6IGRpZ2l0cyxcbiAgICAgICAgICAgIGFsbG93TWludXM6IG9wdGlvbnM/LmFsbG93TWludXMgPz8gZmFsc2UsXG4gICAgICAgICAgICBtaW46IG9wdGlvbnM/Lm1pbiA/PyAwLFxuICAgICAgICAgICAgbWF4OiBvcHRpb25zPy5tYXggPz8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgICAgICAgICBwcmVmaXg6IGAke3N5bWJvbH0ke3NwYWNlcn1gLFxuICAgICAgICAgICAgcmFkaXhQb2ludDogZGVjaW1hbCA/PyAnLicsXG4gICAgICAgICAgICBncm91cFNlcGFyYXRvcjogZ3JvdXAgPz8gJywnLFxuICAgICAgICAgICAgZGlnaXRzT3B0aW9uYWw6IG9wdGlvbnM/LmRpZ2l0c09wdGlvbmFsID8/IGZhbHNlLFxuICAgICAgICAgICAgbnVsbGFibGU6IG9wdGlvbnM/Lm51bGxhYmxlID8/IHRydWUsXG4gICAgICAgICAgICBhdXRvVW5tYXNrOiB0cnVlLFxuICAgICAgICAgICAgdW5tYXNrQXNOdW1iZXI6IHRydWUsXG4gICAgICAgICAgICByaWdodEFsaWduOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dNYXNrT25Ib3ZlcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93TWFza09uRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgaW5wdXRtb2RlOiBkaWdpdHMgPiAwID8gJ2RlY2ltYWwnIDogJ251bWVyaWMnLFxuICAgICAgICAgICAgcGFyc2VyOiAodmFsdWU6IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRlUGFydHMoZm9ybWF0OiBEYXRlTWFza0Zvcm1hdCkge1xuICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgY2FzZSAnZGF5LW1vbnRoLXllYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBbJ2RkJywgJ01NJywgJ3l5eXknXTtcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoLWRheS15ZWFyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gWydNTScsICdkZCcsICd5eXl5J107XG4gICAgICAgICAgICBjYXNlICd5ZWFyLWRheS1tb250aCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsneXl5eScsICdkZCcsICdNTSddO1xuICAgICAgICAgICAgY2FzZSAneWVhci1tb250aC1kYXknOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gWyd5eXl5JywgJ01NJywgJ2RkJ107XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==
|