{"version":3,"file":"ironsource-fusion-ui-components-table-v3-stories-custom-cell-edit.mjs","sources":["../../../projects/fusion-ui/components/table/v3/stories/custom-cell-edit/custom-cell-edit.component.html","../../../projects/fusion-ui/components/table/v3/stories/custom-cell-edit/custom-cell-edit.component.ts","../../../projects/fusion-ui/components/table/v3/stories/custom-cell-edit/ironsource-fusion-ui-components-table-v3-stories-custom-cell-edit.ts"],"sourcesContent":["<fusion-input-inline #inputInline\n                     class=\"fu-large fu-align-right\"\n                     [type]=\"inputType\"\n                     [formControl]=\"formControl\"\n                     [loading]=\"isInRequest$ | async\"\n                     [error]=\"inputError$ | async\"\n                     (onSave)=\"saveChanges($event)\"\n                     (onCancel)=\"cancelEdit()\"\n></fusion-input-inline>\n<div class=\"fu-value\" (click)=\"showEdit()\">\n    {{formControl.value ? (formControl.value | currency) : 'Unlimited'}}\n</div>\n<ng-container *ngIf=\"formControl.value && ((editMode$ | async)===false || (editMode$ | async)===null)\">\n    <div *ngIf=\"hasRemaining\" class=\"fu-remains\" [class.fu-no-remains]=\"remaining<=0\"><div class=\"fu-remains-value\">{{remaining | currency}}</div> remains</div>\n</ng-container>\n\n","import {AfterViewInit, ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewChild} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormControl, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {isNullOrUndefined, isNumber} from '@ironsource/fusion-ui/utils';\nimport {InlineInputType, InputInlineComponent} from '@ironsource/fusion-ui/components/input-inline/v3';\n\n@Component({\n    selector: 'fusion-custom-cell-edit',\n    standalone: true,\n    imports: [CommonModule, FormsModule, ReactiveFormsModule, InputInlineComponent],\n    templateUrl: './custom-cell-edit.component.html',\n    styleUrls: ['./custom-cell-edit.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CustomCellEditComponent implements AfterViewInit {\n    /** @internal */\n    @ViewChild('inputInline') inputInlineComponent: InputInlineComponent;\n    /** @internal */\n    inputType: InlineInputType = InlineInputType.Currency;\n    /** @internal */\n    formControl = new FormControl(null, [Validators.required, Validators.min(2)]);\n    /** @internal */\n    inputError$ = new BehaviorSubject('');\n    /** @internal */\n    isInRequest$ = new BehaviorSubject(false);\n    /** @internal */\n    editMode$ = new Observable();\n    /** @internal */\n    hasRemaining = false;\n\n    @Input()\n    /** @internal */\n    set data(value: number) {\n        if (!isNullOrUndefined(value)) {\n            this.initInputData = value;\n            this.formControl.setValue(value, {emitEvent: false});\n        }\n    }\n\n    /** @internal */\n    @Input() cellPosition?: {rowIndex: number; cellIndex: number};\n\n    private _remaining: number = 0;\n    /** @internal */\n    @Input() set remaining(remaining: number) {\n        this.hasRemaining = isNumber(remaining);\n        if (this.hasRemaining) {\n            this._remaining = remaining;\n        }\n    }\n\n    get remaining(): number {\n        return this._remaining;\n    }\n\n    @Output() dataChange = new EventEmitter();\n\n    @HostBinding('class.fu-show-edit') get showInput(): boolean {\n        return this._showInput;\n    }\n\n    private initInputData: number;\n    private errorMessages = {\n        required: 'Required!',\n        min: 'Minimum value: 2'\n    };\n    private keyChanged = 'customCell';\n    private _showInput = false;\n\n    ngAfterViewInit() {\n        this.editMode$ = this.inputInlineComponent.isEditMode$;\n    }\n\n    /** @internal */\n    showEdit() {\n        this._showInput = true;\n        this.inputInlineComponent.goToEditMode(this.initInputData);\n    }\n\n    saveChanges(valuesOptions: {currentValue: number; newValue: string}) {\n        if (this.formControl.valid) {\n            const newValue = Number.parseFloat(valuesOptions.newValue);\n            const prevValue = valuesOptions.currentValue;\n            const inlineInputComponent = this.inputInlineComponent;\n            if (newValue !== prevValue) {\n                this.isInRequest$.next(true);\n                this.dataChange.emit({\n                    newValue: newValue,\n                    prevValue: prevValue,\n                    cellPosition: this.cellPosition,\n                    keyChanged: this.keyChanged,\n                    /* Name for callback method in TableStoryHolderComponent */\n                    onRequestDone: (isSuccess: boolean, error: {message: string; status: number}, stayInEditMode = false) => {\n                        if (!isSuccess) {\n                            if (stayInEditMode) {\n                                inlineInputComponent.setEditMode$.next(newValue);\n                            } else {\n                                this.inputError$.next(error && error.message);\n                            }\n                            this.initInputData = prevValue;\n                        } else {\n                            this.inputError$.next('');\n                            this.formControl.setValue(newValue, {emitEvent: false});\n                        }\n                        this.isInRequest$.next(false);\n                        this._showInput = false;\n                    }\n                });\n            }\n        } else {\n            const allErrors = this.formControl.errors || {};\n            Object.keys(allErrors).forEach(errorKey => {\n                this.inputError$.next(this.errorMessages[errorKey] || 'Error occur.');\n            });\n        }\n    }\n\n    /** @internal */\n    cancelEdit(): void {\n        this.inputError$.next('');\n        this._showInput = false;\n        // Temp solution - need to fix inline input behavior\n        this.formControl.setValue(this.inputInlineComponent.inputControl.value, {emitEvent: false});\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}