{"version":3,"file":"../../../javascript/pages/select-project.js","names":["$","window","$selected","$button","$clients","$projects","$sections","skus","updateList","action","id","select","callback","$select","$field","closest","empty","addClass","ajax","url","dataType","then","response","list","payload","appendTo","valid","Object","keys","length","removeClass","on","e","el","target","name","value","attr","project","localStorage","getItem","find","val","trigger","split","preventDefault","client","section","setItem","data","project_product_skus","project_section","post","redirect","location","$link","toString","field","label","replace","html","magnificPopup","open","closeMarkup","svg","render","items","src"],"sources":["pages/select-project.js"],"mappings":"CAAC,SAAUA,EAAGC,GACV,MAAMC,EAAYF,EAAE,oBACdG,EAAUH,EAAE,8BACZI,EAAWJ,EAAE,YACbK,EAAYL,EAAE,aACdM,EAAYN,EAAE,aAEpB,IAAIO,EAAO,KAEX,SAASC,EAAWC,EAAQC,EAAIC,EAAQC,GACpC,MAAMC,EAAUb,EAAE,IAAMW,GAClBG,EAASD,EAAQE,QAAQ,UAC/BF,EAAQG,QACRF,EAAOG,SAAS,mBAEJjB,EAAEkB,KAAK,CACfC,IAAO,8BAA8BV,KAAUC,IAC/CU,SAAU,SACXC,KAAMC,IACL,MAAMC,EAAOD,EAASE,QAAQD,KAC9B,IAAKb,KAAMa,EACPvB,EAAE,kBAAkBU,MAAOa,EAAKb,eAAgBe,SAASZ,GAG7D,MAAMa,EAAQC,OAAOC,KAAKL,GAAMM,OAAS,EAErCH,GACAZ,EAAOgB,YAAY,mBAGnBlB,GACAA,EAASc,IAGrB,CAEA1B,EAAE,oCAAoC+B,GAAG,SAAWC,IAChD,MAAMC,EAAKD,EAAEE,OAEb,GAAe,UAAXD,EAAGE,KAAkB,CACVF,EAAGG,MAGV5B,EAAW,gBAAiByB,EAAGG,MAAO,WAAaV,IAC3CA,EACAvB,EAAQkC,KAAK,WAAY,MAEzBlC,EAAQkC,KAAK,YAAY,GAG7B,MAAMC,EAAUC,aAAaC,QAAQ,WACrC,GAAgB,OAAZF,EAAkB,CACFjC,EAAUoC,KAAK,iBAAmBH,EAAU,MAEhDT,OAAS,IACjBxB,EAAUqC,IAAIJ,GACdjC,EAAUsC,QAAQ,UAE1B,CAEArC,EAAUU,WAGdX,EAAUW,QACVV,EAAUU,QACVb,EAAQkC,KAAK,YAAY,GAEjC,CAEA,GAAe,WAAXJ,EAAGE,KAAmB,CAGtB3B,EAAW,gBAFAyB,EAAGG,MAAMQ,MAAM,KAAK,GAEC,WACpC,IAGJ5C,EAAE,8BAA8B+B,GAAG,QAAUC,IACzCA,EAAEa,iBAEF7C,EAAE,qBAAqBiB,SAAS,qBAEhC,IAAI6B,EAAU1C,EAASsC,MACnBJ,EAAUjC,EAAUqC,MACpBK,EAAUzC,EAAUoC,MAExBH,aAAaS,QAAQ,SAAUF,GAC/BP,aAAaS,QAAQ,UAAWV,GAEhC,IAAIW,EAAO,CACPC,qBAAsB3C,EACtB4C,gBAAiBJ,GAGrB/C,EAAEoD,KACE,0BAA0Bd,aAC1BW,GACF5B,KAAK,SAASC,GACRA,GAAYA,EAASE,SAAWF,EAASE,QAAQ6B,WACjDpD,EAAOqD,SAAWhC,EAASE,QAAQ6B,SAE3C,KAGJrD,EAAE,sBAAsB+B,GAAG,QAAUC,IACjCA,EAAEa,iBAEF,MAAMU,EAAQvD,EAAEgC,EAAEE,QAQlB,GALI3B,OA7GX,IA4GWgD,EAAMN,KAAK,OACJ,CAACM,EAAMN,KAAK,QAEZ/C,EAAU+C,KAAK,YAAYO,WAAWZ,MAAM,KAGnDzC,EAAQ0B,OAAS,EAAG,CACpB,MAAM4B,EAAuB,GAAflD,EAAKsB,OAAc,SAAW,SACtC6B,EAAQvD,EAAQ8C,KAAKQ,GAAOE,QAAQ,KAAMpD,EAAKsB,QACrD1B,EAAQsC,KAAK,MAAMmB,KAAKF,EAC5B,CAEA,MAAMZ,EAASP,aAAaC,QAAQ,UACrB,OAAXM,GACA1C,EAASsC,IAAII,GAGjB1C,EAASuC,QAAQ,UAEjB3C,EAAE6D,cAAcC,KAAK,CACjBC,YAAa,8EAAgFC,IAAIC,OAAO,SAAW,YACnHC,MAAO,CACHC,IAAK,gCAIpB,CAtIA,CAsIEnE,EAAGC","ignoreList":[],"sourceRoot":"../../../../../resources/javascript","sourcesContent":[";(function($, window, undefined) {\n    const $selected = $('.js-bar-selected');\n    const $button = $('.js-select-project__submit');\n    const $clients = $('#clients');\n    const $projects = $('#projects');\n    const $sections = $('#sections');\n\n    let skus = null;\n\n    function updateList(action, id, select, callback) {\n        const $select = $('#' + select);\n        const $field = $select.closest('.field');\n        $select.empty();\n        $field.addClass('field--disabled');\n\n        let $ajax = $.ajax({\n            url  : `/project-specification-get/${action}/${id}`,\n            dataType: 'json',\n        }).then((response) => {\n            const list = response.payload.list;\n            for (id in list) {\n                $(`<option value=\"${id}\">${list[id]}</option>`).appendTo($select);\n            }\n\n            const valid = Object.keys(list).length > 0;\n\n            if (valid) {\n                $field.removeClass('field--disabled');\n            }\n\n            if (callback) {\n                callback(valid);\n            }\n        });\n    }\n\n    $('.js-select-project__popup select').on('change', (e) => {\n        const el = e.target;\n\n        if (el.name == 'client') {\n            const id = el.value;\n\n            if (id) {\n                updateList('projects-list', el.value, 'projects', (valid) => {\n                    if (valid) {\n                        $button.attr('disabled', null);\n                    } else {\n                        $button.attr('disabled', true);\n                    }\n\n                    const project = localStorage.getItem('project');\n                    if (project !== null) {\n                        const $option = $projects.find('option[value=\"' + project + '\"]');\n\n                        if ($option.length > 0) {\n                            $projects.val(project);\n                            $projects.trigger('change');\n                        }\n                    }\n\n                    $sections.empty();\n                });\n            } else {\n                $projects.empty();\n                $sections.empty();\n                $button.attr('disabled', true);\n            }\n        }\n\n        if (el.name == 'project') {\n            const id = el.value.split('/')[0];\n\n            updateList('sections-list', id, 'sections');\n        }\n    });\n\n    $('.js-select-project__submit').on('click', (e) => {\n        e.preventDefault();\n\n        $('js-select-project').addClass('modal-popup__busy');\n\n        let client  = $clients.val();\n        let project = $projects.val();\n        let section = $sections.val();\n\n        localStorage.setItem('client', client);\n        localStorage.setItem('project', project);\n\n        let data = {\n            project_product_skus: skus,\n            project_section: section,\n        };\n\n        $.post(\n            `/project-specification/${project}/bulk-add`,\n            data\n        ).then(function(response) {\n            if (response && response.payload && response.payload.redirect) {\n                window.location = response.payload.redirect;\n            }\n        });\n    });\n\n    $('.js-select-project').on('click', (e) => {\n        e.preventDefault();\n\n        const $link = $(e.target);\n\n        if ($link.data('sku') !== undefined) {\n            skus = [$link.data('sku')];\n        } else {\n            skus = $selected.data('selected').toString().split(',');\n        }\n\n        if ($button.length > 0) {\n            const field = skus.length == 1 ? 'single' : 'plural';\n            const label = $button.data(field).replace(/\\d/, skus.length);\n            $button.find('em').html(label);\n        }\n\n        const client = localStorage.getItem('client');\n        if (client !== null) {\n            $clients.val(client);\n        }\n\n        $clients.trigger('change');\n\n        $.magnificPopup.open({\n            closeMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\" aria-label=\"Close\">' + svg.render('close') + '</button>',\n            items: {\n                src: '.js-select-project__popup',\n            },\n        });\n    });\n})($, window);\n"]}