├── .gitattributes ├── app ├── .buildignore ├── robots.txt ├── favicon.ico ├── img │ ├── blog1.jpg │ ├── blog2.jpg │ ├── blog3.jpg │ ├── flags.png │ ├── news1.jpg │ ├── news2.jpg │ ├── news3.jpg │ ├── team1.jpg │ ├── team2.jpg │ ├── team3.jpg │ ├── team4.jpg │ ├── team5.jpg │ ├── team6.jpg │ ├── team7.jpg │ ├── user1.jpg │ ├── user2.jpg │ ├── user3.jpg │ ├── user4.jpg │ ├── user5.jpg │ ├── user6.jpg │ ├── bx_loader.gif │ ├── controls.png │ ├── flags │ │ ├── ad.png │ │ ├── ae.png │ │ ├── af.png │ │ ├── ag.png │ │ ├── ai.png │ │ ├── al.png │ │ ├── am.png │ │ ├── an.png │ │ ├── ao.png │ │ ├── ar.png │ │ ├── as.png │ │ ├── at.png │ │ ├── au.png │ │ ├── aw.png │ │ ├── ax.png │ │ ├── az.png │ │ ├── ba.png │ │ ├── bb.png │ │ ├── bd.png │ │ ├── be.png │ │ ├── bf.png │ │ ├── bg.png │ │ ├── bh.png │ │ ├── bi.png │ │ ├── bj.png │ │ ├── bm.png │ │ ├── bn.png │ │ ├── bo.png │ │ ├── br.png │ │ ├── bs.png │ │ ├── bt.png │ │ ├── bv.png │ │ ├── bw.png │ │ ├── by.png │ │ ├── bz.png │ │ ├── ca.png │ │ ├── cc.png │ │ ├── cd.png │ │ ├── cf.png │ │ ├── cg.png │ │ ├── ch.png │ │ ├── ci.png │ │ ├── ck.png │ │ ├── cl.png │ │ ├── cm.png │ │ ├── cn.png │ │ ├── co.png │ │ ├── cr.png │ │ ├── cs.png │ │ ├── cu.png │ │ ├── cv.png │ │ ├── cx.png │ │ ├── cy.png │ │ ├── cz.png │ │ ├── de.png │ │ ├── dj.png │ │ ├── dk.png │ │ ├── dm.png │ │ ├── do.png │ │ ├── dz.png │ │ ├── ec.png │ │ ├── ee.png │ │ ├── eg.png │ │ ├── eh.png │ │ ├── er.png │ │ ├── es.png │ │ ├── et.png │ │ ├── fam.png │ │ ├── fi.png │ │ ├── fj.png │ │ ├── fk.png │ │ ├── fm.png │ │ ├── fo.png │ │ ├── fr.png │ │ ├── ga.png │ │ ├── gb.png │ │ ├── gd.png │ │ ├── ge.png │ │ ├── gf.png │ │ ├── gh.png │ │ ├── gi.png │ │ ├── gl.png │ │ ├── gm.png │ │ ├── gn.png │ │ ├── gp.png │ │ ├── gq.png │ │ ├── gr.png │ │ ├── gs.png │ │ ├── gt.png │ │ ├── gu.png │ │ ├── gw.png │ │ ├── gy.png │ │ ├── hk.png │ │ ├── hm.png │ │ ├── hn.png │ │ ├── hr.png │ │ ├── ht.png │ │ ├── hu.png │ │ ├── id.png │ │ ├── ie.png │ │ ├── il.png │ │ ├── in.png │ │ ├── io.png │ │ ├── iq.png │ │ ├── ir.png │ │ ├── is.png │ │ ├── it.png │ │ ├── jm.png │ │ ├── jo.png │ │ ├── jp.png │ │ ├── ke.png │ │ ├── kg.png │ │ ├── kh.png │ │ ├── ki.png │ │ ├── km.png │ │ ├── kn.png │ │ ├── kp.png │ │ ├── kr.png │ │ ├── kw.png │ │ ├── ky.png │ │ ├── kz.png │ │ ├── la.png │ │ ├── lb.png │ │ ├── lc.png │ │ ├── li.png │ │ ├── lk.png │ │ ├── lr.png │ │ ├── ls.png │ │ ├── lt.png │ │ ├── lu.png │ │ ├── lv.png │ │ ├── ly.png │ │ ├── ma.png │ │ ├── mc.png │ │ ├── md.png │ │ ├── me.png │ │ ├── mg.png │ │ ├── mh.png │ │ ├── mk.png │ │ ├── ml.png │ │ ├── mm.png │ │ ├── mn.png │ │ ├── mo.png │ │ ├── mp.png │ │ ├── mq.png │ │ ├── mr.png │ │ ├── ms.png │ │ ├── mt.png │ │ ├── mu.png │ │ ├── mv.png │ │ ├── mw.png │ │ ├── mx.png │ │ ├── my.png │ │ ├── mz.png │ │ ├── na.png │ │ ├── nc.png │ │ ├── ne.png │ │ ├── nf.png │ │ ├── ng.png │ │ ├── ni.png │ │ ├── nl.png │ │ ├── no.png │ │ ├── np.png │ │ ├── nr.png │ │ ├── nu.png │ │ ├── nz.png │ │ ├── om.png │ │ ├── pa.png │ │ ├── pe.png │ │ ├── pf.png │ │ ├── pg.png │ │ ├── ph.png │ │ ├── pk.png │ │ ├── pl.png │ │ ├── pm.png │ │ ├── pn.png │ │ ├── pr.png │ │ ├── ps.png │ │ ├── pt.png │ │ ├── pw.png │ │ ├── py.png │ │ ├── qa.png │ │ ├── re.png │ │ ├── ro.png │ │ ├── rs.png │ │ ├── ru.png │ │ ├── rw.png │ │ ├── sa.png │ │ ├── sb.png │ │ ├── sc.png │ │ ├── sd.png │ │ ├── se.png │ │ ├── sg.png │ │ ├── sh.png │ │ ├── si.png │ │ ├── sj.png │ │ ├── sk.png │ │ ├── sl.png │ │ ├── sm.png │ │ ├── sn.png │ │ ├── so.png │ │ ├── sr.png │ │ ├── st.png │ │ ├── sv.png │ │ ├── sy.png │ │ ├── sz.png │ │ ├── tc.png │ │ ├── td.png │ │ ├── tf.png │ │ ├── tg.png │ │ ├── th.png │ │ ├── tj.png │ │ ├── tk.png │ │ ├── tl.png │ │ ├── tm.png │ │ ├── tn.png │ │ ├── to.png │ │ ├── tr.png │ │ ├── tt.png │ │ ├── tv.png │ │ ├── tw.png │ │ ├── tz.png │ │ ├── ua.png │ │ ├── ug.png │ │ ├── um.png │ │ ├── us.png │ │ ├── uy.png │ │ ├── uz.png │ │ ├── va.png │ │ ├── vc.png │ │ ├── ve.png │ │ ├── vg.png │ │ ├── vi.png │ │ ├── vn.png │ │ ├── vu.png │ │ ├── wf.png │ │ ├── ws.png │ │ ├── ye.png │ │ ├── yt.png │ │ ├── za.png │ │ ├── zm.png │ │ ├── zw.png │ │ ├── wales.png │ │ ├── england.png │ │ ├── scotland.png │ │ ├── catalonia.png │ │ └── europeanunion.png │ ├── in-press.png │ ├── launch-bg.jpg │ ├── less-logo.png │ ├── logos │ │ ├── ea.png │ │ ├── hp.png │ │ ├── canon.png │ │ ├── cisco.png │ │ ├── dell.png │ │ ├── ebay.png │ │ ├── mysql.png │ │ ├── sony.png │ │ ├── vimeo.png │ │ ├── yahoo.png │ │ ├── facebook.png │ │ ├── google.png │ │ └── microsoft.png │ ├── product1.jpg │ ├── product2.jpg │ ├── product3.jpg │ ├── product4.jpg │ ├── product5.jpg │ ├── product6.jpg │ ├── product7.jpg │ ├── product8.jpg │ ├── services1.jpg │ ├── services2.jpg │ ├── services3.jpg │ ├── blog-large.jpg │ ├── portfolio1.jpg │ ├── portfolio2.jpg │ ├── portfolio3.jpg │ ├── portfolio4.jpg │ ├── portfolio5.jpg │ ├── portfolio6.jpg │ ├── portfolio7.jpg │ ├── portfolio8.jpg │ ├── documentation.png │ ├── icomoon-social.png │ ├── mPurpose-logo.png │ ├── social-login.png │ ├── stay-connected.png │ ├── page-background.png │ ├── service-icon │ │ ├── box.png │ │ ├── chat.png │ │ ├── ruler.png │ │ └── diamond.png │ ├── coming-soon-social.png │ ├── glyphicons-halflings.png │ ├── homepage-slider │ │ ├── slide1.png │ │ ├── slide2.png │ │ ├── slide3.png │ │ ├── slider-bg1.jpg │ │ ├── slider-bg2.jpg │ │ ├── slider-bg3.jpg │ │ ├── slider-bg4.jpg │ │ ├── slider-bg5.jpg │ │ ├── slider-bg6.jpg │ │ ├── slider-bg7.jpg │ │ ├── slider-bg8.jpg │ │ ├── slider-bg9.jpg │ │ ├── slider-bg10.jpg │ │ ├── slider-bg11.jpg │ │ ├── slider-bg12.jpg │ │ ├── slider-bg13.jpg │ │ └── slider-bg14.jpg │ └── glyphicons-halflings-white.png ├── images │ ├── yeoman.png │ └── dlab-normal-logo.png ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff ├── views │ ├── products │ │ ├── pagination.html │ │ ├── grid.html │ │ └── detail.html │ ├── 404.html │ ├── category.html │ ├── footer.html │ ├── header.html │ └── home.html ├── styles │ ├── main.css │ └── theme │ │ ├── leaflet.ie.css │ │ ├── icomoon-social.css │ │ ├── coming-soon-social.css │ │ └── leaflet.css ├── scripts │ ├── controllers │ │ ├── menu.js │ │ ├── products.js │ │ ├── main.js │ │ └── categories.js │ ├── services │ │ ├── product.js │ │ ├── category.js │ │ └── demandware.js │ ├── config.js.dist │ └── app.js ├── js │ ├── template.js │ ├── jquery.fitvids.js │ └── modernizr-2.6.2-respond-1.1.0.min.js └── index.html ├── .bowerrc ├── .gitignore ├── screenshots ├── ss_product_1.png └── ss_category_1.png ├── .travis.yml ├── test ├── runner.html ├── spec │ ├── services │ │ ├── product.js │ │ ├── setting.js │ │ ├── category.js │ │ ├── settings.js │ │ ├── demandware.js │ │ └── demandwareservice.js │ └── controllers │ │ ├── main.js │ │ ├── products.js │ │ └── categories.js └── .jshintrc ├── .editorconfig ├── .jshintrc ├── bower.json ├── package.json ├── karma-e2e.conf.js ├── karma.conf.js ├── Gruntfile.js └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /app/.buildignore: -------------------------------------------------------------------------------- 1 | *.coffee -------------------------------------------------------------------------------- /app/robots.txt: -------------------------------------------------------------------------------- 1 | # robotstxt.org 2 | 3 | User-agent: * 4 | -------------------------------------------------------------------------------- /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "app/bower_components" 3 | } 4 | -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .tmp 4 | .sass-cache 5 | app/bower_components 6 | app/scripts/config.js -------------------------------------------------------------------------------- /app/img/blog1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/blog1.jpg -------------------------------------------------------------------------------- /app/img/blog2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/blog2.jpg -------------------------------------------------------------------------------- /app/img/blog3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/blog3.jpg -------------------------------------------------------------------------------- /app/img/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags.png -------------------------------------------------------------------------------- /app/img/news1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/news1.jpg -------------------------------------------------------------------------------- /app/img/news2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/news2.jpg -------------------------------------------------------------------------------- /app/img/news3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/news3.jpg -------------------------------------------------------------------------------- /app/img/team1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/team1.jpg -------------------------------------------------------------------------------- /app/img/team2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/team2.jpg -------------------------------------------------------------------------------- /app/img/team3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/team3.jpg -------------------------------------------------------------------------------- /app/img/team4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/team4.jpg -------------------------------------------------------------------------------- /app/img/team5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/team5.jpg -------------------------------------------------------------------------------- /app/img/team6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/team6.jpg -------------------------------------------------------------------------------- /app/img/team7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/team7.jpg -------------------------------------------------------------------------------- /app/img/user1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/user1.jpg -------------------------------------------------------------------------------- /app/img/user2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/user2.jpg -------------------------------------------------------------------------------- /app/img/user3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/user3.jpg -------------------------------------------------------------------------------- /app/img/user4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/user4.jpg -------------------------------------------------------------------------------- /app/img/user5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/user5.jpg -------------------------------------------------------------------------------- /app/img/user6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/user6.jpg -------------------------------------------------------------------------------- /app/images/yeoman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/images/yeoman.png -------------------------------------------------------------------------------- /app/img/bx_loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/bx_loader.gif -------------------------------------------------------------------------------- /app/img/controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/controls.png -------------------------------------------------------------------------------- /app/img/flags/ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ad.png -------------------------------------------------------------------------------- /app/img/flags/ae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ae.png -------------------------------------------------------------------------------- /app/img/flags/af.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/af.png -------------------------------------------------------------------------------- /app/img/flags/ag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ag.png -------------------------------------------------------------------------------- /app/img/flags/ai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ai.png -------------------------------------------------------------------------------- /app/img/flags/al.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/al.png -------------------------------------------------------------------------------- /app/img/flags/am.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/am.png -------------------------------------------------------------------------------- /app/img/flags/an.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/an.png -------------------------------------------------------------------------------- /app/img/flags/ao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ao.png -------------------------------------------------------------------------------- /app/img/flags/ar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ar.png -------------------------------------------------------------------------------- /app/img/flags/as.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/as.png -------------------------------------------------------------------------------- /app/img/flags/at.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/at.png -------------------------------------------------------------------------------- /app/img/flags/au.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/au.png -------------------------------------------------------------------------------- /app/img/flags/aw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/aw.png -------------------------------------------------------------------------------- /app/img/flags/ax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ax.png -------------------------------------------------------------------------------- /app/img/flags/az.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/az.png -------------------------------------------------------------------------------- /app/img/flags/ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ba.png -------------------------------------------------------------------------------- /app/img/flags/bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bb.png -------------------------------------------------------------------------------- /app/img/flags/bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bd.png -------------------------------------------------------------------------------- /app/img/flags/be.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/be.png -------------------------------------------------------------------------------- /app/img/flags/bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bf.png -------------------------------------------------------------------------------- /app/img/flags/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bg.png -------------------------------------------------------------------------------- /app/img/flags/bh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bh.png -------------------------------------------------------------------------------- /app/img/flags/bi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bi.png -------------------------------------------------------------------------------- /app/img/flags/bj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bj.png -------------------------------------------------------------------------------- /app/img/flags/bm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bm.png -------------------------------------------------------------------------------- /app/img/flags/bn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bn.png -------------------------------------------------------------------------------- /app/img/flags/bo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bo.png -------------------------------------------------------------------------------- /app/img/flags/br.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/br.png -------------------------------------------------------------------------------- /app/img/flags/bs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bs.png -------------------------------------------------------------------------------- /app/img/flags/bt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bt.png -------------------------------------------------------------------------------- /app/img/flags/bv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bv.png -------------------------------------------------------------------------------- /app/img/flags/bw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bw.png -------------------------------------------------------------------------------- /app/img/flags/by.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/by.png -------------------------------------------------------------------------------- /app/img/flags/bz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/bz.png -------------------------------------------------------------------------------- /app/img/flags/ca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ca.png -------------------------------------------------------------------------------- /app/img/flags/cc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cc.png -------------------------------------------------------------------------------- /app/img/flags/cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cd.png -------------------------------------------------------------------------------- /app/img/flags/cf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cf.png -------------------------------------------------------------------------------- /app/img/flags/cg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cg.png -------------------------------------------------------------------------------- /app/img/flags/ch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ch.png -------------------------------------------------------------------------------- /app/img/flags/ci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ci.png -------------------------------------------------------------------------------- /app/img/flags/ck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ck.png -------------------------------------------------------------------------------- /app/img/flags/cl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cl.png -------------------------------------------------------------------------------- /app/img/flags/cm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cm.png -------------------------------------------------------------------------------- /app/img/flags/cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cn.png -------------------------------------------------------------------------------- /app/img/flags/co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/co.png -------------------------------------------------------------------------------- /app/img/flags/cr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cr.png -------------------------------------------------------------------------------- /app/img/flags/cs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cs.png -------------------------------------------------------------------------------- /app/img/flags/cu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cu.png -------------------------------------------------------------------------------- /app/img/flags/cv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cv.png -------------------------------------------------------------------------------- /app/img/flags/cx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cx.png -------------------------------------------------------------------------------- /app/img/flags/cy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cy.png -------------------------------------------------------------------------------- /app/img/flags/cz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/cz.png -------------------------------------------------------------------------------- /app/img/flags/de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/de.png -------------------------------------------------------------------------------- /app/img/flags/dj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/dj.png -------------------------------------------------------------------------------- /app/img/flags/dk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/dk.png -------------------------------------------------------------------------------- /app/img/flags/dm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/dm.png -------------------------------------------------------------------------------- /app/img/flags/do.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/do.png -------------------------------------------------------------------------------- /app/img/flags/dz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/dz.png -------------------------------------------------------------------------------- /app/img/flags/ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ec.png -------------------------------------------------------------------------------- /app/img/flags/ee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ee.png -------------------------------------------------------------------------------- /app/img/flags/eg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/eg.png -------------------------------------------------------------------------------- /app/img/flags/eh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/eh.png -------------------------------------------------------------------------------- /app/img/flags/er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/er.png -------------------------------------------------------------------------------- /app/img/flags/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/es.png -------------------------------------------------------------------------------- /app/img/flags/et.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/et.png -------------------------------------------------------------------------------- /app/img/flags/fam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/fam.png -------------------------------------------------------------------------------- /app/img/flags/fi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/fi.png -------------------------------------------------------------------------------- /app/img/flags/fj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/fj.png -------------------------------------------------------------------------------- /app/img/flags/fk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/fk.png -------------------------------------------------------------------------------- /app/img/flags/fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/fm.png -------------------------------------------------------------------------------- /app/img/flags/fo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/fo.png -------------------------------------------------------------------------------- /app/img/flags/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/fr.png -------------------------------------------------------------------------------- /app/img/flags/ga.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ga.png -------------------------------------------------------------------------------- /app/img/flags/gb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gb.png -------------------------------------------------------------------------------- /app/img/flags/gd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gd.png -------------------------------------------------------------------------------- /app/img/flags/ge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ge.png -------------------------------------------------------------------------------- /app/img/flags/gf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gf.png -------------------------------------------------------------------------------- /app/img/flags/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gh.png -------------------------------------------------------------------------------- /app/img/flags/gi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gi.png -------------------------------------------------------------------------------- /app/img/flags/gl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gl.png -------------------------------------------------------------------------------- /app/img/flags/gm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gm.png -------------------------------------------------------------------------------- /app/img/flags/gn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gn.png -------------------------------------------------------------------------------- /app/img/flags/gp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gp.png -------------------------------------------------------------------------------- /app/img/flags/gq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gq.png -------------------------------------------------------------------------------- /app/img/flags/gr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gr.png -------------------------------------------------------------------------------- /app/img/flags/gs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gs.png -------------------------------------------------------------------------------- /app/img/flags/gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gt.png -------------------------------------------------------------------------------- /app/img/flags/gu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gu.png -------------------------------------------------------------------------------- /app/img/flags/gw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gw.png -------------------------------------------------------------------------------- /app/img/flags/gy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/gy.png -------------------------------------------------------------------------------- /app/img/flags/hk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/hk.png -------------------------------------------------------------------------------- /app/img/flags/hm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/hm.png -------------------------------------------------------------------------------- /app/img/flags/hn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/hn.png -------------------------------------------------------------------------------- /app/img/flags/hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/hr.png -------------------------------------------------------------------------------- /app/img/flags/ht.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ht.png -------------------------------------------------------------------------------- /app/img/flags/hu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/hu.png -------------------------------------------------------------------------------- /app/img/flags/id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/id.png -------------------------------------------------------------------------------- /app/img/flags/ie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ie.png -------------------------------------------------------------------------------- /app/img/flags/il.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/il.png -------------------------------------------------------------------------------- /app/img/flags/in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/in.png -------------------------------------------------------------------------------- /app/img/flags/io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/io.png -------------------------------------------------------------------------------- /app/img/flags/iq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/iq.png -------------------------------------------------------------------------------- /app/img/flags/ir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ir.png -------------------------------------------------------------------------------- /app/img/flags/is.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/is.png -------------------------------------------------------------------------------- /app/img/flags/it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/it.png -------------------------------------------------------------------------------- /app/img/flags/jm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/jm.png -------------------------------------------------------------------------------- /app/img/flags/jo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/jo.png -------------------------------------------------------------------------------- /app/img/flags/jp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/jp.png -------------------------------------------------------------------------------- /app/img/flags/ke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ke.png -------------------------------------------------------------------------------- /app/img/flags/kg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/kg.png -------------------------------------------------------------------------------- /app/img/flags/kh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/kh.png -------------------------------------------------------------------------------- /app/img/flags/ki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ki.png -------------------------------------------------------------------------------- /app/img/flags/km.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/km.png -------------------------------------------------------------------------------- /app/img/flags/kn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/kn.png -------------------------------------------------------------------------------- /app/img/flags/kp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/kp.png -------------------------------------------------------------------------------- /app/img/flags/kr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/kr.png -------------------------------------------------------------------------------- /app/img/flags/kw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/kw.png -------------------------------------------------------------------------------- /app/img/flags/ky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ky.png -------------------------------------------------------------------------------- /app/img/flags/kz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/kz.png -------------------------------------------------------------------------------- /app/img/flags/la.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/la.png -------------------------------------------------------------------------------- /app/img/flags/lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/lb.png -------------------------------------------------------------------------------- /app/img/flags/lc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/lc.png -------------------------------------------------------------------------------- /app/img/flags/li.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/li.png -------------------------------------------------------------------------------- /app/img/flags/lk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/lk.png -------------------------------------------------------------------------------- /app/img/flags/lr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/lr.png -------------------------------------------------------------------------------- /app/img/flags/ls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ls.png -------------------------------------------------------------------------------- /app/img/flags/lt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/lt.png -------------------------------------------------------------------------------- /app/img/flags/lu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/lu.png -------------------------------------------------------------------------------- /app/img/flags/lv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/lv.png -------------------------------------------------------------------------------- /app/img/flags/ly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ly.png -------------------------------------------------------------------------------- /app/img/flags/ma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ma.png -------------------------------------------------------------------------------- /app/img/flags/mc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mc.png -------------------------------------------------------------------------------- /app/img/flags/md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/md.png -------------------------------------------------------------------------------- /app/img/flags/me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/me.png -------------------------------------------------------------------------------- /app/img/flags/mg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mg.png -------------------------------------------------------------------------------- /app/img/flags/mh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mh.png -------------------------------------------------------------------------------- /app/img/flags/mk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mk.png -------------------------------------------------------------------------------- /app/img/flags/ml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ml.png -------------------------------------------------------------------------------- /app/img/flags/mm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mm.png -------------------------------------------------------------------------------- /app/img/flags/mn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mn.png -------------------------------------------------------------------------------- /app/img/flags/mo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mo.png -------------------------------------------------------------------------------- /app/img/flags/mp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mp.png -------------------------------------------------------------------------------- /app/img/flags/mq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mq.png -------------------------------------------------------------------------------- /app/img/flags/mr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mr.png -------------------------------------------------------------------------------- /app/img/flags/ms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ms.png -------------------------------------------------------------------------------- /app/img/flags/mt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mt.png -------------------------------------------------------------------------------- /app/img/flags/mu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mu.png -------------------------------------------------------------------------------- /app/img/flags/mv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mv.png -------------------------------------------------------------------------------- /app/img/flags/mw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mw.png -------------------------------------------------------------------------------- /app/img/flags/mx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mx.png -------------------------------------------------------------------------------- /app/img/flags/my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/my.png -------------------------------------------------------------------------------- /app/img/flags/mz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/mz.png -------------------------------------------------------------------------------- /app/img/flags/na.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/na.png -------------------------------------------------------------------------------- /app/img/flags/nc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/nc.png -------------------------------------------------------------------------------- /app/img/flags/ne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ne.png -------------------------------------------------------------------------------- /app/img/flags/nf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/nf.png -------------------------------------------------------------------------------- /app/img/flags/ng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ng.png -------------------------------------------------------------------------------- /app/img/flags/ni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ni.png -------------------------------------------------------------------------------- /app/img/flags/nl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/nl.png -------------------------------------------------------------------------------- /app/img/flags/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/no.png -------------------------------------------------------------------------------- /app/img/flags/np.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/np.png -------------------------------------------------------------------------------- /app/img/flags/nr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/nr.png -------------------------------------------------------------------------------- /app/img/flags/nu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/nu.png -------------------------------------------------------------------------------- /app/img/flags/nz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/nz.png -------------------------------------------------------------------------------- /app/img/flags/om.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/om.png -------------------------------------------------------------------------------- /app/img/flags/pa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pa.png -------------------------------------------------------------------------------- /app/img/flags/pe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pe.png -------------------------------------------------------------------------------- /app/img/flags/pf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pf.png -------------------------------------------------------------------------------- /app/img/flags/pg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pg.png -------------------------------------------------------------------------------- /app/img/flags/ph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ph.png -------------------------------------------------------------------------------- /app/img/flags/pk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pk.png -------------------------------------------------------------------------------- /app/img/flags/pl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pl.png -------------------------------------------------------------------------------- /app/img/flags/pm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pm.png -------------------------------------------------------------------------------- /app/img/flags/pn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pn.png -------------------------------------------------------------------------------- /app/img/flags/pr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pr.png -------------------------------------------------------------------------------- /app/img/flags/ps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ps.png -------------------------------------------------------------------------------- /app/img/flags/pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pt.png -------------------------------------------------------------------------------- /app/img/flags/pw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/pw.png -------------------------------------------------------------------------------- /app/img/flags/py.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/py.png -------------------------------------------------------------------------------- /app/img/flags/qa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/qa.png -------------------------------------------------------------------------------- /app/img/flags/re.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/re.png -------------------------------------------------------------------------------- /app/img/flags/ro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ro.png -------------------------------------------------------------------------------- /app/img/flags/rs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/rs.png -------------------------------------------------------------------------------- /app/img/flags/ru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ru.png -------------------------------------------------------------------------------- /app/img/flags/rw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/rw.png -------------------------------------------------------------------------------- /app/img/flags/sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sa.png -------------------------------------------------------------------------------- /app/img/flags/sb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sb.png -------------------------------------------------------------------------------- /app/img/flags/sc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sc.png -------------------------------------------------------------------------------- /app/img/flags/sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sd.png -------------------------------------------------------------------------------- /app/img/flags/se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/se.png -------------------------------------------------------------------------------- /app/img/flags/sg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sg.png -------------------------------------------------------------------------------- /app/img/flags/sh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sh.png -------------------------------------------------------------------------------- /app/img/flags/si.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/si.png -------------------------------------------------------------------------------- /app/img/flags/sj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sj.png -------------------------------------------------------------------------------- /app/img/flags/sk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sk.png -------------------------------------------------------------------------------- /app/img/flags/sl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sl.png -------------------------------------------------------------------------------- /app/img/flags/sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sm.png -------------------------------------------------------------------------------- /app/img/flags/sn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sn.png -------------------------------------------------------------------------------- /app/img/flags/so.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/so.png -------------------------------------------------------------------------------- /app/img/flags/sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sr.png -------------------------------------------------------------------------------- /app/img/flags/st.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/st.png -------------------------------------------------------------------------------- /app/img/flags/sv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sv.png -------------------------------------------------------------------------------- /app/img/flags/sy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sy.png -------------------------------------------------------------------------------- /app/img/flags/sz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/sz.png -------------------------------------------------------------------------------- /app/img/flags/tc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tc.png -------------------------------------------------------------------------------- /app/img/flags/td.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/td.png -------------------------------------------------------------------------------- /app/img/flags/tf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tf.png -------------------------------------------------------------------------------- /app/img/flags/tg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tg.png -------------------------------------------------------------------------------- /app/img/flags/th.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/th.png -------------------------------------------------------------------------------- /app/img/flags/tj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tj.png -------------------------------------------------------------------------------- /app/img/flags/tk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tk.png -------------------------------------------------------------------------------- /app/img/flags/tl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tl.png -------------------------------------------------------------------------------- /app/img/flags/tm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tm.png -------------------------------------------------------------------------------- /app/img/flags/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tn.png -------------------------------------------------------------------------------- /app/img/flags/to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/to.png -------------------------------------------------------------------------------- /app/img/flags/tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tr.png -------------------------------------------------------------------------------- /app/img/flags/tt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tt.png -------------------------------------------------------------------------------- /app/img/flags/tv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tv.png -------------------------------------------------------------------------------- /app/img/flags/tw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tw.png -------------------------------------------------------------------------------- /app/img/flags/tz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/tz.png -------------------------------------------------------------------------------- /app/img/flags/ua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ua.png -------------------------------------------------------------------------------- /app/img/flags/ug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ug.png -------------------------------------------------------------------------------- /app/img/flags/um.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/um.png -------------------------------------------------------------------------------- /app/img/flags/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/us.png -------------------------------------------------------------------------------- /app/img/flags/uy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/uy.png -------------------------------------------------------------------------------- /app/img/flags/uz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/uz.png -------------------------------------------------------------------------------- /app/img/flags/va.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/va.png -------------------------------------------------------------------------------- /app/img/flags/vc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/vc.png -------------------------------------------------------------------------------- /app/img/flags/ve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ve.png -------------------------------------------------------------------------------- /app/img/flags/vg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/vg.png -------------------------------------------------------------------------------- /app/img/flags/vi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/vi.png -------------------------------------------------------------------------------- /app/img/flags/vn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/vn.png -------------------------------------------------------------------------------- /app/img/flags/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/vu.png -------------------------------------------------------------------------------- /app/img/flags/wf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/wf.png -------------------------------------------------------------------------------- /app/img/flags/ws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ws.png -------------------------------------------------------------------------------- /app/img/flags/ye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/ye.png -------------------------------------------------------------------------------- /app/img/flags/yt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/yt.png -------------------------------------------------------------------------------- /app/img/flags/za.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/za.png -------------------------------------------------------------------------------- /app/img/flags/zm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/zm.png -------------------------------------------------------------------------------- /app/img/flags/zw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/zw.png -------------------------------------------------------------------------------- /app/img/in-press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/in-press.png -------------------------------------------------------------------------------- /app/img/launch-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/launch-bg.jpg -------------------------------------------------------------------------------- /app/img/less-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/less-logo.png -------------------------------------------------------------------------------- /app/img/logos/ea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/ea.png -------------------------------------------------------------------------------- /app/img/logos/hp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/hp.png -------------------------------------------------------------------------------- /app/img/product1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/product1.jpg -------------------------------------------------------------------------------- /app/img/product2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/product2.jpg -------------------------------------------------------------------------------- /app/img/product3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/product3.jpg -------------------------------------------------------------------------------- /app/img/product4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/product4.jpg -------------------------------------------------------------------------------- /app/img/product5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/product5.jpg -------------------------------------------------------------------------------- /app/img/product6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/product6.jpg -------------------------------------------------------------------------------- /app/img/product7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/product7.jpg -------------------------------------------------------------------------------- /app/img/product8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/product8.jpg -------------------------------------------------------------------------------- /app/img/services1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/services1.jpg -------------------------------------------------------------------------------- /app/img/services2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/services2.jpg -------------------------------------------------------------------------------- /app/img/services3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/services3.jpg -------------------------------------------------------------------------------- /app/img/blog-large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/blog-large.jpg -------------------------------------------------------------------------------- /app/img/flags/wales.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/wales.png -------------------------------------------------------------------------------- /app/img/logos/canon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/canon.png -------------------------------------------------------------------------------- /app/img/logos/cisco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/cisco.png -------------------------------------------------------------------------------- /app/img/logos/dell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/dell.png -------------------------------------------------------------------------------- /app/img/logos/ebay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/ebay.png -------------------------------------------------------------------------------- /app/img/logos/mysql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/mysql.png -------------------------------------------------------------------------------- /app/img/logos/sony.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/sony.png -------------------------------------------------------------------------------- /app/img/logos/vimeo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/vimeo.png -------------------------------------------------------------------------------- /app/img/logos/yahoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/yahoo.png -------------------------------------------------------------------------------- /app/img/portfolio1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/portfolio1.jpg -------------------------------------------------------------------------------- /app/img/portfolio2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/portfolio2.jpg -------------------------------------------------------------------------------- /app/img/portfolio3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/portfolio3.jpg -------------------------------------------------------------------------------- /app/img/portfolio4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/portfolio4.jpg -------------------------------------------------------------------------------- /app/img/portfolio5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/portfolio5.jpg -------------------------------------------------------------------------------- /app/img/portfolio6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/portfolio6.jpg -------------------------------------------------------------------------------- /app/img/portfolio7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/portfolio7.jpg -------------------------------------------------------------------------------- /app/img/portfolio8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/portfolio8.jpg -------------------------------------------------------------------------------- /app/img/documentation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/documentation.png -------------------------------------------------------------------------------- /app/img/flags/england.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/england.png -------------------------------------------------------------------------------- /app/img/flags/scotland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/scotland.png -------------------------------------------------------------------------------- /app/img/icomoon-social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/icomoon-social.png -------------------------------------------------------------------------------- /app/img/logos/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/facebook.png -------------------------------------------------------------------------------- /app/img/logos/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/google.png -------------------------------------------------------------------------------- /app/img/mPurpose-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/mPurpose-logo.png -------------------------------------------------------------------------------- /app/img/social-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/social-login.png -------------------------------------------------------------------------------- /app/img/stay-connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/stay-connected.png -------------------------------------------------------------------------------- /app/img/flags/catalonia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/catalonia.png -------------------------------------------------------------------------------- /app/img/logos/microsoft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/logos/microsoft.png -------------------------------------------------------------------------------- /app/img/page-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/page-background.png -------------------------------------------------------------------------------- /app/img/service-icon/box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/service-icon/box.png -------------------------------------------------------------------------------- /screenshots/ss_product_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/screenshots/ss_product_1.png -------------------------------------------------------------------------------- /app/images/dlab-normal-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/images/dlab-normal-logo.png -------------------------------------------------------------------------------- /app/img/coming-soon-social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/coming-soon-social.png -------------------------------------------------------------------------------- /app/img/flags/europeanunion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/flags/europeanunion.png -------------------------------------------------------------------------------- /app/img/service-icon/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/service-icon/chat.png -------------------------------------------------------------------------------- /app/img/service-icon/ruler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/service-icon/ruler.png -------------------------------------------------------------------------------- /screenshots/ss_category_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/screenshots/ss_category_1.png -------------------------------------------------------------------------------- /app/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /app/img/service-icon/diamond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/service-icon/diamond.png -------------------------------------------------------------------------------- /app/img/homepage-slider/slide1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slide1.png -------------------------------------------------------------------------------- /app/img/homepage-slider/slide2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slide2.png -------------------------------------------------------------------------------- /app/img/homepage-slider/slide3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slide3.png -------------------------------------------------------------------------------- /app/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg1.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg2.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg3.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg4.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg5.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg6.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg7.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg8.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg9.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg10.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg11.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg12.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg13.jpg -------------------------------------------------------------------------------- /app/img/homepage-slider/slider-bg14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/img/homepage-slider/slider-bg14.jpg -------------------------------------------------------------------------------- /app/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /app/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /app/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/HEAD/app/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '0.8' 4 | - '0.10' 5 | before_script: 6 | - 'npm install -g bower grunt-cli' 7 | - 'bower install' 8 | -------------------------------------------------------------------------------- /test/runner.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | End2end Test Runner 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/views/products/pagination.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/styles/main.css: -------------------------------------------------------------------------------- 1 | .pagination > li { 2 | cursor: pointer; 3 | } 4 | 5 | .logo-wrapper img { 6 | height: 50px; 7 | } 8 | 9 | .product .price { 10 | font-size: 1em; 11 | } 12 | 13 | .product .price .org-price { 14 | color: #A5A5A5; 15 | text-decoration: line-through; 16 | } 17 | 18 | .product .price .discount-price { 19 | color: #FF0000; 20 | } -------------------------------------------------------------------------------- /app/scripts/controllers/menu.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | angular.module('demandwareAngularSeedApp') 4 | .controller('MenuCtrl', function ($scope, $location, categoryService) { 5 | $scope.isActived = function(page) { 6 | return page === $location.path(); 7 | }; 8 | categoryService.getAll().then(function(data) { 9 | $scope.categories = data.categories; 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /test/spec/services/product.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('Service: product', function () { 4 | 5 | // load the service's module 6 | beforeEach(module('demandwareAngularSeedApp')); 7 | 8 | // instantiate service 9 | var product; 10 | beforeEach(inject(function (_product_) { 11 | product = _product_; 12 | })); 13 | 14 | it('should do something', function () { 15 | expect(!!product).toBe(true); 16 | }); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /test/spec/services/setting.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('Service: setting', function () { 4 | 5 | // load the service's module 6 | beforeEach(module('demandwareAngularSeedApp')); 7 | 8 | // instantiate service 9 | var setting; 10 | beforeEach(inject(function (_setting_) { 11 | setting = _setting_; 12 | })); 13 | 14 | it('should do something', function () { 15 | expect(!!setting).toBe(true); 16 | }); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /test/spec/services/category.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('Service: category', function () { 4 | 5 | // load the service's module 6 | beforeEach(module('demandwareAngularSeedApp')); 7 | 8 | // instantiate service 9 | var category; 10 | beforeEach(inject(function (_category_) { 11 | category = _category_; 12 | })); 13 | 14 | it('should do something', function () { 15 | expect(!!category).toBe(true); 16 | }); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /test/spec/services/settings.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('Service: settings', function () { 4 | 5 | // load the service's module 6 | beforeEach(module('demandwareAngularSeedApp')); 7 | 8 | // instantiate service 9 | var settings; 10 | beforeEach(inject(function (_settings_) { 11 | settings = _settings_; 12 | })); 13 | 14 | it('should do something', function () { 15 | expect(!!settings).toBe(true); 16 | }); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /test/spec/services/demandware.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('Service: demandware', function () { 4 | 5 | // load the service's module 6 | beforeEach(module('demandwareAngularSeedApp')); 7 | 8 | // instantiate service 9 | var demandware; 10 | beforeEach(inject(function (_demandware_) { 11 | demandware = _demandware_; 12 | })); 13 | 14 | it('should do something', function () { 15 | expect(!!demandware).toBe(true); 16 | }); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | 10 | # Change these settings to your own preference 11 | indent_style = space 12 | indent_size = 2 13 | 14 | # We recommend you to keep these unchanged 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.md] 21 | trim_trailing_whitespace = false 22 | -------------------------------------------------------------------------------- /test/spec/services/demandwareservice.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('Service: demandwareService', function () { 4 | 5 | // load the service's module 6 | beforeEach(module('demandwareAngularSeedApp')); 7 | 8 | // instantiate service 9 | var demandwareService; 10 | beforeEach(inject(function (_demandwareService_) { 11 | demandwareService = _demandwareService_; 12 | })); 13 | 14 | it('should do something', function () { 15 | expect(!!demandwareService).toBe(true); 16 | }); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "esnext": true, 5 | "bitwise": true, 6 | "camelcase": false, 7 | "curly": true, 8 | "eqeqeq": true, 9 | "immed": true, 10 | "indent": 2, 11 | "latedef": true, 12 | "newcap": true, 13 | "noarg": true, 14 | "quotmark": "single", 15 | "regexp": true, 16 | "undef": true, 17 | "unused": true, 18 | "strict": true, 19 | "trailing": true, 20 | "smarttabs": true, 21 | "globals": { 22 | "angular": false, 23 | "jQuery": true 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demandware-angular-seed", 3 | "version": "0.0.0", 4 | "dependencies": { 5 | "angular": "1.2.15", 6 | "json3": "~3.2.6", 7 | "es5-shim": "~2.1.0", 8 | "jquery": "~1.11.0", 9 | "bootstrap": "~3.0.3", 10 | "angular-resource": "1.2.15", 11 | "angular-cookies": "1.2.15", 12 | "angular-sanitize": "1.2.15", 13 | "angular-route": "1.2.15", 14 | "angular-loading-bar":"0.7.1" 15 | }, 16 | "devDependencies": { 17 | "angular-mocks": "1.2.15", 18 | "angular-scenario": "1.2.15" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/scripts/services/product.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | angular.module('demandwareAngularSeedApp') 4 | .factory('productService', ['demandwareClient', function(demandwareClient) { 5 | // Service logic 6 | // ... 7 | //var meaningOfLife = 42; 8 | 9 | // Public API here 10 | return { 11 | get: function (id) { 12 | return demandwareClient.call('GET','products/'+id,{'expand':'images,prices'}); 13 | }, 14 | getAddToCartUrl: function(id) { 15 | return demandwareClient.getAddCartLink(id); 16 | } 17 | }; 18 | }]); 19 | -------------------------------------------------------------------------------- /app/views/404.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |

