@bravura/ui 1.21.6 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +1 -0
- package/alert/alert-container.component.d.ts +1 -1
- package/alert/alert-message.component.d.ts +1 -1
- package/alert/{bravura-ui-alert.d.ts → index.d.ts} +0 -0
- package/behavior/await.directive.d.ts +1 -1
- package/behavior/{bravura-ui-behavior.d.ts → index.d.ts} +0 -0
- package/behavior/sizing-monitor.directive.d.ts +1 -1
- package/behavior/sizing.directive.d.ts +1 -1
- package/common/{bravura-ui-common.d.ts → index.d.ts} +0 -0
- package/currency-input/currency-input.directive.d.ts +1 -1
- package/currency-input/{bravura-ui-currency-input.d.ts → index.d.ts} +0 -0
- package/decimal-input/decimal-input.directive.d.ts +1 -1
- package/decimal-input/{bravura-ui-decimal-input.d.ts → index.d.ts} +0 -0
- package/discrete-input/discrete-input.component.d.ts +6 -5
- package/discrete-input/{bravura-ui-discrete-input.d.ts → index.d.ts} +0 -0
- package/esm2020/alert/alert-container.component.mjs +201 -0
- package/esm2020/alert/alert-message.component.mjs +92 -0
- package/esm2020/alert/alert.module.mjs +22 -0
- package/{esm2015/alert/bravura-ui-alert.js → esm2020/alert/bravura-ui-alert.mjs} +0 -0
- package/{esm2015/alert/public-api.js → esm2020/alert/public-api.mjs} +0 -0
- package/{esm2015/behavior/await.directive.js → esm2020/behavior/await.directive.mjs} +4 -4
- package/esm2020/behavior/behavior.module.mjs +25 -0
- package/{esm2015/behavior/bravura-ui-behavior.js → esm2020/behavior/bravura-ui-behavior.mjs} +0 -0
- package/{esm2015/behavior/public-api.js → esm2020/behavior/public-api.mjs} +0 -0
- package/{esm2015/behavior/sizing-monitor.directive.js → esm2020/behavior/sizing-monitor.directive.mjs} +4 -4
- package/{esm2015/behavior/sizing.directive.js → esm2020/behavior/sizing.directive.mjs} +4 -4
- package/{esm2015/bravura-ui.js → esm2020/bravura-ui.mjs} +0 -0
- package/{esm2015/common/bravura-ui-common.js → esm2020/common/bravura-ui-common.mjs} +0 -0
- package/{esm2015/common/common-utils.js → esm2020/common/common-utils.mjs} +0 -0
- package/esm2020/common/common.module.mjs +52 -0
- package/{esm2015/common/public-api.js → esm2020/common/public-api.mjs} +0 -0
- package/{esm2015/currency-input/bravura-ui-currency-input.js → esm2020/currency-input/bravura-ui-currency-input.mjs} +0 -0
- package/esm2020/currency-input/currency-input.directive.mjs +279 -0
- package/esm2020/currency-input/currency-input.module.mjs +19 -0
- package/{esm2015/currency-input/public-api.js → esm2020/currency-input/public-api.mjs} +0 -0
- package/{esm2015/decimal-input/bravura-ui-decimal-input.js → esm2020/decimal-input/bravura-ui-decimal-input.mjs} +0 -0
- package/esm2020/decimal-input/decimal-input.directive.mjs +125 -0
- package/esm2020/decimal-input/decimal-input.module.mjs +19 -0
- package/{esm2015/decimal-input/public-api.js → esm2020/decimal-input/public-api.mjs} +0 -0
- package/{esm2015/discrete-input/bravura-ui-discrete-input.js → esm2020/discrete-input/bravura-ui-discrete-input.mjs} +0 -0
- package/esm2020/discrete-input/discrete-input.component.mjs +326 -0
- package/esm2020/discrete-input/discrete-input.module.mjs +21 -0
- package/{esm2015/discrete-input/public-api.js → esm2020/discrete-input/public-api.mjs} +0 -0
- package/{esm2015/file-upload/bravura-ui-file-upload.js → esm2020/file-upload/bravura-ui-file-upload.mjs} +0 -0
- package/esm2020/file-upload/file-upload.component.mjs +356 -0
- package/{esm2015/file-upload/file-upload.module.js → esm2020/file-upload/file-upload.module.mjs} +11 -13
- package/{esm2015/file-upload/file-upload.service.js → esm2020/file-upload/file-upload.service.mjs} +4 -4
- package/{esm2015/file-upload/public-api.js → esm2020/file-upload/public-api.mjs} +0 -0
- package/{esm2015/form-field/bravura-ui-form-field.js → esm2020/form-field/bravura-ui-form-field.mjs} +0 -0
- package/esm2020/form-field/form-field.component.mjs +96 -0
- package/esm2020/form-field/form-field.module.mjs +20 -0
- package/{esm2015/form-field/public-api.js → esm2020/form-field/public-api.mjs} +0 -0
- package/{esm2015/icon-font/bravura-ui-icon-font.js → esm2020/icon-font/bravura-ui-icon-font.mjs} +0 -0
- package/esm2020/icon-font/icon-font.module.mjs +22 -0
- package/{esm2015/icon-font/icon.directive.js → esm2020/icon-font/icon.directive.mjs} +4 -4
- package/{esm2015/icon-font/public-api.js → esm2020/icon-font/public-api.mjs} +0 -0
- package/{esm2015/icon-font/utilities.js → esm2020/icon-font/utilities.mjs} +0 -0
- package/{esm2015/phone-number/bravura-ui-phone-number.js → esm2020/phone-number/bravura-ui-phone-number.mjs} +0 -0
- package/esm2020/phone-number/phone-number.directive.mjs +187 -0
- package/esm2020/phone-number/phone-number.module.mjs +24 -0
- package/{esm2015/phone-number/phone-number.pipe.js → esm2020/phone-number/phone-number.pipe.mjs} +4 -4
- package/{esm2015/phone-number/phone-number.validator.js → esm2020/phone-number/phone-number.validator.mjs} +4 -4
- package/{esm2015/phone-number/public-api.js → esm2020/phone-number/public-api.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/{esm2015/radio-panel/bravura-ui-radio-panel.js → esm2020/radio-panel/bravura-ui-radio-panel.mjs} +0 -0
- package/{esm2015/radio-panel/public-api.js → esm2020/radio-panel/public-api.mjs} +0 -0
- package/esm2020/radio-panel/radio-panel-item.component.mjs +97 -0
- package/esm2020/radio-panel/radio-panel.component.mjs +89 -0
- package/esm2020/radio-panel/radio-panel.module.mjs +25 -0
- package/{esm2015/selection-panel/bravura-ui-selection-panel.js → esm2020/selection-panel/bravura-ui-selection-panel.mjs} +0 -0
- package/{esm2015/selection-panel/public-api.js → esm2020/selection-panel/public-api.mjs} +0 -0
- package/esm2020/selection-panel/selection-panel-item.component.mjs +166 -0
- package/esm2020/selection-panel/selection-panel.directive.mjs +119 -0
- package/esm2020/selection-panel/selection-panel.module.mjs +23 -0
- package/{esm2015/skeletons/bravura-ui-skeletons.js → esm2020/skeletons/bravura-ui-skeletons.mjs} +0 -0
- package/{esm2015/skeletons/public-api.js → esm2020/skeletons/public-api.mjs} +0 -0
- package/esm2020/skeletons/skeleton-loader-presets.directive.mjs +83 -0
- package/{esm2015/skeletons/skeleton-loader.component.js → esm2020/skeletons/skeleton-loader.component.mjs} +4 -4
- package/esm2020/skeletons/skeletons.module.mjs +35 -0
- package/{esm2015/stepper/bravura-ui-stepper.js → esm2020/stepper/bravura-ui-stepper.mjs} +0 -0
- package/{esm2015/stepper/public-api.js → esm2020/stepper/public-api.mjs} +0 -0
- package/esm2020/stepper/stepper-animation.mjs +23 -0
- package/esm2020/stepper/stepper.component.mjs +166 -0
- package/{esm2015/stepper/stepper.module.js → esm2020/stepper/stepper.module.mjs} +13 -15
- package/{esm2015/tooltip/bravura-ui-tooltip.js → esm2020/tooltip/bravura-ui-tooltip.mjs} +0 -0
- package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
- package/esm2020/tooltip/tooltip.component.mjs +51 -0
- package/{esm2015/tooltip/tooltip.directive.js → esm2020/tooltip/tooltip.directive.mjs} +4 -4
- package/esm2020/tooltip/tooltip.module.mjs +25 -0
- package/fesm2015/bravura-ui-alert.mjs +324 -0
- package/fesm2015/bravura-ui-alert.mjs.map +1 -0
- package/fesm2015/bravura-ui-behavior.mjs +407 -0
- package/fesm2015/bravura-ui-behavior.mjs.map +1 -0
- package/fesm2015/bravura-ui-common.mjs +74 -0
- package/fesm2015/bravura-ui-common.mjs.map +1 -0
- package/fesm2015/bravura-ui-currency-input.mjs +303 -0
- package/fesm2015/bravura-ui-currency-input.mjs.map +1 -0
- package/fesm2015/bravura-ui-decimal-input.mjs +148 -0
- package/fesm2015/bravura-ui-decimal-input.mjs.map +1 -0
- package/fesm2015/bravura-ui-discrete-input.mjs +354 -0
- package/fesm2015/bravura-ui-discrete-input.mjs.map +1 -0
- package/fesm2015/bravura-ui-file-upload.mjs +434 -0
- package/fesm2015/bravura-ui-file-upload.mjs.map +1 -0
- package/fesm2015/{bravura-ui-form-field.js → bravura-ui-form-field.mjs} +12 -23
- package/fesm2015/bravura-ui-form-field.mjs.map +1 -0
- package/fesm2015/{bravura-ui-icon-font.js → bravura-ui-icon-font.mjs} +8 -8
- package/fesm2015/bravura-ui-icon-font.mjs.map +1 -0
- package/fesm2015/{bravura-ui-phone-number.js → bravura-ui-phone-number.mjs} +34 -30
- package/fesm2015/bravura-ui-phone-number.mjs.map +1 -0
- package/fesm2015/bravura-ui-radio-panel.mjs +212 -0
- package/fesm2015/bravura-ui-radio-panel.mjs.map +1 -0
- package/fesm2015/{bravura-ui-selection-panel.js → bravura-ui-selection-panel.mjs} +24 -28
- package/fesm2015/bravura-ui-selection-panel.mjs.map +1 -0
- package/fesm2015/bravura-ui-skeletons.mjs +195 -0
- package/fesm2015/bravura-ui-skeletons.mjs.map +1 -0
- package/fesm2015/bravura-ui-stepper.mjs +243 -0
- package/fesm2015/bravura-ui-stepper.mjs.map +1 -0
- package/fesm2015/bravura-ui-tooltip.mjs +195 -0
- package/fesm2015/bravura-ui-tooltip.mjs.map +1 -0
- package/fesm2015/{bravura-ui.js → bravura-ui.mjs} +1 -1
- package/fesm2015/bravura-ui.mjs.map +1 -0
- package/fesm2020/bravura-ui-alert.mjs +312 -0
- package/fesm2020/bravura-ui-alert.mjs.map +1 -0
- package/{fesm2015/bravura-ui-behavior.js → fesm2020/bravura-ui-behavior.mjs} +14 -14
- package/fesm2020/bravura-ui-behavior.mjs.map +1 -0
- package/{fesm2015/bravura-ui-common.js → fesm2020/bravura-ui-common.mjs} +7 -7
- package/fesm2020/bravura-ui-common.mjs.map +1 -0
- package/{fesm2015/bravura-ui-currency-input.js → fesm2020/bravura-ui-currency-input.mjs} +10 -11
- package/fesm2020/bravura-ui-currency-input.mjs.map +1 -0
- package/{fesm2015/bravura-ui-decimal-input.js → fesm2020/bravura-ui-decimal-input.mjs} +9 -8
- package/fesm2020/bravura-ui-decimal-input.mjs.map +1 -0
- package/{fesm2015/bravura-ui-discrete-input.js → fesm2020/bravura-ui-discrete-input.mjs} +18 -26
- package/fesm2020/bravura-ui-discrete-input.mjs.map +1 -0
- package/fesm2020/bravura-ui-file-upload.mjs +430 -0
- package/fesm2020/bravura-ui-file-upload.mjs.map +1 -0
- package/fesm2020/bravura-ui-form-field.mjs +119 -0
- package/fesm2020/bravura-ui-form-field.mjs.map +1 -0
- package/fesm2020/bravura-ui-icon-font.mjs +178 -0
- package/fesm2020/bravura-ui-icon-font.mjs.map +1 -0
- package/fesm2020/bravura-ui-phone-number.mjs +317 -0
- package/fesm2020/bravura-ui-phone-number.mjs.map +1 -0
- package/fesm2020/bravura-ui-radio-panel.mjs +209 -0
- package/fesm2020/bravura-ui-radio-panel.mjs.map +1 -0
- package/fesm2020/bravura-ui-selection-panel.mjs +306 -0
- package/fesm2020/bravura-ui-selection-panel.mjs.map +1 -0
- package/{fesm2015/bravura-ui-skeletons.js → fesm2020/bravura-ui-skeletons.mjs} +13 -13
- package/fesm2020/bravura-ui-skeletons.mjs.map +1 -0
- package/{fesm2015/bravura-ui-stepper.js → fesm2020/bravura-ui-stepper.mjs} +27 -44
- package/fesm2020/bravura-ui-stepper.mjs.map +1 -0
- package/{fesm2015/bravura-ui-tooltip.js → fesm2020/bravura-ui-tooltip.mjs} +13 -22
- package/fesm2020/bravura-ui-tooltip.mjs.map +1 -0
- package/fesm2020/bravura-ui.mjs +8 -0
- package/fesm2020/bravura-ui.mjs.map +1 -0
- package/file-upload/file-upload.component.d.ts +1 -1
- package/file-upload/{bravura-ui-file-upload.d.ts → index.d.ts} +0 -0
- package/form-field/form-field.component.d.ts +1 -1
- package/form-field/{bravura-ui-form-field.d.ts → index.d.ts} +0 -0
- package/icon-font/icon.directive.d.ts +1 -1
- package/icon-font/{bravura-ui-icon-font.d.ts → index.d.ts} +0 -0
- package/{bravura-ui.d.ts → index.d.ts} +0 -0
- package/package.json +149 -14
- package/phone-number/{bravura-ui-phone-number.d.ts → index.d.ts} +0 -0
- package/phone-number/phone-number.directive.d.ts +1 -1
- package/phone-number/phone-number.pipe.d.ts +1 -1
- package/phone-number/phone-number.validator.d.ts +1 -1
- package/radio-panel/{bravura-ui-radio-panel.d.ts → index.d.ts} +0 -0
- package/radio-panel/radio-panel-item.component.d.ts +1 -1
- package/radio-panel/radio-panel.component.d.ts +1 -1
- package/selection-panel/{bravura-ui-selection-panel.d.ts → index.d.ts} +0 -0
- package/selection-panel/selection-panel-item.component.d.ts +1 -1
- package/selection-panel/selection-panel.directive.d.ts +1 -1
- package/skeletons/{bravura-ui-skeletons.d.ts → index.d.ts} +0 -0
- package/skeletons/skeleton-loader-presets.directive.d.ts +1 -1
- package/skeletons/skeleton-loader.component.d.ts +1 -1
- package/stepper/{bravura-ui-stepper.d.ts → index.d.ts} +0 -0
- package/stepper/stepper.component.d.ts +1 -1
- package/theme/_ui-theme.scss +1 -1
- package/tooltip/{bravura-ui-tooltip.d.ts → index.d.ts} +0 -0
- package/tooltip/tooltip.component.d.ts +1 -1
- package/tooltip/tooltip.directive.d.ts +1 -1
- package/alert/package.json +0 -10
- package/behavior/package.json +0 -10
- package/bundles/bravura-ui-alert.umd.js +0 -745
- package/bundles/bravura-ui-alert.umd.js.map +0 -1
- package/bundles/bravura-ui-behavior.umd.js +0 -788
- package/bundles/bravura-ui-behavior.umd.js.map +0 -1
- package/bundles/bravura-ui-common.umd.js +0 -103
- package/bundles/bravura-ui-common.umd.js.map +0 -1
- package/bundles/bravura-ui-currency-input.umd.js +0 -335
- package/bundles/bravura-ui-currency-input.umd.js.map +0 -1
- package/bundles/bravura-ui-decimal-input.umd.js +0 -176
- package/bundles/bravura-ui-decimal-input.umd.js.map +0 -1
- package/bundles/bravura-ui-discrete-input.umd.js +0 -747
- package/bundles/bravura-ui-discrete-input.umd.js.map +0 -1
- package/bundles/bravura-ui-file-upload.umd.js +0 -845
- package/bundles/bravura-ui-file-upload.umd.js.map +0 -1
- package/bundles/bravura-ui-form-field.umd.js +0 -494
- package/bundles/bravura-ui-form-field.umd.js.map +0 -1
- package/bundles/bravura-ui-icon-font.umd.js +0 -539
- package/bundles/bravura-ui-icon-font.umd.js.map +0 -1
- package/bundles/bravura-ui-phone-number.umd.js +0 -690
- package/bundles/bravura-ui-phone-number.umd.js.map +0 -1
- package/bundles/bravura-ui-radio-panel.umd.js +0 -595
- package/bundles/bravura-ui-radio-panel.umd.js.map +0 -1
- package/bundles/bravura-ui-selection-panel.umd.js +0 -699
- package/bundles/bravura-ui-selection-panel.umd.js.map +0 -1
- package/bundles/bravura-ui-skeletons.umd.js +0 -525
- package/bundles/bravura-ui-skeletons.umd.js.map +0 -1
- package/bundles/bravura-ui-stepper.umd.js +0 -613
- package/bundles/bravura-ui-stepper.umd.js.map +0 -1
- package/bundles/bravura-ui-tooltip.umd.js +0 -586
- package/bundles/bravura-ui-tooltip.umd.js.map +0 -1
- package/bundles/bravura-ui.umd.js +0 -18
- package/bundles/bravura-ui.umd.js.map +0 -1
- package/common/package.json +0 -10
- package/currency-input/package.json +0 -10
- package/decimal-input/package.json +0 -10
- package/discrete-input/package.json +0 -10
- package/esm2015/alert/alert-container.component.js +0 -220
- package/esm2015/alert/alert-message.component.js +0 -98
- package/esm2015/alert/alert.module.js +0 -22
- package/esm2015/behavior/behavior.module.js +0 -25
- package/esm2015/common/common.module.js +0 -52
- package/esm2015/currency-input/currency-input.directive.js +0 -280
- package/esm2015/currency-input/currency-input.module.js +0 -19
- package/esm2015/decimal-input/decimal-input.directive.js +0 -124
- package/esm2015/decimal-input/decimal-input.module.js +0 -19
- package/esm2015/discrete-input/discrete-input.component.js +0 -334
- package/esm2015/discrete-input/discrete-input.module.js +0 -21
- package/esm2015/file-upload/file-upload.component.js +0 -367
- package/esm2015/form-field/form-field.component.js +0 -107
- package/esm2015/form-field/form-field.module.js +0 -20
- package/esm2015/icon-font/icon-font.module.js +0 -22
- package/esm2015/phone-number/phone-number.directive.js +0 -192
- package/esm2015/phone-number/phone-number.module.js +0 -24
- package/esm2015/radio-panel/radio-panel-item.component.js +0 -109
- package/esm2015/radio-panel/radio-panel.component.js +0 -98
- package/esm2015/radio-panel/radio-panel.module.js +0 -25
- package/esm2015/selection-panel/selection-panel-item.component.js +0 -174
- package/esm2015/selection-panel/selection-panel.directive.js +0 -120
- package/esm2015/selection-panel/selection-panel.module.js +0 -23
- package/esm2015/skeletons/skeleton-loader-presets.directive.js +0 -83
- package/esm2015/skeletons/skeletons.module.js +0 -35
- package/esm2015/stepper/stepper-animation.js +0 -23
- package/esm2015/stepper/stepper.component.js +0 -181
- package/esm2015/tooltip/tooltip.component.js +0 -59
- package/esm2015/tooltip/tooltip.module.js +0 -26
- package/fesm2015/bravura-ui-alert.js +0 -337
- package/fesm2015/bravura-ui-alert.js.map +0 -1
- package/fesm2015/bravura-ui-behavior.js.map +0 -1
- package/fesm2015/bravura-ui-common.js.map +0 -1
- package/fesm2015/bravura-ui-currency-input.js.map +0 -1
- package/fesm2015/bravura-ui-decimal-input.js.map +0 -1
- package/fesm2015/bravura-ui-discrete-input.js.map +0 -1
- package/fesm2015/bravura-ui-file-upload.js +0 -443
- package/fesm2015/bravura-ui-file-upload.js.map +0 -1
- package/fesm2015/bravura-ui-form-field.js.map +0 -1
- package/fesm2015/bravura-ui-icon-font.js.map +0 -1
- package/fesm2015/bravura-ui-phone-number.js.map +0 -1
- package/fesm2015/bravura-ui-radio-panel.js +0 -230
- package/fesm2015/bravura-ui-radio-panel.js.map +0 -1
- package/fesm2015/bravura-ui-selection-panel.js.map +0 -1
- package/fesm2015/bravura-ui-skeletons.js.map +0 -1
- package/fesm2015/bravura-ui-stepper.js.map +0 -1
- package/fesm2015/bravura-ui-tooltip.js.map +0 -1
- package/fesm2015/bravura-ui.js.map +0 -1
- package/file-upload/package.json +0 -10
- package/form-field/package.json +0 -10
- package/icon-font/package.json +0 -10
- package/phone-number/package.json +0 -10
- package/radio-panel/package.json +0 -10
- package/selection-panel/package.json +0 -10
- package/skeletons/package.json +0 -10
- package/stepper/package.json +0 -10
- package/tooltip/package.json +0 -10
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { BidiModule } from '@angular/cdk/bidi';
|
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import { Inject, NgModule, Optional, SkipSelf } from '@angular/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/cdk/bidi";
|
|
6
|
-
/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */
|
|
7
|
-
const RTL_LOCALE_PATTERN = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;
|
|
8
|
-
/** Resolves a string value to a specific direction. */
|
|
9
|
-
export function _resolveDirectionality(rawValue) {
|
|
10
|
-
const value = (rawValue === null || rawValue === void 0 ? void 0 : rawValue.toLowerCase()) || '';
|
|
11
|
-
if (value === 'auto' && typeof navigator !== 'undefined' && (navigator === null || navigator === void 0 ? void 0 : navigator.language)) {
|
|
12
|
-
return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';
|
|
13
|
-
}
|
|
14
|
-
return value === 'rtl' ? 'rtl' : 'ltr';
|
|
15
|
-
}
|
|
16
|
-
export class BuiCommonModule {
|
|
17
|
-
constructor(dir, thisModule, document) {
|
|
18
|
-
if (!thisModule) {
|
|
19
|
-
const observer = new MutationObserver(() => {
|
|
20
|
-
const attr = document.documentElement.getAttribute('dir') || document.body.getAttribute('dir');
|
|
21
|
-
if (attr && dir.value !== attr) {
|
|
22
|
-
const d = _resolveDirectionality(attr);
|
|
23
|
-
dir.change.emit(d);
|
|
24
|
-
if (Object.getOwnPropertyNames(dir).includes('value')) {
|
|
25
|
-
dir.value = d;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
observer.observe(document.documentElement, { attributes: true });
|
|
30
|
-
observer.observe(document.body, { attributes: true });
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
BuiCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BuiCommonModule, deps: [{ token: i1.Directionality }, { token: BuiCommonModule, optional: true, skipSelf: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
35
|
-
BuiCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BuiCommonModule, imports: [BidiModule], exports: [BidiModule] });
|
|
36
|
-
BuiCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BuiCommonModule, imports: [[BidiModule], BidiModule] });
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BuiCommonModule, decorators: [{
|
|
38
|
-
type: NgModule,
|
|
39
|
-
args: [{
|
|
40
|
-
declarations: [],
|
|
41
|
-
imports: [BidiModule],
|
|
42
|
-
exports: [BidiModule]
|
|
43
|
-
}]
|
|
44
|
-
}], ctorParameters: function () { return [{ type: i1.Directionality }, { type: BuiCommonModule, decorators: [{
|
|
45
|
-
type: Optional
|
|
46
|
-
}, {
|
|
47
|
-
type: SkipSelf
|
|
48
|
-
}] }, { type: Document, decorators: [{
|
|
49
|
-
type: Inject,
|
|
50
|
-
args: [DOCUMENT]
|
|
51
|
-
}] }]; } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NvbW1vbi9jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTZCLE1BQU0sbUJBQW1CLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVyRSxnR0FBZ0c7QUFDaEcsTUFBTSxrQkFBa0IsR0FDdkIsb0hBQW9ILENBQUM7QUFFdEgsdURBQXVEO0FBQ3ZELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFnQjtJQUN0RCxNQUFNLEtBQUssR0FBRyxDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxXQUFXLEVBQUUsS0FBSSxFQUFFLENBQUM7SUFFNUMsSUFBSSxLQUFLLEtBQUssTUFBTSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsS0FBSSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsUUFBUSxDQUFBLEVBQUU7UUFDaEYsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztLQUNuRTtJQUVELE9BQU8sS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDeEMsQ0FBQztBQU9ELE1BQU0sT0FBTyxlQUFlO0lBQzNCLFlBQ0MsR0FBbUIsRUFHbkIsVUFBMkIsRUFDVCxRQUFrQjtRQUVwQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2hCLE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsR0FBRyxFQUFFO2dCQUMxQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0YsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7b0JBQy9CLE1BQU0sQ0FBQyxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2QyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbkIsSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNyRCxHQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztxQkFDdkI7aUJBQ0Q7WUFDRixDQUFDLENBQUMsQ0FBQztZQUVILFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3REO0lBQ0YsQ0FBQzs7NkdBdkJXLGVBQWUsZ0RBS2QsZUFBZSw2Q0FDbkIsUUFBUTs4R0FOTCxlQUFlLFlBSGpCLFVBQVUsYUFDVixVQUFVOzhHQUVSLGVBQWUsWUFIbEIsQ0FBQyxVQUFVLENBQUMsRUFDWCxVQUFVOzRGQUVSLGVBQWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUNyQjt1RkFNYSxlQUFlOzBCQUYxQixRQUFROzswQkFDUixRQUFROzhCQUVtQixRQUFROzBCQUFuQyxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaWRpTW9kdWxlLCBEaXJlY3Rpb24sIERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBOZ01vZHVsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKiBSZWdleCB0aGF0IG1hdGNoZXMgbG9jYWxlcyB3aXRoIGFuIFJUTCBzY3JpcHQuIFRha2VuIGZyb20gYGdvb2cuaTE4bi5iaWRpLmlzUnRsTGFuZ3VhZ2VgLiAqL1xuY29uc3QgUlRMX0xPQ0FMRV9QQVRURVJOID1cblx0L14oYXJ8Y2tifGR2fGhlfGl3fGZhfG5xb3xwc3xzZHx1Z3x1cnx5aXwuKlstX10oQWRsbXxBcmFifEhlYnJ8Tmtvb3xSb2hnfFRoYWEpKSg/IS4qWy1fXShMYXRufEN5cmwpKCR8LXxfKSkoJHwtfF8pL2k7XG5cbi8qKiBSZXNvbHZlcyBhIHN0cmluZyB2YWx1ZSB0byBhIHNwZWNpZmljIGRpcmVjdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBfcmVzb2x2ZURpcmVjdGlvbmFsaXR5KHJhd1ZhbHVlOiBzdHJpbmcpOiBEaXJlY3Rpb24ge1xuXHRjb25zdCB2YWx1ZSA9IHJhd1ZhbHVlPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuXG5cdGlmICh2YWx1ZSA9PT0gJ2F1dG8nICYmIHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvcj8ubGFuZ3VhZ2UpIHtcblx0XHRyZXR1cm4gUlRMX0xPQ0FMRV9QQVRURVJOLnRlc3QobmF2aWdhdG9yLmxhbmd1YWdlKSA/ICdydGwnIDogJ2x0cic7XG5cdH1cblxuXHRyZXR1cm4gdmFsdWUgPT09ICdydGwnID8gJ3J0bCcgOiAnbHRyJztcbn1cblxuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbXSxcblx0aW1wb3J0czogW0JpZGlNb2R1bGVdLFxuXHRleHBvcnRzOiBbQmlkaU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQnVpQ29tbW9uTW9kdWxlIHtcblx0Y29uc3RydWN0b3IoXG5cdFx0ZGlyOiBEaXJlY3Rpb25hbGl0eSxcblx0XHRAT3B0aW9uYWwoKVxuXHRcdEBTa2lwU2VsZigpXG5cdFx0dGhpc01vZHVsZTogQnVpQ29tbW9uTW9kdWxlLFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBEb2N1bWVudFxuXHQpIHtcblx0XHRpZiAoIXRoaXNNb2R1bGUpIHtcblx0XHRcdGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBhdHRyID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlyJykgfHwgZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGUoJ2RpcicpO1xuXHRcdFx0XHRpZiAoYXR0ciAmJiBkaXIudmFsdWUgIT09IGF0dHIpIHtcblx0XHRcdFx0XHRjb25zdCBkID0gX3Jlc29sdmVEaXJlY3Rpb25hbGl0eShhdHRyKTtcblx0XHRcdFx0XHRkaXIuY2hhbmdlLmVtaXQoZCk7XG5cdFx0XHRcdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGRpcikuaW5jbHVkZXMoJ3ZhbHVlJykpIHtcblx0XHRcdFx0XHRcdChkaXIgYXMgYW55KS52YWx1ZSA9IGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0b2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHsgYXR0cmlidXRlczogdHJ1ZSB9KTtcblx0XHRcdG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBhdHRyaWJ1dGVzOiB0cnVlIH0pO1xuXHRcdH1cblx0fVxufVxuIl19
|
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
import { DecimalPipe, getCurrencySymbol } from '@angular/common';
|
|
2
|
-
import { DEFAULT_CURRENCY_CODE, Directive, forwardRef, HostBinding, HostListener, Inject, Input, LOCALE_ID, Optional, Self, ɵfindLocaleData } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { MAT_FORM_FIELD } from '@angular/material/form-field';
|
|
5
|
-
import { MatInput } from '@angular/material/input';
|
|
6
|
-
import { noop } from 'rxjs';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/material/form-field";
|
|
9
|
-
/* tslint:disable:no-empty */
|
|
10
|
-
export const noop_consumer = (_) => { };
|
|
11
|
-
/**
|
|
12
|
-
* This directive will enhance an input element to format the numbers entered to a currency amount.
|
|
13
|
-
*/
|
|
14
|
-
export class CurrencyInputDirective {
|
|
15
|
-
constructor(_el, _renderer, _locale, _defaultCurrencyCode, _field) {
|
|
16
|
-
this._el = _el;
|
|
17
|
-
this._renderer = _renderer;
|
|
18
|
-
this._locale = _locale;
|
|
19
|
-
this._defaultCurrencyCode = _defaultCurrencyCode;
|
|
20
|
-
this._field = _field;
|
|
21
|
-
/**
|
|
22
|
-
* true to allow negative input, otherwise false
|
|
23
|
-
* Default to false.
|
|
24
|
-
*/
|
|
25
|
-
this.allowNegative = false;
|
|
26
|
-
/**
|
|
27
|
-
* Provide the currency code to format the entered amount.
|
|
28
|
-
* Uses angular token DEFAULT_CURRENCY_CODE by default.
|
|
29
|
-
*/
|
|
30
|
-
this.currencyCode = '';
|
|
31
|
-
/**
|
|
32
|
-
* true if no decimal digits allowed, otherwise false.
|
|
33
|
-
* Default to false.
|
|
34
|
-
*/
|
|
35
|
-
this.baseUnitOnly = false;
|
|
36
|
-
/**
|
|
37
|
-
* The format the of the amount either in wide or narrow.
|
|
38
|
-
*/
|
|
39
|
-
this.format = 'wide';
|
|
40
|
-
this.placeholder = '';
|
|
41
|
-
this.autocomplete = 'off';
|
|
42
|
-
this.type = 'text';
|
|
43
|
-
this.inputMode = 'decimal';
|
|
44
|
-
this.change = noop_consumer;
|
|
45
|
-
this.onTouch = noop;
|
|
46
|
-
this._symbol = '$';
|
|
47
|
-
this._ds = '.'; // decimal separator
|
|
48
|
-
this._trailing = false;
|
|
49
|
-
const userAgent = navigator.userAgent;
|
|
50
|
-
this._safari = !userAgent.match(/Firefox/i) && !userAgent.match(/Chrome/i) && !!userAgent.match(/safari/i);
|
|
51
|
-
this._currencyUpdated();
|
|
52
|
-
}
|
|
53
|
-
ngOnInit() { }
|
|
54
|
-
ngOnChanges() {
|
|
55
|
-
this._currencyUpdated();
|
|
56
|
-
this.onInput();
|
|
57
|
-
}
|
|
58
|
-
onInput() {
|
|
59
|
-
this._formatCurrency(this._el, false, true);
|
|
60
|
-
}
|
|
61
|
-
onFocus() {
|
|
62
|
-
this._formatCurrency(this._el, false, true);
|
|
63
|
-
}
|
|
64
|
-
onblur() {
|
|
65
|
-
this.onTouch();
|
|
66
|
-
this._formatCurrency(this._el, true, false);
|
|
67
|
-
}
|
|
68
|
-
writeValue(value) {
|
|
69
|
-
value = this._decimalPipe.transform(value);
|
|
70
|
-
this._renderer.setProperty(this._el.nativeElement, 'value', value);
|
|
71
|
-
this._formatCurrency(this._el, false, false);
|
|
72
|
-
}
|
|
73
|
-
registerOnChange(fn) {
|
|
74
|
-
this.change = fn;
|
|
75
|
-
}
|
|
76
|
-
registerOnTouched(fn) {
|
|
77
|
-
this.onTouch = fn;
|
|
78
|
-
}
|
|
79
|
-
_updatePlaceholder() {
|
|
80
|
-
var _a;
|
|
81
|
-
this.placeholder = this.placeholder || this._0Text;
|
|
82
|
-
if (((_a = this._field) === null || _a === void 0 ? void 0 : _a._control) instanceof MatInput) {
|
|
83
|
-
this._field._control.placeholder = this.placeholder;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
_currencyUpdated() {
|
|
87
|
-
this.currencyCode = this.currencyCode || this._defaultCurrencyCode;
|
|
88
|
-
this._symbol = getCurrencySymbol(this.currencyCode, this.format, this._locale) || '$';
|
|
89
|
-
const localeData = ɵfindLocaleData(this._locale);
|
|
90
|
-
this._ds = localeData[13][0];
|
|
91
|
-
this._decimalPipe = new DecimalPipe(this._locale);
|
|
92
|
-
const curFormat = localeData[14][2];
|
|
93
|
-
this._trailing = curFormat.indexOf('¤') > 0;
|
|
94
|
-
this._updatePlaceholder();
|
|
95
|
-
}
|
|
96
|
-
_formatCurrency(input, blur, focus) {
|
|
97
|
-
// appends $ to value, validates decimal side
|
|
98
|
-
// and puts cursor back in right position.
|
|
99
|
-
// get input value
|
|
100
|
-
let input_val = input.nativeElement.value;
|
|
101
|
-
// don't validate empty input
|
|
102
|
-
if (input_val === '') {
|
|
103
|
-
this.change(null);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
const minus = this.allowNegative ? '-' : '';
|
|
107
|
-
// remove non digit values except currency symbol, decimal separator and hypen
|
|
108
|
-
const reg = new RegExp(`[^0-9${minus}${this._symbol}${this._ds}]`, 'g');
|
|
109
|
-
let sanitiseValue = input_val.replace(reg, '');
|
|
110
|
-
if (sanitiseValue === '' || sanitiseValue === this._symbol) {
|
|
111
|
-
this.change(null);
|
|
112
|
-
this._renderer.setProperty(input.nativeElement, 'value', '');
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
else if ((this.allowNegative && sanitiseValue === `-${this._symbol}`) ||
|
|
116
|
-
sanitiseValue === '-' ||
|
|
117
|
-
sanitiseValue === '--') {
|
|
118
|
-
this.change(null);
|
|
119
|
-
this._renderer.setProperty(input.nativeElement, 'value', '-');
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
const negative = this.allowNegative && input_val.indexOf('-') >= 0;
|
|
123
|
-
// original length
|
|
124
|
-
const original_len = input_val.length;
|
|
125
|
-
// initial caret position
|
|
126
|
-
let caret_pos = input.nativeElement.selectionStart;
|
|
127
|
-
input_val = input_val.replace(RegExp(`[^0-9${minus}${this._ds}]`, 'g'), '').replace(/^\.\./, '');
|
|
128
|
-
// check for decimal
|
|
129
|
-
if (input_val.indexOf(this._ds) >= 0) {
|
|
130
|
-
// get position of first decimal
|
|
131
|
-
// this prevents multiple decimals from
|
|
132
|
-
// being entered
|
|
133
|
-
let decimal_pos = input_val.indexOf(this._ds);
|
|
134
|
-
// split number by decimal point
|
|
135
|
-
let left_side = input_val.substring(0, decimal_pos);
|
|
136
|
-
let right_side = input_val.substring(decimal_pos);
|
|
137
|
-
// add commas to left side of number
|
|
138
|
-
left_side = this._formatNumber(left_side, blur) || '';
|
|
139
|
-
// no value append a zero for decimal values
|
|
140
|
-
if (!left_side.length) {
|
|
141
|
-
left_side = '0';
|
|
142
|
-
}
|
|
143
|
-
if (!this.baseUnitOnly) {
|
|
144
|
-
// validate right side
|
|
145
|
-
right_side = right_side.replace(/\D/g, '');
|
|
146
|
-
// Limit decimal to only 2 digits
|
|
147
|
-
let v = Number(`0.${right_side}`);
|
|
148
|
-
if (v) {
|
|
149
|
-
const length = right_side.length > 1 ? 2 : 1;
|
|
150
|
-
right_side = v.toFixed(length).substring(2, 4);
|
|
151
|
-
}
|
|
152
|
-
// On blur make sure 2 numbers after decimal
|
|
153
|
-
if (blur) {
|
|
154
|
-
right_side += '00';
|
|
155
|
-
}
|
|
156
|
-
right_side = right_side.substring(0, 2);
|
|
157
|
-
// join number by .
|
|
158
|
-
input_val = left_side + this._ds + right_side;
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
input_val = left_side;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
input_val = this._formatNumber(input_val, blur);
|
|
166
|
-
// final formatting
|
|
167
|
-
if (blur && !this.baseUnitOnly) {
|
|
168
|
-
input_val += `${this._ds}00`;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
const numStr = input_val;
|
|
172
|
-
// append the currency symbol
|
|
173
|
-
if (!this._safari || !focus) {
|
|
174
|
-
if (this._trailing) {
|
|
175
|
-
input_val = input_val + ' ' + this._symbol;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
input_val = this._symbol + input_val;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
if (negative) {
|
|
182
|
-
// append the hypen back to the value if a negative value was entered
|
|
183
|
-
input_val = `-${input_val}`;
|
|
184
|
-
}
|
|
185
|
-
const num = this._convert((negative ? '-' : '') + numStr);
|
|
186
|
-
// update control value first with the number
|
|
187
|
-
this.change(Number(num));
|
|
188
|
-
if (blur && num === 0) {
|
|
189
|
-
input_val = this._0Text;
|
|
190
|
-
}
|
|
191
|
-
// update dom with the formatted value
|
|
192
|
-
this._renderer.setProperty(input.nativeElement, 'value', input_val);
|
|
193
|
-
// put caret back in the right position
|
|
194
|
-
let updated_len = input_val.length;
|
|
195
|
-
if (caret_pos) {
|
|
196
|
-
caret_pos = updated_len - original_len + caret_pos;
|
|
197
|
-
if (input_val.substring(caret_pos - this._symbol.length) === this._symbol && this._trailing) {
|
|
198
|
-
caret_pos -= this._symbol.length + 1;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (!this._safari) {
|
|
202
|
-
input.nativeElement.setSelectionRange(caret_pos, caret_pos);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
// format the number into currency format
|
|
206
|
-
_formatNumber(n, blur = false) {
|
|
207
|
-
// format number 1000000 to 1,234,567
|
|
208
|
-
n = n.replace(/\D/g, '');
|
|
209
|
-
if (blur) {
|
|
210
|
-
n = n.replace(/^0+/, '');
|
|
211
|
-
}
|
|
212
|
-
return this._decimalPipe.transform(n, '1.0-0');
|
|
213
|
-
}
|
|
214
|
-
_convert(input) {
|
|
215
|
-
if (!input) {
|
|
216
|
-
return NaN;
|
|
217
|
-
}
|
|
218
|
-
const val = input
|
|
219
|
-
.replace(this._ds, 'd')
|
|
220
|
-
.replace(/[^0-9d-]/g, '')
|
|
221
|
-
.replace('d', '.');
|
|
222
|
-
return parseFloat(val);
|
|
223
|
-
}
|
|
224
|
-
get _0Text() {
|
|
225
|
-
const decimalStr = this.baseUnitOnly ? '' : `${this._ds}00`;
|
|
226
|
-
return this._trailing ? `0${decimalStr} ${this._symbol}` : `${this._symbol}0${decimalStr}`;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
CurrencyInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CurrencyInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }, { token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }, { token: MAT_FORM_FIELD, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
230
|
-
CurrencyInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: CurrencyInputDirective, selector: "input[buiCurrencyInput],input[currencyCode],input[data-type=currency]", inputs: { allowNegative: "allowNegative", currencyCode: "currencyCode", baseUnitOnly: "baseUnitOnly", format: "format" }, host: { listeners: { "input": "onInput()", "focus": "onFocus()", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }], usesOnChanges: true, ngImport: i0 });
|
|
231
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CurrencyInputDirective, decorators: [{
|
|
232
|
-
type: Directive,
|
|
233
|
-
args: [{
|
|
234
|
-
selector: 'input[buiCurrencyInput],input[currencyCode],input[data-type=currency]',
|
|
235
|
-
providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }]
|
|
236
|
-
}]
|
|
237
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
|
|
238
|
-
type: Self
|
|
239
|
-
}] }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
240
|
-
type: Inject,
|
|
241
|
-
args: [LOCALE_ID]
|
|
242
|
-
}] }, { type: undefined, decorators: [{
|
|
243
|
-
type: Inject,
|
|
244
|
-
args: [DEFAULT_CURRENCY_CODE]
|
|
245
|
-
}] }, { type: i1.MatFormField, decorators: [{
|
|
246
|
-
type: Optional
|
|
247
|
-
}, {
|
|
248
|
-
type: Inject,
|
|
249
|
-
args: [MAT_FORM_FIELD]
|
|
250
|
-
}] }]; }, propDecorators: { allowNegative: [{
|
|
251
|
-
type: Input
|
|
252
|
-
}], currencyCode: [{
|
|
253
|
-
type: Input
|
|
254
|
-
}], baseUnitOnly: [{
|
|
255
|
-
type: Input
|
|
256
|
-
}], format: [{
|
|
257
|
-
type: Input
|
|
258
|
-
}], placeholder: [{
|
|
259
|
-
type: HostBinding,
|
|
260
|
-
args: ['placeholder']
|
|
261
|
-
}], autocomplete: [{
|
|
262
|
-
type: HostBinding,
|
|
263
|
-
args: ['autocomplete']
|
|
264
|
-
}], type: [{
|
|
265
|
-
type: HostBinding,
|
|
266
|
-
args: ['type']
|
|
267
|
-
}], inputMode: [{
|
|
268
|
-
type: HostBinding,
|
|
269
|
-
args: ['attr.inputmode']
|
|
270
|
-
}], onInput: [{
|
|
271
|
-
type: HostListener,
|
|
272
|
-
args: ['input']
|
|
273
|
-
}], onFocus: [{
|
|
274
|
-
type: HostListener,
|
|
275
|
-
args: ['focus']
|
|
276
|
-
}], onblur: [{
|
|
277
|
-
type: HostListener,
|
|
278
|
-
args: ['blur']
|
|
279
|
-
}] } });
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQ04scUJBQXFCLEVBQ3JCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBRVIsSUFBSSxFQUNKLGVBQWUsRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpRGxDLFlBQ2lCLEdBQWlDLEVBQ3pDLFNBQW9CLEVBQ0QsT0FBZSxFQUNILG9CQUE0QixFQUN2QixNQUFxQjtRQUpqRCxRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ0QsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNILHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBckRsRTs7O1dBR0c7UUFFSCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUv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WTtzQkFEWCxLQUFLO2dCQVFOLFlBQVk7c0JBRFgsS0FBSztnQkFPTixNQUFNO3NCQURMLEtBQUs7Z0JBSUUsV0FBVztzQkFEbEIsV0FBVzt1QkFBQyxhQUFhO2dCQUlsQixZQUFZO3NCQURuQixXQUFXO3VCQUFDLGNBQWM7Z0JBSW5CLElBQUk7c0JBRFgsV0FBVzt1QkFBQyxNQUFNO2dCQUlYLFNBQVM7c0JBRGhCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQWdDN0IsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU87Z0JBTXJCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlLCBnZXRDdXJyZW5jeVN5bWJvbCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRERUZBVUxUX0NVUlJFTkNZX0NPREUsXG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0Zm9yd2FyZFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0TE9DQUxFX0lELFxuXHRPbkNoYW5nZXMsXG5cdE9uSW5pdCxcblx0T3B0aW9uYWwsXG5cdFJlbmRlcmVyMixcblx0U2VsZixcblx0ybVmaW5kTG9jYWxlRGF0YVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTUFUX0ZPUk1fRklFTEQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTpuby1lbXB0eSAqL1xuZXhwb3J0IGNvbnN0IG5vb3BfY29uc3VtZXIgPSAoXzogYW55KSA9PiB7fTtcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSB3aWxsIGVuaGFuY2UgYW4gaW5wdXQgZWxlbWVudCB0byBmb3JtYXQgdGhlIG51bWJlcnMgZW50ZXJlZCB0byBhIGN1cnJlbmN5IGFtb3VudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnaW5wdXRbYnVpQ3VycmVuY3lJbnB1dF0saW5wdXRbY3VycmVuY3lDb2RlXSxpbnB1dFtkYXRhLXR5cGU9Y3VycmVuY3ldJyxcblx0cHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VycmVuY3lJbnB1dERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5SW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXHQvKipcblx0ICogdHJ1ZSB0byBhbGxvdyBuZWdhdGl2ZSBpbnB1dCwgb3RoZXJ3aXNlIGZhbHNlXG5cdCAqIERlZmF1bHQgdG8gZmFsc2UuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRhbGxvd05lZ2F0aXZlOiBib29sZWFuID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFByb3ZpZGUgdGhlIGN1cnJlbmN5IGNvZGUgdG8gZm9ybWF0IHRoZSBlbnRlcmVkIGFtb3VudC5cblx0ICogVXNlcyBhbmd1bGFyIHRva2VuIERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSBieSBkZWZhdWx0LlxuXHQgKi9cblx0QElucHV0KClcblx0Y3VycmVuY3lDb2RlOiBzdHJpbmcgPSAnJztcblxuXHQvKipcblx0ICogdHJ1ZSBpZiBubyBkZWNpbWFsIGRpZ2l0cyBhbGxvd2VkLCBvdGhlcndpc2UgZmFsc2UuXG5cdCAqIERlZmF1bHQgdG8gZmFsc2UuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRiYXNlVW5pdE9ubHkgPSBmYWxzZTtcblxuXHQvKipcblx0ICogVGhlIGZvcm1hdCB0aGUgb2YgdGhlIGFtb3VudCBlaXRoZXIgaW4gd2lkZSBvciBuYXJyb3cuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRmb3JtYXQ6ICduYXJyb3cnIHwgJ3dpZGUnID0gJ3dpZGUnO1xuXG5cdEBIb3N0QmluZGluZygncGxhY2Vob2xkZXInKVxuXHRwcml2YXRlIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuXHRASG9zdEJpbmRpbmcoJ2F1dG9jb21wbGV0ZScpXG5cdHByaXZhdGUgYXV0b2NvbXBsZXRlID0gJ29mZic7XG5cblx0QEhvc3RCaW5kaW5nKCd0eXBlJylcblx0cHJpdmF0ZSB0eXBlID0gJ3RleHQnO1xuXG5cdEBIb3N0QmluZGluZygnYXR0ci5pbnB1dG1vZGUnKVxuXHRwcml2YXRlIGlucHV0TW9kZSA9ICdkZWNpbWFsJztcblxuXHRwcml2YXRlIGNoYW5nZSA9IG5vb3BfY29uc3VtZXI7XG5cdHByaXZhdGUgb25Ub3VjaCA9IG5vb3A7XG5cdHByaXZhdGUgX3NhZmFyaTogYm9vbGVhbjtcblx0cHJpdmF0ZSBfc3ltYm9sOiBzdHJpbmcgPSAnJCc7XG5cdHByaXZhdGUgX2RlY2ltYWxQaXBlITogRGVjaW1hbFBpcGU7XG5cblx0cHJpdmF0ZSBfZHMgPSAnLic7IC8vIGRlY2ltYWwgc2VwYXJhdG9yXG5cdHByaXZhdGUgX3RyYWlsaW5nID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QFNlbGYoKSBwcml2YXRlIF9lbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pixcblx0XHRwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuXHRcdEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcblx0XHRASW5qZWN0KERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSkgcHJpdmF0ZSBfZGVmYXVsdEN1cnJlbmN5Q29kZTogc3RyaW5nLFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0ZPUk1fRklFTEQpIHByaXZhdGUgX2ZpZWxkPzogTWF0Rm9ybUZpZWxkXG5cdCkge1xuXHRcdGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XG5cdFx0dGhpcy5fc2FmYXJpID0gIXVzZXJBZ2VudC5tYXRjaCgvRmlyZWZveC9pKSAmJiAhdXNlckFnZW50Lm1hdGNoKC9DaHJvbWUvaSkgJiYgISF1c2VyQWdlbnQubWF0Y2goL3NhZmFyaS9pKTtcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge31cblxuXHRuZ09uQ2hhbmdlcygpOiB2b2lkIHtcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcblx0XHR0aGlzLm9uSW5wdXQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2lucHV0Jylcblx0b25JbnB1dCgpIHtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgZmFsc2UsIHRydWUpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuXHRvbkZvY3VzKCkge1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCBmYWxzZSwgdHJ1ZSk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdibHVyJylcblx0b25ibHVyKCkge1xuXHRcdHRoaXMub25Ub3VjaCgpO1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCB0cnVlLCBmYWxzZSk7XG5cdH1cblxuXHR3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcblx0XHR2YWx1ZSA9IHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XG5cdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCBmYWxzZSwgZmFsc2UpO1xuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG5cdFx0dGhpcy5jaGFuZ2UgPSBmbjtcblx0fVxuXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2ggPSBmbjtcblx0fVxuXG5cdHByaXZhdGUgX3VwZGF0ZVBsYWNlaG9sZGVyKCkge1xuXHRcdHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyIHx8IHRoaXMuXzBUZXh0O1xuXHRcdGlmICh0aGlzLl9maWVsZD8uX2NvbnRyb2wgaW5zdGFuY2VvZiBNYXRJbnB1dCkge1xuXHRcdFx0dGhpcy5fZmllbGQuX2NvbnRyb2wucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2N1cnJlbmN5VXBkYXRlZCgpIHtcblx0XHR0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMuY3VycmVuY3lDb2RlIHx8IHRoaXMuX2RlZmF1bHRDdXJyZW5jeUNvZGU7XG5cdFx0dGhpcy5fc3ltYm9sID0gZ2V0Q3VycmVuY3lTeW1ib2wodGhpcy5jdXJyZW5jeUNvZGUsIHRoaXMuZm9ybWF0LCB0aGlzLl9sb2NhbGUpIHx8ICckJztcblx0XHRjb25zdCBsb2NhbGVEYXRhID0gybVmaW5kTG9jYWxlRGF0YSh0aGlzLl9sb2NhbGUpO1xuXHRcdHRoaXMuX2RzID0gbG9jYWxlRGF0YVsxM11bMF07XG5cdFx0dGhpcy5fZGVjaW1hbFBpcGUgPSBuZXcgRGVjaW1hbFBpcGUodGhpcy5fbG9jYWxlKTtcblx0XHRjb25zdCBjdXJGb3JtYXQ6IHN0cmluZyA9IGxvY2FsZURhdGFbMTRdWzJdO1xuXHRcdHRoaXMuX3RyYWlsaW5nID0gY3VyRm9ybWF0LmluZGV4T2YoJ8KkJykgPiAwO1xuXHRcdHRoaXMuX3VwZGF0ZVBsYWNlaG9sZGVyKCk7XG5cdH1cblxuXHRwcml2YXRlIF9mb3JtYXRDdXJyZW5jeShpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiwgYmx1cjogYm9vbGVhbiwgZm9jdXM6IGJvb2xlYW4pIHtcblx0XHQvLyBhcHBlbmRzICQgdG8gdmFsdWUsIHZhbGlkYXRlcyBkZWNpbWFsIHNpZGVcblx0XHQvLyBhbmQgcHV0cyBjdXJzb3IgYmFjayBpbiByaWdodCBwb3NpdGlvbi5cblx0XHQvLyBnZXQgaW5wdXQgdmFsdWVcblx0XHRsZXQgaW5wdXRfdmFsID0gaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuXHRcdC8vIGRvbid0IHZhbGlkYXRlIGVtcHR5IGlucHV0XG5cdFx0aWYgKGlucHV0X3ZhbCA9PT0gJycpIHtcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1pbnVzID0gdGhpcy5hbGxvd05lZ2F0aXZlID8gJy0nIDogJyc7XG5cblx0XHQvLyByZW1vdmUgbm9uIGRpZ2l0IHZhbHVlcyBleGNlcHQgY3VycmVuY3kgc3ltYm9sLCBkZWNpbWFsIHNlcGFyYXRvciBhbmQgaHlwZW5cblx0XHRjb25zdCByZWcgPSBuZXcgUmVnRXhwKGBbXjAtOSR7bWludXN9JHt0aGlzLl9zeW1ib2x9JHt0aGlzLl9kc31dYCwgJ2cnKTtcblxuXHRcdGxldCBzYW5pdGlzZVZhbHVlID0gaW5wdXRfdmFsLnJlcGxhY2UocmVnLCAnJyk7XG5cblx0XHRpZiAoc2FuaXRpc2VWYWx1ZSA9PT0gJycgfHwgc2FuaXRpc2VWYWx1ZSA9PT0gdGhpcy5fc3ltYm9sKSB7XG5cdFx0XHR0aGlzLmNoYW5nZShudWxsKTtcblx0XHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsICcnKTtcblx0XHRcdHJldHVybjtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0KHRoaXMuYWxsb3dOZWdhdGl2ZSAmJiBzYW5pdGlzZVZhbHVlID09PSBgLSR7dGhpcy5fc3ltYm9sfWApIHx8XG5cdFx0XHRzYW5pdGlzZVZhbHVlID09PSAnLScgfHxcblx0XHRcdHNhbml0aXNlVmFsdWUgPT09ICctLSdcblx0XHQpIHtcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHRcdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoaW5wdXQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgJy0nKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBuZWdhdGl2ZSA9IHRoaXMuYWxsb3dOZWdhdGl2ZSAmJiBpbnB1dF92YWwuaW5kZXhPZignLScpID49IDA7XG5cblx0XHQvLyBvcmlnaW5hbCBsZW5ndGhcblx0XHRjb25zdCBvcmlnaW5hbF9sZW4gPSBpbnB1dF92YWwubGVuZ3RoO1xuXG5cdFx0Ly8gaW5pdGlhbCBjYXJldCBwb3NpdGlvblxuXHRcdGxldCBjYXJldF9wb3MgPSBpbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuXG5cdFx0aW5wdXRfdmFsID0gaW5wdXRfdmFsLnJlcGxhY2UoUmVnRXhwKGBbXjAtOSR7bWludXN9JHt0aGlzLl9kc31dYCwgJ2cnKSwgJycpLnJlcGxhY2UoL15cXC5cXC4vLCAnJyk7XG5cdFx0Ly8gY2hlY2sgZm9yIGRlY2ltYWxcblx0XHRpZiAoaW5wdXRfdmFsLmluZGV4T2YodGhpcy5fZHMpID49IDApIHtcblx0XHRcdC8vIGdldCBwb3NpdGlvbiBvZiBmaXJzdCBkZWNpbWFsXG5cdFx0XHQvLyB0aGlzIHByZXZlbnRzIG11bHRpcGxlIGRlY2ltYWxzIGZyb21cblx0XHRcdC8vIGJlaW5nIGVudGVyZWRcblx0XHRcdGxldCBkZWNpbWFsX3BvcyA9IGlucHV0X3ZhbC5pbmRleE9mKHRoaXMuX2RzKTtcblxuXHRcdFx0Ly8gc3BsaXQgbnVtYmVyIGJ5IGRlY2ltYWwgcG9pbnRcblx0XHRcdGxldCBsZWZ0X3NpZGUgPSBpbnB1dF92YWwuc3Vic3RyaW5nKDAsIGRlY2ltYWxfcG9zKTtcblx0XHRcdGxldCByaWdodF9zaWRlID0gaW5wdXRfdmFsLnN1YnN0cmluZyhkZWNpbWFsX3Bvcyk7XG5cblx0XHRcdC8vIGFkZCBjb21tYXMgdG8gbGVmdCBzaWRlIG9mIG51bWJlclxuXHRcdFx0bGVmdF9zaWRlID0gdGhpcy5fZm9ybWF0TnVtYmVyKGxlZnRfc2lkZSwgYmx1cikgfHwgJyc7XG5cblx0XHRcdC8vIG5vIHZhbHVlIGFwcGVuZCBhIHplcm8gZm9yIGRlY2ltYWwgdmFsdWVzXG5cdFx0XHRpZiAoIWxlZnRfc2lkZS5sZW5ndGgpIHtcblx0XHRcdFx0bGVmdF9zaWRlID0gJzAnO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIXRoaXMuYmFzZVVuaXRPbmx5KSB7XG5cdFx0XHRcdC8vIHZhbGlkYXRlIHJpZ2h0IHNpZGVcblx0XHRcdFx0cmlnaHRfc2lkZSA9IHJpZ2h0X3NpZGUucmVwbGFjZSgvXFxEL2csICcnKTtcblxuXHRcdFx0XHQvLyBMaW1pdCBkZWNpbWFsIHRvIG9ubHkgMiBkaWdpdHNcblx0XHRcdFx0bGV0IHYgPSBOdW1iZXIoYDAuJHtyaWdodF9zaWRlfWApO1xuXHRcdFx0XHRpZiAodikge1xuXHRcdFx0XHRcdGNvbnN0IGxlbmd0aCA9IHJpZ2h0X3NpZGUubGVuZ3RoID4gMSA/IDIgOiAxO1xuXHRcdFx0XHRcdHJpZ2h0X3NpZGUgPSB2LnRvRml4ZWQobGVuZ3RoKS5zdWJzdHJpbmcoMiwgNCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBPbiBibHVyIG1ha2Ugc3VyZSAyIG51bWJlcnMgYWZ0ZXIgZGVjaW1hbFxuXHRcdFx0XHRpZiAoYmx1cikge1xuXHRcdFx0XHRcdHJpZ2h0X3NpZGUgKz0gJzAwJztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJpZ2h0X3NpZGUgPSByaWdodF9zaWRlLnN1YnN0cmluZygwLCAyKTtcblxuXHRcdFx0XHQvLyBqb2luIG51bWJlciBieSAuXG5cdFx0XHRcdGlucHV0X3ZhbCA9IGxlZnRfc2lkZSArIHRoaXMuX2RzICsgcmlnaHRfc2lkZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlucHV0X3ZhbCA9IGxlZnRfc2lkZTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fZm9ybWF0TnVtYmVyKGlucHV0X3ZhbCwgYmx1cik7XG5cblx0XHRcdC8vIGZpbmFsIGZvcm1hdHRpbmdcblx0XHRcdGlmIChibHVyICYmICF0aGlzLmJhc2VVbml0T25seSkge1xuXHRcdFx0XHRpbnB1dF92YWwgKz0gYCR7dGhpcy5fZHN9MDBgO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IG51bVN0ciA9IGlucHV0X3ZhbDtcblx0XHQvLyBhcHBlbmQgdGhlIGN1cnJlbmN5IHN5bWJvbFxuXHRcdGlmICghdGhpcy5fc2FmYXJpIHx8ICFmb2N1cykge1xuXHRcdFx0aWYgKHRoaXMuX3RyYWlsaW5nKSB7XG5cdFx0XHRcdGlucHV0X3ZhbCA9IGlucHV0X3ZhbCArICcgJyArIHRoaXMuX3N5bWJvbDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlucHV0X3ZhbCA9IHRoaXMuX3N5bWJvbCArIGlucHV0X3ZhbDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAobmVnYXRpdmUpIHtcblx0XHRcdC8vIGFwcGVuZCB0aGUgaHlwZW4gYmFjayB0byB0aGUgdmFsdWUgaWYgYSBuZWdhdGl2ZSB2YWx1ZSB3YXMgZW50ZXJlZFxuXHRcdFx0aW5wdXRfdmFsID0gYC0ke2lucHV0X3ZhbH1gO1xuXHRcdH1cblxuXHRcdGNvbnN0IG51bSA9IHRoaXMuX2NvbnZlcnQoKG5lZ2F0aXZlID8gJy0nIDogJycpICsgbnVtU3RyKTtcblxuXHRcdC8vIHVwZGF0ZSBjb250cm9sIHZhbHVlIGZpcnN0IHdpdGggdGhlIG51bWJlclxuXHRcdHRoaXMuY2hhbmdlKE51bWJlcihudW0pKTtcblxuXHRcdGlmIChibHVyICYmIG51bSA9PT0gMCkge1xuXHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fMFRleHQ7XG5cdFx0fVxuXG5cdFx0Ly8gdXBkYXRlIGRvbSB3aXRoIHRoZSBmb3JtYXR0ZWQgdmFsdWVcblx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBpbnB1dF92YWwpO1xuXHRcdC8vIHB1dCBjYXJldCBiYWNrIGluIHRoZSByaWdodCBwb3NpdGlvblxuXHRcdGxldCB1cGRhdGVkX2xlbiA9IGlucHV0X3ZhbC5sZW5ndGg7XG5cdFx0aWYgKGNhcmV0X3Bvcykge1xuXHRcdFx0Y2FyZXRfcG9zID0gdXBkYXRlZF9sZW4gLSBvcmlnaW5hbF9sZW4gKyBjYXJldF9wb3M7XG5cdFx0XHRpZiAoaW5wdXRfdmFsLnN1YnN0cmluZyhjYXJldF9wb3MgLSB0aGlzLl9zeW1ib2wubGVuZ3RoKSA9PT0gdGhpcy5fc3ltYm9sICYmIHRoaXMuX3RyYWlsaW5nKSB7XG5cdFx0XHRcdGNhcmV0X3BvcyAtPSB0aGlzLl9zeW1ib2wubGVuZ3RoICsgMTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKCF0aGlzLl9zYWZhcmkpIHtcblx0XHRcdGlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY2FyZXRfcG9zLCBjYXJldF9wb3MpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGZvcm1hdCB0aGUgbnVtYmVyIGludG8gY3VycmVuY3kgZm9ybWF0XG5cdHByaXZhdGUgX2Zvcm1hdE51bWJlcihuOiBzdHJpbmcsIGJsdXI6IGJvb2xlYW4gPSBmYWxzZSkge1xuXHRcdC8vIGZvcm1hdCBudW1iZXIgMTAwMDAwMCB0byAxLDIzNCw1Njdcblx0XHRuID0gbi5yZXBsYWNlKC9cXEQvZywgJycpO1xuXHRcdGlmIChibHVyKSB7XG5cdFx0XHRuID0gbi5yZXBsYWNlKC9eMCsvLCAnJyk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9kZWNpbWFsUGlwZS50cmFuc2Zvcm0obiwgJzEuMC0wJykgYXMgc3RyaW5nO1xuXHR9XG5cblx0cHJpdmF0ZSBfY29udmVydChpbnB1dDogc3RyaW5nKTogbnVtYmVyIHtcblx0XHRpZiAoIWlucHV0KSB7XG5cdFx0XHRyZXR1cm4gTmFOO1xuXHRcdH1cblx0XHRjb25zdCB2YWwgPSBpbnB1dFxuXHRcdFx0LnJlcGxhY2UodGhpcy5fZHMsICdkJylcblx0XHRcdC5yZXBsYWNlKC9bXjAtOWQtXS9nLCAnJylcblx0XHRcdC5yZXBsYWNlKCdkJywgJy4nKTtcblx0XHRyZXR1cm4gcGFyc2VGbG9hdCh2YWwpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXQgXzBUZXh0KCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgZGVjaW1hbFN0ciA9IHRoaXMuYmFzZVVuaXRPbmx5ID8gJycgOiBgJHt0aGlzLl9kc30wMGA7XG5cdFx0cmV0dXJuIHRoaXMuX3RyYWlsaW5nID8gYDAke2RlY2ltYWxTdHJ9ICR7dGhpcy5fc3ltYm9sfWAgOiBgJHt0aGlzLl9zeW1ib2x9MCR7ZGVjaW1hbFN0cn1gO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { CurrencyInputDirective } from './currency-input.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class CurrencyInputModule {
|
|
6
|
-
}
|
|
7
|
-
CurrencyInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CurrencyInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
CurrencyInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CurrencyInputModule, declarations: [CurrencyInputDirective], imports: [CommonModule], exports: [CurrencyInputDirective] });
|
|
9
|
-
CurrencyInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CurrencyInputModule, imports: [[CommonModule]] });
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CurrencyInputModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [CurrencyInputDirective],
|
|
14
|
-
imports: [CommonModule],
|
|
15
|
-
exports: [CurrencyInputDirective]
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
export { CurrencyInputDirective };
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU9wRSxNQUFNLE9BQU8sbUJBQW1COztpSEFBbkIsbUJBQW1CO2tIQUFuQixtQkFBbUIsaUJBSmhCLHNCQUFzQixhQUMzQixZQUFZLGFBQ1osc0JBQXNCO2tIQUVwQixtQkFBbUIsWUFIdEIsQ0FBQyxZQUFZLENBQUM7NEZBR1gsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNULFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzs7QUFHRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VycmVuY3lJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbQ3VycmVuY3lJbnB1dERpcmVjdGl2ZV0sXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuXHRleHBvcnRzOiBbQ3VycmVuY3lJbnB1dERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lJbnB1dE1vZHVsZSB7fVxuXG5leHBvcnQgeyBDdXJyZW5jeUlucHV0RGlyZWN0aXZlIH07XG4iXX0=
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { DecimalPipe } from '@angular/common';
|
|
2
|
-
import { Directive, forwardRef, HostBinding, HostListener, Input, Self } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { noop } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/* tslint:disable:no-empty */
|
|
7
|
-
export const noop_consumer = (_) => { };
|
|
8
|
-
/**
|
|
9
|
-
* This directive will enhance an input element to format the numbers entered to a decimal amount.
|
|
10
|
-
*/
|
|
11
|
-
export class DecimalInputDirective {
|
|
12
|
-
constructor(_el, _renderer) {
|
|
13
|
-
this._el = _el;
|
|
14
|
-
this._renderer = _renderer;
|
|
15
|
-
/**
|
|
16
|
-
* number of decimal places allowed
|
|
17
|
-
*/
|
|
18
|
-
this.buiDecimalInput = 2;
|
|
19
|
-
this.placeholder = '';
|
|
20
|
-
this.autocomplete = 'off';
|
|
21
|
-
this.type = 'number';
|
|
22
|
-
this.inputMode = 'decimal';
|
|
23
|
-
this.change = noop_consumer;
|
|
24
|
-
this.onTouch = noop;
|
|
25
|
-
}
|
|
26
|
-
ngOnChanges() {
|
|
27
|
-
this.buiDecimalInput = this.buiDecimalInput || 2;
|
|
28
|
-
this.onInput();
|
|
29
|
-
}
|
|
30
|
-
onInput() {
|
|
31
|
-
const value = this._el.nativeElement.value;
|
|
32
|
-
const decimalPart = value.split('.')[1];
|
|
33
|
-
if (decimalPart && decimalPart.length > this.buiDecimalInput) {
|
|
34
|
-
const indexOfPeriod = value.indexOf('.');
|
|
35
|
-
const newValue = value.substring(0, indexOfPeriod + this.buiDecimalInput + 1);
|
|
36
|
-
this._renderer.setProperty(this._el.nativeElement, 'value', newValue);
|
|
37
|
-
}
|
|
38
|
-
this.change(Number(this._el.nativeElement.value));
|
|
39
|
-
}
|
|
40
|
-
onKeypress(evt) {
|
|
41
|
-
const target = evt.target;
|
|
42
|
-
const value = target.value;
|
|
43
|
-
const isSpace = evt.key === ' ';
|
|
44
|
-
if (isSpace ||
|
|
45
|
-
(!['.', '-'].includes(evt.key) && isNaN(Number(evt.key))) ||
|
|
46
|
-
(evt.key === '.' && value.indexOf('.') > 0)) {
|
|
47
|
-
evt.preventDefault();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
onFocus() { }
|
|
51
|
-
onblur() {
|
|
52
|
-
this.onTouch();
|
|
53
|
-
this._resetDecimalPlaces();
|
|
54
|
-
}
|
|
55
|
-
writeValue(value) {
|
|
56
|
-
this._renderer.setProperty(this._el.nativeElement, 'value', value);
|
|
57
|
-
}
|
|
58
|
-
registerOnChange(fn) {
|
|
59
|
-
this.change = fn;
|
|
60
|
-
}
|
|
61
|
-
registerOnTouched(fn) {
|
|
62
|
-
this.onTouch = fn;
|
|
63
|
-
}
|
|
64
|
-
_resetDecimalPlaces() {
|
|
65
|
-
const value = this._el.nativeElement.value;
|
|
66
|
-
if (value === '' || value === null || value === undefined) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const splitValues = value.split('.');
|
|
70
|
-
let newValue = '';
|
|
71
|
-
if (splitValues[1] && splitValues[1].length > this.buiDecimalInput) {
|
|
72
|
-
newValue = value.substring(0, splitValues[0].length + 1 + this.buiDecimalInput);
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
this.buiDecimalInput = this.buiDecimalInput < 0 ? 0 : this.buiDecimalInput;
|
|
76
|
-
newValue = Number(value).toFixed(this.buiDecimalInput);
|
|
77
|
-
}
|
|
78
|
-
this._renderer.setProperty(this._el.nativeElement, 'value', newValue);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
DecimalInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DecimalInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
82
|
-
DecimalInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: DecimalInputDirective, selector: "input[buiDecimalInput]", inputs: { buiDecimalInput: "buiDecimalInput" }, host: { listeners: { "input": "onInput()", "keypress": "onKeypress($event)", "focus": "onFocus()", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [
|
|
83
|
-
DecimalPipe,
|
|
84
|
-
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
|
|
85
|
-
], usesOnChanges: true, ngImport: i0 });
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DecimalInputDirective, decorators: [{
|
|
87
|
-
type: Directive,
|
|
88
|
-
args: [{
|
|
89
|
-
selector: 'input[buiDecimalInput]',
|
|
90
|
-
providers: [
|
|
91
|
-
DecimalPipe,
|
|
92
|
-
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
|
|
93
|
-
]
|
|
94
|
-
}]
|
|
95
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
|
|
96
|
-
type: Self
|
|
97
|
-
}] }, { type: i0.Renderer2 }]; }, propDecorators: { buiDecimalInput: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], placeholder: [{
|
|
100
|
-
type: HostBinding,
|
|
101
|
-
args: ['placeholder']
|
|
102
|
-
}], autocomplete: [{
|
|
103
|
-
type: HostBinding,
|
|
104
|
-
args: ['autocomplete']
|
|
105
|
-
}], type: [{
|
|
106
|
-
type: HostBinding,
|
|
107
|
-
args: ['type']
|
|
108
|
-
}], inputMode: [{
|
|
109
|
-
type: HostBinding,
|
|
110
|
-
args: ['attr.inputmode']
|
|
111
|
-
}], onInput: [{
|
|
112
|
-
type: HostListener,
|
|
113
|
-
args: ['input']
|
|
114
|
-
}], onKeypress: [{
|
|
115
|
-
type: HostListener,
|
|
116
|
-
args: ['keypress', ['$event']]
|
|
117
|
-
}], onFocus: [{
|
|
118
|
-
type: HostListener,
|
|
119
|
-
args: ['focus']
|
|
120
|
-
}], onblur: [{
|
|
121
|
-
type: HostListener,
|
|
122
|
-
args: ['blur']
|
|
123
|
-
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9kZWNpbWFsLWlucHV0L2RlY2ltYWwtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQ04sU0FBUyxFQUVULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxJQUFJLEVBQ0osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQVFILE1BQU0sT0FBTyxxQkFBcUI7SUFzQmpDLFlBQTRCLEdBQWlDLEVBQVUsU0FBb0I7UUFBL0QsUUFBRyxHQUFILEdBQUcsQ0FBOEI7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBckIzRjs7V0FFRztRQUVILG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBR3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBR3pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLFNBQUksR0FBRyxRQUFRLENBQUM7UUFHaEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0QixXQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFFdUUsQ0FBQztJQUUvRixXQUFXO1FBQ1YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJ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Q0FBQyxRQUFRLENBQUM7Z0JBZ0JwQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFJckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdGZvcndhcmRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRIb3N0TGlzdGVuZXIsXG5cdElucHV0LFxuXHRPbkNoYW5nZXMsXG5cdFJlbmRlcmVyMixcblx0U2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdyeGpzJztcblxuLyogdHNsaW50OmRpc2FibGU6bm8tZW1wdHkgKi9cbmV4cG9ydCBjb25zdCBub29wX2NvbnN1bWVyID0gKF86IGFueSkgPT4ge307XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgd2lsbCBlbmhhbmNlIGFuIGlucHV0IGVsZW1lbnQgdG8gZm9ybWF0IHRoZSBudW1iZXJzIGVudGVyZWQgdG8gYSBkZWNpbWFsIGFtb3VudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnaW5wdXRbYnVpRGVjaW1hbElucHV0XScsXG5cdHByb3ZpZGVyczogW1xuXHRcdERlY2ltYWxQaXBlLFxuXHRcdHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERlY2ltYWxJbnB1dERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1cblx0XVxufSlcbmV4cG9ydCBjbGFzcyBEZWNpbWFsSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblx0LyoqXG5cdCAqIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBhbGxvd2VkXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRidWlEZWNpbWFsSW5wdXQ6IG51bWJlciA9IDI7XG5cblx0QEhvc3RCaW5kaW5nKCdwbGFjZWhvbGRlcicpXG5cdHByaXZhdGUgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG5cdEBIb3N0QmluZGluZygnYXV0b2NvbXBsZXRlJylcblx0cHJpdmF0ZSBhdXRvY29tcGxldGUgPSAnb2ZmJztcblxuXHRASG9zdEJpbmRpbmcoJ3R5cGUnKVxuXHRwcml2YXRlIHR5cGUgPSAnbnVtYmVyJztcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuaW5wdXRtb2RlJylcblx0cHJpdmF0ZSBpbnB1dE1vZGUgPSAnZGVjaW1hbCc7XG5cblx0cHJpdmF0ZSBjaGFuZ2UgPSBub29wX2NvbnN1bWVyO1xuXHRwcml2YXRlIG9uVG91Y2ggPSBub29wO1xuXG5cdGNvbnN0cnVjdG9yKEBTZWxmKCkgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cblx0bmdPbkNoYW5nZXMoKTogdm9pZCB7XG5cdFx0dGhpcy5idWlEZWNpbWFsSW5wdXQgPSB0aGlzLmJ1aURlY2ltYWxJbnB1dCB8fCAyO1xuXHRcdHRoaXMub25JbnB1dCgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignaW5wdXQnKVxuXHRvbklucHV0KCkge1xuXHRcdGNvbnN0IHZhbHVlID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcblx0XHRjb25zdCBkZWNpbWFsUGFydCA9IHZhbHVlLnNwbGl0KCcuJylbMV07XG5cblx0XHRpZiAoZGVjaW1hbFBhcnQgJiYgZGVjaW1hbFBhcnQubGVuZ3RoID4gdGhpcy5idWlEZWNpbWFsSW5wdXQpIHtcblx0XHRcdGNvbnN0IGluZGV4T2ZQZXJpb2QgPSB2YWx1ZS5pbmRleE9mKCcuJyk7XG5cdFx0XHRjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBpbmRleE9mUGVyaW9kICsgdGhpcy5idWlEZWNpbWFsSW5wdXQgKyAxKTtcblx0XHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG5ld1ZhbHVlKTtcblx0XHR9XG5cdFx0dGhpcy5jaGFuZ2UoTnVtYmVyKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQudmFsdWUpKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSlcblx0b25LZXlwcmVzcyhldnQ6IEtleWJvYXJkRXZlbnQpIHtcblx0XHRjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cdFx0Y29uc3QgdmFsdWUgPSB0YXJnZXQudmFsdWU7XG5cdFx0Y29uc3QgaXNTcGFjZSA9IGV2dC5rZXkgPT09ICcgJztcblxuXHRcdGlmIChcblx0XHRcdGlzU3BhY2UgfHxcblx0XHRcdCghWycuJywgJy0nXS5pbmNsdWRlcyhldnQua2V5KSAmJiBpc05hTihOdW1iZXIoZXZ0LmtleSkpKSB8fFxuXHRcdFx0KGV2dC5rZXkgPT09ICcuJyAmJiB2YWx1ZS5pbmRleE9mKCcuJykgPiAwKVxuXHRcdCkge1xuXHRcdFx0ZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuXHRvbkZvY3VzKCkge31cblxuXHRASG9zdExpc3RlbmVyKCdibHVyJylcblx0b25ibHVyKCkge1xuXHRcdHRoaXMub25Ub3VjaCgpO1xuXHRcdHRoaXMuX3Jlc2V0RGVjaW1hbFBsYWNlcygpO1xuXHR9XG5cblx0d3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG5cdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG5cdFx0dGhpcy5jaGFuZ2UgPSBmbjtcblx0fVxuXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2ggPSBmbjtcblx0fVxuXG5cdHByaXZhdGUgX3Jlc2V0RGVjaW1hbFBsYWNlcygpIHtcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cdFx0aWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IHNwbGl0VmFsdWVzID0gdmFsdWUuc3BsaXQoJy4nKTtcblx0XHRsZXQgbmV3VmFsdWUgPSAnJztcblx0XHRpZiAoc3BsaXRWYWx1ZXNbMV0gJiYgc3BsaXRWYWx1ZXNbMV0ubGVuZ3RoID4gdGhpcy5idWlEZWNpbWFsSW5wdXQpIHtcblx0XHRcdG5ld1ZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIHNwbGl0VmFsdWVzWzBdLmxlbmd0aCArIDEgKyB0aGlzLmJ1aURlY2ltYWxJbnB1dCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuYnVpRGVjaW1hbElucHV0ID0gdGhpcy5idWlEZWNpbWFsSW5wdXQgPCAwID8gMCA6IHRoaXMuYnVpRGVjaW1hbElucHV0O1xuXHRcdFx0bmV3VmFsdWUgPSBOdW1iZXIodmFsdWUpLnRvRml4ZWQodGhpcy5idWlEZWNpbWFsSW5wdXQpO1xuXHRcdH1cblx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBuZXdWYWx1ZSk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { DecimalInputDirective } from './decimal-input.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class DecimalInputModule {
|
|
6
|
-
}
|
|
7
|
-
DecimalInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DecimalInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
DecimalInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DecimalInputModule, declarations: [DecimalInputDirective], imports: [CommonModule], exports: [DecimalInputDirective] });
|
|
9
|
-
DecimalInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DecimalInputModule, imports: [[CommonModule]] });
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DecimalInputModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [DecimalInputDirective],
|
|
14
|
-
imports: [CommonModule],
|
|
15
|
-
exports: [DecimalInputDirective]
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
export { DecimalInputDirective };
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9kZWNpbWFsLWlucHV0L2RlY2ltYWwtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU9sRSxNQUFNLE9BQU8sa0JBQWtCOztnSEFBbEIsa0JBQWtCO2lIQUFsQixrQkFBa0IsaUJBSmYscUJBQXFCLGFBQzFCLFlBQVksYUFDWixxQkFBcUI7aUhBRW5CLGtCQUFrQixZQUhyQixDQUFDLFlBQVksQ0FBQzs0RkFHWCxrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2hDOztBQUVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWNpbWFsSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuL2RlY2ltYWwtaW5wdXQuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbRGVjaW1hbElucHV0RGlyZWN0aXZlXSxcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG5cdGV4cG9ydHM6IFtEZWNpbWFsSW5wdXREaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIERlY2ltYWxJbnB1dE1vZHVsZSB7fVxuZXhwb3J0IHsgRGVjaW1hbElucHV0RGlyZWN0aXZlIH07XG4iXX0=
|