/**
 * @since Thu Jul 12 2018
 * @author Charles Gouldmann - Klean
 */


import { Component, OnInit, OnChanges, Inject } from '@angular/core'

import { AppHelper } from '@k-settings/app-helper'
import { ConfiguratorService } from '../../services/svc.configurator'
import { ConfiguratorProductLoaderService } from '../../services/svc.configurator-product-reloader'


@Component({
    moduleId: module.id+ '',
    selector: 'configurator-modal',
    templateUrl: './template/t--modal.pug',
    styleUrls: ['sty.modal.scss']
})

export class ConfiguratorModalComponent {

    // ---- Variables ---- \\
    // Paths
    basketPath: string = '/' + AppHelper.basket

    // States
    active: boolean = false

    constructor(
        private _configurator: ConfiguratorService,
        private _dataCenter: ConfiguratorProductLoaderService
    ) {
        // Subscribe to modal observable changes
        this._configurator.modal$.subscribe((value) => {
            this.active = value
        })
    }


    // ---- Lifecycle hooks ---- \\


    // ---- Functions ---- \\

    /**
     * Set modal state to false and reset configuration
     */
    closeAndReset(force) {

        // forces a full reset if `save and close` is used
        if(force) {
            this._dataCenter.clearSelection()
        }

        this._configurator.setModal(false)
        this._configurator.setReset(true)
    }
}