{"version":3,"sources":["../../pages/projects.js"],"names":["doc","ROOT","ProjectManager","filters","projectsGrid","selected","processing","filterList","app","$","cssClasses","querySelectorAll","projects","addEventListeners","forEach","filter","addEventListener","filterProjects","e","target","type","parseInt","getAttribute","classList","add","fetch","body","propertyTypeId","then","rsp","success","innerHTML","obj","f","remove","console","log","msg","preventDefault","pm","document"],"mappings":"wsBAAC;AACD;;;;AAIC,WAAUA,GAAV,EAAgB;AACb;;AAEA,QAAMC,OAAO,UAAb,CAHa;;AAKPC,kBALO;AAMe;AACpB,uBAAO;AACHD,8BADG;AAEHE,6BAAYF,IAAZ,iBAFG;AAGHG,kCAAiBH,IAAjB,UAHG;AAIHI,8BAAU,aAJP,EAAP;;AAMH,aAbQ;;AAeT,kCAAc;AACV,iBAAKC,UAAL,GAAkB,KAAlB;AACA,iBAAKC,UAAL,GAAkBC,IAAIC,CAAJ,OAAWP,eAAeQ,UAAf,CAA0BP,OAArC,CAAlB;AACA,iBAAKA,OAAL,GAAe,KAAKI,UAAL,CAAgBI,gBAAhB,CAAkC,QAAlC,CAAf;AACA,iBAAKC,QAAL,GAAgBJ,IAAIC,CAAJ,OAAWP,eAAeQ,UAAf,CAA0BN,YAArC,CAAhB;AACA,iBAAKS,iBAAL;AACH,SArBQ;;AAuBW;AAChBL,oBAAIC,CAAJ,CAAMK,OAAN,CAAe,KAAKX,OAApB,EAA6B,kBAAU;AACnCY,2BAAOC,gBAAP,CAAyB,OAAzB,EAAkC,qBAAK,MAAKC,cAAL,CAAqBC,CAArB,CAAL,EAAlC;AACH,iBAFD;AAGH,aA3BQ;;AA6BOA,aA7BP,EA6BW;AAChB,oBAAK,KAAKZ,UAAV,EAAuB;AACnB;AACH;AACD,qBAAKA,UAAL,GAAkB,IAAlB;;AAEA,oBAAMS,SAASG,EAAEC,MAAjB;AACA,oBAAMC,OAAOC,SAAUN,OAAOO,YAAP,CAAqB,gBAArB,CAAV,EAAmD,EAAnD,CAAb;AACAP,uBAAOQ,SAAP,CAAiBC,GAAjB,CAAsB,YAAtB;;AAEAhB,oBAAIC,CAAJ,CAAMgB,KAAN,CAAa,0BAAb,EAAyC;AACrCC,0BAAM;AACFC,wCAAgBP,IADd,EAD+B,EAAzC;;AAIIQ,oBAJJ,CAIU,eAAO;AACb,wBAAKC,IAAIC,OAAT,EAAmB;AACf,+BAAKlB,QAAL,CAAcmB,SAAd,GAA0BF,IAAIG,GAA9B;;AAEAxB,4BAAIC,CAAJ,CAAMK,OAAN,CAAe,OAAKX,OAApB,EAA6B,aAAK;AAC9B8B,8BAAEV,SAAF,CAAYW,MAAZ,CAAoBhC,eAAeQ,UAAf,CAA0BL,QAA9C;AACH,yBAFD;;AAIAU,+BAAOQ,SAAP,CAAiBC,GAAjB,CAAsBtB,eAAeQ,UAAf,CAA0BL,QAAhD;AACH,qBARD,MAQO;AACH8B,gCAAQC,GAAR,CAAa,SAAb,EAAwBP,IAAIQ,GAA5B;AACH;AACD,2BAAK/B,UAAL,GAAkB,KAAlB;AACAS,2BAAOQ,SAAP,CAAiBW,MAAjB,CAAyB,YAAzB;AACH,iBAlBD;;AAoBAhB,kBAAEoB,cAAF;AACH,aA5DQ;;;AA+Db,QAAIC,KAAK,IAAIrC,cAAJ,EAAT;;AAEH,CAjEA,EAiEEsC,QAjEF,CAAD","file":"projects.js","sourcesContent":["///\r\n/**\r\n * Copyright 2016 Select Interactive, LLC. All rights reserved.\r\n * @author: The Select Interactive dev team (www.select-interactive.com) \r\n */\r\n(function( doc ) {\r\n 'use strict';\r\n\r\n const ROOT = 'projects';\r\n \r\n class ProjectManager {\r\n static get cssClasses() {\r\n return {\r\n ROOT,\r\n filters: `${ROOT}-grid-filter`,\r\n projectsGrid: `${ROOT}-grid`,\r\n selected: 'is-selected'\r\n };\r\n }\r\n\r\n constructor() {\r\n this.processing = false;\r\n this.filterList = app.$( `.${ProjectManager.cssClasses.filters}` );\r\n this.filters = this.filterList.querySelectorAll( 'button' );\r\n this.projects = app.$( `.${ProjectManager.cssClasses.projectsGrid}` );\r\n this.addEventListeners();\r\n }\r\n\r\n addEventListeners() {\r\n app.$.forEach( this.filters, filter => {\r\n filter.addEventListener( 'click', e => this.filterProjects( e ) );\r\n } );\r\n }\r\n\r\n filterProjects( e ) {\r\n if ( this.processing ) {\r\n return;\r\n }\r\n this.processing = true;\r\n\r\n const filter = e.target;\r\n const type = parseInt( filter.getAttribute( 'data-id-target' ), 10 );\r\n filter.classList.add( 'is-loading' );\r\n\r\n app.$.fetch( '/api/projectsGetHTMLGrid', {\r\n body: {\r\n propertyTypeId: type\r\n }\r\n } ).then( rsp => {\r\n if ( rsp.success ) {\r\n this.projects.innerHTML = rsp.obj;\r\n\r\n app.$.forEach( this.filters, f => {\r\n f.classList.remove( ProjectManager.cssClasses.selected );\r\n } );\r\n \r\n filter.classList.add( ProjectManager.cssClasses.selected );\r\n } else {\r\n console.log( 'Error: ', rsp.msg );\r\n }\r\n this.processing = false;\r\n filter.classList.remove( 'is-loading' );\r\n } );\r\n\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n let pm = new ProjectManager(); \r\n\r\n}( document ) );"]}