{"version":3,"file":"ironsource-fusion-ui-components-radio-group-common-base.mjs","sources":["../../../projects/fusion-ui/components/radio-group/common/base/radio-group.base.component.ts","../../../projects/fusion-ui/components/radio-group/common/base/ironsource-fusion-ui-components-radio-group-common-base.ts"],"sourcesContent":["import {EventEmitter, Input, OnInit, Output, ChangeDetectorRef, Directive} from '@angular/core';\nimport {ControlValueAccessor} from '@angular/forms';\nimport {LogService} from '@ironsource/fusion-ui/services/log';\nimport {UniqueIdService} from '@ironsource/fusion-ui/services/unique-id';\nimport {RadioGroupOptions} from '@ironsource/fusion-ui/components/radio-group/common/entities';\n\n@Directive()\nexport abstract class RadioGroupBaseComponent implements OnInit, ControlValueAccessor {\n    /**\n     * radio buttons group name\n     */\n    @Input() name: string;\n    /**\n     * radiobutton inline direction\n     */\n    @Input() inline: boolean;\n    /**\n     * disabled (all group)\n     */\n    @Input() isDisabled: boolean;\n    /**\n     * radiobutton option: interface RadioGroupOptions {\n     *     id: string | number;\n     *     label: string;\n     *     icon?: IconData;\n     *     tooltip?: string;\n     *     disabled?: boolean;\n     * }\n     */\n    @Input() options: RadioGroupOptions[]; // options\n    /** @internal */\n    @Input() selected: any; // selected option\n    /** @internal */\n    @Output() selectedChange = new EventEmitter();\n    /** @internal */\n    id: string; // radio buttons group id\n\n    constructor(private uniqueIdService: UniqueIdService, protected logService: LogService, private cdr: ChangeDetectorRef) {}\n\n    ngOnInit() {\n        const grUniq = this.uniqueIdService.getUniqueId();\n        this.name = 'is-rbgroup-' + (this.name || grUniq);\n        this.id = 'is-rbgroup-' + grUniq;\n        this.inline = this.inline || false;\n\n        // check and prepere options for render\n        this.options = this.options || [];\n        // in case selected not arrived with options\n        if (!this.selected) {\n            this.selected = this.options.length !== 0 ? this.options[0] : null;\n            this.setSelected(this.selected);\n        } else {\n            // check that selected in options\n            const selFound = this.options.find(item => {\n                return item.id === this.selected.id;\n            });\n            if (!selFound) {\n                // set err message\n                this.logService.error(new Error('Selected option not part of options'));\n            }\n        }\n    }\n\n    /** @internal */\n    isSelected(option) {\n        return option === this.selected || (option && this.selected && option.id === this.selected.id);\n    }\n    /** @internal */\n    setSelected(selectedValue: any) {\n        this.selected = this.options.find(item => item.id === selectedValue);\n        this.selectedChange.emit(this.selected);\n        this.propagateChange(this.selected);\n    }\n\n    /**\n     * Method to call when value has changes.\n     * @internal\n     */\n    propagateChange = (_: any) => {};\n\n    /**\n     * Method to call when the component is touched (when it was is clicked).\n     * @internal\n     */\n    propagateTouched = () => {};\n\n    /**\n     * update value from model to the component\n     * @internal\n     */\n    writeValue(value: string): void {\n        this.selected = value;\n        this.cdr.markForCheck();\n    }\n\n    /**\n     * Informs the outside world about changes.\n     * see method propagateChange call - this.propagateChange(this.model);\n     * @internal\n     */\n    registerOnChange(fn: any): void {\n        this.propagateChange = fn;\n    }\n\n    /**\n     * on click\n     * @internal\n     */\n    registerOnTouched(fn: any): void {\n        this.propagateTouched = fn;\n    }\n\n    /**\n     * on set form controll enabled / disabled\n     * also do UI Component enabled / disabled\n     * @internal\n     */\n    setDisabledState?(isDisabled: boolean): void {\n        this.isDisabled = isDisabled;\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}