{"version":3,"file":"ironsource-fusion-ui-components-input-inline-v4.mjs","sources":["../../../projects/fusion-ui/components/input-inline/v4/error-messages.config.ts","../../../projects/fusion-ui/components/input-inline/v4/input-inline-v4.component.html","../../../projects/fusion-ui/components/input-inline/v4/input-inline-v4.component.ts","../../../projects/fusion-ui/components/input-inline/v4/ironsource-fusion-ui-components-input-inline-v4.ts"],"sourcesContent":["export const INPUT_INLINE_ERROR_MESSAGES_MAP = {\n    required: 'Required',\n    min: 'Minimum is {min}',\n    max: 'Maximum is {max}',\n    minlength: 'Min length is {requiredLength} characters',\n    maxlength: 'Max length is {requiredLength} characters'\n};\n","@if (!(isEditMode$ | async)) {\n    <div class=\"fu-edit-value-wrapper\"\n         [class.fu-read-only]=\"readOnly || disabled\"\n         [class.fu-pending]=\"pending\"\n         [class.fu-number]=\"isNumber\"\n         [class.fu-dropdown]=\"isDropdown\"\n         (click)=\"goToEditMode()\"\n    >\n        @switch (type) {\n            @case (InlineInputType.Number) {\n                <span class=\"fu-edit-value\">{{ inputValue | number: pipeOptions }}</span>\n            }\n            @case (InlineInputType.Currency) {\n                <span class=\"fu-edit-value\">{{ inputValue | currency\n                    : currencyPipeParameters?.currencyCode || undefined\n                    : currencyPipeParameters?.display || (currencyPipeParameters ? undefined : '$')\n                    : currencyPipeParameters?.digitsInfo || undefined }}</span>\n            }\n            @case (InlineInputType.Percent) {\n                <span class=\"fu-edit-value\">{{ inputValue | number: pipeOptions }}%</span>\n            }\n            @case (InlineInputType.Dropdown) {\n                <span class=\"fu-edit-value truncate\">{{ dropdownSelectedText }} <fusion-icon class=\"fu-dropdown-icon\" [name]=\"dropdownIcon\"></fusion-icon></span>\n            }\n            @default{\n                <span class=\"fu-edit-value\">{{ inputValue }}</span>\n            }\n        }\n    </div>\n} @else {\n    <div class=\"fu-edit-input-wrapper\"  #inputWrapper [class.fu-dropdown]=\"isDropdown\">\n        @if (isDropdown){\n            <fusion-dropdown\n                    [options]=\"selectOptions\"\n                    [formControl]=\"inputControl\"\n            ></fusion-dropdown>\n        } @else {\n            <fusion-input #inputComponent\n                          [formControl]=\"inputControl\"\n                          [type]=\"inputType\"\n                          [inlineErrorText]=\"error\"\n                          [prefix]=\"inputPrefix\"\n                          [suffix]=\"inputSuffix\"\n                          [variant]=\"error ? 'error' : null\"\n                          [showApply]=\"!error && !disabled && !pending\"\n                          [disabled]=\"disabled\"\n                          [hideNumberArrows]=\"hideNumberArrows\"\n                          (applyButtonClicked)=\"save()\"\n                          (keydown.enter)=\"save()\"\n                          (keydown.escape)=\"cancel()\"\n            ></fusion-input>\n        }\n        @if (pending){\n            <fusion-loader\n                    [style.width]=\"'20px'\"\n                    [style.height]=\"'20px'\"\n                    strokeWidth=\"1\"\n            ></fusion-loader>\n        }\n    </div>\n}\n\n","import {ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {BehaviorSubject, fromEvent, Subject, Subscription} from 'rxjs';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {InlineInputType} from '@ironsource/fusion-ui/components/input-inline';\nimport {InputType} from '@ironsource/fusion-ui/components/input/v4';\nimport {CurrencyPipeParameters} from '@ironsource/fusion-ui/components/table';\nimport {InputComponent} from '@ironsource/fusion-ui/components/input/v4';\nimport {takeUntil} from 'rxjs/operators';\nimport {INPUT_INLINE_ERROR_MESSAGES_MAP} from './error-messages.config';\nimport {LoaderComponent} from '@ironsource/fusion-ui/components/loader/v4';\nimport {DropdownOption} from '@ironsource/fusion-ui/components/dropdown-option';\nimport {IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {DropdownComponent} from '@ironsource/fusion-ui/components/dropdown/v4';\nimport {SkeletonComponent} from '@ironsource/fusion-ui/components/skeleton';\n\n@Component({\n    selector: 'fusion-input-inline',\n    standalone: true,\n    host: {class: 'fusion-v4'},\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        InputComponent,\n        LoaderComponent,\n        IconModule,\n        DropdownComponent,\n        SkeletonComponent\n    ],\n    templateUrl: './input-inline-v4.component.html',\n    styleUrl: './input-inline-v4.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InputInlineV4Component implements OnInit, OnDestroy {\n    /** @internal */\n    @ViewChild('inputComponent') inputComponent: InputComponent;\n    /** @internal */\n    @ViewChild('inputWrapper') inputWrapper: ElementRef;\n\n    @Input() set type(value: InlineInputType) {\n        if (!isNullOrUndefined(value)) {\n            this._type = value;\n            if (value === InlineInputType.Text || value === InlineInputType.Dropdown) {\n                this._inputType = 'text';\n            } else {\n                this._inputType = 'number';\n            }\n        }\n    }\n\n    get type(): InlineInputType {\n        return this._type;\n    }\n\n    get inputType(): InputType {\n        return this._inputType;\n    }\n\n    get isNumber(): boolean {\n        return this._inputType === 'number';\n    }\n\n    get isDropdown(): boolean {\n        return this.type === InlineInputType.Dropdown;\n    }\n\n    get dropdownSelectedText(): string {\n        if (this.isDropdown && Array.isArray(this.inputControl?.value) && this.inputControl?.value.length > 0) {\n            return this.inputControl?.value[0]?.displayText;\n        }\n        return '';\n    }\n\n    @Input() readOnly: boolean = false;\n\n    @Input() set pending(value: boolean) {\n        if (value) {\n            this.inputControl.disable({emitEvent: false});\n            this._pending = true;\n        } else {\n            if (!this.disabled) {\n                this.inputControl.enable({emitEvent: false});\n            }\n            this._pending = false;\n        }\n    }\n\n    get pending(): boolean {\n        return this._pending;\n    }\n\n    @Input() currencyPipeParameters?: CurrencyPipeParameters;\n    @Input() pipeOptions?: string;\n\n    @Input() set data(value: FormControl) {\n        this.inputControl = value;\n        this.inputValue = this.inputControl.value;\n        this.disabled = this.inputControl.disabled;\n    }\n\n    get inputPrefix(): string {\n        if (this.type === InlineInputType.Currency) {\n            return this.currencyPipeParameters?.display || '$';\n        }\n        return null;\n    }\n    get inputSuffix(): string {\n        if (this.type === InlineInputType.Percent) {\n            return '%';\n        }\n        return null;\n    }\n\n    @Input() error: string;\n    @Input() set errorMapping(value: {[key: string]: string}) {\n        if (!isNullOrUndefined(value)) {\n            this._errorMapping = value;\n        }\n    }\n    @Input() hideNumberArrows = true;\n\n    @Input() selectOptions: DropdownOption[] = [];\n\n    // eslint-disable-next-line\n    @Output() onSave = new EventEmitter();\n    // eslint-disable-next-line\n    @Output() onCancel = new EventEmitter();\n\n    /** @internal */\n    isEditMode$ = new BehaviorSubject<boolean>(false);\n    /** @internal */\n    setEditMode$ = new Subject();\n    /** @internal */\n    inputControl = new FormControl();\n    /** @internal */\n    inputValue = '';\n    /** @internal */\n    disabled = false;\n    /** @internal */\n    dropdownIcon = 'ph/caret-down';\n\n    private _type: InlineInputType = InlineInputType.Text;\n    private _inputType: InputType = 'text';\n    private clickOutSideSubscription: Subscription;\n    private onDestroy$ = new Subject<void>();\n    private stayInEditMode = false;\n    private _pending = false;\n    private _errorMapping: {[key: string]: string} = INPUT_INLINE_ERROR_MESSAGES_MAP;\n\n    ngOnInit() {\n        this.setEditMode$.pipe(takeUntil(this.onDestroy$)).subscribe(this.setEditMode.bind(this));\n        this.isEditMode$.asObservable().pipe(takeUntil(this.onDestroy$)).subscribe(this.handleClickOutside.bind(this));\n        this.inputControl.statusChanges.pipe(takeUntil(this.onDestroy$)).subscribe(status => {\n            this.error = status === 'INVALID' ? this.getErrorMessage(this.inputControl.errors) : null;\n        });\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    /** @internal */\n    save() {\n        if (this.isEditMode$.getValue() && this.inputControl.valid) {\n            if (this.inputControl.value.toString() !== this.inputValue.toString()) {\n                this.onSave.emit({\n                    currentValue: this.inputValue,\n                    newValue: this.inputControl.value\n                });\n                this.isEditMode$.next(false);\n                this.inputValue = this.inputControl.value;\n            } else {\n                this.cancel();\n            }\n        }\n    }\n\n    /** @internal */\n    cancel() {\n        if (this.isEditMode$.getValue() && !this.pending) {\n            if (!this.stayInEditMode) {\n                if (this.isDropdown) {\n                    this.handleDropdownSelect();\n                } else {\n                    this.inputControl.setValue(this.inputValue, {emitEvent: false});\n                    this.isEditMode$.next(false);\n                    this.onCancel.emit();\n                }\n            } else {\n                this.stayInEditMode = false;\n            }\n        }\n    }\n\n    /** @internal */\n    goToEditMode(withValue?: string | number): void {\n        if (!this.disabled && !this.readOnly) {\n            this.inputControl.setValue(!isNullOrUndefined(withValue) ? withValue : this.inputValue, {emitEvent: false});\n            this.isEditMode$.next(true);\n        }\n    }\n\n    private getErrorMessage(inputError: {[key: string]: any}): string {\n        if (inputError) {\n            const errorKey = Object.keys(inputError)[0];\n            let errorMessage = `Error: ${errorKey}`;\n            if (this._errorMapping[errorKey]) {\n                errorMessage = this._errorMapping[errorKey];\n                Object.keys(inputError[errorKey]).forEach((find: string) => {\n                    errorMessage = errorMessage.replace(`{${find}}`, inputError[errorKey][find]);\n                });\n            }\n            return errorMessage;\n        }\n        return null;\n    }\n\n    private handleDropdownSelect() {\n        if (this.inputControl.value === this.inputValue) {\n            this.isEditMode$.next(false);\n        } else {\n            this.onSave.emit({\n                currentValue: this.inputValue,\n                newValue: this.inputControl.value\n            });\n            this.isEditMode$.next(false);\n            this.inputValue = this.inputControl.value;\n        }\n    }\n\n    private setEditMode(val: string | number) {\n        if (!!val) {\n            this.goToEditMode(val);\n            this.stayInEditMode = true;\n        }\n    }\n\n    private setFocusToInput() {\n        setTimeout(() => {\n            if (this.type === InlineInputType.Dropdown) {\n                const dropdownTrigger = this.inputWrapper.nativeElement.querySelector('fusion-dropdown-select');\n                if (!!dropdownTrigger) {\n                    dropdownTrigger.click();\n                }\n            } else {\n                this.inputComponent.setFocus();\n            }\n        }, 0);\n    }\n\n    private handleClickOutside(value: boolean) {\n        if (value) {\n            this.setFocusToInput();\n            this.clickOutSideSubscription = fromEvent(document, 'click').subscribe((event: MouseEvent) => {\n                const clickedInside = this.isClickInside(event);\n                if (!clickedInside && !this.stayInEditMode) {\n                    this.cancel();\n                }\n            });\n        } else {\n            this.clickOutSideSubscription?.unsubscribe();\n        }\n    }\n\n    private isClickInside(event: MouseEvent): boolean {\n        if (event.clientX === 0 && event.clientY === 0) {\n            return !!(event.target as HTMLElement).closest('fusion-input-inline');\n        }\n        const parentRect = this.inputWrapper.nativeElement.getBoundingClientRect();\n        return (\n            parentRect.left <= event.clientX &&\n            parentRect.right >= event.clientX &&\n            parentRect.top <= event.clientY &&\n            parentRect.bottom >= event.clientY\n        );\n    }\n\n    protected readonly InlineInputType = InlineInputType;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}