// Copyright (c) Laserfiche.
// Licensed under the MIT License. See LICENSE in the project root for license information.
import { Component } from '@angular/core';
import { BaseFieldDirective } from '../base-field/base-field.directive';
import { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';
import { FieldFormat, FieldType } from '@laserfiche/lf-ui-components/shared';
import { ValidationRule, ValidationUtils } from '@laserfiche/lf-ui-components/internal-shared';
import { of } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "../lf-field-token.service";
import * as i2 from "@laserfiche/lf-ui-components/internal-shared";
import * as i3 from "@angular/common";
import * as i4 from "@angular/forms";
import * as i5 from "@angular/material/form-field";
import * as i6 from "@angular/material/input";
import * as i7 from "ngx-mask";
import * as i8 from "../dynamic-field/dynamic-field.component";
export class NumberFieldComponent extends BaseFieldDirective {
    constructor(tokenService, ref, localizationService) {
        super(tokenService, ref, localizationService);
        this.tokenService = tokenService;
        this.ref = ref;
        this.localizationService = localizationService;
        this.NUMBER_FIELD_MUST_BE_VALID_NUMBER = this.localizationService.getStringLaserficheObservable('NUMBER_FIELD_MUST_BE_VALID_NUMBER');
        this.SHORT_FIELDS_MUST_BE_INTEGERS_BETWEEN_0_64999 = this.localizationService.getStringLaserficheObservable('SHORT_FIELDS_MUST_BE_INTEGERS_BETWEEN_0_64999');
        this.LONG_FIELDS_MUST_BE_INTEGERS_BETWEEN_0_3999999999 = this.localizationService.getStringLaserficheObservable('LONG_FIELDS_MUST_BE_INTEGERS_BETWEEN_0_3999999999');
    }
    ngAfterViewInit() {
        this.setMaskForNumber();
    }
    onFocusIn() {
        this.focusState = true;
        this.ref.detectChanges();
    }
    onFocusOut() {
        this.focusState = false;
        this.ref.detectChanges();
    }
    onEveryInputChange() {
        this.ref.detectChanges();
        super.onValueChanged(false);
    }
    fieldOnValueChanged() {
        const currentValue = this.lf_field_form_control.value;
        this.lf_field_form_control.setValue(currentValue ?? '');
    }
    getAdditionalValidatorsForFieldType() {
        const validators = [];
        validators.push(this.getNumericValidator());
        return validators;
    }
    getValidationTextForFieldType(rule) {
        switch (rule) {
            case ValidationRule.NUMERIC:
                return this.lf_field_info.constraintError ? of(this.lf_field_info.constraintError) : undefined;
            case ValidationRule.NUMBER:
                return this.NUMBER_FIELD_MUST_BE_VALID_NUMBER;
            case ValidationRule.SHORT_INT:
                return this.SHORT_FIELDS_MUST_BE_INTEGERS_BETWEEN_0_64999;
            case ValidationRule.LONG_INT:
                return this.LONG_FIELDS_MUST_BE_INTEGERS_BETWEEN_0_3999999999;
        }
        return undefined;
    }
    getNumericValidator() {
        const tokenRegexString = ''; // TODO: token stuff
        const decimalSeparator = '.';
        switch (this.lf_field_info.fieldType) {
            case FieldType.ShortInteger:
                const shortIntPattern = new RegExp(`^(|[0-9]{0,4}|[0-5][0-9]{4}|[6][0-4][0-9]{3}${tokenRegexString})$`, 'i');
                return ValidationUtils.generalRegexValidator(shortIntPattern, ValidationRule.SHORT_INT);
            case FieldType.LongInteger:
                const longIntPattern = new RegExp(`^(|[0-9]{0,9}|[0-3][0-9]{9}${tokenRegexString})$`, 'i');
                return ValidationUtils.generalRegexValidator(longIntPattern, ValidationRule.LONG_INT);
            default:
                const numberPattern = new RegExp(`^(|[-](\\d{0,12}(\\` + decimalSeparator + `\\d{0,5})?|\\d{13}(\\` +
                    decimalSeparator + `\\d{0,4})?)|[\\+]?\\d{0,13}(\\` + decimalSeparator + `\\d{0,5})?${tokenRegexString})$`, 'i');
                return ValidationUtils.generalRegexValidator(numberPattern, ValidationRule.NUMBER);
        }
    }
    numberOnly(event) {
        if (this.lf_field_info.fieldType === FieldType.ShortInteger || this.lf_field_info.fieldType === FieldType.LongInteger) {
            if (['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'].indexOf(event.key) === -1) {
                event.preventDefault();
            }
        }
    }
    serializeFieldFormControlValue() {
        const currentValue = this.getLfFieldFormControlValue();
        if (currentValue === '-') {
            this.setLfFieldFormControlValue('0');
            return '0';
        }
        if (this.lf_field_info.fieldType === FieldType.Number) {
            const parsedNumber = Number.parseFloat(currentValue);
            if (!isNaN(parsedNumber)) {
                return parsedNumber.toString();
            }
        }
        if (this.lf_field_info.fieldType === FieldType.ShortInteger || this.lf_field_info.fieldType === FieldType.LongInteger) {
            const parsedNumber = Number.parseInt(currentValue, 10);
            if (!isNaN(parsedNumber)) {
                return parsedNumber.toString();
            }
        }
        return currentValue;
    }
    deserializeLfFieldValue() {
        return this.lf_field_value ?? '';
    }
    getSeparator(separatorType) {
        const numberWithGroupAndDecimalSeparator = 11111.1;
        const numberString = numberWithGroupAndDecimalSeparator.toLocaleString(navigator.language);
        const separators = numberString.replace(/1/g, '');
        if (separatorType === 'group') {
            return separators.slice(0, 1);
        }
        else {
            return separators.slice(1, 2);
        }
    }
    setMaskForNumber() {
        if (this.lf_field_info.fieldType === FieldType.Number) {
            this.mask = 'separator.5';
            this.separatorLimit = '10000000000000'; // 10,000,000,000,000
            this.thousandSeparator = '';
            this.decimalMarker = this.getSeparator();
            if (this.lf_field_info.format === FieldFormat.Currency && this.lf_field_info.currency) {
                this.prefix = `${this.lf_field_info.currency} `;
                this.mask = 'separator.2';
                this.thousandSeparator = this.getSeparator('group');
            }
            if (this.lf_field_info.format === FieldFormat.Percent) {
                this.suffix = ' %';
            }
            this.ref.detectChanges();
        }
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberFieldComponent, deps: [{ token: i1.LfFieldTokenService }, { token: i0.ChangeDetectorRef }, { token: i2.AppLocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NumberFieldComponent, selector: "lf-number-field-component", providers: [
            { provide: BaseFieldDirective, useExisting: NumberFieldComponent },
            { provide: ErrorStateMatcher, useClass: ShowOnDirtyErrorStateMatcher }
        ], usesInheritance: true, ngImport: i0, template: "<!--Copyright (c) Laserfiche.\nLicensed under the MIT License. See LICENSE in the project root for license information.-->\n\n<span class=\"token-picker-field-box\" *ngIf=\"!isDynamic else dynamic\">\n  <mat-form-field *ngIf=\"!containsToken\" title=\"{{lf_field_info.displayName}}\" appearance=\"outline\" class=\"lf-field\">\n    <input #tokenTarget mask=\"{{mask}}\" thousandSeparator=\"{{thousandSeparator}}\" decimalMarker=\"{{decimalMarker}}\"\n      prefix=\"{{prefix}}\" suffix=\"{{suffix}}\" [allowNegativeNumbers]=\"true\" separatorLimit=\"{{separatorLimit}}\" matInput\n      type=\"text\" [formControl]=\"lf_field_form_control\" title=\"{{lf_field_form_control.value}}\"\n      (keypress)=\"numberOnly($event)\" (change)=\"onValueChanged()\" (focus)=\"onFocusIn()\" (focusout)=\"onFocusOut()\"\n      (input)=\"onEveryInputChange()\">\n    <mat-hint *ngIf=\"focusState && this.lf_field_info?.length\" align=\"end\">\n      {{(noTokenCharacterCountHint | async)}}\n    </mat-hint>\n    <mat-error *ngIf=\"getBrokenValidationRule()\">{{fieldValidationErrorMsg | async}}</mat-error>\n  </mat-form-field>\n</span>\n<ng-template #dynamic>\n  <lf-dynamic-field-component ngDefaultControl [options]=\"dynamic_field_value_options\"\n    [formControl]=\"lf_field_form_control\" [title]=\"lf_field_info.displayName\" [fieldValidationErrorMsg]=\"fieldValidationErrorMsg\"\n    [getBrokenValidationRule]=\"getBrokenValidationRule.bind(this)\" (valueChange)=\"onValueChanged()\">\n  </lf-dynamic-field-component>\n</ng-template>\n", styles: ["", ".lf-field,.lf-textarea{width:100%;min-width:50px}.mat-mdc-input-element{caret-color:#000}.token-picker-field-box{width:100%;display:flex;font-size:14px}.field-box{flex-grow:1;flex-shrink:1;display:inline-block;width:100%}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix,::ng-deep mat-form-field.lf-textarea>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix{padding:0;border:none}::ng-deep mat-form-field.lf-field.lf-date-field>.mat-mdc-form-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix{line-height:0}::ng-deep .lf-field .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__leading,::ng-deep .lf-field .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__notch,::ng-deep .lf-field .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__trailing,::ng-deep .lf-textarea .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__leading,::ng-deep .lf-textarea .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__notch,::ng-deep .lf-textarea .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__trailing{border-color:#ccc}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-focus-outline-color: black;&:hover{--mdc-outlined-text-field-outline-width: 2px}}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix>.mat-mdc-select>.mat-mdc-select-trigger>.mat-mdc-select-arrow-wrapper>.mat-mdc-select-arrow{color:#0000008a}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mdc-notched-outline{height:28px;color:#ccc}::ng-deep mat-form-field.lf-textarea>.mat-mdc-form-field-wrapper>.mat-mdc-form-field-flex>.mdc-notched-outline{color:#ccc}::ng-deep mat-form-field.lf-field>.mat-mdc-form-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick,::ng-deep mat-form-field.lf-textarea>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick{color:#000}::ng-deep mat-form-field.lf-field.ng-invalid>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick,::ng-deep mat-form-field.lf-textarea.ng-invalid>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick{color:red}::ng-deep mat-form-field.lf-field.ng-invalid.ng-pristine>.mat-mdc-form-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick,::ng-deep mat-form-field.lf-textarea.ng-invalid.ng-pristine>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick{color:#000}::ng-deep mat-form-field.lf-field .mat-mdc-form-field-subscript-wrapper,::ng-deep mat-form-field.lf-textarea .mat-mdc-form-field-subscript-wrapper{display:flex;flex-direction:column}::ng-deep lf-field-template-container-component .lf-template-picker>.mat-mdc-form-field-subscript-wrapper{height:0px}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper,::ng-deep mat-form-field.lf-textarea>.mat-mdc-text-field-wrapper{padding-bottom:0;padding-left:10px;padding-right:10px}::ng-deep mat-form-field.lf-date-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-icon-suffix{top:-.2em;position:unset}.lf-field-token-picker{flex-grow:0;flex-shrink:0;margin-left:1px;vertical-align:top}.mat-mdc-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}::ng-deep .mdc-floating-label.mat-mdc-floating-label{display:none}::ng-deep .lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex{height:28px}::ng-deep .lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix{height:inherit;min-height:0px}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix>.mat-mdc-select,::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix>.mat-mdc-select>.mat-mdc-select-trigger{height:inherit;font-size:14px}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix>.mat-mdc-input-element{height:inherit}::ng-deep .mdc-line-ripple{display:none}::ng-deep mat-form-field>.mat-mdc-form-field-subscript-wrapper>.mat-mdc-form-field-hint-wrapper,::ng-deep mat-form-field>.mat-mdc-form-field-subscript-wrapper>.mat-mdc-form-field-error-wrapper{position:unset;padding:0;min-height:1.25rem}::ng-deep .mat-mdc-form-field-hint-spacer{flex-basis:0!important}::ng-deep mat-hint{color:#0009}::ng-deep .mat-mdc-form-field-hint,::ng-deep .mat-mdc-form-field-error{padding:0 1rem;line-height:1rem;font-size:var(--mat-form-field-subscript-text-size)}::ng-deep mat-form-field>.mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align:before{height:unset;display:block}::ng-deep .lf-checklist-item .mat-form-field-invalid .mat-mdc-form-field-subscript-wrapper{padding-top:0!important}::ng-deep .lf-field .mdc-text-field{border-radius:0}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i7.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "component", type: i8.DynamicFieldComponent, selector: "lf-dynamic-field-component", inputs: ["options", "formControl", "title", "fieldValidationErrorMsg", "getBrokenValidationRule", "compareWith"], outputs: ["valueChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberFieldComponent, decorators: [{
            type: Component,
            args: [{ selector: 'lf-number-field-component', providers: [
                        { provide: BaseFieldDirective, useExisting: NumberFieldComponent },
                        { provide: ErrorStateMatcher, useClass: ShowOnDirtyErrorStateMatcher }
                    ], template: "<!--Copyright (c) Laserfiche.\nLicensed under the MIT License. See LICENSE in the project root for license information.-->\n\n<span class=\"token-picker-field-box\" *ngIf=\"!isDynamic else dynamic\">\n  <mat-form-field *ngIf=\"!containsToken\" title=\"{{lf_field_info.displayName}}\" appearance=\"outline\" class=\"lf-field\">\n    <input #tokenTarget mask=\"{{mask}}\" thousandSeparator=\"{{thousandSeparator}}\" decimalMarker=\"{{decimalMarker}}\"\n      prefix=\"{{prefix}}\" suffix=\"{{suffix}}\" [allowNegativeNumbers]=\"true\" separatorLimit=\"{{separatorLimit}}\" matInput\n      type=\"text\" [formControl]=\"lf_field_form_control\" title=\"{{lf_field_form_control.value}}\"\n      (keypress)=\"numberOnly($event)\" (change)=\"onValueChanged()\" (focus)=\"onFocusIn()\" (focusout)=\"onFocusOut()\"\n      (input)=\"onEveryInputChange()\">\n    <mat-hint *ngIf=\"focusState && this.lf_field_info?.length\" align=\"end\">\n      {{(noTokenCharacterCountHint | async)}}\n    </mat-hint>\n    <mat-error *ngIf=\"getBrokenValidationRule()\">{{fieldValidationErrorMsg | async}}</mat-error>\n  </mat-form-field>\n</span>\n<ng-template #dynamic>\n  <lf-dynamic-field-component ngDefaultControl [options]=\"dynamic_field_value_options\"\n    [formControl]=\"lf_field_form_control\" [title]=\"lf_field_info.displayName\" [fieldValidationErrorMsg]=\"fieldValidationErrorMsg\"\n    [getBrokenValidationRule]=\"getBrokenValidationRule.bind(this)\" (valueChange)=\"onValueChanged()\">\n  </lf-dynamic-field-component>\n</ng-template>\n", styles: [".lf-field,.lf-textarea{width:100%;min-width:50px}.mat-mdc-input-element{caret-color:#000}.token-picker-field-box{width:100%;display:flex;font-size:14px}.field-box{flex-grow:1;flex-shrink:1;display:inline-block;width:100%}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix,::ng-deep mat-form-field.lf-textarea>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix{padding:0;border:none}::ng-deep mat-form-field.lf-field.lf-date-field>.mat-mdc-form-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix{line-height:0}::ng-deep .lf-field .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__leading,::ng-deep .lf-field .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__notch,::ng-deep .lf-field .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__trailing,::ng-deep .lf-textarea .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__leading,::ng-deep .lf-textarea .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__notch,::ng-deep .lf-textarea .mdc-text-field--outlined:not(.mdc-text-field--focused) .mdc-notched-outline__trailing{border-color:#ccc}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-focus-outline-color: black;&:hover{--mdc-outlined-text-field-outline-width: 2px}}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix>.mat-mdc-select>.mat-mdc-select-trigger>.mat-mdc-select-arrow-wrapper>.mat-mdc-select-arrow{color:#0000008a}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mdc-notched-outline{height:28px;color:#ccc}::ng-deep mat-form-field.lf-textarea>.mat-mdc-form-field-wrapper>.mat-mdc-form-field-flex>.mdc-notched-outline{color:#ccc}::ng-deep mat-form-field.lf-field>.mat-mdc-form-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick,::ng-deep mat-form-field.lf-textarea>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick{color:#000}::ng-deep mat-form-field.lf-field.ng-invalid>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick,::ng-deep mat-form-field.lf-textarea.ng-invalid>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick{color:red}::ng-deep mat-form-field.lf-field.ng-invalid.ng-pristine>.mat-mdc-form-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick,::ng-deep mat-form-field.lf-textarea.ng-invalid.ng-pristine>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-form-field-outline-thick{color:#000}::ng-deep mat-form-field.lf-field .mat-mdc-form-field-subscript-wrapper,::ng-deep mat-form-field.lf-textarea .mat-mdc-form-field-subscript-wrapper{display:flex;flex-direction:column}::ng-deep lf-field-template-container-component .lf-template-picker>.mat-mdc-form-field-subscript-wrapper{height:0px}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper,::ng-deep mat-form-field.lf-textarea>.mat-mdc-text-field-wrapper{padding-bottom:0;padding-left:10px;padding-right:10px}::ng-deep mat-form-field.lf-date-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-icon-suffix{top:-.2em;position:unset}.lf-field-token-picker{flex-grow:0;flex-shrink:0;margin-left:1px;vertical-align:top}.mat-mdc-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}::ng-deep .mdc-floating-label.mat-mdc-floating-label{display:none}::ng-deep .lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex{height:28px}::ng-deep .lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix{height:inherit;min-height:0px}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix>.mat-mdc-select,::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix>.mat-mdc-select>.mat-mdc-select-trigger{height:inherit;font-size:14px}::ng-deep mat-form-field.lf-field>.mat-mdc-text-field-wrapper>.mat-mdc-form-field-flex>.mat-mdc-form-field-infix>.mat-mdc-input-element{height:inherit}::ng-deep .mdc-line-ripple{display:none}::ng-deep mat-form-field>.mat-mdc-form-field-subscript-wrapper>.mat-mdc-form-field-hint-wrapper,::ng-deep mat-form-field>.mat-mdc-form-field-subscript-wrapper>.mat-mdc-form-field-error-wrapper{position:unset;padding:0;min-height:1.25rem}::ng-deep .mat-mdc-form-field-hint-spacer{flex-basis:0!important}::ng-deep mat-hint{color:#0009}::ng-deep .mat-mdc-form-field-hint,::ng-deep .mat-mdc-form-field-error{padding:0 1rem;line-height:1rem;font-size:var(--mat-form-field-subscript-text-size)}::ng-deep mat-form-field>.mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align:before{height:unset;display:block}::ng-deep .lf-checklist-item .mat-form-field-invalid .mat-mdc-form-field-subscript-wrapper{padding-top:0!important}::ng-deep .lf-field .mdc-text-field{border-radius:0}\n"] }]
        }], ctorParameters: () => [{ type: i1.LfFieldTokenService }, { type: i0.ChangeDetectorRef }, { type: i2.AppLocalizationService }] });
//# sourceMappingURL=data:application/json;base64, 