Page Not Found...

7 |
8 |
9 |
10 |
11 | 12 |
13 |
14 |
15 |
16 |
17 |

Sorry, the page you are looking for is not here or never was...

18 |

Why don't you try the Homepage?

19 |
20 |
21 |
22 |
23 |
-------------------------------------------------------------------------------- /test/spec/controllers/main.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('Controller: MainCtrl', function () { 4 | 5 | // load the controller's module 6 | beforeEach(module('demandwareAngularSeedApp')); 7 | 8 | var MainCtrl, 9 | scope; 10 | 11 | // Initialize the controller and a mock scope 12 | beforeEach(inject(function ($controller, $rootScope) { 13 | scope = $rootScope.$new(); 14 | MainCtrl = $controller('MainCtrl', { 15 | $scope: scope 16 | }); 17 | })); 18 | 19 | it('should attach a list of awesomeThings to the scope', function () { 20 | expect(scope.awesomeThings.length).toBe(3); 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /test/spec/controllers/products.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('Controller: ProductsCtrl', function () { 4 | 5 | // load the controller's module 6 | beforeEach(module('demandwareAngularSeedApp')); 7 | 8 | var ProductsCtrl, 9 | scope; 10 | 11 | // Initialize the controller and a mock scope 12 | beforeEach(inject(function ($controller, $rootScope) { 13 | scope = $rootScope.$new(); 14 | ProductsCtrl = $controller('ProductsCtrl', { 15 | $scope: scope 16 | }); 17 | })); 18 | 19 | it('should attach a list of awesomeThings to the scope', function () { 20 | expect(scope.awesomeThings.length).toBe(3); 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /test/spec/controllers/categories.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('Controller: CategoriesCtrl', function () { 4 | 5 | // load the controller's module 6 | beforeEach(module('demandwareAngularSeedApp')); 7 | 8 | var CategoriesCtrl, 9 | scope; 10 | 11 | // Initialize the controller and a mock scope 12 | beforeEach(inject(function ($controller, $rootScope) { 13 | scope = $rootScope.$new(); 14 | CategoriesCtrl = $controller('CategoriesCtrl', { 15 | $scope: scope 16 | }); 17 | })); 18 | 19 | it('should attach a list of awesomeThings to the scope', function () { 20 | expect(scope.awesomeThings.length).toBe(3); 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /test/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "esnext": true, 5 | "bitwise": true, 6 | "camelcase": true, 7 | "curly": true, 8 | "eqeqeq": true, 9 | "immed": true, 10 | "indent": 2, 11 | "latedef": true, 12 | "newcap": true, 13 | "noarg": true, 14 | "quotmark": "single", 15 | "regexp": true, 16 | "undef": true, 17 | "unused": true, 18 | "strict": true, 19 | "trailing": true, 20 | "smarttabs": true, 21 | "globals": { 22 | "after": false, 23 | "afterEach": false, 24 | "angular": false, 25 | "before": false, 26 | "beforeEach": false, 27 | "browser": false, 28 | "describe": false, 29 | "expect": false, 30 | "inject": false, 31 | "it": false, 32 | "jasmine": false, 33 | "spyOn": false 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /app/scripts/config.js.dist: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | angular 4 | .module('demandwareAngularSeedApp') 5 | .constant('CONFIG', { 6 | 'app': { 7 | 'title': 'Demo Shop' 8 | }, 9 | 'demandware': { 10 | //'baseUrl' - the OCAPI 'base url' (https://info.demandware.com/DOC3/topic/com.demandware.dochelp/OCAPI/15.2/usage/UrlSchema.htm) for calling DW APIs 11 | //Ex: https://staging.sitegenesis.dw.demandware.net/s/SiteGenesis/dw/shop/ 12 | 'baseUrl': 'base-url', 13 | //'api-version' - OCAPI version which is matched with OCAPI Settings (Ex: 'v15_2') 14 | 'apiVersion': 'api-version', 15 | 'clientId': 'client-id', 16 | //'publicSiteUrl' - the storefront's home URL for redirect 17 | //Ex: http://staging.sitegenesis.dw.demandware.net/s/SiteGenesis/ 18 | 'publicSiteUrl': 'public-site-url' 19 | } 20 | }); 21 | -------------------------------------------------------------------------------- /app/scripts/services/category.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | angular.module('demandwareAngularSeedApp') 4 | .factory('categoryService', ['demandwareClient', function(demandwareClient) { 5 | // Service logic 6 | // ... 7 | //var meaningOfLife = 42; 8 | 9 | // Public API here 10 | return { 11 | getAll: function () { 12 | return demandwareClient.call('GET','categories/root',{'levels':2}); 13 | }, 14 | get: function (id) { 15 | return demandwareClient.call('GET','categories/'+id,{'levels':0}); 16 | }, 17 | getProducts: function(id,limit,start) { 18 | limit = limit || 8; 19 | start = start || 0; 20 | return demandwareClient.call('GET','product_search',{ 21 | 'refine_1=cgid':id, 22 | 'count':limit, 23 | 'start':start, 24 | 'expand': 'prices,images' 25 | }); 26 | } 27 | }; 28 | }]); 29 | -------------------------------------------------------------------------------- /app/scripts/app.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | angular 4 | .module('demandwareAngularSeedApp', [ 5 | 'ngCookies', 6 | 'ngResource', 7 | 'ngSanitize', 8 | 'ngRoute', 9 | 'angular-loading-bar' 10 | ]) 11 | .config(function ($routeProvider) { 12 | $routeProvider 13 | .when('/', { 14 | templateUrl: 'views/home.html', 15 | controller: 'MainCtrl' 16 | }) 17 | .when('/categories/:id', { 18 | templateUrl: 'views/category.html', 19 | controller: 'CategoriesCtrl' 20 | }) 21 | .when('/oopps', { 22 | templateUrl: 'views/404.html' 23 | }) 24 | .when('/products/:id', { 25 | templateUrl: 'views/products/detail.html', 26 | controller: 'ProductsCtrl' 27 | }) 28 | .otherwise({ 29 | redirectTo: '/oopps' 30 | }); 31 | }) 32 | .config(function ($httpProvider) { 33 | $httpProvider.defaults.useXDomain = true; 34 | delete $httpProvider.defaults.headers.common['X-Requested-With']; 35 | }); 36 | -------------------------------------------------------------------------------- /app/scripts/controllers/products.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | angular.module('demandwareAngularSeedApp') 4 | .controller('ProductsCtrl', function ($scope, $rootScope, $routeParams, productService) { 5 | $scope.id = $routeParams.id; 6 | productService.get($scope.id).then(function(data) { 7 | $scope.product = data; 8 | $rootScope.pageTitle = data.name; 9 | $scope.addToCartUrl = productService.getAddToCartUrl($scope.id); 10 | //product thumbnail 11 | if (data.image_groups) { 12 | for (var i = 0; i < data.image_groups.length; i++) { 13 | if (data.image_groups[i].view_type === 'large') { 14 | $scope.thumbnailImage = data.image_groups[i].images[0]; 15 | } 16 | } 17 | } 18 | else { 19 | $scope.thumbnailImage = {alt:'Unknown Image', link: 'http://placehold.it/600x360', 'title': 'Unknown Image' }; 20 | } 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /app/views/category.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |

Category: {{category.parent_category_id}} > {{category.name}}

7 |

8 | {{category.description}} 9 |

10 |

11 | {{category.page_description}} 12 |

13 |
14 |
15 |

16 |
17 |
18 |
19 |
20 |
21 |
22 |

Products

23 |
24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /app/scripts/controllers/main.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | angular.module('demandwareAngularSeedApp') 4 | .controller('MainCtrl', function ($scope,$rootScope) { 5 | $rootScope.pageTitle = 'Home page'; 6 | //Homepage Slider 7 | var options = { 8 | nextButton: false, 9 | prevButton: false, 10 | pagination: true, 11 | animateStartingFrameIn: true, 12 | autoPlay: true, 13 | autoPlayDelay: 3000, 14 | preloader: true 15 | }; 16 | $scope.mySequence = jQuery('#sequence').sequence(options).data('sequence'); 17 | 18 | //Products slider 19 | $scope.produxtsSlider = jQuery('.products-slider').bxSlider({ 20 | slideWidth: jQuery('.products-slider .shop-item').outerWidth()-20, //Gets slide width 21 | responsive: true, 22 | minSlides: 1, 23 | maxSlides: 4, 24 | slideMargin: 20, 25 | auto: true, 26 | autoHover: true, 27 | speed: 800, 28 | pager: true, 29 | controls: false 30 | }); 31 | }); 32 | -------------------------------------------------------------------------------- /app/scripts/services/demandware.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | angular.module('demandwareAngularSeedApp') 4 | .factory('demandwareClient', function ($http,CONFIG) { 5 | var baseUrl = CONFIG.demandware.baseUrl, 6 | apiVersion = CONFIG.demandware.apiVersion, 7 | clientId = CONFIG.demandware.clientId; 8 | 9 | return { 10 | call: function (method,url,params) { 11 | var callUrl = baseUrl + '/' + apiVersion + '/' + url + '?'; 12 | var urlParams = []; 13 | for (var key in params) { 14 | urlParams.push(key + '=' + params[key]); 15 | } 16 | urlParams.push('client_id=' + clientId); 17 | callUrl += urlParams.join('&'); 18 | 19 | return $http({ 20 | url: callUrl, 21 | method: method 22 | }).then(function(result) { 23 | //resolve the promise as the data 24 | return result.data; 25 | }); 26 | }, 27 | getAddCartLink: function(productId) { 28 | return CONFIG.demandware.publicSiteUrl + "default/Product-Show?pid=" + productId; 29 | } 30 | }; 31 | }); 32 | -------------------------------------------------------------------------------- /app/views/products/grid.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 |
6 | {{product.image.alt}} 7 |
8 | 9 | 12 | 13 |
14 | {{product.price|currency:"$"}} 15 |
16 |
17 | {{product.price_max|currency:"$"}} 18 | {{product.price|currency:"$"}} 19 |
20 | 21 |
22 | Add to Cart 23 |
24 |
25 | 26 |
-------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demandwareangularseed", 3 | "version": "0.0.0", 4 | "dependencies": {}, 5 | "devDependencies": { 6 | "grunt": "~0.4.1", 7 | "grunt-autoprefixer": "~0.4.0", 8 | "grunt-bower-install": "~1.0.0", 9 | "grunt-concurrent": "~0.5.0", 10 | "grunt-contrib-clean": "~0.5.0", 11 | "grunt-contrib-concat": "~0.3.0", 12 | "grunt-contrib-connect": "~0.5.0", 13 | "grunt-contrib-copy": "~0.4.1", 14 | "grunt-contrib-cssmin": "~0.7.0", 15 | "grunt-contrib-htmlmin": "~0.1.3", 16 | "grunt-contrib-imagemin": "~0.3.0", 17 | "grunt-contrib-jshint": "~0.7.1", 18 | "grunt-contrib-uglify": "~0.2.0", 19 | "grunt-contrib-watch": "~0.5.2", 20 | "grunt-google-cdn": "~0.2.0", 21 | "grunt-newer": "~0.6.1", 22 | "grunt-ngmin": "~0.0.2", 23 | "grunt-rev": "~0.1.0", 24 | "grunt-svgmin": "~0.2.0", 25 | "grunt-usemin": "~2.0.0", 26 | "jshint-stylish": "~0.1.3", 27 | "load-grunt-tasks": "~0.4.0", 28 | "time-grunt": "~0.2.1", 29 | "karma-ng-scenario": "^0.1.0", 30 | "grunt-karma": "^0.8.3", 31 | "karma": "^0.12.16", 32 | "karma-ng-html2js-preprocessor": "^0.1.0" 33 | }, 34 | "engines": { 35 | "node": ">=0.10.0" 36 | }, 37 | "scripts": { 38 | "test": "grunt test" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/scripts/controllers/categories.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | angular.module('demandwareAngularSeedApp') 4 | .controller('CategoriesCtrl', function ($scope, $rootScope, $routeParams, categoryService) { 5 | $scope.id = $routeParams.id; 6 | $scope.pageCurrent = 0; 7 | $scope.pageLimit = 16; 8 | $scope.pageTotals = 1; 9 | categoryService.get($scope.id).then(function(data) { 10 | $scope.category = data; 11 | $rootScope.pageTitle = data.name; 12 | $scope.isSubCategory = function(category) { 13 | return category.parent_category_id && category.parent_category_id !== 'root'; 14 | }; 15 | }); 16 | categoryService.getProducts($scope.id,$scope.pageLimit).then(function(data) { 17 | $scope.products = data.hits; 18 | $scope.pageTotals = Math.ceil(data.total / $scope.pageLimit); 19 | $scope.getPagingTotal = function() { 20 | var result = []; 21 | for (var i = 0; i < $scope.pageTotals; i++) { 22 | result.push(i+1); 23 | } 24 | return result; 25 | }; 26 | $scope.onPage = function(page) { 27 | var next = page*$scope.pageLimit; 28 | categoryService.getProducts($scope.id,$scope.pageLimit,next).then(function(data) { 29 | $scope.products = data.hits; 30 | $scope.pageCurrent = page; 31 | }); 32 | } 33 | }); 34 | }); 35 | -------------------------------------------------------------------------------- /app/styles/theme/leaflet.ie.css: -------------------------------------------------------------------------------- 1 | .leaflet-vml-shape { 2 | width: 1px; 3 | height: 1px; 4 | } 5 | .lvml { 6 | behavior: url(#default#VML); 7 | display: inline-block; 8 | position: absolute; 9 | } 10 | 11 | .leaflet-control { 12 | display: inline; 13 | } 14 | 15 | .leaflet-popup-tip { 16 | width: 21px; 17 | _width: 27px; 18 | margin: 0 auto; 19 | _margin-top: -3px; 20 | 21 | filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); 22 | -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; 23 | } 24 | .leaflet-popup-tip-container { 25 | margin-top: -1px; 26 | } 27 | .leaflet-popup-content-wrapper, .leaflet-popup-tip { 28 | border: 1px solid #999; 29 | } 30 | .leaflet-popup-content-wrapper { 31 | zoom: 1; 32 | } 33 | 34 | .leaflet-control-zoom, 35 | .leaflet-control-layers { 36 | border: 3px solid #999; 37 | } 38 | .leaflet-control-zoom a { 39 | background-color: #eee; 40 | } 41 | .leaflet-control-zoom a:hover { 42 | background-color: #fff; 43 | } 44 | .leaflet-control-layers-toggle { 45 | } 46 | .leaflet-control-attribution, 47 | .leaflet-control-layers, 48 | .leaflet-control-scale-line { 49 | background: white; 50 | } 51 | .leaflet-zoom-box { 52 | filter: alpha(opacity=50); 53 | } 54 | .leaflet-control-attribution { 55 | border-top: 1px solid #bbb; 56 | border-left: 1px solid #bbb; 57 | } 58 | -------------------------------------------------------------------------------- /app/styles/theme/icomoon-social.css: -------------------------------------------------------------------------------- 1 | .icon-google-plus,.icon-facebook,.icon-twitter,.icon-vimeo2,.icon-flickr,.icon-picassa,.icon-dribbble,.icon-github,.icon-wordpress,.icon-blogger,.icon-tumblr,.icon-soundcloud,.icon-linkedin,.icon-lastfm,.icon-stumbleupon,.icon-pinterest { 2 | display: inline-block; 3 | width: 16px; 4 | height: 16px; 5 | background-image: url(../../img/icomoon-social.png); 6 | background-repeat: no-repeat; 7 | } 8 | .icon-google-plus { 9 | background-position: 0 0; 10 | } 11 | .icon-facebook { 12 | background-position: -32px 0; 13 | } 14 | .icon-twitter { 15 | background-position: -64px 0; 16 | } 17 | .icon-vimeo2 { 18 | background-position: -96px 0; 19 | } 20 | .icon-flickr { 21 | background-position: -128px 0; 22 | } 23 | .icon-picassa { 24 | background-position: -160px 0; 25 | } 26 | .icon-dribbble { 27 | background-position: -192px 0; 28 | } 29 | .icon-github { 30 | background-position: -224px 0; 31 | } 32 | .icon-wordpress { 33 | background-position: -256px 0; 34 | } 35 | .icon-blogger { 36 | background-position: -288px 0; 37 | } 38 | .icon-tumblr { 39 | background-position: -320px 0; 40 | } 41 | .icon-soundcloud { 42 | background-position: -352px 0; 43 | } 44 | .icon-linkedin { 45 | background-position: -384px 0; 46 | } 47 | .icon-lastfm { 48 | background-position: -416px 0; 49 | } 50 | .icon-stumbleupon { 51 | background-position: -448px 0; 52 | } 53 | .icon-pinterest { 54 | background-position: -480px 0; 55 | } 56 | -------------------------------------------------------------------------------- /app/styles/theme/coming-soon-social.css: -------------------------------------------------------------------------------- 1 | .icon-google-plus,.icon-facebook,.icon-twitter,.icon-vimeo2,.icon-flickr,.icon-picassa,.icon-dribbble,.icon-github,.icon-wordpress,.icon-blogger,.icon-tumblr,.icon-soundcloud,.icon-linkedin,.icon-lastfm,.icon-stumbleupon,.icon-pinterest { 2 | display: inline-block; 3 | width: 32px; 4 | height: 32px; 5 | background-image: url(../../img/coming-soon-social.png); 6 | background-repeat: no-repeat; 7 | } 8 | .icon-google-plus { 9 | background-position: 0 0; 10 | } 11 | .icon-facebook { 12 | background-position: -64px 0; 13 | } 14 | .icon-twitter { 15 | background-position: -128px 0; 16 | } 17 | .icon-vimeo2 { 18 | background-position: -192px 0; 19 | } 20 | .icon-flickr { 21 | background-position: -256px 0; 22 | } 23 | .icon-picassa { 24 | background-position: -320px 0; 25 | } 26 | .icon-dribbble { 27 | background-position: -384px 0; 28 | } 29 | .icon-github { 30 | background-position: -448px 0; 31 | } 32 | .icon-wordpress { 33 | background-position: -512px 0; 34 | } 35 | .icon-blogger { 36 | background-position: -576px 0; 37 | } 38 | .icon-tumblr { 39 | background-position: -640px 0; 40 | } 41 | .icon-soundcloud { 42 | background-position: -704px 0; 43 | } 44 | .icon-linkedin { 45 | background-position: -768px 0; 46 | } 47 | .icon-lastfm { 48 | background-position: -832px 0; 49 | } 50 | .icon-stumbleupon { 51 | background-position: -896px 0; 52 | } 53 | .icon-pinterest { 54 | background-position: -960px 0; 55 | } 56 | -------------------------------------------------------------------------------- /karma-e2e.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration 2 | // http://karma-runner.github.io/0.10/config/configuration-file.html 3 | 4 | module.exports = function(config) { 5 | config.set({ 6 | // base path, that will be used to resolve files and exclude 7 | basePath: '', 8 | 9 | // testing framework to use (jasmine/mocha/qunit/...) 10 | frameworks: ['ng-scenario'], 11 | 12 | // list of files / patterns to load in the browser 13 | files: [ 14 | 'test/e2e/**/*.js' 15 | ], 16 | 17 | // list of files / patterns to exclude 18 | exclude: [], 19 | 20 | // web server port 21 | port: 8080, 22 | 23 | // level of logging 24 | // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG 25 | logLevel: config.LOG_INFO, 26 | 27 | 28 | // enable / disable watching file and executing tests whenever any file changes 29 | autoWatch: false, 30 | 31 | 32 | // Start these browsers, currently available: 33 | // - Chrome 34 | // - ChromeCanary 35 | // - Firefox 36 | // - Opera 37 | // - Safari (only Mac) 38 | // - PhantomJS 39 | // - IE (only Windows) 40 | browsers: ['Chrome'], 41 | 42 | 43 | // Continuous Integration mode 44 | // if true, it capture browsers, run tests and exit 45 | singleRun: false 46 | 47 | // Uncomment the following lines if you are using grunt's server to run the tests 48 | // proxies: { 49 | // '/': 'http://localhost:9000/' 50 | // }, 51 | // URL root prevent conflicts with the site root 52 | // urlRoot: '_karma_' 53 | }); 54 | }; 55 | -------------------------------------------------------------------------------- /karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration 2 | // http://karma-runner.github.io/0.10/config/configuration-file.html 3 | 4 | module.exports = function(config) { 5 | config.set({ 6 | // base path, that will be used to resolve files and exclude 7 | basePath: '', 8 | 9 | // testing framework to use (jasmine/mocha/qunit/...) 10 | frameworks: ['jasmine'], 11 | 12 | // list of files / patterns to load in the browser 13 | files: [ 14 | 'app/bower_components/angular/angular.js', 15 | 'app/bower_components/angular-mocks/angular-mocks.js', 16 | 'app/bower_components/angular-resource/angular-resource.js', 17 | 'app/bower_components/angular-cookies/angular-cookies.js', 18 | 'app/bower_components/angular-sanitize/angular-sanitize.js', 19 | 'app/bower_components/angular-route/angular-route.js', 20 | 'app/scripts/*.js', 21 | 'app/scripts/**/*.js', 22 | 'test/mock/**/*.js', 23 | 'test/spec/**/*.js' 24 | ], 25 | 26 | // list of files / patterns to exclude 27 | exclude: [], 28 | 29 | // web server port 30 | port: 8080, 31 | 32 | // level of logging 33 | // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG 34 | logLevel: config.LOG_INFO, 35 | 36 | 37 | // enable / disable watching file and executing tests whenever any file changes 38 | autoWatch: false, 39 | 40 | 41 | // Start these browsers, currently available: 42 | // - Chrome 43 | // - ChromeCanary 44 | // - Firefox 45 | // - Opera 46 | // - Safari (only Mac) 47 | // - PhantomJS 48 | // - IE (only Windows) 49 | browsers: ['Chrome'], 50 | 51 | 52 | // Continuous Integration mode 53 | // if true, it capture browsers, run tests and exit 54 | singleRun: false 55 | }); 56 | }; 57 | -------------------------------------------------------------------------------- /app/js/template.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function($){ 2 | //Homepage Slider 3 | var options = { 4 | nextButton: false, 5 | prevButton: false, 6 | pagination: true, 7 | animateStartingFrameIn: true, 8 | autoPlay: true, 9 | autoPlayDelay: 3000, 10 | preloader: true 11 | }; 12 | var mySequence = $("#sequence").sequence(options).data("sequence"); 13 | 14 | //Products slider 15 | var produxtsSlider = $('.products-slider').bxSlider({ 16 | slideWidth: $('.products-slider .shop-item').outerWidth()-20, //Gets slide width 17 | responsive: true, 18 | minSlides: 1, 19 | maxSlides: 4, 20 | slideMargin: 20, 21 | auto: true, 22 | autoHover: true, 23 | speed: 800, 24 | pager: true, 25 | controls: false 26 | }); 27 | 28 | //Make Videos Responsive 29 | $(".video-wrapper").fitVids(); 30 | 31 | //Initialize tooltips 32 | $('.show-tooltip').tooltip(); 33 | 34 | //Contact Us Map 35 | if($('#contact-us-map').length > 0){ //Checks if there is a map element 36 | var map = L.map('contact-us-map', { 37 | center: [51.502, -0.09], 38 | scrollWheelZoom: false, 39 | zoom: 15 40 | }); 41 | L.tileLayer('http://{s}.tile.cloudmade.com/{key}/22677/256/{z}/{x}/{y}.png', { 42 | key: 'BC9A493B41014CAABB98F0471D759707' 43 | }).addTo(map); 44 | L.marker([51.5, -0.09]).addTo(map).bindPopup("Some Company
123 Fake Street
LN1 2ST
London
United Kingdom").openPopup(); 45 | } 46 | 47 | $( window ).resize(function() { 48 | $('.col-footer:eq(0), .col-footer:eq(1)').css('height', ''); 49 | var footerColHeight = Math.max($('.col-footer:eq(0)').height(), $('.col-footer:eq(1)').height()) + 'px'; 50 | $('.col-footer:eq(0), .col-footer:eq(1)').css('height', footerColHeight); 51 | }); 52 | $( window ).resize(); 53 | 54 | }); -------------------------------------------------------------------------------- /app/views/footer.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 12 | 23 | 24 | 33 | 41 |
42 |
43 |
44 | 45 |
46 |
47 |
-------------------------------------------------------------------------------- /app/js/jquery.fitvids.js: -------------------------------------------------------------------------------- 1 | /*global jQuery */ 2 | /*jshint multistr:true browser:true */ 3 | /*! 4 | * FitVids 1.0 5 | * 6 | * Copyright 2011, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com 7 | * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ 8 | * Released under the WTFPL license - http://sam.zoy.org/wtfpl/ 9 | * 10 | * Date: Thu Sept 01 18:00:00 2011 -0500 11 | */ 12 | 13 | (function( $ ){ 14 | 15 | "use strict"; 16 | 17 | $.fn.fitVids = function( options ) { 18 | var settings = { 19 | customSelector: null 20 | }; 21 | 22 | if(!document.getElementById('fit-vids-style')) { 23 | 24 | var div = document.createElement('div'), 25 | ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0]; 26 | 27 | div.className = 'fit-vids-style'; 28 | div.id = 'fit-vids-style'; 29 | div.style.display = 'none'; 30 | div.innerHTML = '­'; 47 | 48 | ref.parentNode.insertBefore(div,ref); 49 | 50 | } 51 | 52 | if ( options ) { 53 | $.extend( settings, options ); 54 | } 55 | 56 | return this.each(function(){ 57 | var selectors = [ 58 | "iframe[src*='player.vimeo.com']", 59 | "iframe[src*='youtube.com']", 60 | "iframe[src*='youtube-nocookie.com']", 61 | "iframe[src*='kickstarter.com'][src*='video.html']", 62 | "object", 63 | "embed" 64 | ]; 65 | 66 | if (settings.customSelector) { 67 | selectors.push(settings.customSelector); 68 | } 69 | 70 | var $allVideos = $(this).find(selectors.join(',')); 71 | $allVideos = $allVideos.not("object object"); // SwfObj conflict patch 72 | 73 | $allVideos.each(function(){ 74 | var $this = $(this); 75 | if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } 76 | var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), 77 | width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), 78 | aspectRatio = height / width; 79 | if(!$this.attr('id')){ 80 | var videoID = 'fitvid' + Math.floor(Math.random()*999999); 81 | $this.attr('id', videoID); 82 | } 83 | $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%"); 84 | $this.removeAttr('height').removeAttr('width'); 85 | }); 86 | }); 87 | }; 88 | })( jQuery ); -------------------------------------------------------------------------------- /app/views/products/detail.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |

{{product.name}}

7 |
8 |
9 |
10 |
11 | 12 |
13 |
14 |
15 | 16 |
17 |
18 | Item Name 19 |
20 |
21 | 22 | 23 |
24 |

{{product.name}}

25 |
26 | {{product.price|currency:"$"}} 27 |
28 |
29 | {{product.price_max|currency:"$"}} 30 | {{product.price|currency:"$"}} 31 |
32 |
Quick Overview
33 |

34 | {{product.short_description}} 35 |

36 | 37 | 38 | 39 | 40 | 43 | 44 | 45 | 46 | 47 | 50 | 51 |
Quantity: 41 | 42 |
  48 | Add to Cart 49 |
52 |
53 | 54 | 55 | 56 |
57 |
58 | 59 | 63 | 64 |
65 |
66 |

Product Description

67 |

68 | {{product.long_description}} 69 |

70 |
71 | 72 |
73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 |
Total sensor Pixels (megapixels)Approx. 16.7
Effective Pixels (megapixels)Approx. 16.1
Automatic White BalanceYES
White balance: preset selectionDaylight, Shade, Cloudy, Incandescent, Fluorescent, Flash
White balance: custom settingYES
White balance: types of color temperatureYES (G7 to M7,15-step) (A7 to B7,15-step)
White balance bracketingNO
ISO Sensitivity SettingISO100 - 25600 equivalent
107 |
108 |
109 |
110 |
111 | 112 |
113 |
114 |
-------------------------------------------------------------------------------- /app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Demanware Angular Store 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 34 |
35 | 36 |
37 | 38 | 39 | 48 | 49 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /app/views/header.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | // Generated on 2014-06-10 using generator-angular 0.8.0 2 | 'use strict'; 3 | 4 | // # Globbing 5 | // for performance reasons we're only matching one level down: 6 | // 'test/spec/{,*/}*.js' 7 | // use this if you want to recursively match all subfolders: 8 | // 'test/spec/**/*.js' 9 | 10 | module.exports = function (grunt) { 11 | 12 | // Load grunt tasks automatically 13 | require('load-grunt-tasks')(grunt); 14 | 15 | // Time how long tasks take. Can help when optimizing build times 16 | require('time-grunt')(grunt); 17 | 18 | // Define the configuration for all the tasks 19 | grunt.initConfig({ 20 | 21 | // Project settings 22 | yeoman: { 23 | // configurable paths 24 | app: require('./bower.json').appPath || 'app', 25 | dist: 'dist' 26 | }, 27 | 28 | // Watches files for changes and runs tasks based on the changed files 29 | watch: { 30 | bower: { 31 | files: ['bower.json'], 32 | tasks: ['bowerInstall'] 33 | }, 34 | js: { 35 | files: ['<%= yeoman.app %>/scripts/{,*/}*.js'], 36 | tasks: ['newer:jshint:all'], 37 | options: { 38 | livereload: true 39 | } 40 | }, 41 | jsTest: { 42 | files: ['test/spec/{,*/}*.js'], 43 | tasks: ['newer:jshint:test', 'karma'] 44 | }, 45 | styles: { 46 | files: ['<%= yeoman.app %>/styles/{,*/}*.css'], 47 | tasks: ['newer:copy:styles', 'autoprefixer'] 48 | }, 49 | gruntfile: { 50 | files: ['Gruntfile.js'] 51 | }, 52 | livereload: { 53 | options: { 54 | livereload: '<%= connect.options.livereload %>' 55 | }, 56 | files: [ 57 | '<%= yeoman.app %>/{,*/}*.html', 58 | '.tmp/styles/{,*/}*.css', 59 | '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' 60 | ] 61 | } 62 | }, 63 | 64 | // The actual grunt server settings 65 | connect: { 66 | options: { 67 | port: 9000, 68 | // Change this to '0.0.0.0' to access the server from outside. 69 | hostname: 'localhost', 70 | livereload: 35729 71 | }, 72 | livereload: { 73 | options: { 74 | open: true, 75 | base: [ 76 | '.tmp', 77 | '<%= yeoman.app %>' 78 | ] 79 | } 80 | }, 81 | test: { 82 | options: { 83 | port: 9001, 84 | base: [ 85 | '.tmp', 86 | 'test', 87 | '<%= yeoman.app %>' 88 | ] 89 | } 90 | }, 91 | dist: { 92 | options: { 93 | base: '<%= yeoman.dist %>' 94 | } 95 | } 96 | }, 97 | 98 | // Make sure code styles are up to par and there are no obvious mistakes 99 | jshint: { 100 | options: { 101 | jshintrc: '.jshintrc', 102 | reporter: require('jshint-stylish') 103 | }, 104 | all: [ 105 | 'Gruntfile.js', 106 | '<%= yeoman.app %>/scripts/{,*/}*.js' 107 | ], 108 | test: { 109 | options: { 110 | jshintrc: 'test/.jshintrc' 111 | }, 112 | src: ['test/spec/{,*/}*.js'] 113 | } 114 | }, 115 | 116 | // Empties folders to start fresh 117 | clean: { 118 | dist: { 119 | files: [{ 120 | dot: true, 121 | src: [ 122 | '.tmp', 123 | '<%= yeoman.dist %>/*', 124 | '!<%= yeoman.dist %>/.git*' 125 | ] 126 | }] 127 | }, 128 | server: '.tmp' 129 | }, 130 | 131 | // Add vendor prefixed styles 132 | autoprefixer: { 133 | options: { 134 | browsers: ['last 1 version'] 135 | }, 136 | dist: { 137 | files: [{ 138 | expand: true, 139 | cwd: '.tmp/styles/', 140 | src: '{,*/}*.css', 141 | dest: '.tmp/styles/' 142 | }] 143 | } 144 | }, 145 | 146 | // Automatically inject Bower components into the app 147 | bowerInstall: { 148 | app: { 149 | src: ['<%= yeoman.app %>/index.html'], 150 | ignorePath: '<%= yeoman.app %>/' 151 | } 152 | }, 153 | 154 | // Renames files for browser caching purposes 155 | rev: { 156 | dist: { 157 | files: { 158 | src: [ 159 | '<%= yeoman.dist %>/scripts/{,*/}*.js', 160 | '<%= yeoman.dist %>/styles/{,*/}*.css', 161 | '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', 162 | '<%= yeoman.dist %>/styles/fonts/*' 163 | ] 164 | } 165 | } 166 | }, 167 | 168 | // Reads HTML for usemin blocks to enable smart builds that automatically 169 | // concat, minify and revision files. Creates configurations in memory so 170 | // additional tasks can operate on them 171 | useminPrepare: { 172 | html: '<%= yeoman.app %>/index.html', 173 | options: { 174 | dest: '<%= yeoman.dist %>', 175 | flow: { 176 | html: { 177 | steps: { 178 | js: ['concat', 'uglifyjs'], 179 | css: ['cssmin'] 180 | }, 181 | post: {} 182 | } 183 | } 184 | } 185 | }, 186 | 187 | // Performs rewrites based on rev and the useminPrepare configuration 188 | usemin: { 189 | html: ['<%= yeoman.dist %>/{,*/}*.html'], 190 | css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], 191 | options: { 192 | assetsDirs: ['<%= yeoman.dist %>'] 193 | } 194 | }, 195 | 196 | // The following *-min tasks produce minified files in the dist folder 197 | cssmin: { 198 | options: { 199 | root: '<%= yeoman.app %>' 200 | } 201 | }, 202 | 203 | imagemin: { 204 | dist: { 205 | files: [{ 206 | expand: true, 207 | cwd: '<%= yeoman.app %>/images', 208 | src: '{,*/}*.{png,jpg,jpeg,gif}', 209 | dest: '<%= yeoman.dist %>/images' 210 | }] 211 | } 212 | }, 213 | 214 | svgmin: { 215 | dist: { 216 | files: [{ 217 | expand: true, 218 | cwd: '<%= yeoman.app %>/images', 219 | src: '{,*/}*.svg', 220 | dest: '<%= yeoman.dist %>/images' 221 | }] 222 | } 223 | }, 224 | 225 | htmlmin: { 226 | dist: { 227 | options: { 228 | collapseWhitespace: true, 229 | collapseBooleanAttributes: true, 230 | removeCommentsFromCDATA: true, 231 | removeOptionalTags: true 232 | }, 233 | files: [{ 234 | expand: true, 235 | cwd: '<%= yeoman.dist %>', 236 | src: ['*.html', 'views/{,*/}*.html'], 237 | dest: '<%= yeoman.dist %>' 238 | }] 239 | } 240 | }, 241 | 242 | // ngmin tries to make the code safe for minification automatically by 243 | // using the Angular long form for dependency injection. It doesn't work on 244 | // things like resolve or inject so those have to be done manually. 245 | ngmin: { 246 | dist: { 247 | files: [{ 248 | expand: true, 249 | cwd: '.tmp/concat/scripts', 250 | src: '*.js', 251 | dest: '.tmp/concat/scripts' 252 | }] 253 | } 254 | }, 255 | 256 | // Replace Google CDN references 257 | cdnify: { 258 | dist: { 259 | html: ['<%= yeoman.dist %>/*.html'] 260 | } 261 | }, 262 | 263 | // Copies remaining files to places other tasks can use 264 | copy: { 265 | dist: { 266 | files: [{ 267 | expand: true, 268 | dot: true, 269 | cwd: '<%= yeoman.app %>', 270 | dest: '<%= yeoman.dist %>', 271 | src: [ 272 | '*.{ico,png,txt}', 273 | '.htaccess', 274 | '*.html', 275 | 'views/{,*/}*.html', 276 | 'images/{,*/}*.{webp}', 277 | 'fonts/*' 278 | ] 279 | }, { 280 | expand: true, 281 | cwd: '.tmp/images', 282 | dest: '<%= yeoman.dist %>/images', 283 | src: ['generated/*'] 284 | }] 285 | }, 286 | styles: { 287 | expand: true, 288 | cwd: '<%= yeoman.app %>/styles', 289 | dest: '.tmp/styles/', 290 | src: '{,*/}*.css' 291 | } 292 | }, 293 | 294 | // Run some tasks in parallel to speed up the build process 295 | concurrent: { 296 | server: [ 297 | 'copy:styles' 298 | ], 299 | test: [ 300 | 'copy:styles' 301 | ], 302 | dist: [ 303 | 'copy:styles', 304 | 'imagemin', 305 | 'svgmin' 306 | ] 307 | }, 308 | 309 | // By default, your `index.html`'s will take care of 310 | // minification. These next options are pre-configured if you do not wish 311 | // to use the Usemin blocks. 312 | // cssmin: { 313 | // dist: { 314 | // files: { 315 | // '<%= yeoman.dist %>/styles/main.css': [ 316 | // '.tmp/styles/{,*/}*.css', 317 | // '<%= yeoman.app %>/styles/{,*/}*.css' 318 | // ] 319 | // } 320 | // } 321 | // }, 322 | // uglify: { 323 | // dist: { 324 | // files: { 325 | // '<%= yeoman.dist %>/scripts/scripts.js': [ 326 | // '<%= yeoman.dist %>/scripts/scripts.js' 327 | // ] 328 | // } 329 | // } 330 | // }, 331 | // concat: { 332 | // dist: {} 333 | // }, 334 | 335 | // Test settings 336 | karma: { 337 | unit: { 338 | configFile: 'karma.conf.js', 339 | singleRun: true 340 | } 341 | } 342 | }); 343 | 344 | 345 | grunt.registerTask('serve', function (target) { 346 | if (target === 'dist') { 347 | return grunt.task.run(['build', 'connect:dist:keepalive']); 348 | } 349 | 350 | grunt.task.run([ 351 | 'clean:server', 352 | 'bowerInstall', 353 | 'concurrent:server', 354 | 'autoprefixer', 355 | 'connect:livereload', 356 | 'watch' 357 | ]); 358 | }); 359 | 360 | grunt.registerTask('server', function (target) { 361 | grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); 362 | grunt.task.run(['serve:' + target]); 363 | }); 364 | 365 | grunt.registerTask('test', [ 366 | 'clean:server', 367 | 'concurrent:test', 368 | 'autoprefixer', 369 | 'connect:test', 370 | 'karma' 371 | ]); 372 | 373 | grunt.registerTask('build', [ 374 | 'clean:dist', 375 | 'bowerInstall', 376 | 'useminPrepare', 377 | 'concurrent:dist', 378 | 'autoprefixer', 379 | 'concat', 380 | 'ngmin', 381 | 'copy:dist', 382 | 'cdnify', 383 | 'cssmin', 384 | 'uglify', 385 | 'rev', 386 | 'usemin', 387 | 'htmlmin' 388 | ]); 389 | 390 | grunt.registerTask('default', [ 391 | 'newer:jshint', 392 | 'test', 393 | 'build' 394 | ]); 395 | }; 396 | -------------------------------------------------------------------------------- /app/styles/theme/leaflet.css: -------------------------------------------------------------------------------- 1 | /* required styles */ 2 | 3 | .leaflet-map-pane, 4 | .leaflet-tile, 5 | .leaflet-marker-icon, 6 | .leaflet-marker-shadow, 7 | .leaflet-tile-pane, 8 | .leaflet-overlay-pane, 9 | .leaflet-shadow-pane, 10 | .leaflet-marker-pane, 11 | .leaflet-popup-pane, 12 | .leaflet-overlay-pane svg, 13 | .leaflet-zoom-box, 14 | .leaflet-image-layer, 15 | .leaflet-layer { 16 | position: absolute; 17 | left: 0; 18 | top: 0; 19 | } 20 | .leaflet-container { 21 | overflow: hidden; 22 | -ms-touch-action: none; 23 | } 24 | .leaflet-tile, 25 | .leaflet-marker-icon, 26 | .leaflet-marker-shadow { 27 | -webkit-user-select: none; 28 | -moz-user-select: none; 29 | user-select: none; 30 | } 31 | .leaflet-marker-icon, 32 | .leaflet-marker-shadow { 33 | display: block; 34 | } 35 | /* map is broken in FF if you have max-width: 100% on tiles */ 36 | .leaflet-container img { 37 | max-width: none !important; 38 | } 39 | /* stupid Android 2 doesn't understand "max-width: none" properly */ 40 | .leaflet-container img.leaflet-image-layer { 41 | max-width: 15000px !important; 42 | } 43 | .leaflet-tile { 44 | filter: inherit; 45 | visibility: hidden; 46 | } 47 | .leaflet-tile-loaded { 48 | visibility: inherit; 49 | } 50 | .leaflet-zoom-box { 51 | width: 0; 52 | height: 0; 53 | } 54 | 55 | .leaflet-tile-pane { z-index: 2; } 56 | .leaflet-objects-pane { z-index: 3; } 57 | .leaflet-overlay-pane { z-index: 4; } 58 | .leaflet-shadow-pane { z-index: 5; } 59 | .leaflet-marker-pane { z-index: 6; } 60 | .leaflet-popup-pane { z-index: 7; } 61 | 62 | 63 | /* control positioning */ 64 | 65 | .leaflet-control { 66 | position: relative; 67 | z-index: 7; 68 | pointer-events: auto; 69 | } 70 | .leaflet-top, 71 | .leaflet-bottom { 72 | position: absolute; 73 | z-index: 1000; 74 | pointer-events: none; 75 | } 76 | .leaflet-top { 77 | top: 0; 78 | } 79 | .leaflet-right { 80 | right: 0; 81 | } 82 | .leaflet-bottom { 83 | bottom: 0; 84 | } 85 | .leaflet-left { 86 | left: 0; 87 | } 88 | .leaflet-control { 89 | float: left; 90 | clear: both; 91 | } 92 | .leaflet-right .leaflet-control { 93 | float: right; 94 | } 95 | .leaflet-top .leaflet-control { 96 | margin-top: 10px; 97 | } 98 | .leaflet-bottom .leaflet-control { 99 | margin-bottom: 10px; 100 | } 101 | .leaflet-left .leaflet-control { 102 | margin-left: 10px; 103 | } 104 | .leaflet-right .leaflet-control { 105 | margin-right: 10px; 106 | } 107 | 108 | 109 | /* zoom and fade animations */ 110 | 111 | .leaflet-fade-anim .leaflet-tile, 112 | .leaflet-fade-anim .leaflet-popup { 113 | opacity: 0; 114 | -webkit-transition: opacity 0.2s linear; 115 | -moz-transition: opacity 0.2s linear; 116 | -o-transition: opacity 0.2s linear; 117 | transition: opacity 0.2s linear; 118 | } 119 | .leaflet-fade-anim .leaflet-tile-loaded, 120 | .leaflet-fade-anim .leaflet-map-pane .leaflet-popup { 121 | opacity: 1; 122 | } 123 | 124 | .leaflet-zoom-anim .leaflet-zoom-animated { 125 | -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); 126 | -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); 127 | -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); 128 | transition: transform 0.25s cubic-bezier(0,0,0.25,1); 129 | } 130 | .leaflet-zoom-anim .leaflet-tile, 131 | .leaflet-pan-anim .leaflet-tile, 132 | .leaflet-touching .leaflet-zoom-animated { 133 | -webkit-transition: none; 134 | -moz-transition: none; 135 | -o-transition: none; 136 | transition: none; 137 | } 138 | 139 | .leaflet-zoom-anim .leaflet-zoom-hide { 140 | visibility: hidden; 141 | } 142 | 143 | 144 | /* cursors */ 145 | 146 | .leaflet-clickable { 147 | cursor: pointer; 148 | } 149 | .leaflet-container { 150 | cursor: -webkit-grab; 151 | cursor: -moz-grab; 152 | } 153 | .leaflet-popup-pane, 154 | .leaflet-control { 155 | cursor: auto; 156 | } 157 | .leaflet-dragging, 158 | .leaflet-dragging .leaflet-clickable, 159 | .leaflet-dragging .leaflet-container { 160 | cursor: move; 161 | cursor: -webkit-grabbing; 162 | cursor: -moz-grabbing; 163 | } 164 | 165 | 166 | /* visual tweaks */ 167 | 168 | .leaflet-container { 169 | background: #ddd; 170 | outline: 0; 171 | } 172 | .leaflet-container a { 173 | color: #0078A8; 174 | } 175 | .leaflet-container a.leaflet-active { 176 | outline: 2px solid orange; 177 | } 178 | .leaflet-zoom-box { 179 | border: 2px dotted #05f; 180 | background: white; 181 | opacity: 0.5; 182 | } 183 | 184 | 185 | /* general typography */ 186 | .leaflet-container { 187 | font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; 188 | } 189 | 190 | 191 | /* general toolbar styles */ 192 | 193 | .leaflet-bar { 194 | box-shadow: 0 0 8px rgba(0,0,0,0.4); 195 | border: 1px solid #888; 196 | -webkit-border-radius: 5px; 197 | border-radius: 5px; 198 | } 199 | .leaflet-bar-part { 200 | background-color: rgba(255, 255, 255, 0.8); 201 | border-bottom: 1px solid #aaa; 202 | } 203 | .leaflet-bar-part-top { 204 | -webkit-border-radius: 4px 4px 0 0; 205 | border-radius: 4px 4px 0 0; 206 | } 207 | .leaflet-bar-part-bottom { 208 | -webkit-border-radius: 0 0 4px 4px; 209 | border-radius: 0 0 4px 4px; 210 | border-bottom: none; 211 | } 212 | 213 | .leaflet-touch .leaflet-bar { 214 | -webkit-border-radius: 10px; 215 | border-radius: 10px; 216 | } 217 | .leaflet-touch .leaflet-bar-part { 218 | border-bottom: 4px solid rgba(0,0,0,0.3); 219 | } 220 | .leaflet-touch .leaflet-bar-part-top { 221 | -webkit-border-radius: 7px 7px 0 0; 222 | border-radius: 7px 7px 0 0; 223 | } 224 | .leaflet-touch .leaflet-bar-part-bottom { 225 | -webkit-border-radius: 0 0 7px 7px; 226 | border-radius: 0 0 7px 7px; 227 | border-bottom: none; 228 | } 229 | 230 | 231 | /* zoom control */ 232 | 233 | .leaflet-container .leaflet-control-zoom { 234 | margin-left: 13px; 235 | margin-top: 12px; 236 | } 237 | .leaflet-control-zoom a { 238 | width: 22px; 239 | height: 22px; 240 | text-align: center; 241 | text-decoration: none; 242 | color: black; 243 | } 244 | .leaflet-control-zoom a, 245 | .leaflet-control-layers-toggle { 246 | background-position: 50% 50%; 247 | background-repeat: no-repeat; 248 | display: block; 249 | } 250 | .leaflet-control-zoom a:hover { 251 | background-color: #fff; 252 | color: #777; 253 | } 254 | .leaflet-control-zoom-in { 255 | font: bold 18px/24px Arial, Helvetica, sans-serif; 256 | } 257 | .leaflet-control-zoom-out { 258 | font: bold 23px/20px Tahoma, Verdana, sans-serif; 259 | } 260 | .leaflet-control-zoom a.leaflet-control-zoom-disabled { 261 | cursor: default; 262 | background-color: rgba(255, 255, 255, 0.8); 263 | color: #bbb; 264 | } 265 | 266 | .leaflet-touch .leaflet-control-zoom a { 267 | width: 30px; 268 | height: 30px; 269 | } 270 | .leaflet-touch .leaflet-control-zoom-in { 271 | font-size: 24px; 272 | line-height: 29px; 273 | } 274 | .leaflet-touch .leaflet-control-zoom-out { 275 | font-size: 28px; 276 | line-height: 24px; 277 | } 278 | 279 | /* layers control */ 280 | 281 | .leaflet-control-layers { 282 | box-shadow: 0 1px 7px rgba(0,0,0,0.4); 283 | background: #f8f8f9; 284 | -webkit-border-radius: 8px; 285 | border-radius: 8px; 286 | } 287 | .leaflet-control-layers-toggle { 288 | background-image: url(images/layers.png); 289 | width: 36px; 290 | height: 36px; 291 | } 292 | .leaflet-touch .leaflet-control-layers-toggle { 293 | width: 44px; 294 | height: 44px; 295 | } 296 | .leaflet-control-layers .leaflet-control-layers-list, 297 | .leaflet-control-layers-expanded .leaflet-control-layers-toggle { 298 | display: none; 299 | } 300 | .leaflet-control-layers-expanded .leaflet-control-layers-list { 301 | display: block; 302 | position: relative; 303 | } 304 | .leaflet-control-layers-expanded { 305 | padding: 6px 10px 6px 6px; 306 | color: #333; 307 | background: #fff; 308 | } 309 | .leaflet-control-layers-selector { 310 | margin-top: 2px; 311 | position: relative; 312 | top: 1px; 313 | } 314 | .leaflet-control-layers label { 315 | display: block; 316 | } 317 | .leaflet-control-layers-separator { 318 | height: 0; 319 | border-top: 1px solid #ddd; 320 | margin: 5px -10px 5px -6px; 321 | } 322 | 323 | 324 | /* attribution and scale controls */ 325 | 326 | .leaflet-container .leaflet-control-attribution { 327 | background-color: rgba(255, 255, 255, 0.7); 328 | box-shadow: 0 0 5px #bbb; 329 | margin: 0; 330 | } 331 | .leaflet-control-attribution, 332 | .leaflet-control-scale-line { 333 | padding: 0 5px; 334 | color: #333; 335 | } 336 | .leaflet-container .leaflet-control-attribution, 337 | .leaflet-container .leaflet-control-scale { 338 | font-size: 11px; 339 | } 340 | .leaflet-left .leaflet-control-scale { 341 | margin-left: 5px; 342 | } 343 | .leaflet-bottom .leaflet-control-scale { 344 | margin-bottom: 5px; 345 | } 346 | .leaflet-control-scale-line { 347 | border: 2px solid #777; 348 | border-top: none; 349 | color: black; 350 | line-height: 1.1; 351 | padding: 2px 5px 1px; 352 | font-size: 11px; 353 | text-shadow: 1px 1px 1px #fff; 354 | background-color: rgba(255, 255, 255, 0.5); 355 | box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.2); 356 | white-space: nowrap; 357 | overflow: hidden; 358 | } 359 | .leaflet-control-scale-line:not(:first-child) { 360 | border-top: 2px solid #777; 361 | border-bottom: none; 362 | margin-top: -2px; 363 | box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); 364 | } 365 | .leaflet-control-scale-line:not(:first-child):not(:last-child) { 366 | border-bottom: 2px solid #777; 367 | } 368 | 369 | .leaflet-touch .leaflet-control-attribution, 370 | .leaflet-touch .leaflet-control-layers, 371 | .leaflet-touch .leaflet-control-zoom { 372 | box-shadow: none; 373 | } 374 | .leaflet-touch .leaflet-control-layers, 375 | .leaflet-touch .leaflet-control-zoom { 376 | border: 4px solid rgba(0,0,0,0.3); 377 | } 378 | 379 | 380 | /* popup */ 381 | 382 | .leaflet-popup { 383 | position: absolute; 384 | text-align: center; 385 | } 386 | .leaflet-popup-content-wrapper { 387 | padding: 1px; 388 | text-align: left; 389 | -webkit-border-radius: 20px; 390 | border-radius: 20px; 391 | } 392 | .leaflet-popup-content { 393 | margin: 14px 20px; 394 | line-height: 1.4; 395 | } 396 | .leaflet-popup-content p { 397 | margin: 18px 0; 398 | } 399 | .leaflet-popup-tip-container { 400 | margin: 0 auto; 401 | width: 40px; 402 | height: 20px; 403 | position: relative; 404 | overflow: hidden; 405 | } 406 | .leaflet-popup-tip { 407 | width: 15px; 408 | height: 15px; 409 | padding: 1px; 410 | 411 | margin: -8px auto 0; 412 | 413 | -webkit-transform: rotate(45deg); 414 | -moz-transform: rotate(45deg); 415 | -ms-transform: rotate(45deg); 416 | -o-transform: rotate(45deg); 417 | transform: rotate(45deg); 418 | } 419 | .leaflet-popup-content-wrapper, .leaflet-popup-tip { 420 | background: white; 421 | 422 | box-shadow: 0 3px 14px rgba(0,0,0,0.4); 423 | } 424 | .leaflet-container a.leaflet-popup-close-button { 425 | position: absolute; 426 | top: 0; 427 | right: 0; 428 | padding: 4px 5px 0 0; 429 | text-align: center; 430 | width: 18px; 431 | height: 14px; 432 | font: 16px/14px Tahoma, Verdana, sans-serif; 433 | color: #c3c3c3; 434 | text-decoration: none; 435 | font-weight: bold; 436 | background: transparent; 437 | } 438 | .leaflet-container a.leaflet-popup-close-button:hover { 439 | color: #999; 440 | } 441 | .leaflet-popup-scrolled { 442 | overflow: auto; 443 | border-bottom: 1px solid #ddd; 444 | border-top: 1px solid #ddd; 445 | } 446 | 447 | 448 | /* div icon */ 449 | 450 | .leaflet-div-icon { 451 | background: #fff; 452 | border: 1px solid #666; 453 | } 454 | .leaflet-editing-icon { 455 | -webkit-border-radius: 2px; 456 | border-radius: 2px; 457 | } 458 | -------------------------------------------------------------------------------- /app/views/home.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 36 |
37 |
    38 |
  • 1
  • 39 |
  • 2
  • 40 |
  • 3
  • 41 |
42 |
43 |
44 |
45 | 46 | 47 | 48 |
49 |
50 | 67 |
68 |
69 | 70 | 71 | 72 |
73 |
74 |
75 |
76 |
77 | Service 1 78 |

Aliquam in adipiscing

79 |

Praesent rhoncus mauris ac sollicitudin vehicula. Nam fringilla turpis turpis, at posuere turpis aliquet sit amet condimentum

80 | Read more 81 |
82 |
83 |
84 |
85 | Service 2 86 |

Curabitur mollis

87 |

Suspendisse eget libero mi. Fusce ligula orci, vulputate nec elit ultrices, ornare faucibus orci. Aenean lectus sapien, vehicula

88 | Read more 89 |
90 |
91 |
92 |
93 | Service 3 94 |

Vivamus mattis

95 |

Phasellus posuere et nisl ac commodo. Nulla facilisi. Sed tincidunt bibendum cursus. Aenean vulputate aliquam risus rutrum scelerisque

96 | Read more 97 |
98 |
99 |
100 |
101 |
102 | 103 | 104 | 105 |
106 |
107 |
108 |
109 |
110 |

It's a free multipurpose Bootstrap 3 template!

Download here! 111 |
112 |
113 |
114 |
115 |
116 | 117 | 118 | 119 |
120 |
121 |

Testimonials

122 |
123 | 124 |
125 | 126 |
127 | Author 1 128 |
129 |
130 |
131 | 132 |

133 | "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut." 134 |

135 | 136 | 137 | - Name Surname,
Managing Director at Some Company 138 |
139 |
140 |
141 |
142 |
143 | 144 |
145 |
146 | Author 2 147 |
148 |
149 |
150 |

151 | "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo." 152 |

153 | 154 | - Name Surname,
Managing Director at Some Company 155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 | Author 3 163 |
164 |
165 |
166 |

167 | "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." 168 |

169 | 170 | - Name Surname,
Managing Director at Some Company 171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 | 180 | 181 | 182 |
183 |
184 |

Pricing

185 |
186 | 187 |
188 | 189 |
190 | 191 |
192 |
Popular
193 |
194 |

Starter

195 |

FREE

196 | 197 |
    198 |
  • 1 user
  • 199 |
  • Unlimited projects
  • 200 |
  • 2GB storage
  • 201 |
202 | Order Now 203 |
204 | 205 |
206 |

Advanced

207 |

$49/mo

208 |
    209 |
  • 10 users
  • 210 |
  • Unlimited projects
  • 211 |
  • 20GB storage
  • 212 |
213 | Order Now 214 |
215 | 216 |
217 |

Premium

218 |

$99/mo

219 |
    220 |
  • Unlimited users
  • 221 |
  • Unlimited projects
  • 222 |
  • 100GB storage
  • 223 |
224 | Order Now 225 |
226 |
227 | 228 |
229 |
New
230 |
231 |

Mega

232 |

$199/mo

233 |
    234 |
  • Unlimited users
  • 235 |
  • Unlimited projects
  • 236 |
  • 100GB storage
  • 237 |
238 | Order Now 239 |
240 |
241 | 242 |
243 |
244 |
245 | 246 | 247 | 248 |
249 |
250 |

Our Clients

251 |
252 |
Client Name
253 |
Client Name
254 |
Client Name
255 |
Client Name
256 |
Client Name
257 |
Client Name
258 |
Client Name
259 |
Client Name
260 |
Client Name
261 |
Client Name
262 |
Client Name
263 |
Client Name
264 |
265 |
266 |
267 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | demandware-angularjs-seed 2 | ========================= 3 | 4 | An AngularJS mini-site for show up data from Demandware 5 | 6 | - A Demandware mini-site with AngularJS (Inspired by http://yeoman.io) 7 | - A showcase ecommerce site with frontend requirement 8 | - No need server side scripting (NodeJS or Grunt only for deploy) 9 | 10 | Features: 11 | 12 | - [x] Twitter Bootstrap 3.x (Inspired by http://www.bootstrapzero.com/bootstrap-template/mpurpose) 13 | - [x] Responsive 14 | - [x] Navigation menu 15 | - [x] Show root categories 16 | - [x] Show category products 17 | - [x] Show standard product detail page 18 | - [ ] Show product page with complex data (variation, set, bundle) 19 | - [ ] Shopping cart 20 | - [ ] Checkout 21 | 22 | Screenshots: 23 | 24 | Category page screenshot: 25 | ![alt text](https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/develop/screenshots/ss_category_1.png "Category Page") 26 | 27 | Product page screenshot: 28 | ![alt text](https://raw.githubusercontent.com/nhduy1985/demandware-angularjs-seed/develop/screenshots/ss_product_1.png "Product Page") 29 | 30 | Requirements 31 | ============ 32 | 33 | *Only for developement and deployment* 34 | 35 | 1. NodeJS http://nodejs.org 36 | 2. Grunt http://gruntjs.com 37 | 38 | 39 | Installation 40 | ============ 41 | 42 | 1. Download the repo 43 | 44 | 2. Install ``grunt`` 45 | 46 | ``` 47 | npm -g grunt-cli 48 | ``` 49 | 50 | 3. Install packages 51 | 52 | ``` 53 | npm install 54 | bower install 55 | ``` 56 | 4. Configuration 57 | ``` 58 | //create config file from template 59 | cp app\scripts\config.js.dist app\scripts\config.js 60 | 61 | //configure the config file 62 | vm app\scripts\config.js 63 | ``` 64 | 65 | *Notes:* 66 | - OCAPI configuration see more at https://info.demandware.com/DOC1/topic/help/OCAPI/13.6/usage/APIUsage.html 67 | - Don't forget to add runing server to 'allowed_origins' in Business Admin 68 | 69 | Running 70 | ======= 71 | 72 | 1. Development 73 | ``` 74 | grunt server 75 | ``` 76 | 77 | 2. Deployment 78 | ``` 79 | //Step 1: build the 'dist' 80 | grunt build 81 | 82 | //Step 2: upload the 'dist' to the server 83 | ``` 84 | 85 | Appendix 86 | ======== 87 | 88 | 1. Enable OCAPI on sandbox 89 | - Step 1: Enable "Client API" https://documentation.demandware.com/DOC3/topic/com.demandware.dochelp/OCAPI/16.5/usage/ClientApplicationIdentification.html 90 | - Step 2: Enable "Open Commerce API" in Business Manager https://documentation.demandware.com/DOC3/topic/com.demandware.dochelp/OCAPI/16.5/usage/OCAPISettings.html with following settings 91 | ``` 92 | { 93 | "_v":"16.5", 94 | "clients": 95 | [ 96 | { 97 | "client_id":"your-client-id-registered-on-step-1", 98 | "allowed_origins":["http://127.0.0.1:9000","your-running-web-app-domain"], 99 | "resources": 100 | [ 101 | { 102 | "resource_id":"/baskets", 103 | "methods":["post"], 104 | "read_attributes":"(**)", 105 | "write_attributes":"(**)" 106 | }, 107 | { 108 | "resource_id":"/baskets/*", 109 | "methods":["get","patch","delete"], 110 | "read_attributes":"(**)", 111 | "write_attributes":"(**)" 112 | }, 113 | { 114 | "resource_id":"/baskets/*/billing_address", 115 | "methods":["put"], 116 | "read_attributes":"(**)", 117 | "write_attributes":"(**)" 118 | }, 119 | { 120 | "resource_id":"/baskets/*/coupons", 121 | "methods":["post"], 122 | "read_attributes":"(**)", 123 | "write_attributes":"(**)" 124 | }, 125 | { 126 | "resource_id":"/baskets/*/coupons/*", 127 | "methods":["delete"], 128 | "read_attributes":"(**)", 129 | "write_attributes":"(**)" 130 | }, 131 | { 132 | "resource_id":"/baskets/*/customer", 133 | "methods":["put"], 134 | "read_attributes":"(**)", 135 | "write_attributes":"(**)" 136 | }, 137 | { 138 | "resource_id":"/baskets/*/gift_certificate_items", 139 | "methods":["post"], 140 | "read_attributes":"(**)", 141 | "write_attributes":"(**)" 142 | }, 143 | { 144 | "resource_id":"/baskets/*/items", 145 | "methods":["post"], 146 | "read_attributes":"(**)", 147 | "write_attributes":"(**)" 148 | }, 149 | { 150 | "resource_id":"/baskets/*/items/*", 151 | "methods":["patch","delete"], 152 | "read_attributes":"(**)", 153 | "write_attributes":"(**)" 154 | }, 155 | { 156 | "resource_id":"/baskets/*/notes", 157 | "methods":["post","get"], 158 | "read_attributes":"(**)", 159 | "write_attributes":"(**)" 160 | }, 161 | { 162 | "resource_id":"/baskets/*/payment_instruments", 163 | "methods":["post"], 164 | "read_attributes":"(**)", 165 | "write_attributes":"(**)" 166 | }, 167 | { 168 | "resource_id":"/baskets/*/payment_instruments/*", 169 | "methods":["patch","delete"], 170 | "read_attributes":"(**)", 171 | "write_attributes":"(**)" 172 | }, 173 | { 174 | "resource_id":"/baskets/*/payment_methods", 175 | "methods":["get"], 176 | "read_attributes":"(**)", 177 | "write_attributes":"(**)" 178 | }, 179 | { 180 | "resource_id":"/baskets/*/shipments", 181 | "methods":["post"], 182 | "read_attributes":"(**)", 183 | "write_attributes":"(**)" 184 | }, 185 | { 186 | "resource_id":"/baskets/*/shipments/*", 187 | "methods":["patch"], 188 | "read_attributes":"(**)", 189 | "write_attributes":"(**)" 190 | }, 191 | { 192 | "resource_id":"/baskets/*/shipments/*/shipping_address", 193 | "methods":["put"], 194 | "read_attributes":"(**)", 195 | "write_attributes":"(**)" 196 | }, 197 | { 198 | "resource_id":"/baskets/*/shipments/*/shipping_method", 199 | "methods":["put"], 200 | "read_attributes":"(**)", 201 | "write_attributes":"(**)" 202 | }, 203 | { 204 | "resource_id":"/baskets/*/shipments/*/shipping_methods", 205 | "methods":["get"], 206 | "read_attributes":"(**)", 207 | "write_attributes":"(**)" 208 | }, 209 | { 210 | "resource_id":"/baskets/*/submit", 211 | "methods":["post"], 212 | "read_attributes":"(**)", 213 | "write_attributes":"(**)" 214 | }, 215 | { 216 | "resource_id":"/categories/*", 217 | "methods":["get"], 218 | "read_attributes":"(**)", 219 | "write_attributes":"(**)", 220 | "cache_time":900 221 | }, 222 | { 223 | "resource_id":"/content/*", 224 | "methods":["get"], 225 | "read_attributes":"(**)", 226 | "write_attributes":"(**)", 227 | "cache_time":900 228 | }, 229 | { 230 | "resource_id":"/content_search", 231 | "methods":["get"], 232 | "read_attributes":"(**)", 233 | "write_attributes":"(**)", 234 | "cache_time":900 235 | }, 236 | { 237 | "resource_id":"/customers", 238 | "methods":["post"], 239 | "read_attributes":"(**)", 240 | "write_attributes":"(**)" 241 | }, 242 | { 243 | "resource_id":"/customers/auth", 244 | "methods":["post"], 245 | "read_attributes":"(**)", 246 | "write_attributes":"(**)" 247 | }, 248 | { 249 | "resource_id":"/customers/password_reset", 250 | "methods":["post"], 251 | "read_attributes":"(**)", 252 | "write_attributes":"(**)" 253 | }, 254 | { 255 | "resource_id":"/customers/*", 256 | "methods":["get","patch"], 257 | "read_attributes":"(**)", 258 | "write_attributes":"(**)" 259 | }, 260 | { 261 | "resource_id":"/customers/*/addresses", 262 | "methods":["get","post"], 263 | "read_attributes":"(**)", 264 | "write_attributes":"(**)" 265 | }, 266 | { 267 | "resource_id":"/customers/*/addresses/*", 268 | "methods":["get","patch","delete"], 269 | "read_attributes":"(**)", 270 | "write_attributes":"(**)" 271 | }, 272 | { 273 | "resource_id":"/customers/*/baskets", 274 | "methods":["get"], 275 | "read_attributes":"(**)", 276 | "write_attributes":"(**)" 277 | }, 278 | { 279 | "resource_id":"/customers/*/orders", 280 | "methods":["get"], 281 | "read_attributes":"(**)", 282 | "write_attributes":"(**)" 283 | }, 284 | { 285 | "resource_id":"/customers/*/password", 286 | "methods":["put"], 287 | "read_attributes":"(**)", 288 | "write_attributes":"(**)" 289 | }, 290 | { 291 | "resource_id":"/customers/*/payment_instruments", 292 | "methods":["get","post"], 293 | "read_attributes":"(**)", 294 | "write_attributes":"(**)" 295 | }, 296 | { 297 | "resource_id":"/customers/*/payment_instruments/*", 298 | "methods":["get","delete"], 299 | "read_attributes":"(**)", 300 | "write_attributes":"(**)" 301 | }, 302 | { 303 | "resource_id":"/custom_objects/*/*", 304 | "methods":["get"], 305 | "read_attributes":"(**)", 306 | "write_attributes":"(**)" 307 | }, 308 | { 309 | "resource_id":"/folders/*", 310 | "methods":["get"], 311 | "read_attributes":"(**)", 312 | "write_attributes":"(**)", 313 | "cache_time":900 314 | }, 315 | { 316 | "resource_id":"/gift_certificate", 317 | "methods":["post"], 318 | "read_attributes":"(**)", 319 | "write_attributes":"(**)" 320 | }, 321 | { 322 | "resource_id":"/orders/*", 323 | "methods":["get"], 324 | "read_attributes":"(**)", 325 | "write_attributes":"(**)" 326 | }, 327 | { 328 | "resource_id":"/orders/*/notes", 329 | "methods":["get","post"], 330 | "read_attributes":"(**)", 331 | "write_attributes":"(**)" 332 | }, 333 | { 334 | "resource_id":"/orders/*/payment_methods", 335 | "methods":["get"], 336 | "read_attributes":"(**)", 337 | "write_attributes":"(**)" 338 | }, 339 | { 340 | "resource_id":"/orders/*/payment_instruments", 341 | "methods":["post"], 342 | "read_attributes":"(**)", 343 | "write_attributes":"(**)" 344 | }, 345 | { 346 | "resource_id":"/orders/*/payment_instruments/*", 347 | "methods":["patch","delete"], 348 | "read_attributes":"(**)", 349 | "write_attributes":"(**)" 350 | }, 351 | { 352 | "resource_id":"/order_search", 353 | "methods":["post"], 354 | "read_attributes":"(**)", 355 | "write_attributes":"(**)" 356 | }, 357 | { 358 | "resource_id":"/product_lists", 359 | "methods":["get"], 360 | "read_attributes":"(**)", 361 | "write_attributes":"(**)" 362 | }, 363 | { 364 | "resource_id":"/product_lists/*", 365 | "methods":["get","patch"], 366 | "read_attributes":"(**)", 367 | "write_attributes":"(**)" 368 | }, 369 | { 370 | "resource_id":"/product_lists/*/items", 371 | "methods":["get","post"], 372 | "read_attributes":"(**)", 373 | "write_attributes":"(**)" 374 | }, 375 | { 376 | "resource_id":"/product_lists/*/items/*", 377 | "methods":["patch","delete"], 378 | "read_attributes":"(**)", 379 | "write_attributes":"(**)" 380 | }, 381 | { 382 | "resource_id":"/product_search", 383 | "methods":["get"], 384 | "read_attributes":"(**)", 385 | "write_attributes":"(**)", 386 | "cache_time":900 387 | }, 388 | { 389 | "resource_id":"/product_search/availability", 390 | "methods":["get"], 391 | "read_attributes":"(**)", 392 | "write_attributes":"(**)", 393 | "cache_time":60 394 | }, 395 | { 396 | "resource_id":"/product_search/images", 397 | "methods":["get"], 398 | "read_attributes":"(**)", 399 | "write_attributes":"(**)", 400 | "config":{ 401 | "search_result.hits.image:view_type":"large", 402 | "search_result.variation_attributes.values.image:view_type":"medium", 403 | "search_result.variation_attributes.values.image_swatch:view_type":"swatch" 404 | }, 405 | "cache_time":900 406 | }, 407 | { 408 | "resource_id":"/product_search/prices", 409 | "methods":["get"], 410 | "read_attributes":"(**)", 411 | "write_attributes":"(**)", 412 | "cache_time":300 413 | }, 414 | { 415 | "resource_id":"/product_search/variations", 416 | "methods":["get"], 417 | "read_attributes":"(**)", 418 | "write_attributes":"(**)", 419 | "cache_time":887 420 | }, 421 | { 422 | "resource_id":"/products/*", 423 | "methods":["get"], 424 | "read_attributes":"(**)", 425 | "write_attributes":"(**)", 426 | "cache_time":900 427 | }, 428 | { 429 | "resource_id":"/products/*/images", 430 | "methods":["get"], 431 | "read_attributes":"(**)", 432 | "write_attributes":"(**)", 433 | "cache_time":900 434 | }, 435 | { 436 | "resource_id":"/products/*/availability", 437 | "methods":["get"], 438 | "read_attributes":"(**)", 439 | "write_attributes":"(**)", 440 | "config":{ 441 | "product.inventory.ats.max_threshold" : "99", 442 | "product.inventory.stock_level.max_threshold" : "99" 443 | }, 444 | "cache_time":60 445 | }, 446 | { 447 | "resource_id":"/products/*/prices", 448 | "methods":["get"], 449 | "read_attributes":"(**)", 450 | "write_attributes":"(**)", 451 | "config":{ 452 | "product.prices.price_book_ids":"usd-sale-prices,usd-list-prices" 453 | }, 454 | "cache_time":300 455 | }, 456 | { 457 | "resource_id":"/products/*/links", 458 | "methods":["get"], 459 | "read_attributes":"(**)", 460 | "write_attributes":"(**)", 461 | "cache_time":900 462 | }, 463 | { 464 | "resource_id":"/products/*/promotions", 465 | "methods":["get"], 466 | "read_attributes":"(**)", 467 | "write_attributes":"(**)", 468 | "cache_time":900 469 | }, 470 | { 471 | "resource_id":"/products/*/options", 472 | "methods":["get"], 473 | "read_attributes":"(**)", 474 | "write_attributes":"(**)", 475 | "cache_time":900 476 | }, 477 | { 478 | "resource_id":"/products/*/set_products", 479 | "methods":["get"], 480 | "read_attributes":"(**)", 481 | "write_attributes":"(**)", 482 | "cache_time":900 483 | }, 484 | { 485 | "resource_id":"/products/*/bundled_products", 486 | "methods":["get"], 487 | "read_attributes":"(**)", 488 | "write_attributes":"(**)", 489 | "cache_time":900 490 | }, 491 | { 492 | "resource_id":"/products/*/links", 493 | "methods":["get"], 494 | "read_attributes":"(**)", 495 | "write_attributes":"(**)", 496 | "cache_time":900 497 | }, 498 | { 499 | "resource_id":"/products/*/recommendations", 500 | "methods":["get"], 501 | "read_attributes":"(**)", 502 | "write_attributes":"(**)", 503 | "cache_time":900 504 | }, 505 | { 506 | "resource_id":"/products/*/variations", 507 | "methods":["get"], 508 | "read_attributes":"(**)", 509 | "write_attributes":"(**)", 510 | "cache_time":900 511 | }, 512 | { 513 | "resource_id":"/promotions", 514 | "methods":["get"], 515 | "read_attributes":"(**)", 516 | "write_attributes":"(**)", 517 | "cache_time":900 518 | }, 519 | { 520 | "resource_id":"/promotions/*", 521 | "methods":["get"], 522 | "read_attributes":"(**)", 523 | "write_attributes":"(**)", 524 | "cache_time":900 525 | }, 526 | { 527 | "resource_id":"/search_suggestion", 528 | "methods":["get"], 529 | "read_attributes":"(**)", 530 | "write_attributes":"(**)" 531 | }, 532 | { 533 | "resource_id": "/sessions", 534 | "methods":["post"], 535 | "read_attributes": "(**)", 536 | "write_attributes": "(**)" 537 | }, 538 | { 539 | "resource_id":"/site", 540 | "methods":["get"], 541 | "read_attributes":"(**)", 542 | "write_attributes":"(**)", 543 | "cache_time":900 544 | }, 545 | { 546 | "resource_id":"/stores", 547 | "methods":["get"], 548 | "read_attributes":"(**)", 549 | "write_attributes":"(**)", 550 | "cache_time":900 551 | }, 552 | { 553 | "resource_id":"/stores/*", 554 | "methods":["get"], 555 | "read_attributes":"(**)", 556 | "write_attributes":"(**)", 557 | "cache_time":900 558 | } 559 | ] 560 | } 561 | ] 562 | } 563 | ``` 564 | *Note: the setting above is only for OCAPI 16.5, change the version associate with the config in config.js 565 | -------------------------------------------------------------------------------- /app/js/modernizr-2.6.2-respond-1.1.0.min.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load 3 | */ 4 | ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f #mq-test-1 { width: 42px; }';a.insertBefore(d,b);c=g.offsetWidth==42;a.removeChild(d);return{matches:c,media:h}}})(document); 9 | 10 | /*! Respond.js v1.1.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ 11 | (function(e){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=e.matchMedia&&e.matchMedia("only all").matches;if(respond.mediaQueriesSupported){return}var w=e.document,s=w.documentElement,i=[],k=[],q=[],o={},h=30,f=w.getElementsByTagName("head")[0]||s,g=w.getElementsByTagName("base")[0],b=f.getElementsByTagName("link"),d=[],a=function(){var D=b,y=D.length,B=0,A,z,C,x;for(;B-1,minw:F.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:F.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}}j()},l,r,v=function(){var z,A=w.createElement("div"),x=w.body,y=false;A.style.cssText="position:absolute;font-size:1em;width:1em";if(!x){x=y=w.createElement("body");x.style.background="none"}x.appendChild(A);s.insertBefore(x,s.firstChild);z=A.offsetWidth;if(y){s.removeChild(x)}else{x.removeChild(A)}z=p=parseFloat(z);return z},p,j=function(I){var x="clientWidth",B=s[x],H=w.compatMode==="CSS1Compat"&&B||w.body[x]||B,D={},G=b[b.length-1],z=(new Date()).getTime();if(I&&l&&z-l-1?(p||v()):1)}if(!!J){J=parseFloat(J)*(J.indexOf(y)>-1?(p||v()):1)}if(!K.hasquery||(!A||!L)&&(A||H>=C)&&(L||H<=J)){if(!D[K.media]){D[K.media]=[]}D[K.media].push(k[K.rules])}}for(var E in q){if(q[E]&&q[E].parentNode===f){f.removeChild(q[E])}}for(var E in D){var M=w.createElement("style"),F=D[E].join("\n");M.type="text/css";M.media=E;f.insertBefore(M,G.nextSibling);if(M.styleSheet){M.styleSheet.cssText=F}else{M.appendChild(w.createTextNode(F))}q.push(M)}},n=function(x,z){var y=c();if(!y){return}y.open("GET",x,true);y.onreadystatechange=function(){if(y.readyState!=4||y.status!=200&&y.status!=304){return}z(y.responseText)};if(y.readyState==4){return}y.send(null)},c=(function(){var x=false;try{x=new XMLHttpRequest()}catch(y){x=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return x}})();a();respond.update=a;function t(){j(true)}if(e.addEventListener){e.addEventListener("resize",t,false)}else{if(e.attachEvent){e.attachEvent("onresize",t)}}})(this); --------------------------------------------------------------------------------