{"version":3,"sources":["./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.component.html","./src/app/header/header.component.html","./src/app/modal-campaign/modal-campaign.html","./src/app/modal-comment/modal-comment.html","./src/app/modal-contact/modal-contact.component.html","./src/app/modal-reasons/modal-reasons.html","./src/app/modal-thanks/modal-thanks.html","./src/app/reason/reasons.html","./src/app/thank-you-page/thank-you-page.component.html","./src/app/vote-page/vote-page.component.html","./src/$_lazy_route_resource lazy namespace object","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/header/header.component.scss","./src/app/header/header.component.ts","./src/app/modal-campaign/modal-campaign.scss","./src/app/modal-campaign/modal-campaign.ts","./src/app/modal-comment/modal-comment.scss","./src/app/modal-comment/modal-comment.ts","./src/app/modal-contact/modal-contact.component.scss","./src/app/modal-contact/modal-contact.component.ts","./src/app/modal-reasons/modal-reasons.ts","./src/app/modal-thanks/modal-thanks.scss","./src/app/modal-thanks/modal-thanks.ts","./src/app/models/choice.ts","./src/app/models/config-model.ts","./src/app/models/index-factory.ts","./src/app/models/lang.ts","./src/app/models/parent.ts","./src/app/models/question-scenario/random-handler.ts","./src/app/models/question-scenario/scenario-handler-factory.ts","./src/app/models/question-scenario/scenario-handler.ts","./src/app/models/question-scenario/serie-handler.ts","./src/app/models/question-scenario/single-handler.ts","./src/app/models/question-scenario/tree-handler.ts","./src/app/models/question-serie.ts","./src/app/models/question-sfd.ts","./src/app/models/reason.ts","./src/app/models/smiley-color.ts","./src/app/models/smiley-image.ts","./src/app/models/state.ts","./src/app/models/stats-model.ts","./src/app/models/votes.ts","./src/app/models/vsb-validity.ts","./src/app/providers/campaign-displayer.ts","./src/app/providers/comment-displayer.ts","./src/app/providers/contact-displayer.ts","./src/app/providers/db.config.ts","./src/app/providers/fbn-http-provider.ts","./src/app/providers/fbn-language.service.ts","./src/app/providers/helpers/image-helper.service.ts","./src/app/providers/helpers/modal-options.service.ts","./src/app/providers/idb.service.ts","./src/app/providers/loader.service.ts","./src/app/providers/reasons-displayer.ts","./src/app/providers/settings.service.ts","./src/app/providers/thanks-displayer.ts","./src/app/providers/votes-services/engine.ts","./src/app/providers/votes-services/votes-manager.ts","./src/app/reason/reasons.scss","./src/app/reason/reasons.ts","./src/app/thank-you-page/thank-you-page.component.scss","./src/app/thank-you-page/thank-you-page.component.ts","./src/app/thank-you-page/votes-stats.service.ts","./src/app/vote-page/vote-page.component.scss","./src/app/vote-page/vote-page.component.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"main.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","module.exports = \"\\n\\n\"","module.exports = \"
\\n
1\\\">\\n
\\n \\n
{{ lang.code | uppercase }}
\\n
\\n
\\n
\\n\"","module.exports = \"\\n
\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n {{ message }}\\n
\\n
\"","module.exports = \"
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n\"","module.exports = \"
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\"","module.exports = \"
\\n \\n
\"","module.exports = \"
\\n
{{ text }}
\\n
{{ 'thanksFeedback' | translate }}
\\n
\\n\"","module.exports = \"
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n {{ reason.reasonText }}\\n
\\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n

{{ text }}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","module.exports = \"\\n\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\\"logo\\\"\\n
\\n
\\n
\\n
\\n

\\n

{{ questionText }}

\\n

\\n
\\n
\\n

\\n \\n \\n \\n \\n

\\n
\\n

May we get in contact with you?

\\n
\\n
\\n
\\n \\n
\\n

or

\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n\"","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core'\nimport { NgbModalConfig } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'Virtual smileybox';\n\n public constructor(\n private config: NgbModalConfig\n ) {\n this.config.backdrop = 'static';\n this.config.keyboard = false;\n }\n}\n","import { ImageHelperService } from './providers/helpers/image-helper.service';\nimport { VotesStatsService } from './thank-you-page/votes-stats.service';\nimport { LoaderService } from './providers/loader.service';\nimport { ModalContactComponent } from './modal-contact/modal-contact.component';\nimport { ContactDisplayer } from './providers/contact-displayer';\nimport { FBNLanguageService } from './providers/fbn-language.service';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { CommentDisplayer } from './providers/comment-displayer';\nimport { ThanksDisplayer } from './providers/thanks-displayer';\nimport { VotesManager } from './providers/votes-services/votes-manager';\nimport { FBNHttpProvider } from './providers/fbn-http-provider';\nimport { ThankYouPageComponent } from './thank-you-page/thank-you-page.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ChartModule } from 'angular-highcharts';\nimport { AppComponent } from './app.component';\nimport { RouterModule, Routes } from '@angular/router';\nimport { VotePageComponent } from './vote-page/vote-page.component';\nimport { HttpModule } from '@angular/http';\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\nimport { Engine } from './providers/votes-services/engine';\nimport { ReasonsDisplayer } from './providers/reasons-displayer';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ModalCommentPage } from './modal-comment/modal-comment';\nimport { ModalThanks } from './modal-thanks/modal-thanks';\nimport { ModalReasonsPage } from './modal-reasons/modal-reasons';\nimport { FormsModule } from '@angular/forms';\nimport { ReasonsPage } from './reason/reasons';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { ModalCampaign } from './modal-campaign/modal-campaign';\nimport { CampaignDisplayer } from './providers/campaign-displayer';\nimport { NgxIndexedDBModule } from 'ngx-indexed-db';\nimport { dbConfig } from './providers/db.config';\nimport { IdbService } from './providers/idb.service';\nimport { ModalOptionsService } from './providers/helpers/modal-options.service';\nimport { HeaderComponent } from './header/header.component';\nimport { SettingsService } from './providers/settings.service';\n\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\n}\n\nconst appRoutes: Routes = [{\n path: '',\n children: [{\n path: ':vsfdName',\n component: VotePageComponent,\n }, {\n path: ':vsfdName/:campaign_id/:recipient_id',\n component: VotePageComponent,\n }, {\n path: ':strategy/:vsfd',\n component: VotePageComponent\n }\n ]\n}, {\n path: 'thanks',\n component: ThankYouPageComponent,\n}\n];\n@NgModule({\n\n entryComponents: [\n ModalCommentPage,\n ModalThanks,\n ModalReasonsPage,\n ModalContactComponent,\n ModalCampaign\n ],\n declarations: [\n AppComponent,\n VotePageComponent,\n ThankYouPageComponent,\n ModalCommentPage,\n ModalThanks,\n ModalReasonsPage,\n ModalContactComponent,\n ReasonsPage,\n ModalCampaign,\n HeaderComponent\n ],\n imports: [\n ChartModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n }),\n RouterModule.forRoot(\n appRoutes,\n { enableTracing: false } // <-- log all routing event here.\n ),\n BrowserModule,\n HttpClientModule,\n HttpModule,\n NgbModule,\n FormsModule,\n NgxIndexedDBModule.forRoot(dbConfig),\n ],\n providers: [\n FBNHttpProvider,\n Engine,\n VotesManager,\n ReasonsDisplayer,\n ThanksDisplayer,\n CommentDisplayer,\n ContactDisplayer,\n FBNLanguageService,\n CampaignDisplayer,\n IdbService,\n FBNLanguageService,\n LoaderService,\n VotesStatsService,\n ImageHelperService,\n ModalOptionsService,\n SettingsService\n ],\n bootstrap: [\n AppComponent\n ]\n})\nexport class AppModule { }\n","module.exports = \".header-row {\\n height: 55px;\\n}\\n\\n.flags-container {\\n z-index: 200;\\n}\\n\\n.flag-country {\\n font-family: Lato, Helvetica, sans-serif !important;\\n font-weight: normal;\\n font-stretch: normal;\\n font-style: normal;\\n padding-bottom: 1px;\\n line-height: 1.8;\\n letter-spacing: normal;\\n text-align: center;\\n border-radius: 28px;\\n border: solid 2.5px #125b85;\\n}\\n\\nion-item.selected {\\n background: #ccc;\\n}\\n\\nion-item:hover {\\n background: #aaa;\\n}\\n\\n.flag-container {\\n width: 60px;\\n height: 32px;\\n margin-right: 8px;\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.flag-container div {\\n color: #125b85;\\n background-color: #ffffff;\\n}\\n\\n.flag-container div:hover {\\n cursor: pointer;\\n}\\n\\n.flag-container.selected div {\\n color: #ffffff;\\n background-color: #125b85;\\n}\\n\\n.flag-container.last {\\n margin-right: 15px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90ZWJ0L3Byb2plY3RzL2ZlZWRiYWNrbm93L2Zibi12c2ItYW5ndWxhci9zcmMvYXBwL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxZQUFBO0FDREY7O0FESUE7RUFDRSxZQUFBO0FDREY7O0FESUE7RUFDRSxtREFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSwyQkFBQTtBQ0RGOztBREtFO0VBQ0UsZ0JBQUE7QUNGSjs7QURJRTtFQUNFLGdCQUFBO0FDRko7O0FETUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ0hGOztBREtFO0VBQ0UsY0FBQTtFQUNBLHlCQUFBO0FDSEo7O0FES0U7RUFDRSxlQUFBO0FDSEo7O0FETUU7RUFDRSxjQUFBO0VBQ0EseUJBQUE7QUNKSjs7QURPRTtFQUNFLGtCQUFBO0FDTEoiLCJmaWxlIjoic3JjL2FwcC9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJHJhZGl1czogNTAlO1xuXG4uaGVhZGVyLXJvdyB7XG4gIGhlaWdodDogNTVweDtcbn1cblxuLmZsYWdzLWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDIwMDtcbn1cblxuLmZsYWctY291bnRyeSB7XG4gIGZvbnQtZmFtaWx5OiBMYXRvLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xuICBsaW5lLWhlaWdodDogMS44O1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI4cHg7XG4gIGJvcmRlcjogc29saWQgMi41cHggIzEyNWI4NTtcbn1cblxuaW9uLWl0ZW0ge1xuICAmLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICB9XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNhYWE7XG4gIH1cbn1cblxuLmZsYWctY29udGFpbmVyIHtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGRpdiB7XG4gICAgY29sb3I6ICMxMjViODU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgfVxuICBkaXY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICYuc2VsZWN0ZWQgZGl2IHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI1Yjg1O1xuICB9XG5cbiAgJi5sYXN0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIH1cbn1cbiIsIi5oZWFkZXItcm93IHtcbiAgaGVpZ2h0OiA1NXB4O1xufVxuXG4uZmxhZ3MtY29udGFpbmVyIHtcbiAgei1pbmRleDogMjAwO1xufVxuXG4uZmxhZy1jb3VudHJ5IHtcbiAgZm9udC1mYW1pbHk6IExhdG8sIEhlbHZldGljYSwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xuICBsaW5lLWhlaWdodDogMS44O1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI4cHg7XG4gIGJvcmRlcjogc29saWQgMi41cHggIzEyNWI4NTtcbn1cblxuaW9uLWl0ZW0uc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xufVxuaW9uLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjYWFhO1xufVxuXG4uZmxhZy1jb250YWluZXIge1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZmxhZy1jb250YWluZXIgZGl2IHtcbiAgY29sb3I6ICMxMjViODU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4uZmxhZy1jb250YWluZXIgZGl2OmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmZsYWctY29udGFpbmVyLnNlbGVjdGVkIGRpdiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI1Yjg1O1xufVxuLmZsYWctY29udGFpbmVyLmxhc3Qge1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59Il19 */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Lang } from '../models/lang';\nimport { Config } from '../models/config-model';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n public langs: Array;\n public currentLang: string;\n\n @Input()\n set config(config: Config) {\n if (config && config.languagesAvailable && config.languagesAvailable.length) {\n this.langs = config.languagesAvailable.slice();\n }\n }\n\n public constructor(\n public translateService: TranslateService,\n ) {\n this.langs = [];\n }\n\n ngOnInit() {\n this.setLang();\n this.translateService.onLangChange.subscribe(event => {\n this.setLang();\n });\n\n }\n\n select(code: string) {\n this.translateService.use(code);\n }\n\n private setLang() {\n this.currentLang = this.translateService.currentLang;\n }\n\n public getBackground(code) {\n return 'url(\"../../assets/img/flat-flags/' + code + '.png\")';\n }\n}\n","module.exports = \".message {\\n font-size: 1.5rem;\\n padding: 2rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90ZWJ0L3Byb2plY3RzL2ZlZWRiYWNrbm93L2Zibi12c2ItYW5ndWxhci9zcmMvYXBwL21vZGFsLWNhbXBhaWduL21vZGFsLWNhbXBhaWduLnNjc3MiLCJzcmMvYXBwL21vZGFsLWNhbXBhaWduL21vZGFsLWNhbXBhaWduLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtFQUNBLGFBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL21vZGFsLWNhbXBhaWduL21vZGFsLWNhbXBhaWduLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWVzc2FnZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgcGFkZGluZzogMnJlbTtcbn0iLCIubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBwYWRkaW5nOiAycmVtO1xufSJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { FBNHttpProvider } from '../providers/fbn-http-provider';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-modal-campaign',\n templateUrl: './modal-campaign.html',\n styleUrls: ['./modal-campaign.scss']\n})\nexport class ModalCampaign implements OnInit {\n\n @Input() campaign_id: string;\n @Input() recipient_id: string;\n\n isLoading: boolean;\n granted: boolean;\n message: string;\n isWarning: boolean;\n\n constructor(\n private http: FBNHttpProvider,\n public activeModal: NgbActiveModal\n ) {\n this.isLoading = false;\n }\n\n ngOnInit() {\n this.isLoading = true;\n if (this.campaign_id && this.recipient_id) {\n this.http.post('check-campaign', {\n campaign_id: this.campaign_id,\n recipient_id: this.recipient_id\n }).subscribe(response => {\n const result = response.json().message;\n this.granted = result.granted;\n\n if (result.granted) {\n this.activeModal.dismiss();\n } else {\n if (result.alreadyVoted) {\n this.message = 'You have already voted!';\n this.isWarning = true;\n } else {\n this.message = \"Error with your campaign informations\";\n this.isWarning = false;\n }\n }\n this.isLoading = false;\n });\n }\n }\n\n}\n","module.exports = \"label {\\n margin: 0;\\n}\\n\\n#small-title {\\n margin: 16px 0px 0px 0px;\\n text-align: center;\\n font-size: 0.8125rem;\\n}\\n\\n#big-title {\\n margin: 0px 0px 16px 0px;\\n font-size: 1.5625rem;\\n text-align: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90ZWJ0L3Byb2plY3RzL2ZlZWRiYWNrbm93L2Zibi12c2ItYW5ndWxhci9zcmMvYXBwL21vZGFsLWNvbW1lbnQvbW9kYWwtY29tbWVudC5zY3NzIiwic3JjL2FwcC9tb2RhbC1jb21tZW50L21vZGFsLWNvbW1lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFNBQUE7QUNDRjs7QURFQTtFQUNFLHdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtBQ0NGOztBREVBO0VBQ0Usd0JBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9tb2RhbC1jb21tZW50L21vZGFsLWNvbW1lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImxhYmVse1xuICBtYXJnaW46IDA7XG59XG5cbiNzbWFsbC10aXRsZXtcbiAgbWFyZ2luOiAxNnB4IDBweCAwcHggMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xufVxuXG4jYmlnLXRpdGxle1xuICBtYXJnaW46IDBweCAwcHggMTZweCAwcHg7XG4gIGZvbnQtc2l6ZTogMS41NjI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCJsYWJlbCB7XG4gIG1hcmdpbjogMDtcbn1cblxuI3NtYWxsLXRpdGxlIHtcbiAgbWFyZ2luOiAxNnB4IDBweCAwcHggMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xufVxuXG4jYmlnLXRpdGxlIHtcbiAgbWFyZ2luOiAwcHggMHB4IDE2cHggMHB4O1xuICBmb250LXNpemU6IDEuNTYyNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufSJdfQ== */\"","import { Component, ViewChild, Input, OnInit } from '@angular/core';\nimport { Subscription, timer } from 'rxjs';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { QuestionSFD } from '../models/question-sfd';\nimport { SettingsService } from '../providers/settings.service';\n\n@Component({\n selector: 'modal-comment',\n templateUrl: 'modal-comment.html',\n styleUrls: ['./modal-comment.scss']\n})\nexport class ModalCommentPage implements OnInit {\n @Input() question: QuestionSFD;\n\n public comment: string;\n public showSubmitButton: boolean;\n public questionText: string;\n public textAbove: string;\n public textUnder: string;\n\n private timer: Subscription;\n\n @ViewChild('textcomment', { static: false }) textarea;\n\n constructor(\n public activeModal: NgbActiveModal,\n private settings: SettingsService\n ) {\n this.comment = '';\n this.showSubmitButton = true;\n this.timer = null;\n this.textAbove = '';\n this.textUnder = '';\n\n this.initTimer();\n }\n\n initTimer() {\n if (this.timer) {\n this.timer.unsubscribe();\n }\n this.timer = timer(this.settings.config.inactivityTimeOut * 1000).subscribe(() => {\n this.dismiss();\n });\n }\n\n ngOnInit() {\n const text = this.question.getCurrentText();\n this.questionText = text;\n if (this.settings.config.minCommentLength > 0) {\n this.showSubmitButton = false;\n }\n }\n\n dismiss() {\n const comment = this.comment.length >= this.settings.config.minCommentLength ? this.comment : '';\n let data = {\n comment: comment\n };\n this.activeModal.dismiss(data);\n }\n\n keyPressed() {\n if (this.comment.length >= this.settings.config.minCommentLength) {\n this.showSubmitButton = true;\n } else {\n this.showSubmitButton = false;\n }\n this.initTimer();\n }\n\n buttonClicked() {\n this.dismiss();\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZGFsLWNvbnRhY3QvbW9kYWwtY29udGFjdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subscription, timer } from 'rxjs';\nimport { SettingsService } from '../providers/settings.service';\n\n@Component({\n selector: 'app-modal-contact',\n templateUrl: './modal-contact.component.html',\n styleUrls: ['./modal-contact.component.scss']\n})\nexport class ModalContactComponent implements OnInit {\n\n\n public contact: string;\n public showSubmitButton: boolean;\n public questionText: string;\n\n private timer: Subscription;\n\n constructor(\n public activeModal: NgbActiveModal,\n public settings: SettingsService\n ) {\n this.contact = '';\n this.showSubmitButton = false;\n this.timer = null;\n\n this.initTimer();\n }\n\n initTimer() {\n if (this.timer) {\n this.timer.unsubscribe();\n }\n this.timer = timer(this.settings.config.inactivityTimeOut * 1000).subscribe(() => {\n this.dismiss();\n });\n }\n\n ngOnInit() { }\n\n dismiss() {\n let data = {\n contact: this.contact\n };\n this.activeModal.dismiss(data);\n }\n\n keyPressed() {\n const regexp = new RegExp(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/);\n if (regexp.test(this.contact)) {\n this.showSubmitButton = true;\n } else {\n this.showSubmitButton = false;\n }\n this.initTimer();\n }\n\n buttonClicked() {\n this.dismiss();\n }\n\n}\n","import { Reason } from './../models/reason';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { Subscription, timer } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { SettingsService } from '../providers/settings.service';\n\n@Component({\n selector: 'modal-reasons',\n templateUrl: 'modal-reasons.html'\n})\nexport class ModalReasonsPage implements OnInit {\n\n @Input() reasons: Array;\n @Input() color: string;\n\n private timer: Subscription;\n private reason: Reason;\n\n constructor(\n public translate: TranslateService,\n public activeModal: NgbActiveModal,\n public settings: SettingsService\n ) {\n this.timer = null;\n this.reason = null;\n this.initTimer();\n }\n\n ngOnInit() {\n this.translate.onLangChange.subscribe(() => {\n if (this.reasons && this.reasons.length) {\n this.reasons.forEach(r => r.translate(this.translate.currentLang));\n }\n });\n }\n initTimer() {\n if (this.timer) {\n this.timer.unsubscribe();\n }\n this.timer = timer(this.settings.config.inactivityTimeOut * 1000).subscribe(() => {\n this.dismiss();\n });\n }\n\n reasonSelected(reason: Reason) {\n this.reason = reason;\n this.dismiss();\n }\n\n dismiss() {\n let data = {\n reason: this.reason\n };\n this.activeModal.dismiss(data);\n }\n}\n","module.exports = \".label-container {\\n font-size: 1.6rem;\\n text-align: center;\\n font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90ZWJ0L3Byb2plY3RzL2ZlZWRiYWNrbm93L2Zibi12c2ItYW5ndWxhci9zcmMvYXBwL21vZGFsLXRoYW5rcy9tb2RhbC10aGFua3Muc2NzcyIsInNyYy9hcHAvbW9kYWwtdGhhbmtzL21vZGFsLXRoYW5rcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC9tb2RhbC10aGFua3MvbW9kYWwtdGhhbmtzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubGFiZWwtY29udGFpbmVye1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn0iLCIubGFiZWwtY29udGFpbmVyIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59Il19 */\"","import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'modal-thanks',\n templateUrl: 'modal-thanks.html',\n styleUrls: ['./modal-thanks.scss']\n})\nexport class ModalThanks{\n\n public text: string;\n public logo: string;\n public displaySmiley: boolean;\n public colorSmiley: string;\n\n public constructor(\n private activeModal: NgbActiveModal\n ) { }\n}","import { Vote } from './votes';\nimport { QuestionSFD } from './question-sfd';\nimport { Reason } from './reason';\nexport class Choice {\n public color: string;\n public questionText: string;\n \n public set reason(value: Reason) {\n if (value) {\n this._reason = Reason.copy(value);\n }\n }\n\n public get reason(): Reason {\n return this._reason;\n }\n private _reason: Reason;\n public comment: string;\n\n public set question (value: QuestionSFD) {\n if (value) {\n this.questionText = value.getCurrentText();\n }\n }\n\n public constructor(color = \"\", question: QuestionSFD = null) {\n this.color = color;\n this.question = question;\n this.reason = null;\n this.comment = \"\";\n }\n\n public toVote(sfdName: string) {\n const vote = new Vote(this.color, this.comment, sfdName);\n vote.questionText = this.questionText;\n vote.addReason(this.reason);\n return vote;\n }\n\n public static copy(choice: Choice) {\n const result = new Choice(choice.color);\n result.questionText = choice.questionText;\n result.reason = choice.reason;\n result.comment = choice.comment;\n return result;\n }\n\n public hasReason() {\n return this.reason !== null && this.reason !== undefined;\n }\n}","import { StatsSettings } from './stats-model';\nimport { SmileyColor } from './smiley-color';\nimport { SmileyImage } from './smiley-image';\nimport { Lang } from './lang';\nexport class Config {\n public ID: number;\n public sfdName: string;\n public mobileUrl: string;\n public contact: string;\n public design: number;\n public commentPolicy: string;\n public contactPolicy: string;\n public monthlyFees: number;\n public qrCode: string;\n public scenario: string;\n public reasonEnabled: boolean;\n public smileys: Array;\n public blockingTime: number;\n public textThankYou: string;\n public ipBlocked: boolean;\n public browserBlocking: number;\n public dateUpdate: string;\n public showStatEnabled: boolean;\n public statsSettings: StatsSettings;\n public level4: string;\n public level3: string;\n public level2: string;\n public level1: string;\n public languagesAvailable: Array;\n public minCommentLength: number;\n public thankYouEnabled: boolean;\n public inactivityTimeOut: number;\n public commentInstructions: string;\n public commentPrompt: string;\n\n private _clientLogo: string;\n\n public get clientLogo(): string {\n return this._clientLogo;\n }\n\n public set clientLogo(value: string) {\n if (value) {\n this._clientLogo = (value ? \"data:image/png;base64,\" + value : \"\");\n }\n }\n\n public get levelName() {\n return [\n this.level4,\n this.level3,\n this.level2,\n this.level1\n ].filter(level => level.length > 0).join(' - ');\n }\n public constructor(\n ID = 0,\n SFDName = \"\",\n level4 = \"\",\n level3 = \"\",\n level2 = \"\",\n level1 = \"\",\n mobileUrl = \"\",\n contact = \"\",\n design = 1,\n commentPolicy = '000',\n contactPolicy = '000',\n monthlyFees = 0,\n clientLogo = \"\",\n qrCode = \"\",\n scenario = \"\",\n reasonEnabled = false,\n button1Image = \"\",\n button2Image = \"\",\n button3Image = \"\",\n blockingTime = 0,\n textThankYou = \"\",\n blocked = false,\n browserBlocking = 0,\n dateUpdate = \"\",\n statsSettingsJSON = null,\n showStatEnabled = false,\n minCommentLength = 0,\n textThankYouEnabled = false,\n inactivityTimeout = 8,\n commentInstructions = '',\n commentPrompt = '',\n ) {\n this.ID = ID;\n this.sfdName = SFDName;\n this.mobileUrl = mobileUrl;\n this.contact = contact;\n this.design = design;\n this.contactPolicy = contactPolicy;\n this.commentPolicy = commentPolicy;\n this.monthlyFees = monthlyFees;\n this.clientLogo = clientLogo;\n this.qrCode = qrCode;\n this.scenario = scenario;\n this.reasonEnabled = reasonEnabled;\n this.blockingTime = blockingTime;\n this.textThankYou = textThankYou;\n this.minCommentLength = minCommentLength;\n this.inactivityTimeOut = inactivityTimeout;\n\n let smileyImage1 = new SmileyImage(false, button1Image, \"\", SmileyColor.GREEN);\n let smileyImage2 = new SmileyImage(false, button2Image, \"\", SmileyColor.YELLOW);\n let smileyImage3 = new SmileyImage(false, button3Image, \"\", SmileyColor.RED);\n\n this.smileys = new Array();\n\n this.smileys.push(smileyImage1);\n this.smileys.push(smileyImage2);\n this.smileys.push(smileyImage3);\n this.ipBlocked = blocked;\n this.browserBlocking = browserBlocking;\n this.dateUpdate = dateUpdate;\n this.showStatEnabled = showStatEnabled;\n this.thankYouEnabled = textThankYouEnabled;\n\n this.statsSettings = StatsSettings.createFromJSON(statsSettingsJSON);\n\n this.level4 = level4;\n this.level3 = level3;\n this.level2 = level2;\n this.level1 = level1;\n\n this.commentInstructions = commentInstructions;\n this.commentPrompt = commentPrompt;\n }\n\n public static createFromJSON(json: any) {\n let result = null;\n if (json && !('length' in json)) {\n if ('vsfd_Button1_image' in json) {\n json = this.convertJSONFromServer(json);\n }\n if (typeof json !== 'object') {\n json = JSON.parse(json);\n }\n\n const blockingTime = +json.blockingTime.split(\" \")[0];\n const splittedBlockingTime = json.blockingTime.split(\" \");\n let time = +splittedBlockingTime[0];\n const unitTime = splittedBlockingTime[1];\n\n if (unitTime == \"minutes\") {\n time *= 60;\n } else if (unitTime == \"hours\") {\n time *= 3600;\n }\n\n result = new Config(\n json.ID,\n json.SFDName,\n json.level4,\n json.level3,\n json.level2,\n json.level1,\n json.mobileUrl,\n json.contact,\n json.design,\n json.commentPolicy,\n json.contactPolicy,\n json.monthlyFees,\n json.clientLogo,\n json.qrCode,\n json.scenario,\n json.reasonEnabled,\n json.button1Image,\n json.button2Image,\n json.button3Image,\n time,\n json.textThankYou,\n json.isBlocked,\n json.browserBlocking,\n json.dateUpdate,\n json.statsSettings,\n json.statsEnabled !== 0,\n json.minCommentLength,\n json.textThankYouEnabled,\n json.inactivityTimeOut,\n json.commentInstructions,\n json.commentPrompt\n );\n }\n return result;\n }\n\n public static convertJSONFromServer(json: any) {\n return {\n ID: json.ID,\n SFDName: json.SFDName,\n mobileUrl: json.vsfd_MobileURL,\n contact: json.vsfd_Contact,\n design: json.vsfd_Design,\n commentPolicy: json.vsfd_CommentPolicy,\n contactPolicy: json.vsfd_ContactPolicy,\n monthlyFees: json.vsfd_MonthlyFees,\n clientLogo: json.vsfd_ClientLogo,\n qrCode: json.vsfd_QRCode,\n scenario: json.vsfd_QuestionScenario,\n reasonEnabled: json.vsfd_ReasonEnable,\n button1Image: json.vsfd_Button1_image,\n button2Image: json.vsfd_Button2_image,\n button3Image: json.vsfd_Button3_image,\n blockingTime: json.BlockingTime,\n textThankYou: json.vsfd_TextThankYou,\n isBlocked: json.isBlocked,\n browserBlocking: json.browserBlocking,\n dateUpdate: json.DateUpdate,\n statsSettings: StatsSettings.createJSONFromServer(json.statsSettings),\n statsEnabled: json.vsfd_TextThankYou_showstat_enable,\n level4: json.ClientGroupe,\n level3: json.ClientCompanyName,\n level2: json.ClientStoreName,\n level1: json.ClientStoreLocationName,\n minCommentLength: json.vsfd_CommentMinLength,\n textThankYouEnabled: json.vsfd_TextThankYou_enable !== 0,\n inactivityTimeOut: json.inactivityTimeout,\n commentInstructions: json.commentInstructions,\n commentPrompt: json.commentPrompt\n };\n }\n}\n\nexport class QuestionScenario {\n public static readonly SINGLE = '1 sb';\n public static readonly RANDOM = 'Random';\n public static readonly SERIE = 'Serie';\n public static readonly TREE = 'Tree';\n}\n","export class IndexFactory {\n private static internalId = 0;\n public static getId() {\n this.internalId++;\n return this.internalId;\n }\n}","export class Lang{\n public name: string;\n public code: string;\n public codeCss: string; // to display correct class\n\n public constructor(name: string, code: string, codeCss: string = \"\") {\n this.name = name;\n this.code = code;\n if (codeCss.length === 0) {\n this.codeCss = code;\n } else {\n this.codeCss = codeCss\n }\n }\n}","export abstract class Parent {\n public id: number;\n}\n","import { QuestionScenario } from './../config-model';\nimport { Choice } from './../choice';\nimport { QuestionSFD } from '../question-sfd';\nimport { ScenarioHandler } from \"./scenario-handler\";\n\nexport class RandomHandler extends ScenarioHandler{\n\n private questions: Array;\n private currentQuestionIndex;\n\n needDisplayReason() {\n return true;\n }\n\n needTimeout() {\n return true;\n }\n\n hasNextQuestion(choice: Choice = null): boolean {\n let result = false;\n\n // add one to take in account question sfd as the first of series (without array)\n if (this.currentQuestionIndex < this.questions.length) {\n result = true;\n } else {\n ScenarioHandler.totalSeriesScenario = this.questions.length\n ScenarioHandler.currentQuestionIndex = this.currentQuestionIndex;\n }\n return result;\n }\n\n init() {\n let questions = this.question.series.map(serie => QuestionSFD.createFromQuestionSerie(serie));\n questions.unshift(QuestionSFD.copy(this.question));\n this.questions = this.shuffle(questions);\n this.currentQuestionIndex = 0;\n }\n\n public getScenario() {\n return QuestionScenario.RANDOM;\n }\n\n public defineQuestion() {\n let result: QuestionSFD = null;\n if (this.questions && this.questions.length) {\n if (this.currentQuestionIndex < this.questions.length) {\n result = this.questions[this.currentQuestionIndex];\n }\n ScenarioHandler.currentQuestionIndex = this.currentQuestionIndex;\n this.currentQuestionIndex++;\n }\n this.currentQuestion = result;\n return result;\n }\n\n private shuffle(array) {\n let currentIndex = array.length, temporaryValue, randomIndex;\n\n // While there remain elements to shuffle...\n while (0 !== currentIndex) {\n\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex --;\n\n // And swap it with the current element.\n temporaryValue = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = temporaryValue;\n }\n\n return array;\n }\n}\n","import { TreeHandler } from './tree-handler';\nimport { SerieHandler } from './serie-handler';\nimport { RandomHandler } from './random-handler';\nimport { SingleHandler } from './single-handler';\nimport { QuestionSFD } from '../question-sfd';\n\nexport class ScenarioHandlerFactory{\n public static create(questionSFD: QuestionSFD = null) {\n return new SingleHandler(new RandomHandler(new SerieHandler(new TreeHandler()))).setQuestion(QuestionSFD.copy(questionSFD));\n }\n}","import { Choice } from './../choice';\nimport { SmileyColor } from './../smiley-color';\nimport { Subject } from 'rxjs';\nimport { QuestionSFD } from './../question-sfd';\n\nexport abstract class ScenarioHandler{\n\n static set currentQuestionIndex(value: number) {\n ScenarioHandler._currentQuestionIndex = value;\n this.emitChangeValues();\n }\n static get currentQuestionIndex() {\n return ScenarioHandler._currentQuestionIndex;\n }\n\n static set totalSeriesScenario(value: number) {\n ScenarioHandler._totalSeriesScenario = value;\n this.emitChangeValues();\n }\n\n static get totalSeriesScenario() {\n return ScenarioHandler._totalSeriesScenario;\n }\n\n private static emitChangeValues() {\n ScenarioHandler.propertiesSubject.next({index: ScenarioHandler.currentQuestionIndex, total: ScenarioHandler.totalSeriesScenario});\n }\n\n static subscribeChanges() {\n return ScenarioHandler.propertiesSubject;\n }\n\n private static _currentQuestionIndex = 0;\n private static _totalSeriesScenario = 0;\n private static propertiesSubject: Subject = new Subject();\n\n public next: ScenarioHandler;\n\n protected question: QuestionSFD = null;\n protected color: number;\n protected currentQuestion: QuestionSFD;\n\n abstract defineQuestion(): QuestionSFD;\n abstract getScenario(): string;\n\n public getReasons(color: string) {\n return this.currentQuestion.reasons.filter(r => color === SmileyColor.getColor(r.sfdButton - 1));\n }\n\n constructor(next: ScenarioHandler = null) {\n this.next = next;\n this.color = 0;\n this.question = null;\n }\n\n public hasNext() {\n return this.next !== null && this.next !== undefined;\n }\n\n needDisplayReason() {\n return false;\n }\n\n needTimeout(): boolean {\n return false;\n }\n\n hasNextQuestion(choice: Choice = null): boolean {\n return false;\n }\n\n init() { }\n\n public getHandler(scenario: string): ScenarioHandler {\n let result = null;\n if (this.getScenario() === scenario) {\n result = this;\n } else if (this.hasNext()) {\n this.next.setQuestion(this.question);\n result = this.next.getHandler(scenario);\n }\n return result;\n }\n\n public setColor(color: string) {\n this.color = SmileyColor.getIndex(color) + 1;\n }\n\n public setQuestion(question: QuestionSFD) {\n this.question = question;\n return this;\n }\n\n public setConfigScenario(scenario: string) {\n return this;\n }\n}\n","import { Choice } from './../choice';\nimport { QuestionSFD } from './../question-sfd';\nimport { QuestionScenario } from './../../models/config-model';\nimport { ScenarioHandler } from \"./scenario-handler\";\nimport { QuestionSerie } from '../question-serie';\n\nexport class SerieHandler extends ScenarioHandler{\n private currentQuestionIndex;\n\n constructor(next: ScenarioHandler) {\n super(next);\n this.currentQuestionIndex = 0;\n }\n\n needDisplayReason() {\n return true;\n }\n\n needTimeout() {\n return true;\n }\n\n hasNextQuestion(choice: Choice = null) {\n let result = false;\n\n // add one to take in account question sfd as the first of series (without array)\n let lengthSerie = this.getSeries(this.question).length + 1;\n if (this.currentQuestionIndex < lengthSerie) {\n result = true;\n } else {\n ScenarioHandler.totalSeriesScenario = lengthSerie;\n ScenarioHandler.currentQuestionIndex = this.currentQuestionIndex;\n }\n // console.log('serie handler hasNextQuestion', result);\n return result;\n }\n\n getScenario() {\n return QuestionScenario.SERIE;\n }\n\n defineQuestion() {\n let result: QuestionSFD = null;\n const series = this.getSeries(this.question);\n const lengthSeries = series.length + 1;\n if (series && series.length) {\n if (this.currentQuestionIndex == 0) {\n result = QuestionSFD.copy(this.question);\n } else if (this.currentQuestionIndex < lengthSeries) {\n result = QuestionSFD.createFromQuestionSerie(series[this.currentQuestionIndex - 1]);\n }\n ScenarioHandler.currentQuestionIndex = this.currentQuestionIndex;\n this.currentQuestionIndex++;\n } else if (!series || !series.length) {\n result = QuestionSFD.copy(this.question);\n }\n\n ScenarioHandler.totalSeriesScenario = series.length;\n this.currentQuestion = result;\n return result;\n }\n\n private getSeries(question: QuestionSFD): Array {\n let result = [];\n if (question.series && question.series.length) {\n result = question.series.sort((a, b) => a.orderNumber - b.orderNumber);\n }\n return result;\n }\n}\n","import { SmileyColor } from './../smiley-color';\nimport { QuestionSFD } from '../question-sfd';\nimport { QuestionScenario } from '../config-model';\nimport { ScenarioHandler } from \"./scenario-handler\";\n\nexport class SingleHandler extends ScenarioHandler {\n\n needDisplayReason() {\n return true;\n }\n\n getScenario() {\n return QuestionScenario.SINGLE;\n }\n\n defineQuestion() {\n return QuestionSFD.copy(this.question);\n }\n\n public getReasons(color: string) {\n return this.question.reasons\n .filter(r => color === SmileyColor.getColor(r.sfdButton - 1))\n .sort((a, b) => a.reasonOrder - b.reasonOrder);\n }\n}\n","import { SmileyColor } from './../smiley-color';\nimport { Choice } from './../choice';\nimport { QuestionSFD } from '../question-sfd';\nimport { QuestionScenario } from '../config-model';\nimport { ScenarioHandler } from \"./scenario-handler\";\n\nexport class TreeHandler extends ScenarioHandler{\n\n private currentLevel: number;\n private nextQuestion: QuestionSFD;\n\n constructor(next: ScenarioHandler = null) {\n super(next);\n this.currentLevel = 1;\n this.nextQuestion = null;\n }\n\n needTimeout() {\n return true;\n }\n\n needDisplayReason() {\n return true;\n }\n\n hasNextQuestion(choice: Choice = null) {\n return this.findNext(choice) !== null;\n }\n\n getScenario() {\n return QuestionScenario.TREE;\n }\n\n defineQuestion() {\n let question = this.nextQuestion;\n if (!question) {\n // for the first case where nextQuestion is not computed, the current level must be equals to 1\n question = QuestionSFD.copy(this.question);\n } else {\n this.currentLevel ++;\n }\n this.currentQuestion = question;\n return question;\n }\n\n getReasons(color: string) {\n const result = this.currentQuestion.reasons.filter(reason => reason.sfdButton === (SmileyColor.getIndex(color) + 1));\n return result;\n }\n\n // find next question to display according to last choice made by the users\n private findNext(choice: Choice = null) {\n let result: QuestionSFD = null;\n if (!choice) {\n result = QuestionSFD.copy(this.question);\n } else {\n let serie = null;\n if (choice.hasReason() && this.currentLevel > 1) {\n const idReason = choice.reason.id;\n serie = this.question.series.find(serie => serie.previousNo === idReason);\n } else if (this.currentLevel > 1){\n serie = this.question.series.find(serie => serie.previousColor === (SmileyColor.getIndex(choice.color) + 1) && serie.previousNo === this.currentQuestion.id);\n } else {\n serie = this.question.series.find(serie => serie.previousColor === (SmileyColor.getIndex(choice.color) + 1) && serie.previousNo === null);\n }\n if (serie) {\n result = QuestionSFD.createFromQuestionSerie(serie);\n }\n }\n\n this.nextQuestion = result;\n return result;\n }\n}\n","import { Reason } from './reason';\nexport class QuestionSerie{\n public dateUpdate: Date;\n public id: number;\n public idQuestion: number;\n public levelNumber: number;\n public orderNumber: number;\n public previousColor: number;\n public previousNo: number;\n public previousRandom: string;\n public questionDate: Date;\n public language1: string;\n public text1: string;\n public language2: string;\n public text2: string;\n public language3: string;\n public text3: string;\n public language4: string;\n public text4: string;\n public language5: string;\n public text5: string;\n public questionNo: number;\n public isQuestion: boolean;\n public isReason: boolean;\n public reasons: Array;\n public image: string;\n public showComment: boolean;\n public commentTitle: string;\n public commentSubtitle: string;\n\n public constructor(\n dateUpdate = new Date(),\n id = -1,\n idQuestion = -1,\n levelNumber = -1,\n orderNumber = 0,\n previousColor = 0,\n previousNo = 0,\n previousRandom = \"\",\n questionDate = new Date(),\n language1 = \"\",\n text1 = \"\",\n language2 = \"\",\n text2 = \"\",\n language3 = \"\",\n text3 = \"\",\n questionNo = 0,\n isQuestion = false,\n isReason = false,\n image = \"\",\n showComment = false,\n commentTitle = '',\n commentSubtitle = ''\n ) {\n this.dateUpdate = dateUpdate;\n this.id = id;\n this.idQuestion = idQuestion;\n this.levelNumber = levelNumber;\n this.orderNumber = orderNumber;\n this.previousColor = previousColor;\n this.previousNo = previousNo;\n this.previousRandom = previousRandom\n this.questionDate = questionDate;\n this.language1 = language1;\n this.text1 = text1;\n this.language2 = language2;\n this.text2 = text2;\n this.language3 = language3;\n this.text3 = text3;\n this.questionNo = questionNo;\n this.isQuestion = isQuestion;\n this.isReason = isReason;\n this.image = image;\n this.reasons = [];\n this.showComment = showComment;\n this.language4 = \"\";\n this.language5 = \"\";\n this.text4 = \"\";\n this.text5 = \"\";\n this.commentTitle = commentTitle;\n this.commentSubtitle = commentSubtitle;\n }\n\n public static createFromJson(json: any) {\n const result = new QuestionSerie(\n json.DateUpdate,\n json.ID,\n json.ID_Question,\n json.LevelNumber,\n json.OrderNumber,\n json.Previous_Color,\n json.Previous_No,\n json.Previous_Random,\n json.QuestionDate,\n json.QuestionReason1Language,\n json.QuestionReason1Text,\n json.QuestionReason2Language,\n json.QuestionReason2Text,\n json.QuestionReason3Language,\n json.QuestionReason3Text,\n json.Question_No,\n false,\n false,\n json.QuestionReasonImage,\n json.ShowComment !== 0,\n json.commentPrompt,\n json.commentInstructions\n );\n\n if (json.LevelQuestionOrReason == \"R\") {\n result.isReason = true;\n } else if (json.LevelQuestionOrReason == \"Q\") {\n result.isQuestion = true;\n }\n\n return result;\n }\n\n public static copy(serie: QuestionSerie) {\n const result = new QuestionSerie(\n serie.dateUpdate,\n serie.id,\n serie.idQuestion,\n serie.levelNumber,\n serie.orderNumber,\n serie.previousColor,\n serie.previousNo,\n serie.previousRandom,\n serie.questionDate,\n serie.language1,\n serie.text1,\n serie.language2,\n serie.text2,\n serie.language3,\n serie.text3,\n serie.questionNo,\n serie.isQuestion,\n serie.isReason,\n serie.image,\n serie.showComment,\n serie.commentTitle,\n serie.commentSubtitle\n );\n result.language4 = serie.language4;\n result.text4 = serie.text4;\n result.language5 = serie.language5;\n result.text5 = serie.text5;\n result.reasons = Reason.copyList(serie.reasons);\n return result;\n }\n\n public static copyList(list: Array) {\n return list.map(serie => QuestionSerie.copy(serie));\n }\n\n public static createFromJsonList(jsonList: Array): Array {\n const result = this.mapReasonsWithQuestion(jsonList.map(json => this.createFromJson(json)));\n return result;\n }\n\n public static mapReasonsWithQuestion(series: Array) {\n const result = series.filter(serie => serie.isQuestion);\n const reasons = series.filter(serie => serie.isReason); // convert to reason\n\n result.forEach(serie => {\n serie.reasons = Reason.createListFromSerie(reasons.filter(r => r.previousNo === serie.id));\n });\n return result;\n }\n\n}\n","import { Lang } from './lang';\nimport { Reason } from \"./reason\";\nimport { QuestionSerie } from \"./question-serie\";\n\nexport class QuestionSFD {\n public id: number;\n public question1Language: string;\n public question2Language: string;\n public question3Language: string;\n public question4Language: string;\n public question5Language: string;\n\n public question1Text: string;\n public question2Text: string;\n public question3Text: string;\n public question4Text: string;\n public question5Text: string;\n\n public fromSerie: boolean;\n public showComment: boolean;\n\n public displayableForCurrentLanguage: boolean;\n\n public reasons: Array;\n public series: Array;\n public validity: number; //seconds\n\n public static languagesCode: any;\n\n public static CURRENT_LANGUAGE = '';\n\n public readonly maxLanguages = 5;\n\n public commentTitle: string;\n public commentSubtitle: string;\n\n public constructor(\n id: number = -1,\n question1Language: string = \"\",\n question2Language: string = \"\",\n question3Language: string = \"\",\n question4Language: string = \"\",\n question5Language: string = \"\",\n question1Text: string = \"\",\n question2Text: string = \"\",\n question3Text: string = \"\",\n question4Text: string = \"\",\n question5Text: string = \"\",\n reasons: Array = [],\n series: Array = [],\n validity: number = 300,\n fromSerie: boolean = false,\n showComment: boolean = false,\n commentTitle: string = '',\n commentSubtitle: string = ''\n ) {\n this.id = id;\n this.question1Language = question1Language;\n this.question2Language = question2Language;\n this.question3Language = question3Language;\n this.question4Language = question4Language;\n this.question5Language = question5Language;\n this.question1Text = question1Text;\n this.question2Text = question2Text;\n this.question3Text = question3Text;\n this.question4Text = question4Text;\n this.question5Text = question5Text;\n this.reasons = reasons;\n this.series = series;\n this.displayableForCurrentLanguage = false;\n this.validity = validity;\n this.fromSerie = fromSerie;\n this.showComment = showComment;\n this.commentTitle = commentTitle;\n this.commentSubtitle = commentSubtitle;\n }\n\n public static createFromJSON(json: any) {\n let result: QuestionSFD = null;\n\n\n if (json.EventQuestion) {\n result = new QuestionSFD();\n result.question1Language = 'english';\n result.question1Text = json.EventQuestion;\n result.validity = json.remainSeconds;\n } else {\n result = new QuestionSFD(\n +json.id,\n json.Question1Language,\n json.Question2Language,\n json.Question3Language,\n json.Question4Language,\n json.Question5Language,\n json.Question1Text,\n json.Question2Text,\n json.Question3Text,\n json.Question4Text,\n json.Question5Text,\n Reason.createFromJsonList(json.reasons),\n QuestionSerie.createFromJsonList(json.series)\n );\n }\n\n return result;\n }\n\n public static copy(question: QuestionSFD): QuestionSFD {\n let result: QuestionSFD = null;\n if (question) {\n let reasons = Reason.copyList(question.reasons);\n let series = QuestionSerie.copyList(question.series);\n result = new QuestionSFD(\n question.id,\n question.question1Language,\n question.question2Language,\n question.question3Language,\n question.question4Language,\n question.question5Language,\n question.question1Text,\n question.question2Text,\n question.question3Text,\n question.question4Text,\n question.question5Text,\n reasons,\n series,\n );\n result.commentTitle = question.commentSubtitle;\n result.commentSubtitle = question.commentSubtitle;\n }\n return result;\n }\n\n public getDataForLang(languageCode: string) {\n const result = {\n id: this.id,\n questionLanguage: '',\n questionText: ''\n };\n\n let language = QuestionSFD.languagesCode[languageCode];\n if (language) {\n for (let i = 1; i < this.maxLanguages + 1; i++) {\n const base = 'question' + i;\n const languageKey = base + 'Language';\n if (this[languageKey] === language) {\n result.questionLanguage = this[languageKey];\n result.questionText = this[base + 'Text'];\n break;\n }\n }\n }\n\n return result;\n }\n\n public computeQuestionDisplayableForLanguage(withCurrentLang: boolean = true) {\n for (let i = 1; i < this.maxLanguages + 1; i++) {\n const base = 'question' + i;\n const languageKey = base + 'Language';\n const displayableField = base + 'Displayable';\n const text = base + 'Text';\n if (this[text] && (this[languageKey] === QuestionSFD.languagesCode[QuestionSFD.CURRENT_LANGUAGE] || !withCurrentLang)) {\n this[displayableField] = true;\n break;\n } else {\n this[displayableField] = false;\n }\n }\n }\n\n public getCurrentText() {\n let result = '';\n this.computeQuestionDisplayableForLanguage();\n for (let i = 1; i < this.maxLanguages + 1; i++) {\n if (this['question' + i + 'Displayable']) {\n result = this['question' + i + 'Text'];\n break;\n }\n }\n return result;\n }\n\n public getCurrentLanguage() {\n let result = '';\n this.computeQuestionDisplayableForLanguage(false);\n for (let i = 1; i < this.maxLanguages + 1; i++) {\n if (this['question' + i + 'Displayable']) {\n result = this['question' + i + 'Language'];\n break;\n }\n }\n return result;\n }\n\n public getLanguages() {\n let result = new Array();\n const code = Object.keys(QuestionSFD.languagesCode).reduce((obj, key) => {\n obj[QuestionSFD.languagesCode[key]] = key;\n return obj;\n }, {});\n for (let i = 1; i < 6; i++) {\n if (this['question' + i + 'Text'] && this['question' + i + 'Language']) {\n const langFull = this['question' + i + 'Language'];\n const langCode = code[this['question' + i + 'Language']];\n result.push(new Lang(langFull, langCode));\n }\n }\n return result;\n }\n\n public static createFromQuestionSerie(serie: QuestionSerie) {\n const result = new QuestionSFD(\n serie.id,\n serie.language1,\n serie.language2,\n serie.language3,\n serie.language4,\n serie.language5,\n serie.text1,\n serie.text2,\n serie.text3,\n serie.text4,\n serie.text5,\n Reason.copyList(serie.reasons),\n [],\n 300,\n true,\n serie.showComment,\n serie.commentTitle,\n serie.commentSubtitle\n );\n return result;\n }\n}\n","import { QuestionSerie } from './question-serie';\nimport * as moment from 'moment';\nimport { Parent } from './parent';\n\nexport class Reason extends Parent {\n\n public static GREEN = 1;\n public static YELLOW = 2;\n public static RED = 3;\n\n public idQuestion: number;\n public dateUpdate: Date;\n public sfdButton: number;\n public reason1Language: string;\n public reason1Text: string;\n public reason2Language: string;\n public reason2Text: string;\n public reason3Language: string;\n public reason3Text: string;\n public reason4Language: string;\n public reason4Text: string;\n public reason5Language: string;\n public reason5Text: string;\n public reasonOrder: number;\n\n public reasonText: string;\n\n public selected: boolean;\n public showComment: boolean;\n\n public icon: string;\n public static languagesCode: any;\n\n public commentTitle: string;\n public commentSubtitle: string;\n\n public constructor(\n id = -1,\n idQuestion = -1,\n dateUpdate = new Date(),\n sfdButton = 0,\n reasonOrder = 0,\n reason1Language = \"\",\n reason2Language = \"\",\n reason3Language = \"\",\n reason4Language = \"\",\n reason5Language = \"\",\n reason1Text = \"\",\n reason2Text = \"\",\n reason3Text = \"\",\n reason4Text = \"\",\n reason5Text = \"\",\n selected = false,\n showComment = false,\n icon = \"\",\n commentTitle = '',\n commentSubtitle = ''\n ) {\n super();\n this.id = id;\n this.idQuestion = idQuestion;\n this.dateUpdate = dateUpdate;\n this.sfdButton = sfdButton;\n this.reasonOrder = reasonOrder;\n this.reason1Language = reason1Language;\n this.reason2Language = reason2Language;\n this.reason3Language = reason3Language;\n this.reason4Language = reason4Language;\n this.reason5Language = reason5Language;\n this.reason1Text = reason1Text;\n this.reason2Text = reason2Text;\n this.reason3Text = reason3Text;\n this.reason4Text = reason4Text;\n this.reason5Text = reason5Text;\n this.selected = selected;\n this.showComment = showComment;\n this.icon = icon;\n this.commentTitle = commentTitle;\n this.commentSubtitle = commentSubtitle;\n }\n\n public static createFromJsonList(jsonList: Array): Array {\n return jsonList.map(json => this.createFromJson(json));\n }\n\n public static createFromJson(json: any): Reason {\n return new Reason(\n json.ID,\n json.ID_Question,\n moment(json.DateUpdate).toDate(),\n json.SFDButton,\n json.ReasonOrder,\n json.Reason1Language,\n json.Reason2Language,\n json.Reason3Language,\n json.Reason4Language,\n json.Reason5Language,\n json.Reason1Text,\n json.Reason2Text,\n json.Reason3Text,\n json.Reason4Text,\n json.Reason5Text,\n false,\n json.ShowComment !== 0,\n (json.ReasonIcon ? (\"data:image/png;base64,\" + json.ReasonIcon) : \"\"),\n json.commentPrompt,\n json.commentInstructions\n );\n }\n\n public static copy(reason: any) {\n let result = new Reason();\n result.id = reason.id;\n result.idQuestion = reason.idQuestion;\n result.dateUpdate = reason.dateUpdate;\n result.sfdButton = reason.sfdButton;\n result.reason1Language = reason.reason1Language;\n result.reason1Text = reason.reason1Text;\n result.reason2Language = reason.reason2Language;\n result.reason2Text = reason.reason2Text;\n result.reason3Language = reason.reason3Language;\n result.reason3Text = reason.reason3Text;\n result.reason4Language = reason.reason4Language;\n result.reason4Text = reason.reason4Text;\n result.reason5Language = reason.reason5Language;\n result.reason5Text = reason.reason5Text;\n result.reasonOrder = reason.reasonOrder;\n result.showComment = reason.showComment;\n result.icon = reason.icon;\n result.commentTitle = reason.commentTitle;\n result.commentSubtitle = reason.commentSubtitle;\n return result;\n }\n\n public static copyList(list: Array) {\n return list && list.length ? list.map(reason => this.copy(reason)) : [];\n }\n\n public static createFromSerie(serie: QuestionSerie) {\n const reasonIcon = (serie.image ? (\"data:image/png;base64,\" + serie.image) : \"\")\n return new Reason(\n serie.id,\n serie.idQuestion,\n serie.dateUpdate,\n serie.previousColor,\n serie.orderNumber,\n serie.language1,\n serie.language2,\n serie.language3,\n \"\",\n \"\",\n serie.text1,\n serie.text2,\n serie.text3,\n \"\",\n \"\",\n false,\n serie.showComment,\n reasonIcon,\n serie.commentTitle,\n serie.commentSubtitle\n );\n }\n\n public static createListFromSerie(list: Array): Array {\n return list.map(serie => this.createFromSerie(serie));\n }\n\n public translate(languageCode: string) {\n let result = '';\n\n let language = Reason.languagesCode[languageCode];\n if (language) {\n for (let i = 1; i < 6; i++) {\n const base = 'reason' + i;\n const languageKey = base + 'Language';\n if (this[languageKey] === language) {\n result = this[base + 'Text'];\n }\n }\n }\n\n if (!result.length) {\n // find the first language having text\n for (let i = 1; i < 6; i++) {\n const base = 'reason' + i;\n const languageKey = base + 'Language';\n const textKey = base + 'Text';\n if (this[languageKey] && this[languageKey].length && this[textKey] && this[textKey].length) {\n result = this[textKey];\n break;\n }\n }\n }\n\n this.reasonText = result;\n }\n}\n","export class SmileyColor{\n public static readonly GREEN = 'green';\n public static readonly YELLOW = 'yellow';\n public static readonly RED = 'red';\n\n public static readonly ALL = [\n SmileyColor.GREEN,\n SmileyColor.YELLOW,\n SmileyColor.RED\n ];\n\n public static getIndex(color: string) {\n return SmileyColor.ALL.indexOf(color.toLowerCase());\n }\n\n public static getColor(index: number) {\n return SmileyColor.ALL[index];\n }\n} \n","export class SmileyImage{\n\n private _url: string;\n private _urlSelected: string;\n private is123: boolean;\n\n public color: string;\n\n public get url() {\n return this._url;\n }\n\n public set url(value: string) {\n let tmp = this.encodeImage(value);\n if(!tmp) {\n tmp = this.defaultUnselectedUrl();\n }\n this._url = tmp;\n }\n\n public get urlSelected() {\n return this._urlSelected;\n }\n\n public set urlSelected(value: string) {\n let tmp = this.encodeImage(value);\n if(!tmp) {\n tmp = this.defaultSelectedUrl();\n }\n this._urlSelected = tmp;\n }\n\n constructor(is123: boolean = false, url: string = \"\", urlSelected: string = \"\", color: string = \"\") {\n this.color = color;\n this.is123 = is123;\n this.url = url;\n this.urlSelected = urlSelected;\n }\n\n private encodeImage(url): string {\n return url ? \"data:image/png;base64,\" + url : \"\";\n }\n\n private defaultSelectedUrl(): string {\n return this.buildPath('WithFaceSelected');\n }\n\n private defaultUnselectedUrl(): string {\n return this.buildPath('WithFaceUnselected');\n }\n\n private buildPath(suffix: string) {\n const result = [\"./assets/img/smileys/\", this.color];\n if (this.is123) {\n result[0] += '123/';\n result[1] = 'button' + {green: 1, yellow: 2, red: 3}[this.color];\n } else {\n result[0] += 'feedback/';\n result.push(suffix);\n }\n result.push('.svg');\n return result.join('');\n }\n}","export class State{\n public static readonly CHOOSE_QUESTION = \"CHOOSE_QUESTION\";\n public static readonly WAIT_VOTE = \"WAIT_VOTE\";\n public static readonly VOTE = \"VOTE\";\n public static readonly DISPLAY_REASONS = \"DISPLAY_REASONS\";\n public static readonly DISPLAY_COMMENT = \"DISPLAY_COMMENT\";\n public static readonly DISPLAY_CONTACT = \"DISPLAY_CONTACT\";\n public static readonly CHECK_NEXT = \"CHECK_NEXT\";\n public static readonly SEND = \"SEND\";\n public static readonly INIT = \"INIT\";\n public static readonly BLOCKED = \"BLOCKED\";\n}","export class StatsSettings{\n public text: string;\n public displayedInfo: number;\n public period: number;\n public nbDays: number;\n public graphType: number;\n\n public constructor(\n text: string = '',\n displayedInfo: number = 1,\n period: number = 5,\n nbDays: number = 0,\n graphType: number = 3,\n ) {\n this.text = text;\n this.displayedInfo = displayedInfo;\n this.period = period;\n this.nbDays = nbDays;\n this.graphType = graphType;\n }\n\n public static createFromJSON(json: any): StatsSettings {\n let result = null;\n if (json) {\n result = new StatsSettings(\n json.text,\n json.displayedInfo,\n json.period,\n json.nbDays,\n json.graphType\n );\n }\n return result;\n }\n\n public static createJSONFromServer(json: any) {\n let result = null;\n if (json) {\n result = {\n text: json.ThankYou_Stat_Text,\n displayedInfo: json.ThankYou_Stat_What,\n period: json.ThankYou_Stat_When,\n nbDays: json.ThankYou_Stat_WhenLast,\n graphType: json.ThankYou_Stat_GraphType\n };\n }\n return result;\n }\n\n}\n\nexport class StatDisplayedInfo {\n public static readonly NONE = 0;\n public static readonly NUMBER_VOTES = 1;\n public static readonly PERCENTAGE = 2;\n public static readonly NUMBER_PERCENTAGE_VOTES = StatDisplayedInfo.NUMBER_VOTES + StatDisplayedInfo.PERCENTAGE;\n}\n\nexport class StatPeriod {\n public static readonly LAST_ROLLING_YEAR = 1;\n public static readonly LAST_YEAR = 2;\n public static readonly LAST_MONTH = 3;\n public static readonly LAST_WEEK = 4;\n public static readonly YESTERDAY = 5;\n public static readonly DEFINED_DAYS_NUMBER = 6;\n}\n\nexport class StatGraphType {\n public static readonly PIE_2D = 1;\n public static readonly PIE_3D = 2;\n public static readonly DONUT = 3;\n}","import { Choice } from './choice';\nimport { IndexFactory } from './index-factory';\nimport * as moment from 'moment';\nimport { Reason } from './reason';\n\nexport class Vote{\n private _internalId: number;\n public static readonly DATE_FORMAT = 'YYYY-MM-DD HH-mm-ss';\n\n\n public get internalId() {\n return this._internalId;\n }\n\n public set comment(value: string) {\n this._comment = value.replace(/(;)/g, '-'); // replace with a dash\n this._comment = value.replace(/(\\n|\\r)/g, '');\n if (this._comment.length > 255) {\n this._comment = this._comment.substr(0, 255);\n }\n }\n\n public get comment():string {\n return this._comment;\n }\n\n public color: string;\n public SFDName: string;\n public date: string;\n public sent: boolean;\n public contactDetail: string;\n public question: any;\n public questionText: string;\n\n private reasons: Array;\n private _comment: string;\n\n constructor(color: string = '', comment: string = '', sfdName: string = '', contactDetail: string = '', reasons: Array = []) {\n this.color = color;\n this.comment = comment;\n this.SFDName = sfdName;\n this.date = moment().format(Vote.DATE_FORMAT);\n this.sent = false;\n this._internalId = IndexFactory.getId();\n this.contactDetail = contactDetail;\n this.reasons = reasons;\n this.questionText = \"\";\n }\n\n public addReason(reason: Reason) {\n if (reason) {\n let cpy = Reason.copy(reason);\n if (cpy) {\n cpy.icon = \"\";\n }\n this.reasons.push(cpy);\n }\n }\n\n public static createFromChoices(list: Array, sfdName: string): Array {\n let numberSeconds = 0;\n return list.map(choice => {\n const vote = choice.toVote(sfdName);\n vote.date = moment().add(numberSeconds, 'seconds').format('YYYY-MM-DD HH-mm-ss');\n numberSeconds++;\n return vote;\n });\n }\n\n public static createFromJSON(json: any) {\n const result = new Vote(json.color, json.comment, json.SFDName, json.contactDetail, Reason.copyList(json.reasons));\n result.date = json.date;\n return result;\n }\n\n public static createListFromJSON(list: Array): Array {\n return list.map(json => this.createFromJSON(json));\n }\n\n public setReasonsText(currentLang: string) {\n this.reasons.forEach(reason => {\n reason.translate(currentLang);\n })\n }\n}\n","import * as moment from 'moment';\n\nexport class VSBValidity{\n name: string;\n unlockDate: string;\n dateUpdate: string;\n\n constructor(name: string, unlockDate: string, dateUpdate: string) {\n this.name = name;\n this.unlockDate = unlockDate;\n this.dateUpdate = dateUpdate;\n }\n\n isLocked() {\n return moment(this.unlockDate).isAfter(moment());\n }\n}","import { Subject } from 'rxjs';\nimport { Injectable } from \"@angular/core\";\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ModalCampaign } from '../modal-campaign/modal-campaign';\n\n@Injectable()\nexport class CampaignDisplayer{\n public constructor(\n private modalService: NgbModal\n ) { }\n\n public display(campaign_id: number, recipient_id: number): Subject {\n const subscriber = new Subject();\n const modal = this.modalService.open(ModalCampaign, {\n centered: true\n });\n modal.componentInstance.campaign_id = campaign_id;\n modal.componentInstance.recipient_id = recipient_id;\n\n modal.result.catch(data => {\n subscriber.next(data);\n });\n return subscriber;\n }\n}","import { ModalCommentPage } from './../modal-comment/modal-comment';\nimport { Subject } from 'rxjs';\nimport { Injectable } from \"@angular/core\";\nimport { QuestionSFD } from '../models/question-sfd';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ModalOptionsService } from './helpers/modal-options.service';\n\n@Injectable()\nexport class CommentDisplayer{\n public constructor(\n private modalService: NgbModal,\n private modalOptions: ModalOptionsService\n ) { }\n\n public display(question: QuestionSFD, textAbove: string = '', textUnder: string = ''): Subject {\n const subscriber = new Subject();\n const modal = this.modalService.open(ModalCommentPage, this.modalOptions.getOptions('lg'));\n modal.componentInstance.question = question;\n modal.componentInstance.textAbove = textAbove;\n modal.componentInstance.textUnder = textUnder;\n modal.result.catch(data => {\n subscriber.next(data);\n });\n return subscriber;\n }\n}\n","import { ModalContactComponent } from './../modal-contact/modal-contact.component';\nimport { Subject } from 'rxjs';\nimport { Injectable } from \"@angular/core\";\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ModalOptionsService } from './helpers/modal-options.service';\n\n@Injectable()\nexport class ContactDisplayer{\n public constructor(\n private modalService: NgbModal,\n private modalOption: ModalOptionsService\n ) { }\n\n public display(): Subject {\n const subscriber = new Subject();\n const modal = this.modalService.open(ModalContactComponent, this.modalOption.getOptions('lg'));\n modal.result.catch(data => {\n subscriber.next(data);\n });\n return subscriber;\n }\n}\n","import { DBConfig } from 'ngx-indexed-db/ngx-indexed-db';\n\nexport const dbConfig: DBConfig = {\n name: 'VSB-local-datas', version: 1, objectStoresMeta: [{\n store: 'vsb-validity',\n storeConfig: { keyPath: 'name', autoIncrement: true },\n storeSchema: [\n { name: 'name', keypath: 'name', options: { unique: false }},\n { name: 'unlockDate', keypath: 'unlockDate', options: { unique: false }},\n { name: 'dateUpdate', keypath: 'dateUpdate', options: { unique: false }},\n ]\n }]\n};","import { Injectable } from '@angular/core';\nimport { environment } from './../../environments/environment';\nimport { Http } from '@angular/http'\n\n\n@Injectable()\nexport class FBNHttpProvider {\n\n private readonly DOMAIN = environment.api;\n private readonly SUB_ROUTE_PUBLIC_TABLET = 'public/virtual';\n\n constructor(\n private http: Http,\n ) { }\n\n public post(endPoint: string, data: any = null) {\n const finalUrl = this.generateUrl(endPoint);\n return this.http.post(finalUrl, data);\n }\n\n public get(endPoint: string, data: any = null) {\n const finalUrl = this.generateUrl(endPoint);\n return this.http.get(finalUrl, data);\n }\n\n private generateUrl(endPoint: string) {\n return [this.DOMAIN, this.SUB_ROUTE_PUBLIC_TABLET, endPoint].join('/');\n }\n}","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class FBNLanguageService {\n\n public readonly languages = {\n arabic: \"ar\",\n basque: \"eu\",\n danish: \"da\",\n dutch: \"du\",\n english: \"en\",\n estonian: \"ee\",\n finnish: \"fi\",\n french: \"fr\",\n german: \"de\",\n italian: \"it\",\n latvian: \"lv\",\n lithuanian: \"lt\",\n luganda: \"lg\",\n norwegian: \"no\",\n polish: \"pl\",\n portuguese: \"pt\",\n russian: \"ru\",\n serbian: \"sr\",\n slovak: \"sk\",\n spanish: \"es\",\n swedish: \"sw\",\n }\n\n public readonly codes = {\n ar: \"Arabic\",\n eu: \"Basque\",\n da: \"Danish\",\n du: \"Dutch\",\n en: \"English\",\n ee: \"Estonian\",\n fi: \"Finnish\",\n fr: \"French\",\n de: \"German\",\n it: \"Italian\",\n lv: \"Latvian\",\n lt: \"Lithuanian\",\n lg: \"Luganda\",\n no: \"Norwegian\",\n pl: \"Polish\",\n pt: \"Portuguese\",\n ru: \"Russian\",\n sr: \"Serbian\",\n sk: \"Slovak\",\n es: \"Spanish\",\n sw: \"Swedish\",\n }\n\n\n public getCode(language: string) {\n return this.languages[language.toLowerCase()];\n }\n}\n\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ImageHelperService {\n\n constructor() { }\n\n public decodeFromBase64(base64Image: string, defaultValue: string = '') {\n let result = defaultValue;\n if (base64Image) {\n result = \"data:image/png;base64,\" + base64Image;\n }\n return result;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { NgbModalOptions } from \"@ng-bootstrap/ng-bootstrap\";\n\n@Injectable()\nexport class ModalOptionsService {\n constructor() {}\n\n getOptions(size: 'lg' | 'xl' | 'sm' = null, customClasses: string = ''): NgbModalOptions {\n const result: NgbModalOptions = {\n keyboard: false,\n backdrop: 'static',\n centered: true,\n }\n\n if (size) {\n result.size = size;\n }\n if (customClasses) {\n result.windowClass = customClasses;\n }\n return result;\n }\n}\n","import {Injectable} from '@angular/core';\nimport { NgxIndexedDBService } from 'ngx-indexed-db';\nimport { VSBValidity } from '../models/vsb-validity';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IdbService {\n\n private readonly storeName;\n constructor(\n private db: NgxIndexedDBService\n ) {\n this.storeName = 'vsb-validity'\n }\n\n\n findValidity(name): Promise {\n return this.db.getByID(this.storeName, name).then((row: any) => {\n let result = null;\n if (row) {\n result = new VSBValidity(row.name, row.unlockDate, row.dateUpdate);\n }\n return result;\n });\n }\n\n add(sfdName: string, unlockDate: string, dateUpdate: string) {\n return this.db.add(this.storeName, {name: sfdName, unlockDate: unlockDate, dateUpdate: dateUpdate});\n }\n\n delete(sfdName: string) {\n return this.db.delete(this.storeName, sfdName);\n }\n}","import { Config } from './../models/config-model';\nimport { FBNHttpProvider } from './fbn-http-provider';\nimport { Injectable } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { QuestionSFD } from '../models/question-sfd';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderService {\n public onConfigInit: Subject;\n\n private sfdName: string;\n private isInit: boolean;\n\n private _config: Config;\n\n private get config(): Config {\n return this._config;\n }\n\n private set config(value: Config) {\n this._config = value;\n if (!this.isInit) {\n this.isInit = true;\n this.onConfigInit.next(value);\n }\n }\n\n constructor(\n private http: FBNHttpProvider\n ) {\n this.sfdName = '';\n this._config = null;\n this.isInit = false;\n this.onConfigInit = new Subject();\n }\n\n setSFDName(name: string) {\n this.sfdName = name;\n }\n\n getName() {\n return this.sfdName;\n }\n\n getQuestion(): Subject {\n const subject = new Subject();\n this.http.post('question', {SFDName: this.sfdName}).subscribe(response => {\n const json = this.exactractJSON(response);\n const question = QuestionSFD.createFromJSON(json);\n subject.next(question);\n });\n return subject;\n }\n\n getConfig(lazyLoad: boolean = true) {\n const subject = new Subject();\n if (!this.config && lazyLoad) {\n this.http.post('config', {SFDName: this.sfdName}).subscribe(response => {\n const json = this.exactractJSON(response);\n const config = Config.createFromJSON(json);\n subject.next(config);\n this.config = config;\n });\n } else {\n setTimeout(() => subject.next(this.config), 10);\n }\n return subject;\n }\n\n private exactractJSON(serverResponse: any) {\n let result = null;\n if (serverResponse) {\n result = serverResponse.json();\n if (result.message) {\n result = result.message;\n }\n }\n return result;\n }\n}\n","import { ModalReasonsPage } from './../modal-reasons/modal-reasons';\nimport { NgbModal, NgbModalConfig } from '@ng-bootstrap/ng-bootstrap';\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Reason } from '../models/reason';\nimport { ModalOptionsService } from './helpers/modal-options.service';\n\n@Injectable()\nexport class ReasonsDisplayer{\n public constructor(\n private modalService: NgbModal,\n private modalOptions: ModalOptionsService\n ) { }\n\n public display(reasons: Array, color: string): Subject {\n const subscriber = new Subject();\n\n const modal = this.modalService.open(ModalReasonsPage, this.modalOptions.getOptions('xl', 'custom-modal-option'));\n modal.componentInstance.reasons = reasons.slice();\n modal.componentInstance.color = color;\n\n modal.result.catch(data => {\n const reason = data.reason;\n const result = {\n reason: false,\n showComment: false\n };\n if (reason) {\n result[\"reason\"] = reason;\n result[\"showComment\"] = reason.showComment;\n }\n\n subscriber.next(result);\n });\n\n return subscriber;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Config } from \"../models/config-model\";\n\n@Injectable()\nexport class SettingsService {\n public config: Config;\n\n constructor() {\n this.config = null;\n }\n\n hasConfig(): boolean {\n return this.config !== null;\n }\n\n}\n","import { ThankYouPageComponent } from './../thank-you-page/thank-you-page.component';\nimport { ModalThanks } from './../modal-thanks/modal-thanks';\nimport { Subject, timer } from 'rxjs';\nimport { Injectable } from \"@angular/core\";\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { ModalOptionsService } from './helpers/modal-options.service';\n\n@Injectable()\nexport class ThanksDisplayer{\n\n private modal: NgbModalRef;\n\n public constructor(\n private modalService: NgbModal,\n private modalOptions: ModalOptionsService\n ) { }\n\n public display(text: string = '', time: number = -1, showStat: boolean, dismiss: boolean = false): Subject {\n let result = new Subject();\n if (showStat) {\n this.createStatsModal(time);\n } else {\n this.createTextModal(text);\n }\n\n if (time < 0) {\n time = 10;\n }\n if (dismiss) {\n timer(time * 1000).subscribe(() => {\n this.dismissModal();\n result.next();\n });\n }\n return result;\n }\n\n public createStatsModal(time: number) {\n this.dismissModal();\n this.modal = this.modalService.open(ThankYouPageComponent, this.modalOptions.getOptions('xl'));\n }\n\n public createTextModal(text: string = '') {\n this.dismissModal();\n this.modal = this.modalService.open(ModalThanks, this.modalOptions.getOptions());\n this.modal.componentInstance.text = text;\n }\n\n private dismissModal() {\n if (this.modal) {\n this.modal.dismiss();\n this.modal = null;\n }\n }\n}\n","import { VotesStatsService } from './../../thank-you-page/votes-stats.service';\nimport { ContactDisplayer } from './../contact-displayer';\nimport { FBNLanguageService } from './../fbn-language.service';\nimport { Config } from './../../models/config-model';\nimport { Subscription, Subject, timer, config } from 'rxjs';\nimport { CommentDisplayer } from './../comment-displayer';\nimport { ThanksDisplayer } from './../thanks-displayer';\nimport { Reason } from './../../models/reason';\nimport { Choice } from './../../models/choice';\nimport { State } from '../../models/state';\nimport { SmileyColor } from '../../models/smiley-color';\nimport { Vote } from './../../models/votes';\nimport { ScenarioHandlerFactory } from './../../models/question-scenario/scenario-handler-factory';\nimport { Injectable } from '@angular/core';\nimport { QuestionSFD } from \"../../models/question-sfd\";\nimport { VotesManager } from './votes-manager';\nimport * as moment from 'moment';\nimport { ScenarioHandler } from '../../models/question-scenario/scenario-handler';\nimport { ReasonsDisplayer } from '../reasons-displayer';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IdbService } from '../idb.service';\nimport { SettingsService } from '../settings.service';\n\n@Injectable()\nexport class Engine {\n\n public mainQuestion: QuestionSFD;\n public lastSend: Date;\n public reasons: Array;\n\n private blockingTime: number;\n private QuestionScenario: string;\n private useReason: boolean;\n private sfdName: string;\n private choices: Array;\n private subscriber: Subject;\n private scenarioHandler: ScenarioHandler;\n private commentPolicy: string;\n private contactPolicy: string;\n private choice: Choice;\n private timeoutSubscriber: Subscription;\n private contactDetail: string;\n private justInit: boolean;\n private recipientId: number;\n private textThankYou: string;\n private isBlocked: boolean;\n private browserBlocking: number;\n private vsbDateUpdate: string;\n private textThankYouEnabled: boolean;\n\n private _question: QuestionSFD;\n private _state: string;\n\n private get state(): string {\n return this._state;\n }\n\n private set state(value: string) {\n this._state = value;\n this.manageState();\n }\n\n private get lastChoice(): Choice {\n let length = 0;\n let result = null;\n if (this.choices && (length = this.choices.length)) {\n result = this.choices[length - 1];\n }\n return result;\n }\n\n public get question(): QuestionSFD {\n return this._question;\n }\n\n public set question(value: QuestionSFD) {\n this._question = value;\n this.emitEventQuestion();\n }\n\n public showStatsThankYou: boolean;\n\n public constructor(\n private votesManager: VotesManager,\n private reasonsDisplayer: ReasonsDisplayer,\n private thanksDisplayer: ThanksDisplayer,\n private commentDisplayer: CommentDisplayer,\n private contactDisplayer: ContactDisplayer,\n private translate: TranslateService,\n public fbnLanguage: FBNLanguageService,\n private storage: IdbService,\n public votesStats: VotesStatsService,\n public settings: SettingsService\n ) {\n this.lastSend = null;\n this.subscriber = new Subject();\n this.sfdName = \"\";\n this.choices = new Array();\n this.blockingTime = 0;\n this.scenarioHandler = ScenarioHandlerFactory.create();\n this.timeoutSubscriber = null;\n this.justInit = false;\n this.isBlocked = false;\n this.browserBlocking = 0;\n this.vsbDateUpdate = \"\";\n this.showStatsThankYou = false;\n this.textThankYouEnabled = false;\n }\n\n public init(question: QuestionSFD, config: Config) {\n this.choices = new Array();\n this.mainQuestion = question;\n this.QuestionScenario = config.scenario;\n this.sfdName = config.sfdName;\n this.useReason = config.reasonEnabled;\n this.commentPolicy = config.commentPolicy;\n this.contactPolicy = config.contactPolicy;\n this.blockingTime = config.blockingTime;\n this.textThankYou = config.textThankYou;\n this.vsbDateUpdate = config.dateUpdate;\n this.showStatsThankYou = config.showStatEnabled;\n this.textThankYouEnabled = config.thankYouEnabled;\n\n QuestionSFD.languagesCode = this.fbnLanguage.codes;\n Reason.languagesCode = this.fbnLanguage.codes;\n ScenarioHandler.currentQuestionIndex = 0;\n ScenarioHandler.totalSeriesScenario = 0;\n\n const language = question.getCurrentLanguage();\n const code = this.fbnLanguage.getCode(language);\n\n this.translate.use(code);\n\n // reset all handler for new process\n this.scenarioHandler = ScenarioHandlerFactory.create(this.mainQuestion);\n\n this.isBlocked = config.ipBlocked;\n this.browserBlocking = config.browserBlocking;\n\n this.state = State.INIT;\n }\n\n public getEventSubscriber() {\n setTimeout(() => this.emitEventQuestion());\n return this.subscriber;\n }\n\n public emitEventQuestion() {\n this.subscriber.next({ name: 'question', data: { question: this.question, justInit: this.justInit } });\n }\n\n public emitEventReset(propagate: boolean = true) {\n this.subscriber.next({ name: 'reset', data: { propagate: propagate } });\n }\n\n public vote(color: string, recipientId = null) {\n this.choice = new Choice(color, this.question);\n this.state = State.VOTE;\n this.recipientId = recipientId;\n }\n\n private getHandler() {\n return this.scenarioHandler.getHandler(this.QuestionScenario);\n }\n\n private resetTimeout() {\n if (this.timeoutSubscriber) {\n this.timeoutSubscriber.unsubscribe();\n this.timeoutSubscriber = null;\n }\n }\n\n private manageState() {\n let handler = this.getHandler();\n switch (this.state) {\n case State.INIT:\n this.justInit = true;\n handler.init();\n this.state = State.CHOOSE_QUESTION;\n break;\n case State.CHOOSE_QUESTION:\n this.choice = null;\n this.question = handler.defineQuestion();\n this.checkBrowserBlocking().then(browserBlocked => {\n this.isBlocked = this.isBlocked || browserBlocked;\n if (this.isBlocked) {\n this.state = State.BLOCKED;\n } else {\n this.state = State.WAIT_VOTE\n }\n });\n break;\n case State.WAIT_VOTE:\n if (handler.needTimeout() && this.choices.length) {\n this.timeoutSubscriber = timer(this.settings.config.inactivityTimeOut * 1000).subscribe(() => {\n this.state = State.SEND;\n });\n }\n break;\n case State.VOTE:\n this.justInit = false;\n handler.setColor(this.choice.color);\n this.resetTimeout();\n this.state = State.DISPLAY_REASONS;\n break;\n case State.DISPLAY_REASONS:\n let reasonDisplayed = false;\n if (handler.needDisplayReason()) {\n const reasons = handler.getReasons(this.choice.color);\n if (this.useReason && reasons.length) {\n reasonDisplayed = true;\n this.displayReasons(reasons);\n }\n }\n\n if (!reasonDisplayed) {\n this.state = State.DISPLAY_COMMENT;\n }\n break;\n case State.DISPLAY_COMMENT:\n if (this.needDisplayComment()) {\n this.displayComment();\n } else {\n this.state = State.CHECK_NEXT;\n }\n break;\n case State.BLOCKED:\n this.displayModalThanks(false);\n break;\n case State.CHECK_NEXT:\n if (this.choice) {\n this.choices.push(Choice.copy(this.choice));\n }\n const hasNext = handler.hasNextQuestion(this.lastChoice);\n if (hasNext) {\n this.state = State.CHOOSE_QUESTION;\n } else {\n this.state = State.DISPLAY_CONTACT;\n }\n break;\n case State.DISPLAY_CONTACT:\n if (this.needContact(this.choice.color)) {\n this.displayContact();\n } else {\n this.state = State.SEND;\n }\n break;\n case State.SEND:\n this.send();\n break;\n }\n }\n\n public send() {\n const votes = Vote.createFromChoices(this.choices, this.sfdName);\n this.votesStats.addVotes(votes);\n if (votes.length) {\n this.votesManager.sendVotes(votes, this.contactDetail, this.recipientId).subscribe(data => {\n this.handleStorageBlocking().then(blocked => {\n this.isBlocked = blocked || data.isBlocked;\n })\n this.displayModalThanks();\n });\n this.lastSend = moment().toDate();\n }\n }\n\n private reset(propagate: boolean = true) {\n this.choices = new Array();\n ScenarioHandler.currentQuestionIndex = 0;\n ScenarioHandler.totalSeriesScenario = 0;\n // reset all handler for new process\n this.scenarioHandler = ScenarioHandlerFactory.create(this.mainQuestion);\n this.recipientId = null;\n this.state = State.INIT;\n this.emitEventReset(propagate);\n }\n\n private needDisplayComment() {\n let result = false;\n let questionCondition = false;\n if (this.question.fromSerie) {\n questionCondition = this.question.showComment || this.needComment(this.choice.color);\n } else {\n questionCondition = this.needComment(this.choice.color);\n }\n const reasonCondition = (this.choice.reason != null && this.choice.reason !== undefined && this.choice.reason.showComment);\n result = questionCondition || reasonCondition;\n return result;\n }\n\n\n public displayComment() {\n const questionTitle = this.question.commentTitle;\n const questionSubtitle = this.question.commentSubtitle\n const textAbove = questionTitle ? questionTitle : this.settings.config.commentPrompt;\n const textUnder = questionSubtitle ? questionSubtitle : this.settings.config.commentInstructions;\n\n this.commentDisplayer.display(this.question, textAbove, textUnder).subscribe(data => {\n if (data) {\n this.choice.comment = data.comment;\n this.state = State.CHECK_NEXT;\n }\n });\n }\n\n public displayContact() {\n this.contactDisplayer.display().subscribe(data => {\n this.contactDetail = data.contact;\n this.state = State.SEND;\n });\n }\n\n public displayReasons(reasons: Array) {\n this.reasonsDisplayer.display(reasons, this.choice.color).subscribe(data => {\n if (this.choice) {\n this.choice.reason = data.reason;\n const {reason} = this.choice;\n if (reason) {\n const {commentTitle, commentSubtitle} = reason\n\n if (commentTitle) {\n this.question.commentTitle = commentTitle;\n }\n if (commentSubtitle) {\n this.question.commentSubtitle = commentSubtitle;\n }\n }\n if (data.showComment) {\n this.state = State.DISPLAY_COMMENT;\n } else {\n this.state = State.CHECK_NEXT;\n }\n } else {\n this.state = State.CHECK_NEXT;\n }\n });\n }\n\n public displayModalThanks(dismiss: boolean = true) {\n const text = this.textThankYouEnabled ? this.textThankYou : '';\n this.thanksDisplayer.display(text, this.blockingTime, this.showStatsThankYou, dismiss).subscribe(() => {\n this.reset(false);\n });\n }\n\n private checkBrowserBlocking(): Promise {\n return this.storage.findValidity(this.sfdName).then(validity => {\n let isBlocked = false;\n let needDelete = false;\n\n if (validity) {\n if (this.browserBlocking != 0) {\n if (moment(validity.dateUpdate).isBefore(moment(this.vsbDateUpdate)) || !validity.isLocked()) {\n needDelete = true;\n } else {\n isBlocked = validity.isLocked();\n }\n } else {\n // remove in database\n needDelete = true;\n }\n }\n if (needDelete) {\n this.storage.delete(this.sfdName).then(result => {\n })\n }\n return isBlocked;\n });\n }\n\n private handleStorageBlocking(): Promise {\n let result = null;\n let unlockDate = \"\";\n if (this.browserBlocking === -1) {\n unlockDate = moment().add(100, \"years\").format();\n } else if (this.browserBlocking > 0) {\n unlockDate = moment().add(this.browserBlocking, \"hours\").format();\n }\n\n if (unlockDate.length) {\n result = this.storage.add(this.sfdName, unlockDate, this.vsbDateUpdate).then(() => {\n return true;\n })\n } else {\n result = Promise.resolve(false);\n }\n return result;\n }\n\n private needComment(color: string) {\n return this.checkPolicy(this.commentPolicy, color);\n }\n\n private needContact(color: string) {\n return this.checkPolicy(this.contactPolicy, color);\n }\n\n private checkPolicy(policy: string, color: string) {\n const index = SmileyColor.getIndex(color);\n return +policy.split('')[index] === 1;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FBNHttpProvider } from '../fbn-http-provider';\nimport { Vote } from '../../models/votes';\nimport { Subject } from 'rxjs';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class VotesManager {\n\n public constructor(\n private http: FBNHttpProvider,\n private translateService: TranslateService\n ) {}\n\n public sendVotes(votes: Array, contact: string = \"\", recipient_id: number = null): Subject{\n const subject = new Subject();\n votes.forEach(vote => {\n vote.setReasonsText(this.translateService.currentLang);\n });\n\n const param = {\n votes: votes\n }\n\n if (contact) {\n param['contactDetail'] = contact;\n }\n\n if (recipient_id) {\n param['recipient_id'] = recipient_id;\n param['dateVote'] = moment().format('YYYY-MM-DD HH:mm:ss');\n }\n\n this.http.post('vote', param).subscribe(success => {\n const content = success.json();\n const isBlocked = content ? (content.extra ? !!content.extra.isBlocked : false) : false;\n subject.next({isBlocked: isBlocked});\n });\n\n return subject;\n }\n}\n","module.exports = \".reasons-container {\\n height: 100%;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n}\\n.reasons-container .reason {\\n height: 100%;\\n}\\n.reasons-container .card {\\n height: 100%;\\n}\\n.reasons-container .reason {\\n border: 1px solid #fcc508;\\n padding-top: 15px;\\n padding-bottom: 15px;\\n text-align: center;\\n}\\n.reasons-container .reason div.reason-icon-container img.reason-icon {\\n display: block;\\n margin: 0 auto;\\n width: 40px;\\n}\\n.reasons-container .reason .reason-content {\\n color: white;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n justify-content: center;\\n font-weight: bold;\\n text-transform: uppercase;\\n font-size: 1.6rem;\\n}\\n.reasons-container .reason.green {\\n background: #8abe16;\\n border: 1px solid #699011;\\n}\\n.reasons-container .reason.yellow {\\n background: #fcc508;\\n border: 1px solid #cea103;\\n}\\n.reasons-container .reason.red {\\n background: #e81412;\\n border: 1px solid #b9100e;\\n}\\n.reasons-container .reason.active, .reasons-container .reason:hover {\\n cursor: pointer;\\n}\\n.reasons-container .reason.active .reason-content, .reasons-container .reason:hover .reason-content {\\n color: white;\\n font-weight: 500;\\n font-size: 1.6rem;\\n}\\n.reasons-container .reason.active.green, .reasons-container .reason:hover.green {\\n box-shadow: 0px 0px 7px #8abe16;\\n -webkit-filter: drop-shadow(0px 0px 7px #8abe16);\\n filter: drop-shadow(0px 0px 7px #8abe16);\\n}\\n.reasons-container .reason.active.yellow, .reasons-container .reason:hover.yellow {\\n box-shadow: 0px 0px 7px #fcc508;\\n -webkit-filter: drop-shadow(0px 0px 7px #fcc508);\\n filter: drop-shadow(0px 0px 7px #fcc508);\\n}\\n.reasons-container .reason.active.red, .reasons-container .reason:hover.red {\\n box-shadow: 0px 0px 7px #e81412;\\n -webkit-filter: drop-shadow(0px 0px 7px #e81412);\\n filter: drop-shadow(0px 0px 7px #e81412);\\n}\\n.reasons-container .reason-content {\\n word-break: break-word;\\n}\\n@media (max-width: 800px) {\\n .reasons-container .reason-content {\\n font-size: 1.1rem !important;\\n }\\n}\\n@media (max-width: 1000px) {\\n .reasons-container .reason-content {\\n font-size: 1.2rem !important;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90ZWJ0L3Byb2plY3RzL2ZlZWRiYWNrbm93L2Zibi12c2ItYW5ndWxhci9zcmMvYXBwL3JlYXNvbi9yZWFzb25zLnNjc3MiLCJzcmMvYXBwL3JlYXNvbi9yZWFzb25zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUE7RUFHSSxZQUFBO0VBQ0EsOEJBQUE7RUFBQSw2QkFBQTtVQUFBLG1CQUFBO0FDWEo7QURZSTtFQUNJLFlBQUE7QUNWUjtBRFlJO0VBQ0ksWUFBQTtBQ1ZSO0FEWUk7RUFTSSx5QkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtBQ2xCUjtBRFFZO0VBQ0ksY0FBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0FDTmhCO0FEY1E7RUFDSSxZQUFBO0VBQ0Esb0JBQUE7RUFBQSxhQUFBO0VBQ0EseUJBQUE7VUFBQSxtQkFBQTtFQUNBLHdCQUFBO1VBQUEsdUJBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EsaUJBakNBO0FDcUJaO0FEY1E7RUFDSSxtQkE1Q0E7RUE2Q0EseUJBQUE7QUNaWjtBRGNRO0VBQ0ksbUJBL0NDO0VBZ0RELHlCQUFBO0FDWlo7QURjUTtFQUNJLG1CQWxERjtFQW1ERSx5QkFBQTtBQ1paO0FEZVE7RUFDSSxlQUFBO0FDYlo7QURjWTtFQUNJLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQXJESjtBQ3lDWjtBRGNZO0VBQ0ksK0JBQUE7RUFDQSxnREFBQTtVQUFBLHdDQUFBO0FDWmhCO0FEY1k7RUFDSSwrQkFBQTtFQUNBLGdEQUFBO1VBQUEsd0NBQUE7QUNaaEI7QURjWTtFQUNJLCtCQUFBO0VBQ0EsZ0RBQUE7VUFBQSx3Q0FBQTtBQ1poQjtBRGlCSTtFQUNJLHNCQUFBO0FDZlI7QURrQkk7RUFDSTtJQUNJLDRCQUFBO0VDaEJWO0FBQ0Y7QURtQkk7RUFDSTtJQUNJLDRCQUFBO0VDakJWO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9yZWFzb24vcmVhc29ucy5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGZibl9ncmVlbjogIzhhYmUxNjtcbiRmYm5feWVsbG93OiAjZmNjNTA4O1xuJGZibl9yZWQ6ICNlODE0MTI7XG5cbiRmYm5feWVsbG93X2RhcmtlcjogI2NlYTEwMztcbiRmYm5fcmVkX2RhcmtlcjogI2I5MTAwZTtcbiRmYm5fZ3JlZW5fZGFya2VyOiAjNjk5MDExO1xuXG4kZm9udF9zaXplOiAxLjZyZW07XG5cbi5yZWFzb25zLWNvbnRhaW5lcntcbiAgXG4gICAgLy8gd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgLnJlYXNvbntcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAuY2FyZCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgLnJlYXNvbntcbiAgICAgICAgZGl2LnJlYXNvbi1pY29uLWNvbnRhaW5lcntcbiAgICAgICAgICAgIGltZy5yZWFzb24taWNvbntcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBtYXJnaW46IDEwcHggNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRmYm5feWVsbG93O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLnJlYXNvbi1jb250ZW50e1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnRfc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICAmLmdyZWVue1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGZibl9ncmVlbjtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRmYm5fZ3JlZW5fZGFya2VyO1xuICAgICAgICB9XG4gICAgICAgICYueWVsbG93e1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGZibl95ZWxsb3c7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZmJuX3llbGxvd19kYXJrZXI7XG4gICAgICAgIH1cbiAgICAgICAgJi5yZWR7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZmJuX3JlZDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRmYm5fcmVkX2RhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlLCAmOmhvdmVye1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgLnJlYXNvbi1jb250ZW50e1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnRfc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuZ3JlZW57XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA3cHggJGZibl9ncmVlbjtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICRmYm5fZ3JlZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi55ZWxsb3d7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA3cHggJGZibl95ZWxsb3c7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDdweCAkZmJuX3llbGxvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnJlZHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDdweCAkZmJuX3JlZDtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICRmYm5fcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZWFzb24tY29udGVudHtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgICAgICAgLnJlYXNvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxLjFyZW0haW1wb3J0YW50XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gICAgICAgIC5yZWFzb24tY29udGVudCB7XG4gICAgICAgICAgICBmb250LXNpemU6MS4ycmVtIWltcG9ydGFudFxuICAgICAgICB9XG4gICAgfVxufSIsIi5yZWFzb25zLWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnJlYXNvbnMtY29udGFpbmVyIC5jYXJkIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmNjNTA4O1xuICBwYWRkaW5nLXRvcDogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uIGRpdi5yZWFzb24taWNvbi1jb250YWluZXIgaW1nLnJlYXNvbi1pY29uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogNDBweDtcbn1cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uIC5yZWFzb24tY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEuNnJlbTtcbn1cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uLmdyZWVuIHtcbiAgYmFja2dyb3VuZDogIzhhYmUxNjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzY5OTAxMTtcbn1cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uLnllbGxvdyB7XG4gIGJhY2tncm91bmQ6ICNmY2M1MDg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjZWExMDM7XG59XG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi5yZWQge1xuICBiYWNrZ3JvdW5kOiAjZTgxNDEyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYjkxMDBlO1xufVxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24uYWN0aXZlLCAucmVhc29ucy1jb250YWluZXIgLnJlYXNvbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uLmFjdGl2ZSAucmVhc29uLWNvbnRlbnQsIC5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uOmhvdmVyIC5yZWFzb24tY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG59XG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi5hY3RpdmUuZ3JlZW4sIC5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uOmhvdmVyLmdyZWVuIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA3cHggIzhhYmUxNjtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDdweCAjOGFiZTE2KTtcbn1cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uLmFjdGl2ZS55ZWxsb3csIC5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uOmhvdmVyLnllbGxvdyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggN3B4ICNmY2M1MDg7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCA3cHggI2ZjYzUwOCk7XG59XG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi5hY3RpdmUucmVkLCAucmVhc29ucy1jb250YWluZXIgLnJlYXNvbjpob3Zlci5yZWQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDdweCAjZTgxNDEyO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICNlODE0MTIpO1xufVxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24tY29udGVudCB7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24tY29udGVudCB7XG4gICAgZm9udC1zaXplOiAxLjFyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMDBweCkge1xuICAucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi1jb250ZW50IHtcbiAgICBmb250LXNpemU6IDEuMnJlbSAhaW1wb3J0YW50O1xuICB9XG59Il19 */\"","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Reason } from '../models/reason';\n\n@Component({\n selector: 'page-reasons',\n templateUrl: 'reasons.html',\n styleUrls: ['./reasons.scss']\n})\nexport class ReasonsPage implements OnInit {\n\n @Input() public reasons: Array;\n @Input() public color: string;\n\n @Output() selectionMade = new EventEmitter();\n\n constructor(\n private translate: TranslateService\n ) { }\n\n public ngOnInit() {\n this.reasons.forEach(reason => reason.translate(this.translate.currentLang));\n }\n\n public selectReason(reason: Reason) {\n reason.selected = !reason.selected;\n this.selectionMade.emit(reason);\n this.reasons.forEach(reason => reason.selected = false);\n }\n}\n","module.exports = \".centered {\\n margin: 0 auto;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90ZWJ0L3Byb2plY3RzL2ZlZWRiYWNrbm93L2Zibi12c2ItYW5ndWxhci9zcmMvYXBwL3RoYW5rLXlvdS1wYWdlL3RoYW5rLXlvdS1wYWdlLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC90aGFuay15b3UtcGFnZS90aGFuay15b3UtcGFnZS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGNBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3RoYW5rLXlvdS1wYWdlL3RoYW5rLXlvdS1wYWdlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNlbnRlcmVke1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuIiwiLmNlbnRlcmVkIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59Il19 */\"","import { VotesStatsService } from './votes-stats.service';\nimport { LoaderService } from './../providers/loader.service';\nimport { Component, OnInit, ViewChild, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';\nimport { Chart } from 'highcharts';\nimport { Subscription } from 'rxjs';\n\nimport * as Highcharts from 'highcharts';\nimport { StatGraphType, StatPeriod, StatDisplayedInfo, StatsSettings } from '../models/stats-model';\n@Component({\n selector: 'app-thank-you-page',\n templateUrl: './thank-you-page.component.html',\n styleUrls: ['./thank-you-page.component.scss']\n})\nexport class ThankYouPageComponent implements OnInit, OnDestroy {\n\n public chart: Chart;\n public logoClient: string;\n public data: Array;\n public text: string;\n public logoFbn: string;\n public isViewLoaded: boolean;\n\n private subscription: Subscription;\n\n private _settings: StatsSettings;\n\n get settings() {\n return this._settings;\n }\n\n set settings(value: StatsSettings) {\n if (!value) {\n this._settings = new StatsSettings();\n } else {\n this._settings = value;\n }\n const data = this.votesStats.getDatas();\n this.data = this.computeData(data);\n this.createChart();\n }\n\n public readonly colors = ['#65b32e', '#ffd600', '#e94b5b'];\n\n private greenResult: number;\n private percentLabels: any\n\n @ViewChild('rowChart', {static: false}) rowChart: ElementRef;\n @ViewChild('rowText', {static: false}) rowText: ElementRef;\n @ViewChild('mainCol', {static: false}) mainCol: ElementRef;\n\n constructor(\n private loader: LoaderService,\n private votesStats: VotesStatsService\n ) {\n this.text = '';\n this.greenResult = 0;\n this.logoClient = '';\n this.subscription = null;\n this.isViewLoaded = false;\n\n this.initFormats();\n }\n\n ngOnInit() {\n this.isViewLoaded = true;\n this.subscription = this.loader.getConfig().subscribe(config => {\n if (config) {\n this.settings = config.statsSettings;\n this.text = this.settings.text;\n }\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n initFormats() {\n this.percentLabels = {\n green: '',\n yellow: '',\n red: ''\n };\n }\n\n computeData(data: Array) {\n this.initFormats();\n let totalVote = data.reduce((sum, d) => sum += d[1], 0);\n if (!totalVote) {\n totalVote = 1;\n }\n return data.map(d => [...d, ((d[1] / totalVote) * 100).toFixed(0)]).map((d, i) => {\n const name = d[0];\n const number = d[1];\n const percent = d[2];\n const plot: any = {\n name: name,\n color: this.colors[i]\n };\n plot['y'] = number;\n if (this.settings.displayedInfo === StatDisplayedInfo.NUMBER_VOTES || this.settings.displayedInfo === StatDisplayedInfo.NUMBER_PERCENTAGE_VOTES) {\n this.percentLabels[name] = '#' + number;\n }\n if (this.settings.displayedInfo === StatDisplayedInfo.PERCENTAGE || this.settings.displayedInfo === StatDisplayedInfo.NUMBER_PERCENTAGE_VOTES) {\n plot['percent'] = percent;\n if (this.percentLabels[name].length) {\n this.percentLabels[name] += '
';\n }\n this.percentLabels[name] += percent + '%';\n }\n\n if (name == 'green') {\n this.greenResult = percent;\n }\n return plot;\n });\n }\n\n createChart() {\n const textColor = '#000000';\n const self = this;\n const chartTitle = '' + this.greenResult + '%' + ' satisfaction';\n let prefix = '';\n switch(this.settings.period) {\n case StatPeriod.DEFINED_DAYS_NUMBER:\n prefix = 'Last ' + this.settings.nbDays + ' days';\n break;\n case StatPeriod.LAST_ROLLING_YEAR:\n prefix = 'Last rolling year';\n break;\n case StatPeriod.LAST_YEAR:\n prefix = 'Last year';\n break;\n case StatPeriod.LAST_MONTH:\n prefix = 'Last month';\n break;\n case StatPeriod.LAST_WEEK:\n prefix = 'Last week';\n break;\n }\n\n if (prefix) {\n prefix = '
' + prefix + ''\n }\n\n\n let innerSize = '0';\n let verticalAlignment: \"bottom\" | \"middle\" | \"top\" = 'bottom';\n let enable3d = false;\n if (this.settings.graphType === StatGraphType.DONUT) {\n innerSize = '55%';\n verticalAlignment = 'middle';\n } else if (this.settings.graphType === StatGraphType.PIE_3D) {\n enable3d = true;\n }\n\n let rowChartHeight: any ='75%';\n\n this.chart = Highcharts.chart('chart-container', {\n credits: {\n enabled: false,\n },\n chart: {\n backgroundColor: null,\n type: 'pie',\n height: rowChartHeight,\n options3d: {\n enabled: enable3d,\n alpha: 45,\n beta: 0\n }\n },\n plotOptions: {\n pie: {\n shadow: false,\n center: ['50%', '50%'],\n dataLabels: {\n enabled: true,\n distance: -65,\n style: {\n color: 'white',\n fontSize: '2rem',\n textOutline: 'none'\n }\n }\n }\n },\n tooltip: { enabled: false },\n title: {\n text: chartTitle + prefix,\n style: {\n fontSize: '3rem',\n fontWeight: 'bold'\n },\n align: 'center',\n verticalAlign: verticalAlignment\n },\n series: [{\n type: 'pie',\n data: this.data,\n size: '100%',\n innerSize: innerSize,\n dataLabels: {\n formatter: function () {\n const __this: any = this;\n return self.percentLabels[__this.key];\n }\n }\n }]\n });\n }\n}\n","import { Vote } from './../models/votes';\nimport { LoaderService } from './../providers/loader.service';\nimport { FBNHttpProvider } from './../providers/fbn-http-provider';\nimport { Injectable } from '@angular/core';\n\nimport * as moment from 'moment';\nimport { StatsSettings, StatPeriod } from '../models/stats-model';\n\n@Injectable()\nexport class VotesStatsService {\n\n private greenResult: number;\n private yellowResult: number;\n private redResult: number;\n private settings: StatsSettings;\n private startDate: string;\n private endDate: string;\n\n private localVotes: any;\n\n private readonly LOCAL_VOTE_KEY = 'local_vote_day';\n\n constructor(\n private http: FBNHttpProvider,\n private loader: LoaderService\n ) {\n this.initLocalVotes();\n this.initServerVotes();\n const today = moment().format();\n this.startDate = today;\n this.endDate = today;\n this.loader.onConfigInit.subscribe(config => {\n if (config && config.showStatEnabled) {\n this.settings = config.statsSettings;\n this.computeDates();\n this.loadFromServer();\n }\n });\n }\n\n private initServerVotes() {\n this.greenResult = 0;\n this.yellowResult = 0;\n this.redResult = 0;\n }\n\n private resetLocalVotes() {\n this.localVotes = {\n green: 0,\n yellow: 0,\n red: 0\n };\n }\n\n private initLocalVotes() {\n this.resetLocalVotes();\n let localVotes: any = localStorage.getItem(this.LOCAL_VOTE_KEY);\n if (localVotes) {\n localVotes = JSON.parse(localVotes);\n this.localVotes.green = localVotes.green;\n this.localVotes.yellow = localVotes.yellow;\n this.localVotes.red = localVotes.red;\n }\n }\n\n public addVote(vote: Vote) {\n this.localVotes[vote.color] ++;\n this.saveLocalVotes();\n }\n\n public addVotes(votes: Array) {\n votes.forEach(v => this.localVotes[v.color] ++);\n this.saveLocalVotes();\n }\n\n public clean() {\n this.resetLocalVotes();\n this.saveLocalVotes();\n }\n\n public getDatas() {\n return [\n ['green', this.greenResult + this.localVotes.green],\n ['yellow', this.yellowResult + this.localVotes.yellow],\n ['red', this.redResult + this.localVotes.red]\n ];\n }\n\n public loadFromServer() {\n // subscribe to event from server, load datas\n this.http.post('stats', {\n SFDName: this.loader.getName(),\n dateStart: this.startDate,\n dateEnd: this.endDate\n }).subscribe(response => {\n const result = response.json().message;\n this.greenResult = result.green;\n this.yellowResult = result.yellow;\n this.redResult = result.red;\n });\n }\n\n private computeDates() {\n let startDate = moment();\n let endDate = moment();\n let rolling = false;\n let unitTime: moment.unitOfTime.DurationConstructor = 'days';\n let startOf: moment.unitOfTime.StartOf = 'days';\n let nbDays = 1;\n if (this.settings) {\n switch (this.settings.period) {\n case StatPeriod.LAST_ROLLING_YEAR:\n rolling = true;\n startOf = unitTime = 'year';\n break;\n\n case StatPeriod.LAST_YEAR:\n startOf = unitTime = 'year';\n break;\n\n case StatPeriod.LAST_MONTH:\n startOf = unitTime = 'month';\n break;\n\n case StatPeriod.LAST_WEEK:\n startOf = 'isoWeek';\n unitTime = 'week';\n break;\n\n case StatPeriod.DEFINED_DAYS_NUMBER:\n nbDays = this.settings.nbDays;\n rolling = true;\n break;\n }\n }\n\n const lastUnitPast = moment().subtract(nbDays, unitTime);\n startDate = lastUnitPast;\n if (!rolling) {\n startDate = moment(lastUnitPast).startOf(startOf);\n endDate = moment(lastUnitPast).endOf(startOf);\n }\n const dateFormat = 'YYYY-MM-DD';\n this.startDate = startDate.format(dateFormat);\n this.endDate = endDate.format(dateFormat);\n }\n\n saveLocalVotes() {\n localStorage.setItem(this.LOCAL_VOTE_KEY, JSON.stringify(this.localVotes));\n }\n}\n","module.exports = \"#wrap {\\n min-height: 100%;\\n}\\n\\n#main {\\n overflow: auto;\\n padding-bottom: 23px;\\n /* must be same height as the footer */\\n}\\n\\n.feedback img,\\n#feedback img {\\n max-width: 70%;\\n}\\n\\n@media screen and (max-width: 482px) {\\n .feedback img,\\n#feedback img {\\n width: 25% !important;\\n }\\n\\n #updown {\\n width: 5%;\\n }\\n}\\n\\n@media screen and (max-width: 770px) {\\n .feedback img,\\n#feedback img {\\n width: 18% !important;\\n margin: 15px !important;\\n }\\n\\n #updown {\\n width: 5%;\\n }\\n}\\n\\n#feedback img,\\n.feedback img {\\n border-radius: 100px;\\n -moz-border-radius: 100px;\\n -webkit-border-radius: 100px;\\n margin: 10px 30px;\\n}\\n\\n.green.active {\\n -webkit-filter: drop-shadow(0px 0px 15px #91C516) drop-shadow(-1px -1px 0 #91C516);\\n filter: drop-shadow(0px 0px 15px #91C516) drop-shadow(-1px -1px 0 #91C516);\\n box-shadow: 0px 0px 50px #91C516;\\n -webkit-filter: drop-shadow(0px 0px 20px #91C516);\\n filter: drop-shadow(0px 0px 20px #91C516);\\n /* For IE 8 */\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.Shadow(Strength=80, Direction=135, Color='#91C516')\\\";\\n /* For IE 5.5 - 7 */\\n filter: progid:DXImageTransform.Microsoft.Shadow(Strength=80, Direction=135, Color=\\\"#91C516\\\");\\n}\\n\\n.yellow.active {\\n -webkit-filter: drop-shadow(0px 0px 15px #FCC90A) drop-shadow(-1px -1px 0 #FCC90A);\\n filter: drop-shadow(0px 0px 15px #FCC90A) drop-shadow(-1px -1px 0 #FCC90A);\\n box-shadow: 0px 0px 25px #FCC90A;\\n -webkit-filter: drop-shadow(0px 0px 20px #FCC90A);\\n filter: drop-shadow(0px 0px 20px #FCC90A);\\n /* For IE 8 */\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.Shadow(Strength=50, Direction=135, Color='#FCC90A')\\\";\\n /* For IE 5.5 - 7 */\\n filter: progid:DXImageTransform.Microsoft.Shadow(Strength=50, Direction=135, Color=\\\"#FCC90A\\\");\\n}\\n\\n.red.active {\\n -webkit-filter: drop-shadow(0px 0px 15px #F51A16) drop-shadow(-1px -1px 0 #F51A16);\\n filter: drop-shadow(0px 0px 15px #F51A16) drop-shadow(-1px -1px 0 #F51A16);\\n box-shadow: 0px 0px 25px #F51A16;\\n -webkit-filter: drop-shadow(0px 0px 20px #F51A16);\\n filter: drop-shadow(0px 0px 20px #F51A16);\\n /* For IE 8 */\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.Shadow(Strength=50, Direction=135, Color='#F51A16')\\\";\\n /* For IE 5.5 - 7 */\\n filter: progid:DXImageTransform.Microsoft.Shadow(Strength=50, Direction=135, Color=\\\"#F51A16\\\");\\n}\\n\\n.dark {\\n box-shadow: -2px 2px 12px #000;\\n -webkit-filter: drop-shadow(0px 0px 12px #000);\\n filter: drop-shadow(0px 0px 12px #000);\\n /* For IE 8 */\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=135, Color='#000000')\\\";\\n /* For IE 5.5 - 7 */\\n filter: progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=135, Color=\\\"#000000\\\");\\n}\\n\\n.smiley {\\n width: 19rem;\\n}\\n\\n#button span {\\n box-shadow: 5px 5px 5px 0px #000000;\\n -moz-box-shadow: 5px 5px 5px 0px #000000;\\n -webkit-box-shadow: 5px 5px 5px 0px #000000;\\n margin-top: 1%;\\n}\\n\\n#logo {\\n position: absolute;\\n top: 5px;\\n right: 5px;\\n text-align: right;\\n z-index: -1;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n}\\n\\n#selector,\\n#smartTyping,\\n#details table {\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\n#smartTyping {\\n width: 400px;\\n}\\n\\n#smartTyping input {\\n width: 395px;\\n height: 35px;\\n font-size: 30px;\\n}\\n\\n#response {\\n background: #DDDDDD;\\n color: black;\\n}\\n\\n#response td {\\n border: 2px solid #BBBBBB;\\n padding: 5px;\\n}\\n\\n#selector span,\\n#response,\\n#feedback img,\\n.feedback img,\\n#recontact,\\n#button span {\\n cursor: pointer;\\n}\\n\\n#recontact {\\n display: none;\\n}\\n\\np {\\n margin: 0px;\\n padding: 0px;\\n}\\n\\np,\\n#question,\\ntextarea,\\n#response table,\\n#footer table {\\n width: 100%;\\n}\\n\\n#selector,\\n.search,\\n#smartTyping,\\n#location,\\n#thanks,\\n#locked,\\n#error {\\n text-align: center;\\n}\\n\\n#selector span {\\n margin: 20px;\\n color: #FFCC00;\\n text-decoration: underline;\\n}\\n\\n#response {\\n text-align: left;\\n}\\n\\n#updown {\\n position: absolute;\\n right: 0px;\\n top: -5px;\\n padding: 15px 15px;\\n border-radius: 15px;\\n -moz-border-radius: 15px;\\n -webkit-border-radius: 15px;\\n box-shadow: 5px 5px 5px -2px #000000;\\n -moz-box-shadow: 5px 5px 5px -2px #000000;\\n -webkit-box-shadow: 5px 5px 5px -2px #000000;\\n}\\n\\n#recontact {\\n padding-right: 70px;\\n min-height: 70px;\\n}\\n\\n#recontact div {\\n right: -70px;\\n}\\n\\n#button span,\\n#updown {\\n display: inline-block;\\n color: #333333;\\n font-weight: bold;\\n text-shadow: 1px 1px 0px #ffffff;\\n background: #f2f6f8;\\n background: -webkit-gradient(linear, left top, left bottom, from(#f2f6f8), color-stop(50%, #d8e1e7), color-stop(51%, #b5c6d0), to(#e0eff9));\\n background: linear-gradient(to bottom, #f2f6f8 0%, #d8e1e7 50%, #b5c6d0 51%, #e0eff9 100%);\\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"#f2f6f8\\\", endColorstr=\\\"#e0eff9\\\", GradientType=0);\\n}\\n\\n#button span:active {\\n position: relative;\\n top: 2px;\\n left: 1px;\\n box-shadow: inset 5px 5px 5px -2px #000000;\\n -moz-box-shadow: inset 5px 5px 5px -2px #000000;\\n -webkit-box-shadow: inset 5px 5px 5px -2px #000000;\\n}\\n\\n#error {\\n color: #BB0000;\\n}\\n\\n#details {\\n display: none;\\n}\\n\\n#versioninfo,\\n#authorinfo {\\n padding: 4px;\\n}\\n\\n#authorinfo {\\n text-align: right;\\n}\\n\\n.custom-logo {\\n background-image: url(\\\"/img/logo.png\\\");\\n}\\n\\n.custom_customer_logo {\\n display: none;\\n}\\n\\n#custom-logo {\\n display: none;\\n}\\n\\n.custom-image {\\n display: none;\\n}\\n\\n.d-none {\\n display: none;\\n}\\n\\n/*#recontact div, #recontact span, #details table td, #smartTyping, .question, #selector span\\n/*#recontact div, #recontact span, #details table td, #smartTyping, .question, #selector span\\n{ border: 1px dashed #CCCCCC; }*/\\n\\n.modal-reasons {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n opacity: 0;\\n visibility: hidden;\\n -webkit-transform: scale(1.1);\\n transform: scale(1.1);\\n -webkit-transition: visibility 0s linear 0.25s, opacity 0.25s 0s, -webkit-transform 0.25s;\\n transition: visibility 0s linear 0.25s, opacity 0.25s 0s, -webkit-transform 0.25s;\\n transition: visibility 0s linear 0.25s, opacity 0.25s 0s, transform 0.25s;\\n transition: visibility 0s linear 0.25s, opacity 0.25s 0s, transform 0.25s, -webkit-transform 0.25s;\\n}\\n\\n.modal-reasons-content {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n background-color: white;\\n padding: 1rem 1.5rem;\\n width: -webkit-fit-content;\\n width: -moz-fit-content;\\n width: fit-content;\\n border-radius: 0.5rem;\\n}\\n\\n.close-button {\\n float: right;\\n width: 1.5rem;\\n line-height: 1.5rem;\\n text-align: center;\\n cursor: pointer;\\n border-radius: 0.25rem;\\n background-color: lightgray;\\n}\\n\\n.close-button:hover {\\n background-color: darkgray;\\n}\\n\\n.show-modal-reasons {\\n opacity: 1;\\n visibility: visible;\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n -webkit-transition: visibility 0s linear 0s, opacity 0.25s 0s, -webkit-transform 0.25s;\\n transition: visibility 0s linear 0s, opacity 0.25s 0s, -webkit-transform 0.25s;\\n transition: visibility 0s linear 0s, opacity 0.25s 0s, transform 0.25s;\\n transition: visibility 0s linear 0s, opacity 0.25s 0s, transform 0.25s, -webkit-transform 0.25s;\\n}\\n\\n.card-reason {\\n height: 90px;\\n}\\n\\n.reasons-container.column-reason {\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n}\\n\\n.reasons-container.row-reason {\\n width: 100%;\\n height: 100%;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n}\\n\\n.reasons-container.row-reason.card-reason.reason {\\n max-width: 100px;\\n height: 90px;\\n}\\n\\n.reasons-container .reason {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n cursor: pointer;\\n border: 1px solid #fcc508;\\n padding: 15px;\\n text-align: center;\\n min-width: 180px;\\n}\\n\\n.reasons-container .reason div.reason-icon-container img.reason-icon {\\n display: block;\\n margin: 0 auto;\\n width: 30px;\\n}\\n\\n.reasons-container .reason .reason-card-content {\\n color: white;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n justify-content: center;\\n font-weight: bold;\\n text-transform: uppercase;\\n font-size: 1.2rem;\\n}\\n\\n.reasons-container .reason .reason-card-content.full-height {\\n height: 90px;\\n}\\n\\n.reasons-container .reason .reason-card-content.partial-height {\\n height: 70%;\\n}\\n\\n.reasons-container .reason.green {\\n background: #8abe16;\\n border: 1px solid #699011;\\n}\\n\\n.reasons-container .reason.normal {\\n background: #9ca3a6;\\n border: 1px solid #717677;\\n}\\n\\n.reasons-container .reason.yellow {\\n background: #fcc508;\\n border: 1px solid #cea103;\\n}\\n\\n.reasons-container .reason.red {\\n background: #e81412;\\n border: 1px solid #b9100e;\\n}\\n\\n.reasons-container .reason.active .reason-card-content,\\n.reasons-container .reason:hover .reason-card-content {\\n color: white;\\n font-weight: 500;\\n font-size: 1.2rem;\\n}\\n\\n.reasons-container .reason.active.green,\\n.reasons-container .reason:hover.green {\\n box-shadow: 0px 0px 7px #8abe16;\\n -webkit-filter: drop-shadow(0px 0px 7px #8abe16);\\n filter: drop-shadow(0px 0px 7px #8abe16);\\n}\\n\\n.reasons-container .reason.active.normal,\\n.reasons-container .reason:hover.normal {\\n box-shadow: 0px 0px 7px #9ca3a6;\\n -webkit-filter: drop-shadow(0px 0px 7px #9ca3a6);\\n filter: drop-shadow(0px 0px 7px #9ca3a6);\\n}\\n\\n.reasons-container .reason.active.yellow,\\n.reasons-container .reason:hover.yellow {\\n box-shadow: 0px 0px 7px #fcc508;\\n -webkit-filter: drop-shadow(0px 0px 7px #fcc508);\\n filter: drop-shadow(0px 0px 7px #fcc508);\\n}\\n\\n.reasons-container .reason.active.red,\\n.reasons-container .reason:hover.red {\\n box-shadow: 0px 0px 7px #e81412;\\n -webkit-filter: drop-shadow(0px 0px 7px #e81412);\\n filter: drop-shadow(0px 0px 7px #e81412);\\n}\\n\\n.reasons-container .reason-content {\\n word-break: break-word;\\n}\\n\\ninput[type=text], input[type=tel], input[type=email], textarea {\\n background-color: #d1d1d1 !important;\\n}\\n\\nhtml {\\n position: relative;\\n height: 100% !important;\\n}\\n\\nbody {\\n /* Margin bottom by footer height */\\n margin-bottom: 60px;\\n min-height: 100% !important;\\n}\\n\\n.footer {\\n position: fixed;\\n bottom: 0;\\n width: 100%;\\n /* Set the fixed height of the footer here */\\n height: 60px;\\n line-height: 60px;\\n /* Vertically center the text there */\\n background-color: #f5f5f5;\\n}\\n\\nbody > .container {\\n padding: 60px 15px 0;\\n}\\n\\n.footer > .container {\\n padding-right: 15px;\\n padding-left: 15px;\\n}\\n\\ncode {\\n font-size: 80%;\\n}\\n\\n#form-container {\\n height: calc(100% - 112px);\\n line-height: 50%;\\n -webkit-box-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n justify-content: center;\\n}\\n\\n@media (max-width: 768px) {\\n body > .container {\\n padding: 20px 15px 0;\\n }\\n}\\n\\n@media screen and (max-width: 768px) {\\n .title .container {\\n max-width: 700px !important;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90ZWJ0L3Byb2plY3RzL2ZlZWRiYWNrbm93L2Zibi12c2ItYW5ndWxhci9zcmMvYXBwL3ZvdGUtcGFnZS92b3RlLXBhZ2UuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3ZvdGUtcGFnZS92b3RlLXBhZ2UuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDSSxnQkFBQTtBQ0ZKOztBREtBO0VBQ0ksY0FBQTtFQUNBLG9CQUFBO0VBQ0Esc0NBQUE7QUNGSjs7QURLQTs7RUFFSSxjQUFBO0FDRko7O0FES0E7RUFDSTs7SUFFSSxxQkFBQTtFQ0ZOOztFRElFO0lBQ0ksU0FBQTtFQ0ROO0FBQ0Y7O0FESUE7RUFDSTs7SUFFSSxxQkFBQTtJQUNBLHVCQUFBO0VDRk47O0VESUU7SUFDSSxTQUFBO0VDRE47QUFDRjs7QURJQTs7RUFFSSxvQkFBQTtFQUNBLHlCQUFBO0VBQ0EsNEJBQUE7RUFDQSxpQkFBQTtBQ0ZKOztBRE9BO0VBQ0ksa0ZBQUE7RUFDQSwwRUFBQTtFQUdBLGdDQUFBO0VBQ0EsaURBQUE7VUFBQSx5Q0FBQTtFQUNBLGFBQUE7RUFDQSxtR0FBQTtFQUNBLG1CQUFBO0VBQ0EsNkZBQUE7QUNKSjs7QURPQTtFQUNJLGtGQUFBO0VBQ0EsMEVBQUE7RUFHQSxnQ0FBQTtFQUNBLGlEQUFBO1VBQUEseUNBQUE7RUFDQSxhQUFBO0VBQ0EsbUdBQUE7RUFDQSxtQkFBQTtFQUNBLDZGQUFBO0FDSko7O0FET0E7RUFDSSxrRkFBQTtFQUNBLDBFQUFBO0VBR0EsZ0NBQUE7RUFDQSxpREFBQTtVQUFBLHlDQUFBO0VBQ0EsYUFBQTtFQUNBLG1HQUFBO0VBQ0EsbUJBQUE7RUFDQSw2RkFBQTtBQ0pKOztBRE9BO0VBR0ksOEJBQUE7RUFDQSw4Q0FBQTtVQUFBLHNDQUFBO0VBQ0EsYUFBQTtFQUNBLGtHQUFBO0VBQ0EsbUJBQUE7RUFDQSw0RkFBQTtBQ0pKOztBRE9BO0VBQ0ksWUFwR1E7QUNnR1o7O0FET0E7RUFDSSxtQ0FB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QSx3QkFBQTtVQUFBLHVCQUFBO0FDSko7O0FET0E7RUFDSTtJQUNJLG9CQUFBO0VDSk47QUFDRjs7QURPQTtFQUNJO0lBQ0ksMkJBQUE7RUNMTjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvdm90ZS1wYWdlL3ZvdGUtcGFnZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiR3bF9zbWlsZXk6IDE5cmVtO1xuJHdsXzEyMzogMTVyZW07XG5cbiN3cmFwIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4jbWFpbiB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDIzcHg7XG4gICAgLyogbXVzdCBiZSBzYW1lIGhlaWdodCBhcyB0aGUgZm9vdGVyICovXG59XG5cbi5mZWVkYmFjayBpbWcsXG4jZmVlZGJhY2sgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDcwJTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgycHgpIHtcbiAgICAuZmVlZGJhY2sgaW1nLFxuICAgICNmZWVkYmFjayBpbWcge1xuICAgICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICN1cGRvd24ge1xuICAgICAgICB3aWR0aDogNSU7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAgIC5mZWVkYmFjayBpbWcsXG4gICAgI2ZlZWRiYWNrIGltZyB7XG4gICAgICAgIHdpZHRoOiAxOCUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICN1cGRvd24ge1xuICAgICAgICB3aWR0aDogNSU7XG4gICAgfVxufVxuXG4jZmVlZGJhY2sgaW1nLFxuLmZlZWRiYWNrIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgIG1hcmdpbjogMTBweCAzMHB4O1xufVxuXG5cblxuLmdyZWVuLmFjdGl2ZSB7XG4gICAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMTVweCAjOTFDNTE2KSBkcm9wLXNoYWRvdygtMXB4IC0xcHggMCAjOTFDNTE2KTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMTVweCAjOTFDNTE2KSBkcm9wLXNoYWRvdygtMXB4IC0xcHggMCAjOTFDNTE2KTtcbiAgICAtbW96LWJveC1zaGFkb3c6IDBweCAwcHggMjBweCAjOTFDNTE2O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICM5MUM1MTY7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCA1MHB4ICM5MUM1MTY7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDIwcHggIzkxQzUxNik7XG4gICAgLyogRm9yIElFIDggKi9cbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5TaGFkb3coU3RyZW5ndGg9ODAsIERpcmVjdGlvbj0xMzUsIENvbG9yPScjOTFDNTE2JylcIjtcbiAgICAvKiBGb3IgSUUgNS41IC0gNyAqL1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LlNoYWRvdyhTdHJlbmd0aD04MCwgRGlyZWN0aW9uPTEzNSwgQ29sb3I9JyM5MUM1MTYnKTtcbn1cblxuLnllbGxvdy5hY3RpdmUge1xuICAgIC13ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDE1cHggI0ZDQzkwQSkgZHJvcC1zaGFkb3coLTFweCAtMXB4IDAgI0ZDQzkwQSk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDE1cHggI0ZDQzkwQSkgZHJvcC1zaGFkb3coLTFweCAtMXB4IDAgI0ZDQzkwQSk7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwcHggMHB4IDIwcHggI0ZDQzkwQTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMjBweCAjRkNDOTBBO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAjRkNDOTBBO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAyMHB4ICNGQ0M5MEEpO1xuICAgIC8qIEZvciBJRSA4ICovXG4gICAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuU2hhZG93KFN0cmVuZ3RoPTUwLCBEaXJlY3Rpb249MTM1LCBDb2xvcj0nI0ZDQzkwQScpXCI7XG4gICAgLyogRm9yIElFIDUuNSAtIDcgKi9cbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5TaGFkb3coU3RyZW5ndGg9NTAsIERpcmVjdGlvbj0xMzUsIENvbG9yPScjRkNDOTBBJyk7XG59XG5cbi5yZWQuYWN0aXZlIHtcbiAgICAtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAxNXB4ICNGNTFBMTYpIGRyb3Atc2hhZG93KC0xcHggLTFweCAwICNGNTFBMTYpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAxNXB4ICNGNTFBMTYpIGRyb3Atc2hhZG93KC0xcHggLTFweCAwICNGNTFBMTYpO1xuICAgIC1tb3otYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICNGNTFBMTY7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDIwcHggI0Y1MUExNjtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggI0Y1MUExNjtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMjBweCAjRjUxQTE2KTtcbiAgICAvKiBGb3IgSUUgOCAqL1xuICAgIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LlNoYWRvdyhTdHJlbmd0aD01MCwgRGlyZWN0aW9uPTEzNSwgQ29sb3I9JyNGNTFBMTYnKVwiO1xuICAgIC8qIEZvciBJRSA1LjUgLSA3ICovXG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuU2hhZG93KFN0cmVuZ3RoPTUwLCBEaXJlY3Rpb249MTM1LCBDb2xvcj0nI0Y1MUExNicpO1xufVxuXG4uZGFyayB7XG4gICAgLW1vei1ib3gtc2hhZG93OiA2cHggN3B4IDExcHggIzAwMDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDZweCA3cHggMTFweCAjMDAwO1xuICAgIGJveC1zaGFkb3c6IC0ycHggMnB4IDEycHggIzAwMDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMTJweCAjMDAwKTtcbiAgICAvKiBGb3IgSUUgOCAqL1xuICAgIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LlNoYWRvdyhTdHJlbmd0aD05LCBEaXJlY3Rpb249MTM1LCBDb2xvcj0nIzAwMDAwMCcpXCI7XG4gICAgLyogRm9yIElFIDUuNSAtIDcgKi9cbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5TaGFkb3coU3RyZW5ndGg9OSwgRGlyZWN0aW9uPTEzNSwgQ29sb3I9JyMwMDAwMDAnKTtcbn1cblxuLnNtaWxleXtcbiAgICB3aWR0aDogJHdsX3NtaWxleTtcbn1cblxuI2J1dHRvbiBzcGFuIHtcbiAgICBib3gtc2hhZG93OiA1cHggNXB4IDVweCAwcHggIzAwMDAwMDtcbiAgICAtbW96LWJveC1zaGFkb3c6IDVweCA1cHggNXB4IDBweCAjMDAwMDAwO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogNXB4IDVweCA1cHggMHB4ICMwMDAwMDA7XG4gICAgbWFyZ2luLXRvcDogMSU7XG59XG5cbiNsb2dvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgcmlnaHQ6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxudGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbiNzZWxlY3RvcixcbiNzbWFydFR5cGluZyxcbiNkZXRhaWxzIHRhYmxlIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbiNzbWFydFR5cGluZyB7XG4gICAgd2lkdGg6IDQwMHB4O1xufVxuXG4jc21hcnRUeXBpbmcgaW5wdXQge1xuICAgIHdpZHRoOiAzOTVweDtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgZm9udC1zaXplOiAzMHB4O1xufVxuXG4jcmVzcG9uc2Uge1xuICAgIGJhY2tncm91bmQ6ICNEREREREQ7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4jcmVzcG9uc2UgdGQge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNCQkJCQkI7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4jc2VsZWN0b3Igc3BhbixcbiNyZXNwb25zZSxcbiNmZWVkYmFjayBpbWcsXG4uZmVlZGJhY2sgaW1nLFxuI3JlY29udGFjdCxcbiNidXR0b24gc3BhbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jcmVjb250YWN0IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5wIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwYWRkaW5nOiAwcHg7XG59XG5cbnAsXG4jcXVlc3Rpb24sXG50ZXh0YXJlYSxcbiNyZXNwb25zZSB0YWJsZSxcbiNmb290ZXIgdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4jc2VsZWN0b3IsXG4uc2VhcmNoLFxuI3NtYXJ0VHlwaW5nLFxuI2xvY2F0aW9uLFxuI3RoYW5rcyxcbiNsb2NrZWQsXG4jZXJyb3Ige1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuI3NlbGVjdG9yIHNwYW4ge1xuICAgIG1hcmdpbjogMjBweDtcbiAgICBjb2xvcjogI0ZGQ0MwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuI3Jlc3BvbnNlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4jdXBkb3duIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDBweDtcbiAgICB0b3A6IC01cHg7XG4gICAgcGFkZGluZzogMTVweCAxNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICBib3gtc2hhZG93OiA1cHggNXB4IDVweCAtMnB4ICMwMDAwMDA7XG4gICAgLW1vei1ib3gtc2hhZG93OiA1cHggNXB4IDVweCAtMnB4ICMwMDAwMDA7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiA1cHggNXB4IDVweCAtMnB4ICMwMDAwMDA7XG59XG5cbiNyZWNvbnRhY3Qge1xuICAgIHBhZGRpbmctcmlnaHQ6IDcwcHg7XG4gICAgbWluLWhlaWdodDogNzBweDtcbn1cblxuI3JlY29udGFjdCBkaXYge1xuICAgIHJpZ2h0OiAtNzBweDtcbn1cblxuI2J1dHRvbiBzcGFuLFxuI3VwZG93biB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtc2hhZG93OiAxcHggMXB4IDBweCAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQ6ICNmMmY2Zjg7XG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZjJmNmY4IDAlLCAjZDhlMWU3IDUwJSwgI2I1YzZkMCA1MSUsICNlMGVmZjkgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgI2YyZjZmOCksIGNvbG9yLXN0b3AoNTAlLCAjZDhlMWU3KSwgY29sb3Itc3RvcCg1MSUsICNiNWM2ZDApLCBjb2xvci1zdG9wKDEwMCUsICNlMGVmZjkpKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmMmY2ZjggMCUsICNkOGUxZTcgNTAlLCAjYjVjNmQwIDUxJSwgI2UwZWZmOSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjZjJmNmY4IDAlLCAjZDhlMWU3IDUwJSwgI2I1YzZkMCA1MSUsICNlMGVmZjkgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICNmMmY2ZjggMCUsICNkOGUxZTcgNTAlLCAjYjVjNmQwIDUxJSwgI2UwZWZmOSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZjJmNmY4IDAlLCAjZDhlMWU3IDUwJSwgI2I1YzZkMCA1MSUsICNlMGVmZjkgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmMmY2ZjgnLCBlbmRDb2xvcnN0cj0nI2UwZWZmOScsIEdyYWRpZW50VHlwZT0wKTtcbn1cblxuI2J1dHRvbiBzcGFuOmFjdGl2ZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMnB4O1xuICAgIGxlZnQ6IDFweDtcbiAgICBib3gtc2hhZG93OiBpbnNldCA1cHggNXB4IDVweCAtMnB4ICMwMDAwMDA7XG4gICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCA1cHggNXB4IDVweCAtMnB4ICMwMDAwMDA7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCA1cHggNXB4IDVweCAtMnB4ICMwMDAwMDA7XG59XG5cbiNlcnJvciB7XG4gICAgY29sb3I6ICNCQjAwMDA7XG59XG5cbiNkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jdmVyc2lvbmluZm8sXG4jYXV0aG9yaW5mbyB7XG4gICAgcGFkZGluZzogNHB4O1xufVxuXG4jYXV0aG9yaW5mbyB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jdXN0b20tbG9nbyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1nL2xvZ28ucG5nJyk7XG59XG5cbi5jdXN0b21fY3VzdG9tZXJfbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2N1c3RvbS1sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uY3VzdG9tLWltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZC1ub25lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5cbi8qI3JlY29udGFjdCBkaXYsICNyZWNvbnRhY3Qgc3BhbiwgI2RldGFpbHMgdGFibGUgdGQsICNzbWFydFR5cGluZywgLnF1ZXN0aW9uLCAjc2VsZWN0b3Igc3BhblxuLyojcmVjb250YWN0IGRpdiwgI3JlY29udGFjdCBzcGFuLCAjZGV0YWlscyB0YWJsZSB0ZCwgI3NtYXJ0VHlwaW5nLCAucXVlc3Rpb24sICNzZWxlY3RvciBzcGFuXG57IGJvcmRlcjogMXB4IGRhc2hlZCAjQ0NDQ0NDOyB9Ki9cblxuLm1vZGFsLXJlYXNvbnMge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjI1cywgb3BhY2l0eSAwLjI1cyAwcywgdHJhbnNmb3JtIDAuMjVzO1xufVxuXG4ubW9kYWwtcmVhc29ucy1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG59XG5cbi5jbG9zZS1idXR0b24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNsb3NlLWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5zaG93LW1vZGFsLXJlYXNvbnMge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7XG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsIG9wYWNpdHkgMC4yNXMgMHMsIHRyYW5zZm9ybSAwLjI1cztcbn1cblxuLmNhcmQtcmVhc29uIHtcbiAgICBoZWlnaHQ6IDkwcHg7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lci5jb2x1bW4tcmVhc29uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ucmVhc29ucy1jb250YWluZXIucm93LXJlYXNvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lci5yb3ctcmVhc29uLmNhcmQtcmVhc29uLnJlYXNvbiB7XG4gICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDkwcHg7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uIHtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZjYzUwODtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDE4MHB4O1xufVxuXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbiBkaXYucmVhc29uLWljb24tY29udGFpbmVyIGltZy5yZWFzb24taWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDMwcHg7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uIC5yZWFzb24tY2FyZC1jb250ZW50IHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uIC5yZWFzb24tY2FyZC1jb250ZW50LmZ1bGwtaGVpZ2h0IHtcbiAgICBoZWlnaHQ6IDkwcHg7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uIC5yZWFzb24tY2FyZC1jb250ZW50LnBhcnRpYWwtaGVpZ2h0IHtcbiAgICBoZWlnaHQ6IDcwJTtcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24uZ3JlZW4ge1xuICAgIGJhY2tncm91bmQ6ICM4YWJlMTY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzY5OTAxMTtcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24ubm9ybWFsIHtcbiAgICBiYWNrZ3JvdW5kOiAjOWNhM2E2O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3MTc2Nzc7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uLnllbGxvdyB7XG4gICAgYmFja2dyb3VuZDogI2ZjYzUwODtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2VhMTAzO1xufVxuXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi5yZWQge1xuICAgIGJhY2tncm91bmQ6ICNlODE0MTI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2I5MTAwZTtcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24uYWN0aXZlIC5yZWFzb24tY2FyZC1jb250ZW50LFxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb246aG92ZXIgLnJlYXNvbi1jYXJkLWNvbnRlbnQge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi5hY3RpdmUuZ3JlZW4sXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbjpob3Zlci5ncmVlbiB7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCA3cHggIzhhYmUxNjtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICM4YWJlMTYpO1xufVxuXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi5hY3RpdmUubm9ybWFsLFxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb246aG92ZXIubm9ybWFsIHtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDdweCAjOWNhM2E2O1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCA3cHggIzljYTNhNik7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uLmFjdGl2ZS55ZWxsb3csXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbjpob3Zlci55ZWxsb3cge1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggN3B4ICNmY2M1MDg7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDdweCAjZmNjNTA4KTtcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24uYWN0aXZlLnJlZCxcbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uOmhvdmVyLnJlZCB7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCA3cHggI2U4MTQxMjtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICNlODE0MTIpO1xufVxuXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi1jb250ZW50IHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxpbnB1dFt0eXBlPVwidGVsXCJdLGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgdGV4dGFyZWEge1xuICAgIGJhY2tncm91bmQtY29sb3IgOiAjZDFkMWQxICFpbXBvcnRhbnQ7IFxufVxuXG5odG1sIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlIWltcG9ydGFudDtcbn1cbmJvZHkge1xuICAgIC8qIE1hcmdpbiBib3R0b20gYnkgZm9vdGVyIGhlaWdodCAqL1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgbWluLWhlaWdodDoxMDAlIWltcG9ydGFudDtcbn1cbi5mb290ZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogU2V0IHRoZSBmaXhlZCBoZWlnaHQgb2YgdGhlIGZvb3RlciBoZXJlICovXG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA2MHB4OyAvKiBWZXJ0aWNhbGx5IGNlbnRlciB0aGUgdGV4dCB0aGVyZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5cbmJvZHkgPiAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiA2MHB4IDE1cHggMDtcbn1cblxuLmZvb3RlciA+IC5jb250YWluZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuXG5jb2RlIHtcbiAgICBmb250LXNpemU6IDgwJTtcbn1cblxuI2Zvcm0tY29udGFpbmVye1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTEycHgpO1xuICAgIGxpbmUtaGVpZ2h0OiA1MCU7XG4gICAgLy8gbWFyZ2luLXRvcDogMnJlbTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBib2R5ID4gLmNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTVweCAwO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAudGl0bGUgLmNvbnRhaW5lciB7XG4gICAgICAgIG1heC13aWR0aDogNzAwcHghaW1wb3J0YW50O1xuICAgIH1cbn1cblxuXG4iLCIjd3JhcCB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbiNtYWluIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAyM3B4O1xuICAvKiBtdXN0IGJlIHNhbWUgaGVpZ2h0IGFzIHRoZSBmb290ZXIgKi9cbn1cblxuLmZlZWRiYWNrIGltZyxcbiNmZWVkYmFjayBpbWcge1xuICBtYXgtd2lkdGg6IDcwJTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgycHgpIHtcbiAgLmZlZWRiYWNrIGltZyxcbiNmZWVkYmFjayBpbWcge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuXG4gICN1cGRvd24ge1xuICAgIHdpZHRoOiA1JTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmZlZWRiYWNrIGltZyxcbiNmZWVkYmFjayBpbWcge1xuICAgIHdpZHRoOiAxOCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDE1cHggIWltcG9ydGFudDtcbiAgfVxuXG4gICN1cGRvd24ge1xuICAgIHdpZHRoOiA1JTtcbiAgfVxufVxuI2ZlZWRiYWNrIGltZyxcbi5mZWVkYmFjayBpbWcge1xuICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgbWFyZ2luOiAxMHB4IDMwcHg7XG59XG5cbi5ncmVlbi5hY3RpdmUge1xuICAtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAxNXB4ICM5MUM1MTYpIGRyb3Atc2hhZG93KC0xcHggLTFweCAwICM5MUM1MTYpO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMTVweCAjOTFDNTE2KSBkcm9wLXNoYWRvdygtMXB4IC0xcHggMCAjOTFDNTE2KTtcbiAgLW1vei1ib3gtc2hhZG93OiAwcHggMHB4IDIwcHggIzkxQzUxNjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDIwcHggIzkxQzUxNjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA1MHB4ICM5MUM1MTY7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAyMHB4ICM5MUM1MTYpO1xuICAvKiBGb3IgSUUgOCAqL1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5TaGFkb3coU3RyZW5ndGg9ODAsIERpcmVjdGlvbj0xMzUsIENvbG9yPScjOTFDNTE2JylcIjtcbiAgLyogRm9yIElFIDUuNSAtIDcgKi9cbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuU2hhZG93KFN0cmVuZ3RoPTgwLCBEaXJlY3Rpb249MTM1LCBDb2xvcj1cIiM5MUM1MTZcIik7XG59XG5cbi55ZWxsb3cuYWN0aXZlIHtcbiAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMTVweCAjRkNDOTBBKSBkcm9wLXNoYWRvdygtMXB4IC0xcHggMCAjRkNDOTBBKTtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDE1cHggI0ZDQzkwQSkgZHJvcC1zaGFkb3coLTFweCAtMXB4IDAgI0ZDQzkwQSk7XG4gIC1tb3otYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICNGQ0M5MEE7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICNGQ0M5MEE7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAjRkNDOTBBO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMjBweCAjRkNDOTBBKTtcbiAgLyogRm9yIElFIDggKi9cbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuU2hhZG93KFN0cmVuZ3RoPTUwLCBEaXJlY3Rpb249MTM1LCBDb2xvcj0nI0ZDQzkwQScpXCI7XG4gIC8qIEZvciBJRSA1LjUgLSA3ICovXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LlNoYWRvdyhTdHJlbmd0aD01MCwgRGlyZWN0aW9uPTEzNSwgQ29sb3I9XCIjRkNDOTBBXCIpO1xufVxuXG4ucmVkLmFjdGl2ZSB7XG4gIC13ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDE1cHggI0Y1MUExNikgZHJvcC1zaGFkb3coLTFweCAtMXB4IDAgI0Y1MUExNik7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAxNXB4ICNGNTFBMTYpIGRyb3Atc2hhZG93KC0xcHggLTFweCAwICNGNTFBMTYpO1xuICAtbW96LWJveC1zaGFkb3c6IDBweCAwcHggMjBweCAjRjUxQTE2O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMjBweCAjRjUxQTE2O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggI0Y1MUExNjtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDIwcHggI0Y1MUExNik7XG4gIC8qIEZvciBJRSA4ICovXG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LlNoYWRvdyhTdHJlbmd0aD01MCwgRGlyZWN0aW9uPTEzNSwgQ29sb3I9JyNGNTFBMTYnKVwiO1xuICAvKiBGb3IgSUUgNS41IC0gNyAqL1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5TaGFkb3coU3RyZW5ndGg9NTAsIERpcmVjdGlvbj0xMzUsIENvbG9yPVwiI0Y1MUExNlwiKTtcbn1cblxuLmRhcmsge1xuICAtbW96LWJveC1zaGFkb3c6IDZweCA3cHggMTFweCAjMDAwO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDZweCA3cHggMTFweCAjMDAwO1xuICBib3gtc2hhZG93OiAtMnB4IDJweCAxMnB4ICMwMDA7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAxMnB4ICMwMDApO1xuICAvKiBGb3IgSUUgOCAqL1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5TaGFkb3coU3RyZW5ndGg9OSwgRGlyZWN0aW9uPTEzNSwgQ29sb3I9JyMwMDAwMDAnKVwiO1xuICAvKiBGb3IgSUUgNS41IC0gNyAqL1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5TaGFkb3coU3RyZW5ndGg9OSwgRGlyZWN0aW9uPTEzNSwgQ29sb3I9XCIjMDAwMDAwXCIpO1xufVxuXG4uc21pbGV5IHtcbiAgd2lkdGg6IDE5cmVtO1xufVxuXG4jYnV0dG9uIHNwYW4ge1xuICBib3gtc2hhZG93OiA1cHggNXB4IDVweCAwcHggIzAwMDAwMDtcbiAgLW1vei1ib3gtc2hhZG93OiA1cHggNXB4IDVweCAwcHggIzAwMDAwMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiA1cHggNXB4IDVweCAwcHggIzAwMDAwMDtcbiAgbWFyZ2luLXRvcDogMSU7XG59XG5cbiNsb2dvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDVweDtcbiAgcmlnaHQ6IDVweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHotaW5kZXg6IC0xO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbiNzZWxlY3RvcixcbiNzbWFydFR5cGluZyxcbiNkZXRhaWxzIHRhYmxlIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuI3NtYXJ0VHlwaW5nIHtcbiAgd2lkdGg6IDQwMHB4O1xufVxuXG4jc21hcnRUeXBpbmcgaW5wdXQge1xuICB3aWR0aDogMzk1cHg7XG4gIGhlaWdodDogMzVweDtcbiAgZm9udC1zaXplOiAzMHB4O1xufVxuXG4jcmVzcG9uc2Uge1xuICBiYWNrZ3JvdW5kOiAjREREREREO1xuICBjb2xvcjogYmxhY2s7XG59XG5cbiNyZXNwb25zZSB0ZCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNCQkJCQkI7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuI3NlbGVjdG9yIHNwYW4sXG4jcmVzcG9uc2UsXG4jZmVlZGJhY2sgaW1nLFxuLmZlZWRiYWNrIGltZyxcbiNyZWNvbnRhY3QsXG4jYnV0dG9uIHNwYW4ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNyZWNvbnRhY3Qge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5wIHtcbiAgbWFyZ2luOiAwcHg7XG4gIHBhZGRpbmc6IDBweDtcbn1cblxucCxcbiNxdWVzdGlvbixcbnRleHRhcmVhLFxuI3Jlc3BvbnNlIHRhYmxlLFxuI2Zvb3RlciB0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4jc2VsZWN0b3IsXG4uc2VhcmNoLFxuI3NtYXJ0VHlwaW5nLFxuI2xvY2F0aW9uLFxuI3RoYW5rcyxcbiNsb2NrZWQsXG4jZXJyb3Ige1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNzZWxlY3RvciBzcGFuIHtcbiAgbWFyZ2luOiAyMHB4O1xuICBjb2xvcjogI0ZGQ0MwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbiNyZXNwb25zZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbiN1cGRvd24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwcHg7XG4gIHRvcDogLTVweDtcbiAgcGFkZGluZzogMTVweCAxNXB4O1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTVweDtcbiAgYm94LXNoYWRvdzogNXB4IDVweCA1cHggLTJweCAjMDAwMDAwO1xuICAtbW96LWJveC1zaGFkb3c6IDVweCA1cHggNXB4IC0ycHggIzAwMDAwMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiA1cHggNXB4IDVweCAtMnB4ICMwMDAwMDA7XG59XG5cbiNyZWNvbnRhY3Qge1xuICBwYWRkaW5nLXJpZ2h0OiA3MHB4O1xuICBtaW4taGVpZ2h0OiA3MHB4O1xufVxuXG4jcmVjb250YWN0IGRpdiB7XG4gIHJpZ2h0OiAtNzBweDtcbn1cblxuI2J1dHRvbiBzcGFuLFxuI3VwZG93biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAwcHggI2ZmZmZmZjtcbiAgYmFja2dyb3VuZDogI2YyZjZmODtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZjJmNmY4IDAlLCAjZDhlMWU3IDUwJSwgI2I1YzZkMCA1MSUsICNlMGVmZjkgMTAwJSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCUsICNmMmY2ZjgpLCBjb2xvci1zdG9wKDUwJSwgI2Q4ZTFlNyksIGNvbG9yLXN0b3AoNTElLCAjYjVjNmQwKSwgY29sb3Itc3RvcCgxMDAlLCAjZTBlZmY5KSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2YyZjZmOCAwJSwgI2Q4ZTFlNyA1MCUsICNiNWM2ZDAgNTElLCAjZTBlZmY5IDEwMCUpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjZjJmNmY4IDAlLCAjZDhlMWU3IDUwJSwgI2I1YzZkMCA1MSUsICNlMGVmZjkgMTAwJSk7XG4gIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZjJmNmY4IDAlLCAjZDhlMWU3IDUwJSwgI2I1YzZkMCA1MSUsICNlMGVmZjkgMTAwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmMmY2ZjggMCUsICNkOGUxZTcgNTAlLCAjYjVjNmQwIDUxJSwgI2UwZWZmOSAxMDAlKTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9XCIjZjJmNmY4XCIsIGVuZENvbG9yc3RyPVwiI2UwZWZmOVwiLCBHcmFkaWVudFR5cGU9MCk7XG59XG5cbiNidXR0b24gc3BhbjphY3RpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAxcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDVweCA1cHggNXB4IC0ycHggIzAwMDAwMDtcbiAgLW1vei1ib3gtc2hhZG93OiBpbnNldCA1cHggNXB4IDVweCAtMnB4ICMwMDAwMDA7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgNXB4IDVweCA1cHggLTJweCAjMDAwMDAwO1xufVxuXG4jZXJyb3Ige1xuICBjb2xvcjogI0JCMDAwMDtcbn1cblxuI2RldGFpbHMge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jdmVyc2lvbmluZm8sXG4jYXV0aG9yaW5mbyB7XG4gIHBhZGRpbmc6IDRweDtcbn1cblxuI2F1dGhvcmluZm8ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmN1c3RvbS1sb2dvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy9sb2dvLnBuZ1wiKTtcbn1cblxuLmN1c3RvbV9jdXN0b21lcl9sb2dvIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2N1c3RvbS1sb2dvIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmN1c3RvbS1pbWFnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kLW5vbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiNyZWNvbnRhY3QgZGl2LCAjcmVjb250YWN0IHNwYW4sICNkZXRhaWxzIHRhYmxlIHRkLCAjc21hcnRUeXBpbmcsIC5xdWVzdGlvbiwgI3NlbGVjdG9yIHNwYW5cbi8qI3JlY29udGFjdCBkaXYsICNyZWNvbnRhY3Qgc3BhbiwgI2RldGFpbHMgdGFibGUgdGQsICNzbWFydFR5cGluZywgLnF1ZXN0aW9uLCAjc2VsZWN0b3Igc3BhblxueyBib3JkZXI6IDFweCBkYXNoZWQgI0NDQ0NDQzsgfSovXG4ubW9kYWwtcmVhc29ucyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjI1cywgb3BhY2l0eSAwLjI1cyAwcywgdHJhbnNmb3JtIDAuMjVzO1xufVxuXG4ubW9kYWwtcmVhc29ucy1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbn1cblxuLmNsb3NlLWJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNsb3NlLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uc2hvdy1tb2RhbC1yZWFzb25zIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsIG9wYWNpdHkgMC4yNXMgMHMsIHRyYW5zZm9ybSAwLjI1cztcbn1cblxuLmNhcmQtcmVhc29uIHtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuXG4ucmVhc29ucy1jb250YWluZXIuY29sdW1uLXJlYXNvbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lci5yb3ctcmVhc29uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyLnJvdy1yZWFzb24uY2FyZC1yZWFzb24ucmVhc29uIHtcbiAgbWF4LXdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbiB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmY2M1MDg7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAxODBweDtcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24gZGl2LnJlYXNvbi1pY29uLWNvbnRhaW5lciBpbWcucmVhc29uLWljb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAzMHB4O1xufVxuXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbiAucmVhc29uLWNhcmQtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24gLnJlYXNvbi1jYXJkLWNvbnRlbnQuZnVsbC1oZWlnaHQge1xuICBoZWlnaHQ6IDkwcHg7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uIC5yZWFzb24tY2FyZC1jb250ZW50LnBhcnRpYWwtaGVpZ2h0IHtcbiAgaGVpZ2h0OiA3MCU7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uLmdyZWVuIHtcbiAgYmFja2dyb3VuZDogIzhhYmUxNjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzY5OTAxMTtcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24ubm9ybWFsIHtcbiAgYmFja2dyb3VuZDogIzljYTNhNjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzcxNzY3Nztcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24ueWVsbG93IHtcbiAgYmFja2dyb3VuZDogI2ZjYzUwODtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NlYTEwMztcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24ucmVkIHtcbiAgYmFja2dyb3VuZDogI2U4MTQxMjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2I5MTAwZTtcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24uYWN0aXZlIC5yZWFzb24tY2FyZC1jb250ZW50LFxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb246aG92ZXIgLnJlYXNvbi1jYXJkLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi5hY3RpdmUuZ3JlZW4sXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbjpob3Zlci5ncmVlbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggN3B4ICM4YWJlMTY7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCA3cHggIzhhYmUxNik7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uLmFjdGl2ZS5ub3JtYWwsXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbjpob3Zlci5ub3JtYWwge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDdweCAjOWNhM2E2O1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICM5Y2EzYTYpO1xufVxuXG4ucmVhc29ucy1jb250YWluZXIgLnJlYXNvbi5hY3RpdmUueWVsbG93LFxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb246aG92ZXIueWVsbG93IHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA3cHggI2ZjYzUwODtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDdweCAjZmNjNTA4KTtcbn1cblxuLnJlYXNvbnMtY29udGFpbmVyIC5yZWFzb24uYWN0aXZlLnJlZCxcbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uOmhvdmVyLnJlZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggN3B4ICNlODE0MTI7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCA3cHggI2U4MTQxMik7XG59XG5cbi5yZWFzb25zLWNvbnRhaW5lciAucmVhc29uLWNvbnRlbnQge1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG5pbnB1dFt0eXBlPXRleHRdLCBpbnB1dFt0eXBlPXRlbF0sIGlucHV0W3R5cGU9ZW1haWxdLCB0ZXh0YXJlYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWQxZDEgIWltcG9ydGFudDtcbn1cblxuaHRtbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkge1xuICAvKiBNYXJnaW4gYm90dG9tIGJ5IGZvb3RlciBoZWlnaHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgbWluLWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9vdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICAvKiBTZXQgdGhlIGZpeGVkIGhlaWdodCBvZiB0aGUgZm9vdGVyIGhlcmUgKi9cbiAgaGVpZ2h0OiA2MHB4O1xuICBsaW5lLWhlaWdodDogNjBweDtcbiAgLyogVmVydGljYWxseSBjZW50ZXIgdGhlIHRleHQgdGhlcmUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cblxuYm9keSA+IC5jb250YWluZXIge1xuICBwYWRkaW5nOiA2MHB4IDE1cHggMDtcbn1cblxuLmZvb3RlciA+IC5jb250YWluZXIge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG59XG5cbmNvZGUge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuI2Zvcm0tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMTJweCk7XG4gIGxpbmUtaGVpZ2h0OiA1MCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgYm9keSA+IC5jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDIwcHggMTVweCAwO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAudGl0bGUgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA3MDBweCAhaW1wb3J0YW50O1xuICB9XG59Il19 */\"","import { QuestionSFD } from './../models/question-sfd';\nimport { FBNLanguageService } from './../providers/fbn-language.service';\nimport { Config } from './../models/config-model';\nimport { ActivatedRoute } from '@angular/router';\nimport { OnInit, Component } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { Engine } from '../providers/votes-services/engine';\nimport { CampaignDisplayer } from '../providers/campaign-displayer';\nimport { LoaderService } from '../providers/loader.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SettingsService } from '../providers/settings.service';\n\n@Component({\n selector: 'app-vote-page',\n templateUrl: './vote-page.component.html',\n styleUrls: ['./vote-page.component.scss']\n})\nexport class VotePageComponent implements OnInit {\n vsfdName: string;\n loading: boolean;\n cssFile: SafeResourceUrl;\n questionText: string;\n levels: string;\n config: Config;\n additionnalCssFound: boolean;\n today: number = Date.now();\n timeRefresh: number; //seconds\n votesEnabled: boolean;\n campaignChecking: boolean;\n choice: string;\n campaign_id: number;\n recipient_id: number;\n fromCampaign: boolean;\n cssFileExists: boolean;\n currentLanguage: string;\n readonly defaultLang: string;\n private _question: QuestionSFD;\n\n set question(value: QuestionSFD) {\n if (value) {\n this._question = value;\n this.choice = '';\n this.votesEnabled = true;\n this.setQuestionText();\n }\n }\n\n get question(): QuestionSFD {\n return this._question;\n }\n\n constructor(\n private route: ActivatedRoute,\n public sanitizer: DomSanitizer,\n private loader: LoaderService,\n public engine: Engine,\n public fbnLanguage: FBNLanguageService,\n public campaignDisplayer: CampaignDisplayer,\n private translate: TranslateService,\n private settings: SettingsService\n ) {\n this.mapParams();\n this.cssFile = null;\n this.additionnalCssFound = true;\n this.questionText = '';\n this.levels = '';\n this.votesEnabled = true;\n this.campaignChecking = false;\n this.cssFileExists = false;\n this.defaultLang = 'en';\n this.setDefaultLanguage();\n this.setLanguage();\n this.translate.onLangChange.subscribe(event => {\n this.setLanguage();\n });\n this.engine.getEventSubscriber().subscribe(event => {\n switch(event.name) {\n case 'question':\n const question = event.data.question;\n const justInit = event.data.justInit;\n if (justInit) {\n this.question = question;\n } else {\n setTimeout(() => {\n this.question = question;\n }, 1000);\n }\n break;\n case 'reset':\n if (event.data.propagate) {\n this.setDefaultLanguage();\n this.load();\n }\n this.checkCampaign();\n break;\n }\n });\n }\n\n private setDefaultLanguage() {\n this.translate.use(this.defaultLang);\n }\n private setLanguage() {\n this.setCurrentLanguage();\n this.setQuestionText();\n }\n\n private setCurrentLanguage() {\n this.currentLanguage = this.translate.currentLang;\n QuestionSFD.CURRENT_LANGUAGE = this.currentLanguage;\n }\n\n private setQuestionText() {\n if (this.question) {\n this.questionText = this.question.getCurrentText();\n } else {\n this.questionText = \"\";\n }\n }\n private mapParams() {\n const fields = {vsfdName: 'string', campaign_id: 'number', recipient_id: 'number'};\n Object.keys(fields).forEach((key) => {\n let tmp: any = this.route.snapshot.paramMap.get(key);\n if (fields[key] === 'number') {\n tmp = +tmp;\n }\n this[key] = tmp;\n });\n\n this.loader.setSFDName(this.vsfdName);\n }\n\n ngOnInit() {\n this.checkCampaign();\n if (this.vsfdName) {\n const assets = '/assets/styles/' + this.vsfdName + '.css';\n this.cssFile = this.sanitizer.bypassSecurityTrustResourceUrl(assets);\n this.fileExists(assets, result => {\n if (result) {\n this.cssFile = this.sanitizer.bypassSecurityTrustResourceUrl(assets);\n }\n });\n\n this.load();\n }\n }\n\n choose(color: string) {\n if (this.votesEnabled && !this.campaignChecking) {\n this.choice = color;\n this.votesEnabled = false;\n this.engine.vote(color, this.recipient_id);\n }\n }\n\n checkCampaign() {\n this.campaignChecking = true;\n if (this.campaign_id && this.recipient_id) {\n this.campaignDisplayer.display(this.campaign_id, this.recipient_id).subscribe(() => {\n this.campaignChecking = false;\n });\n } else {\n this.campaignChecking = false;\n }\n }\n\n load() {\n this.votesEnabled = false;\n this.levels = '';\n this.choice = '';\n this.loader.getQuestion().subscribe((question: QuestionSFD) => {\n this.loader.getConfig().subscribe(config => {\n this.config = config;\n this.settings.config = config;\n this.engine.init(question, this.config);\n this.levels = config.levelName;\n this.timeRefresh = question.validity;\n this.launchReloader();\n this.votesEnabled = true;\n this.config.languagesAvailable = question.getLanguages();\n });\n });\n }\n\n fileExists(url, callback) {\n var img = new Image();\n img.onload = function() { callback(true); };\n img.onerror = function() { callback(false); };\n img.src = url;\n }\n\n launchReloader() {\n setTimeout(() => {\n this.load();\n }, this.timeRefresh * 1000);\n }\n}\n","export const environment = {\n production: false,\n api: 'https://api.feedback-now.ch/api_vote',\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":""}