// Angular Core
import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';
import { FormGroup, ControlContainer } from '@angular/forms';

// Components
import { StoreInfoComponent } from '../store-info.component';

import { GetStates } from 'src/app/interfaces/user/get-states';
import { OwnerPositions } from 'src/app/interfaces/user/owner-positions';

@Component({
  standalone: false,
  selector: 'app-contact-info-tab',
  templateUrl: './contact-info-tab.component.html',
  styleUrls: ['./contact-info-tab.component.scss']
})
export class ContactInfoTabComponent implements OnInit {

    emailErrorMessage: string = 'Please enter a valid email.';
    @Input() isContactCollapsed: boolean = false;
    @Output() isContactCollapsedChange = new EventEmitter<boolean>();

    @Input() userStoreInfoForm: any = FormGroup;
    @Input() phnValidationMsg: string = '';
    @Input() emailValidationMsg: string = '';
    @Input() generalValidationMsg: string = '';
    @Input() states!: GetStates['data'];
    @Input() ownerPositions!: OwnerPositions['data'];

    @Output() update_user_data = new EventEmitter<string>();
    updateUserData(userEleName: string) {
        this.update_user_data.emit(userEleName);
    }

    @Output() clear_primary_buyer_section = new EventEmitter();
    clearPrimaryBuyerSection() {
        this.clear_primary_buyer_section.emit();
    }

    @Output() buyer_same_as_primary_business = new EventEmitter<boolean>();
    buyerSameAsPrimaryBusiness(sameAsPBC: boolean) {
        this.buyer_same_as_primary_business.emit(sameAsPBC);
    }

    constructor(private controlContainer: ControlContainer, public storeInfo: StoreInfoComponent) { }

    ngOnInit(): void {
        this.userStoreInfoForm = <FormGroup>this.controlContainer.control;
    }

    get userStoreInfoFormData() { return this.userStoreInfoForm.controls; }


    collapseTab() {
        this.isContactCollapsedChange.emit(!this.isContactCollapsed);
    }

}
