{"version":3,"file":"ironsource-fusion-ui-components-error-message.mjs","sources":["../../../projects/fusion-ui/components/error-message/common/base/error-message.base.component.html","../../../projects/fusion-ui/components/error-message/v3/error-message.component.ts","../../../projects/fusion-ui/components/error-message/v3/error-message.directive.ts","../../../projects/fusion-ui/components/error-message/v3/error-message.module.ts","../../../projects/fusion-ui/components/error-message/ironsource-fusion-ui-components-error-message.ts"],"sourcesContent":["<div class=\"fusion-error\" *ngIf=\"showError\" [ngStyle]=\"styles\" [innerHTML]=\"errorMessage\"></div>\n","import {Component} from '@angular/core';\nimport {ErrorMessageBaseComponent} from '@ironsource/fusion-ui/components/error-message/common/base';\n\n@Component({\n    selector: 'fusion-error-message',\n    templateUrl: '../common/base/error-message.base.component.html',\n    styleUrls: ['./error-message.component.scss']\n})\nexport class ErrorMessageComponent extends ErrorMessageBaseComponent {}\n","import {\n    ChangeDetectorRef,\n    ComponentRef,\n    Directive,\n    ElementRef,\n    Host,\n    inject,\n    Input,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    Optional,\n    ViewContainerRef\n} from '@angular/core';\nimport {isString} from '@ironsource/fusion-ui/utils';\nimport {ERROR_MESSAGES, FormControlStatus} from '@ironsource/fusion-ui/components/error-message/common/entities';\nimport {ErrorMessageComponent} from './error-message.component';\nimport {AbstractControl, ControlContainer, FormGroupDirective} from '@angular/forms';\nimport {LogService} from '@ironsource/fusion-ui/services/log';\nimport {DropdownComponent} from '@ironsource/fusion-ui/components/dropdown/v3';\nimport {InputComponent} from '@ironsource/fusion-ui/components/input/v3';\n\n@Directive({\n    selector: '[fusionErrorMessage]'\n})\nexport class ErrorMessageDirective implements OnInit, OnDestroy, OnChanges {\n    @Input() showError: boolean;\n    @Input() fusionErrorMessage: string;\n    @Input() errorInnerMessage: string;\n    @Input() customMessages: {[key: string]: string};\n    @Input() customMapping: {[key: string]: string};\n    @Input() errorStyles = {};\n    private errorMessageComponent: ComponentRef<ErrorMessageComponent>;\n    private formControl: AbstractControl;\n    private isTooltipMessage: boolean;\n    private currentStatus: FormControlStatus;\n\n    constructor(\n        private elementRef: ElementRef,\n        private viewContainerRef: ViewContainerRef,\n        private changeDetectorRef: ChangeDetectorRef,\n        private fg: ControlContainer,\n        @Optional() @Host() private inputComponent: InputComponent,\n        @Optional() @Host() private dropdownComponent: DropdownComponent,\n        private loggerService: LogService\n    ) {}\n\n    get parentFormControl(): AbstractControl {\n        return this.fg.formDirective ? (this.fg.formDirective as FormGroupDirective).form : null;\n    }\n\n    ngOnInit() {\n        this.customMessages = this.customMessages || {};\n        this.customMapping = this.customMapping || {};\n        const showErrorInit = this.showError;\n        this.showError = this.showError === undefined || this.showError === null ? true : this.showError;\n\n        this.errorMessageComponent = this.viewContainerRef.createComponent(ErrorMessageComponent);\n        this.errorMessageComponent.instance.styles = this.errorStyles;\n        this.formControl = this.parentFormControl.get(this.elementRef.nativeElement.getAttribute('formcontrolname'));\n        this.isTooltipMessage = this.elementRef.nativeElement.getAttribute('errortype');\n        this.formControl.valueChanges.subscribe(() => {\n            this._checkErrors();\n        });\n\n        this.formControl.statusChanges.subscribe((status: FormControlStatus) => {\n            // handle async validations\n            if (status === FormControlStatus.Invalid && this.currentStatus === FormControlStatus.Pending) {\n                this._checkErrors(true);\n            }\n            this.currentStatus = status;\n        });\n\n        if (showErrorInit) {\n            this._checkErrors();\n        }\n    }\n\n    ngOnChanges() {\n        this.viewContainerRef.clear();\n        this._checkErrors();\n    }\n\n    ngOnDestroy() {\n        if (this.errorMessageComponent) {\n            this.errorMessageComponent.destroy();\n        }\n    }\n\n    private _setComponentError(error: any) {\n        if (this.inputComponent) {\n            this.inputComponent.error = error;\n            this.inputComponent.toggleErrorClass(!!error);\n        } else if (this.dropdownComponent) {\n            this.dropdownComponent.error = error;\n        }\n    }\n\n    private _checkErrors(async?: boolean) {\n        if (this.errorMessageComponent) {\n            let errorMessage = '';\n            this.errorMessageComponent.instance.showError = false;\n            this._setComponentError('');\n            const errors = this.formControl.errors || {};\n            const isFormControlInvalid = Object.keys(errors).some(errorKey => {\n                // if error value is string to that's the message will be shown\n                errorMessage = isString(errors[errorKey]) ? errors[errorKey] : this._getMessage(errorKey);\n                return true;\n            });\n\n            if (isFormControlInvalid && this.showError) {\n                if (this.isTooltipMessage) {\n                    this._setComponentError(errorMessage);\n                } else {\n                    this.errorMessageComponent.instance.errorMessage = errorMessage;\n                    this.errorMessageComponent.instance.showError = this.showError;\n                    if (this.inputComponent) {\n                        this.inputComponent.error = this.errorMessageComponent.instance.showError;\n                        this.inputComponent.toggleErrorClass(this.errorMessageComponent.instance.showError);\n                    }\n                }\n            }\n\n            if (async) {\n                this.changeDetectorRef.detectChanges();\n                this.errorMessageComponent.changeDetectorRef.detectChanges();\n            }\n        }\n    }\n\n    private _getMessage(errorKey) {\n        let errorMessage = '';\n        if (this.customMessages[errorKey]) {\n            errorMessage = this.customMessages[errorKey];\n        } else if (ERROR_MESSAGES[errorKey]) {\n            errorMessage = ERROR_MESSAGES[errorKey];\n            errorMessage = errorMessage.replace('{NAME}', this.fusionErrorMessage);\n            errorMessage = errorMessage.replace('{INNER-NAME}', this.errorInnerMessage || this.fusionErrorMessage);\n            Object.keys(this.customMapping).forEach(find => (errorMessage = errorMessage.replace(`{${find}}`, this.customMapping[find])));\n        } else {\n            this.loggerService.error(new Error(`Unknown validation message for error key: ${errorKey}`));\n        }\n\n        return errorMessage;\n    }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ErrorMessageComponent} from './error-message.component';\nimport {ErrorMessageDirective} from './error-message.directive';\nimport {ReactiveFormsModule} from '@angular/forms';\n\n@NgModule({\n    imports: [CommonModule, ReactiveFormsModule],\n    declarations: [ErrorMessageDirective, ErrorMessageComponent],\n    exports: [ErrorMessageDirective]\n})\nexport class ErrorMessageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;IAAA,EAAgG,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;AAApD,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,MAAA,CAAkB,CAAA,WAAA,EAAA,MAAA,CAAA,YAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;;ACQxD,MAAO,qBAAsB,SAAQ,yBAAyB,CAAA;AAAvD,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,kCAAA,CAAA,CAAA,OAAA,SAAA,6BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,kCAAA,KAAA,kCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,qBAAqB,SAArB,qBAAqB,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDRlC,EAAgG,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;YAArE,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;;;iFCQ7B,qBAAqB,EAAA,CAAA;cALjC,SAAS;2BACI,sBAAsB,EAAA,QAAA,EAAA,4GAAA,EAAA,MAAA,EAAA,CAAA,6hGAAA,CAAA,EAAA,CAAA;;kFAIvB,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCiBrB,qBAAqB,CAAA;AAY9B,IAAA,WAAA,CACY,UAAsB,EACtB,gBAAkC,EAClC,iBAAoC,EACpC,EAAoB,EACA,cAA8B,EAC9B,iBAAoC,EACxD,aAAyB,EAAA;QANzB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QACA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACxD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAY;QAb5B,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;KActB;AAEJ,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,GAAI,IAAI,CAAC,EAAE,CAAC,aAAoC,CAAC,IAAI,GAAG,IAAI,CAAC;KAC5F;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;AAC9C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;QAC1F,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7G,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;YACzC,IAAI,CAAC,YAAY,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAyB,KAAI;;AAEnE,YAAA,IAAI,MAAM,KAAK,iBAAiB,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,iBAAiB,CAAC,OAAO,EAAE;AAC1F,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;AAChC,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,YAAY,EAAE,CAAC;AACvB,SAAA;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;AACxC,SAAA;KACJ;AAEO,IAAA,kBAAkB,CAAC,KAAU,EAAA;QACjC,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,SAAA;aAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;AACxC,SAAA;KACJ;AAEO,IAAA,YAAY,CAAC,KAAe,EAAA;QAChC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;AACtD,YAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;AAC7C,YAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAG;;gBAE7D,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC1F,gBAAA,OAAO,IAAI,CAAC;AAChB,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;gBACxC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AACzC,iBAAA;AAAM,qBAAA;oBACH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;oBAChE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC/D,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,wBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC1E,wBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvF,qBAAA;AACJ,iBAAA;AACJ,aAAA;AAED,YAAA,IAAI,KAAK,EAAE;AACP,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvC,gBAAA,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AAChE,aAAA;AACJ,SAAA;KACJ;AAEO,IAAA,WAAW,CAAC,QAAQ,EAAA;QACxB,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AAC/B,YAAA,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAChD,SAAA;AAAM,aAAA,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;AACjC,YAAA,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YACxC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvE,YAAA,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvG,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,CAAI,CAAA,EAAA,IAAI,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjI,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAA6C,0CAAA,EAAA,QAAQ,CAAE,CAAA,CAAC,CAAC,CAAC;AAChG,SAAA;AAED,QAAA,OAAO,YAAY,CAAC;KACvB;sFAvHQ,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,IAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,cAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAArB,qBAAqB,EAAA,CAAA;cAHjC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,sBAAsB;AACnC,aAAA,CAAA;;sBAkBQ,QAAQ;;sBAAI,IAAI;;sBAChB,QAAQ;;sBAAI,IAAI;8CAjBZ,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;YACG,iBAAiB,EAAA,CAAA;kBAAzB,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YACG,WAAW,EAAA,CAAA;kBAAnB,KAAK;;;MCpBG,kBAAkB,CAAA;mFAAlB,kBAAkB,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAlB,kBAAkB,EAAA,CAAA,CAAA,EAAA;AAJjB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAIlC,kBAAkB,EAAA,CAAA;cAL9B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;AAC5C,gBAAA,YAAY,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;gBAC5D,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,aAAA,CAAA;;wFACY,kBAAkB,EAAA,EAAA,YAAA,EAAA,CAHZ,qBAAqB,EAAE,qBAAqB,aADjD,YAAY,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEjC,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACTnC;;AAEG;;;;"}