UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

57 lines 7.38 kB
import { coerceAttrBoolean } from '@alauda/ui'; import { Directive, forwardRef, Input } from '@angular/core'; import { DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import * as i0 from "@angular/core"; export class CoerceNumberDirective extends DefaultValueAccessor { constructor() { super(...arguments); // eslint-disable-next-line @angular-eslint/no-input-rename this.aclCoerceNumberEnabled = true; } _handleInput(value) { if (!coerceAttrBoolean(this.aclCoerceNumberEnabled)) { this.onChange(value); return; } const coercedValue = Number(value); if (value == null || value === '' || isNaN(coercedValue)) { return this.onChange(value); } this.onChange(coercedValue); } static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCoerceNumberDirective_BaseFactory; return function CoerceNumberDirective_Factory(t) { returnCoerceNumberDirective_BaseFactory || (ɵCoerceNumberDirective_BaseFactory = i0.ɵɵgetInheritedFactory(CoerceNumberDirective)))(t || CoerceNumberDirective); }; })(); } static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CoerceNumberDirective, selectors: [["input", "formControlName", "", "aclCoerceNumber", ""], ["input", "ngModel", "", "aclCoerceNumber", ""], ["input", "formControl", "", "aclCoerceNumber", ""]], hostBindings: function CoerceNumberDirective_HostBindings(rf, ctx) { if (rf & 1) { i0.ɵɵlistener("input", function CoerceNumberDirective_input_HostBindingHandler($event) { return ctx._handleInput($event.target.value); })("blur", function CoerceNumberDirective_blur_HostBindingHandler() { return ctx.onTouched(); })("compositionstart", function CoerceNumberDirective_compositionstart_HostBindingHandler() { return ctx._compositionStart(); })("compositionend", function CoerceNumberDirective_compositionend_HostBindingHandler($event) { return ctx._compositionEnd($event.target.value); }); } }, inputs: { aclCoerceNumberEnabled: [0, "aclCoerceNumber", "aclCoerceNumberEnabled"] }, standalone: true, features: [i0.ɵɵProvidersFeature([ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CoerceNumberDirective), multi: true, }, ]), i0.ɵɵInheritDefinitionFeature] }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CoerceNumberDirective, [{ type: Directive, args: [{ selector: 'input[formControlName][aclCoerceNumber],input[ngModel][aclCoerceNumber],input[formControl][aclCoerceNumber]', // eslint-disable-next-line @angular-eslint/no-host-metadata-property host: { '(input)': '$any(this)._handleInput($event.target.value)', '(blur)': 'onTouched()', '(compositionstart)': '$any(this)._compositionStart()', '(compositionend)': '$any(this)._compositionEnd($event.target.value)', }, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CoerceNumberDirective), multi: true, }, ], standalone: true, }] }], null, { aclCoerceNumberEnabled: [{ type: Input, args: ['aclCoerceNumber'] }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNlLW51bWJlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZWZmZWN0LWRpcmVjdGl2ZS9jb2VyY2UtbnVtYmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQXFCekUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUFvQjtJQW5CL0Q7O1FBb0JFLDJEQUEyRDtRQUUzRCwyQkFBc0IsR0FBaUIsSUFBSSxDQUFDO0tBZ0I3QztJQWRDLFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDekQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlCLENBQUM7d1BBbEJVLHFCQUFxQixTQUFyQixxQkFBcUI7b0VBQXJCLHFCQUFxQjtZQUFyQixnR0FBQSxxQ0FBNEMsSUFBdkIsMkVBQXJCLGVBQVcsSUFBVSxtR0FBckIsdUJBQThCLElBQVQscUdBQXJCLHdDQUErQyxJQUExQjtzSkFUckI7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDcEQsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjs7aUZBR1UscUJBQXFCO2NBbkJqQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUNOLDZHQUE2RztnQkFDL0cscUVBQXFFO2dCQUNyRSxJQUFJLEVBQUU7b0JBQ0osU0FBUyxFQUFFLDhDQUE4QztvQkFDekQsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLG9CQUFvQixFQUFFLGdDQUFnQztvQkFDdEQsa0JBQWtCLEVBQUUsaURBQWlEO2lCQUN0RTtnQkFDRCxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7d0JBQ3BELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2dCQUNELFVBQVUsRUFBRSxJQUFJO2FBQ2pCO2dCQUlDLHNCQUFzQjtrQkFEckIsS0FBSzttQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VBdHRyQm9vbGVhbiB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVmYXVsdFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6XG4gICAgJ2lucHV0W2Zvcm1Db250cm9sTmFtZV1bYWNsQ29lcmNlTnVtYmVyXSxpbnB1dFtuZ01vZGVsXVthY2xDb2VyY2VOdW1iZXJdLGlucHV0W2Zvcm1Db250cm9sXVthY2xDb2VyY2VOdW1iZXJdJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gIGhvc3Q6IHtcbiAgICAnKGlucHV0KSc6ICckYW55KHRoaXMpLl9oYW5kbGVJbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXG4gICAgJyhibHVyKSc6ICdvblRvdWNoZWQoKScsXG4gICAgJyhjb21wb3NpdGlvbnN0YXJ0KSc6ICckYW55KHRoaXMpLl9jb21wb3NpdGlvblN0YXJ0KCknLFxuICAgICcoY29tcG9zaXRpb25lbmQpJzogJyRhbnkodGhpcykuX2NvbXBvc2l0aW9uRW5kKCRldmVudC50YXJnZXQudmFsdWUpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2VyY2VOdW1iZXJEaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29lcmNlTnVtYmVyRGlyZWN0aXZlIGV4dGVuZHMgRGVmYXVsdFZhbHVlQWNjZXNzb3Ige1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2FjbENvZXJjZU51bWJlcicpXG4gIGFjbENvZXJjZU51bWJlckVuYWJsZWQ6IGJvb2xlYW4gfCAnJyA9IHRydWU7XG5cbiAgX2hhbmRsZUlucHV0KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIWNvZXJjZUF0dHJCb29sZWFuKHRoaXMuYWNsQ29lcmNlTnVtYmVyRW5hYmxlZCkpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgfHwgaXNOYU4oY29lcmNlZFZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2UoY29lcmNlZFZhbHVlKTtcbiAgfVxufVxuIl19