{"version":3,"sources":["./node_modules/moment/locale ^\\.\\/.*$","./src/$_lazy_route_resource lazy","./src/app/app-routing.module.ts","./src/app/app.component.html","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/auth/auth-routing.module.ts","./src/app/auth/auth.module.ts","./src/app/auth/components/gtcu-modal/gtcu-modal.component.html","./src/app/auth/components/gtcu-modal/gtcu-modal.component.scss","./src/app/auth/components/gtcu-modal/gtcu-modal.component.ts","./src/app/auth/components/login-layout/login-layout.component.html","./src/app/auth/components/login-layout/login-layout.component.scss","./src/app/auth/components/login-layout/login-layout.component.ts","./src/app/auth/pages/forgot-password/forgot-password.component.html","./src/app/auth/pages/forgot-password/forgot-password.component.scss","./src/app/auth/pages/forgot-password/forgot-password.component.ts","./src/app/auth/pages/login/login.component.html","./src/app/auth/pages/login/login.component.scss","./src/app/auth/pages/login/login.component.ts","./src/app/auth/pages/reset-password/reset-password.component.html","./src/app/auth/pages/reset-password/reset-password.component.scss","./src/app/auth/pages/reset-password/reset-password.component.ts","./src/app/auth/pages/signup/signup.component.html","./src/app/auth/pages/signup/signup.component.scss","./src/app/auth/pages/signup/signup.component.ts","./src/app/auth/shared/guards/signup.guard.ts","./src/app/auth/shared/services/countries/countries.service.ts","./src/app/auth/shared/validator/password.validator.ts","./src/app/auth/shared/validator/phone.validator.ts","./src/app/components/alerts-historical/alerts-historical.component.html","./src/app/components/alerts-historical/alerts-historical.component.scss","./src/app/components/alerts-historical/alerts-historical.component.ts","./src/app/components/alerts-management/alerts-management.component.html","./src/app/components/alerts-management/alerts-management.component.scss","./src/app/components/alerts-management/alerts-management.component.ts","./src/app/components/connectas/connectas.component.ts","./src/app/components/contact/contact-form.ts","./src/app/components/contact/contact.component.html","./src/app/components/contact/contact.component.scss","./src/app/components/contact/contact.component.ts","./src/app/components/custom-portfolio/custom-portfolio.component.html","./src/app/components/custom-portfolio/custom-portfolio.component.scss","./src/app/components/custom-portfolio/custom-portfolio.component.ts","./src/app/components/error/error.component.html","./src/app/components/error/error.component.scss","./src/app/components/error/error.component.ts","./src/app/components/faq/faq.component.html","./src/app/components/faq/faq.component.scss","./src/app/components/faq/faq.component.ts","./src/app/components/frame/frame.component.html","./src/app/components/frame/frame.component.scss","./src/app/components/frame/frame.component.ts","./src/app/components/gcu/gcu.component.html","./src/app/components/gcu/gcu.component.scss","./src/app/components/gcu/gcu.component.ts","./src/app/components/market-sentiment-analysis/market-sentiment-analysis.component.html","./src/app/components/market-sentiment-analysis/market-sentiment-analysis.component.scss","./src/app/components/market-sentiment-analysis/market-sentiment-analysis.component.ts","./src/app/components/market-sentiment-overview/market-sentiment-overview.component.html","./src/app/components/market-sentiment-overview/market-sentiment-overview.component.scss","./src/app/components/market-sentiment-overview/market-sentiment-overview.component.ts","./src/app/components/research/research.component.html","./src/app/components/research/research.component.scss","./src/app/components/research/research.component.ts","./src/app/components/settings/settings.component.html","./src/app/components/settings/settings.component.scss","./src/app/components/settings/settings.component.ts","./src/app/components/tutorial/tutorial.component.html","./src/app/components/tutorial/tutorial.component.scss","./src/app/components/tutorial/tutorial.component.ts","./src/app/shared/components/alert-manage-modal/alert-manage-modal.component.html","./src/app/shared/components/alert-manage-modal/alert-manage-modal.component.scss","./src/app/shared/components/alert-manage-modal/alert-manage-modal.component.ts","./src/app/shared/components/alert-rule-creator/alert-rule-creator.component.html","./src/app/shared/components/alert-rule-creator/alert-rule-creator.component.scss","./src/app/shared/components/alert-rule-creator/alert-rule-creator.component.ts","./src/app/shared/components/alert-rule-curve-selector/alert-rule-curve-selector.component.html","./src/app/shared/components/alert-rule-curve-selector/alert-rule-curve-selector.component.scss","./src/app/shared/components/alert-rule-curve-selector/alert-rule-curve-selector.component.ts","./src/app/shared/components/alert-rules-block/alert-rules-block.component.html","./src/app/shared/components/alert-rules-block/alert-rules-block.component.scss","./src/app/shared/components/alert-rules-block/alert-rules-block.component.ts","./src/app/shared/components/alert-rules-editor/alert-rules-editor.component.html","./src/app/shared/components/alert-rules-editor/alert-rules-editor.component.scss","./src/app/shared/components/alert-rules-editor/alert-rules-editor.component.ts","./src/app/shared/components/alerts-table/alerts-table.component.html","./src/app/shared/components/alerts-table/alerts-table.component.scss","./src/app/shared/components/alerts-table/alerts-table.component.ts","./src/app/shared/components/asset-title/asset-title.component.html","./src/app/shared/components/asset-title/asset-title.component.scss","./src/app/shared/components/asset-title/asset-title.component.ts","./src/app/shared/components/backtest-table/backtest-table.component.html","./src/app/shared/components/backtest-table/backtest-table.component.scss","./src/app/shared/components/backtest-table/backtest-table.component.ts","./src/app/shared/components/bars-group/bars-group.component.html","./src/app/shared/components/bars-group/bars-group.component.scss","./src/app/shared/components/bars-group/bars-group.component.ts","./src/app/shared/components/cp-menu/cp-menu.component.html","./src/app/shared/components/cp-menu/cp-menu.component.scss","./src/app/shared/components/cp-menu/cp-menu.component.ts","./src/app/shared/components/create-alert-modal/create-alert-modal.component.html","./src/app/shared/components/create-alert-modal/create-alert-modal.component.scss","./src/app/shared/components/create-alert-modal/create-alert-modal.component.ts","./src/app/shared/components/currently-displayed/currently-displayed.component.html","./src/app/shared/components/currently-displayed/currently-displayed.component.scss","./src/app/shared/components/currently-displayed/currently-displayed.component.ts","./src/app/shared/components/curve-panel/curve-panel.component.html","./src/app/shared/components/curve-panel/curve-panel.component.scss","./src/app/shared/components/curve-panel/curve-panel.component.ts","./src/app/shared/components/discrete-progress-bar/discrete-progress-bar.component.html","./src/app/shared/components/discrete-progress-bar/discrete-progress-bar.component.scss","./src/app/shared/components/discrete-progress-bar/discrete-progress-bar.component.ts","./src/app/shared/components/dropzone/dropzone.component.html","./src/app/shared/components/dropzone/dropzone.component.scss","./src/app/shared/components/dropzone/dropzone.component.ts","./src/app/shared/components/gcu-content/gcu-content.component.html","./src/app/shared/components/gcu-content/gcu-content.component.scss","./src/app/shared/components/gcu-content/gcu-content.component.ts","./src/app/shared/components/horizontal-bar-chart/horizontal-bar-chart.component.html","./src/app/shared/components/horizontal-bar-chart/horizontal-bar-chart.component.scss","./src/app/shared/components/horizontal-bar-chart/horizontal-bar-chart.component.ts","./src/app/shared/components/icon/icon.component.html","./src/app/shared/components/icon/icon.component.scss","./src/app/shared/components/icon/icon.component.ts","./src/app/shared/components/import-alert-modal/import-alert-modal.component.html","./src/app/shared/components/import-alert-modal/import-alert-modal.component.scss","./src/app/shared/components/import-alert-modal/import-alert-modal.component.ts","./src/app/shared/components/import-tickers-modal/import-tickers-modal.component.html","./src/app/shared/components/import-tickers-modal/import-tickers-modal.component.scss","./src/app/shared/components/import-tickers-modal/import-tickers-modal.component.ts","./src/app/shared/components/live-feed/live-feed.component.html","./src/app/shared/components/live-feed/live-feed.component.scss","./src/app/shared/components/live-feed/live-feed.component.ts","./src/app/shared/components/mood-curves/mood-curves.component.html","./src/app/shared/components/mood-curves/mood-curves.component.scss","./src/app/shared/components/mood-curves/mood-curves.component.ts","./src/app/shared/components/msa-menu/msa-menu.component.html","./src/app/shared/components/msa-menu/msa-menu.component.scss","./src/app/shared/components/msa-menu/msa-menu.component.ts","./src/app/shared/components/navbar/navbar.component.html","./src/app/shared/components/navbar/navbar.component.scss","./src/app/shared/components/navbar/navbar.component.ts","./src/app/shared/components/paged-progress-bar-list/paged-progress-bar-list.component.html","./src/app/shared/components/paged-progress-bar-list/paged-progress-bar-list.component.scss","./src/app/shared/components/paged-progress-bar-list/paged-progress-bar-list.component.ts","./src/app/shared/components/paged-progress-volume-list/paged-progress-volume-list.component.html","./src/app/shared/components/paged-progress-volume-list/paged-progress-volume-list.component.scss","./src/app/shared/components/paged-progress-volume-list/paged-progress-volume-list.component.ts","./src/app/shared/components/pie-chart/pie-chart.component.html","./src/app/shared/components/pie-chart/pie-chart.component.scss","./src/app/shared/components/pie-chart/pie-chart.component.ts","./src/app/shared/components/score-tile/score-tile.component.html","./src/app/shared/components/score-tile/score-tile.component.scss","./src/app/shared/components/score-tile/score-tile.component.ts","./src/app/shared/components/section-help/section-help.component.html","./src/app/shared/components/section-help/section-help.component.scss","./src/app/shared/components/section-help/section-help.component.ts","./src/app/shared/components/sidebar/sidebar.component.html","./src/app/shared/components/sidebar/sidebar.component.scss","./src/app/shared/components/sidebar/sidebar.component.ts","./src/app/shared/components/simple-dropdown/simple-dropdown.component.html","./src/app/shared/components/simple-dropdown/simple-dropdown.component.scss","./src/app/shared/components/simple-dropdown/simple-dropdown.component.ts","./src/app/shared/components/spinner/spinner.component.html","./src/app/shared/components/spinner/spinner.component.scss","./src/app/shared/components/spinner/spinner.component.ts","./src/app/shared/components/ticker-progress-bar/ticker-progress-bar.component.html","./src/app/shared/components/ticker-progress-bar/ticker-progress-bar.component.scss","./src/app/shared/components/ticker-progress-bar/ticker-progress-bar.component.ts","./src/app/shared/components/ticker-volume-bar/ticker-volume-bar.component.html","./src/app/shared/components/ticker-volume-bar/ticker-volume-bar.component.scss","./src/app/shared/components/ticker-volume-bar/ticker-volume-bar.component.ts","./src/app/shared/components/title/title.component.html","./src/app/shared/components/title/title.component.scss","./src/app/shared/components/title/title.component.ts","./src/app/shared/components/vue-bar/vue-bar.component.html","./src/app/shared/components/vue-bar/vue-bar.component.scss","./src/app/shared/components/vue-bar/vue-bar.component.ts","./src/app/shared/components/winners-losers/winners-losers.component.html","./src/app/shared/components/winners-losers/winners-losers.component.scss","./src/app/shared/components/winners-losers/winners-losers.component.ts","./src/app/shared/directives/intro-step/intro-step.directive.ts","./src/app/shared/guards/auth.guard.ts","./src/app/shared/models/alert.model.ts","./src/app/shared/models/dropdown-option.model.ts","./src/app/shared/pipes/is-null-or-undefined.pipe.ts","./src/app/shared/pipes/keys.pipe.ts","./src/app/shared/pipes/page.pipe.ts","./src/app/shared/services/alerts/alerts.service.ts","./src/app/shared/services/app/app.service.ts","./src/app/shared/services/auth-interceptor/auth-interceptor.service.ts","./src/app/shared/services/auth/auth.service.ts","./src/app/shared/services/auto-comp/auto-comp.service.ts","./src/app/shared/services/charts/charts.service.ts","./src/app/shared/services/export/export.service.ts","./src/app/shared/services/icon-registry/icon-registry.service.ts","./src/app/shared/services/intro.service.ts","./src/app/shared/services/live-feed/live-feed.service.ts","./src/app/shared/services/loading/loading.service.ts","./src/app/shared/services/market/market.service.ts","./src/app/shared/services/navbar-color/navbar-color.service.ts","./src/app/shared/services/navigation-helper/navigation-helper.service.ts","./src/app/shared/services/overview/overview.service.ts","./src/app/shared/services/portfolio/portfolio.service.ts","./src/app/shared/services/tickers/tickers.service.ts","./src/app/shared/services/time-code/time-code.service.ts","./src/app/shared/services/update/update.service.ts","./src/app/shared/services/user/user.service.ts","./src/app/shared/services/utils/utils.service.ts","./src/app/shared/services/websocket/websocket.service.ts","./src/app/shared/utils/constant.ts","./src/app/shared/validators/required-at-least-one-true.validator.ts","./src/app/shared/validators/same-values.validator.ts","./src/environments/environment.ts","./src/main.ts","child_process (ignored)","ws (ignored)","util (ignored)","fs (ignored)"],"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;AACA;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","file":"main.bundle.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.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-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.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-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\"./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\"./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-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.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\"./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\"./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\"./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-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale recursive ^\\\\.\\\\/.*$\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale ^\\.\\/.*$\n// module id = ./node_modules/moment/locale recursive ^\\.\\/.*$\n// module chunks = main","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/$$_lazy_route_resource lazy\n// module id = ./src/$$_lazy_route_resource lazy recursive\n// module chunks = main","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AlertsHistoricalComponent } from './components/alerts-historical/alerts-historical.component';\nimport { AlertsManagementComponent } from './components/alerts-management/alerts-management.component';\nimport { ConnectasComponent } from './components/connectas/connectas.component';\nimport { ContactComponent } from './components/contact/contact.component';\nimport { CustomPortfolioComponent } from './components/custom-portfolio/custom-portfolio.component';\nimport { ErrorComponent } from './components/error/error.component';\nimport { FaqComponent } from './components/faq/faq.component';\nimport { FrameComponent } from './components/frame/frame.component';\nimport { GcuComponent } from './components/gcu/gcu.component';\nimport { MarketSentimentAnalysisComponent } from './components/market-sentiment-analysis/market-sentiment-analysis.component';\nimport { MarketSentimentOverviewComponent } from './components/market-sentiment-overview/market-sentiment-overview.component';\nimport { ResearchComponent } from './components/research/research.component';\nimport { SettingsComponent } from './components/settings/settings.component';\nimport { TutorialComponent } from './components/tutorial/tutorial.component';\nimport { AuthGuard } from './shared/guards/auth.guard';\n\nconst routes: Routes = [\n {\n path: 'error/:id',\n component: ErrorComponent\n },\n {\n path: '',\n component: FrameComponent,\n canActivate: [AuthGuard],\n children: [\n {\n path: 'connectAs',\n component: ConnectasComponent\n },\n {\n path: 'settings',\n component: SettingsComponent\n },\n {\n path: 'portfolio',\n component: CustomPortfolioComponent\n },\n {\n path: 'information/tutorial',\n component: TutorialComponent\n },\n {\n path: 'information/faq',\n component: FaqComponent\n },\n {\n path: 'information/gcu',\n component: GcuComponent\n },\n {\n path: 'information/research',\n component: ResearchComponent\n },\n {\n path: 'contact',\n component: ContactComponent\n },\n {\n path: 'marketsentimentoverview',\n component: MarketSentimentOverviewComponent\n },\n {\n path: 'marketsentimentanalysis',\n component: MarketSentimentAnalysisComponent\n },\n {\n path: 'alerts/management',\n component: AlertsManagementComponent\n },\n {\n path: 'alerts/historical',\n component: AlertsHistoricalComponent\n },\n {\n path: '',\n redirectTo: '/marketsentimentoverview',\n pathMatch: 'full'\n }\n ]\n },\n {\n path: '**',\n redirectTo: 'marketsentimentoverview',\n pathMatch: 'full'\n }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app-routing.module.ts","module.exports = \"\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.html\n// module id = ./src/app/app.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.scss\n// module id = ./src/app/app.component.scss\n// module chunks = main","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IconRegistryService } from './shared/services/icon-registry/icon-registry.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'app';\n version = '4.2.4';\n\n constructor(\n private iconRegistry: IconRegistryService,\n private sanitizer: DomSanitizer\n ) {\n if (this.version !== localStorage.getItem('version')) {\n localStorage.clear();\n sessionStorage.clear();\n\n localStorage.setItem('version', this.version);\n }\n // Register icons\n this.iconRegistry\n .addSvgIcon(\n 'alert',\n this.sanitizer.bypassSecurityTrustResourceUrl('assets/icons/alert.svg')\n )\n .addSvgIcon(\n 'add-alert',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/add-alert.svg'\n )\n )\n .addSvgIcon(\n 'portfolio',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/portfolio.svg'\n )\n )\n .addSvgIcon(\n 'add-portfolio',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/add-portfolio.svg'\n )\n )\n .addSvgIcon(\n 'delete',\n this.sanitizer.bypassSecurityTrustResourceUrl('assets/icons/delete.svg')\n )\n .addSvgIcon(\n 'basic-materials',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/basic-materials.svg'\n )\n )\n .addSvgIcon(\n 'bonds',\n this.sanitizer.bypassSecurityTrustResourceUrl('assets/icons/bonds.svg')\n )\n .addSvgIcon(\n 'commodities',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/commodities.svg'\n )\n )\n .addSvgIcon(\n 'conglomerates',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/conglomerates.svg'\n )\n )\n .addSvgIcon(\n 'consum-goods',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/consum-goods.svg'\n )\n )\n .addSvgIcon(\n 'consum-services',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/consum-services.svg'\n )\n )\n .addSvgIcon(\n 'crypto',\n this.sanitizer.bypassSecurityTrustResourceUrl('assets/icons/crypto.svg')\n )\n .addSvgIcon(\n 'currencies',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/currencies.svg'\n )\n )\n .addSvgIcon(\n 'financial',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/financial.svg'\n )\n )\n .addSvgIcon(\n 'healthcare',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/healthcare.svg'\n )\n )\n .addSvgIcon(\n 'index',\n this.sanitizer.bypassSecurityTrustResourceUrl('assets/icons/index.svg')\n )\n .addSvgIcon(\n 'industrial-goods',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/industrial-goods.svg'\n )\n )\n .addSvgIcon(\n 'oilgas',\n this.sanitizer.bypassSecurityTrustResourceUrl('assets/icons/oilgas.svg')\n )\n .addSvgIcon(\n 'other',\n this.sanitizer.bypassSecurityTrustResourceUrl('assets/icons/others.svg')\n )\n .addSvgIcon(\n 'stock',\n this.sanitizer.bypassSecurityTrustResourceUrl('assets/icons/stock.svg')\n )\n .addSvgIcon(\n 'technology',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/technology.svg'\n )\n )\n .addSvgIcon(\n 'telecommunications',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/telecommunications.svg'\n )\n )\n .addSvgIcon(\n 'utilities',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/utilities.svg'\n )\n )\n .addSvgIcon(\n 'arrow-down',\n this.sanitizer.bypassSecurityTrustResourceUrl(\n 'assets/icons/arrow-down.svg'\n )\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NguiAutoCompleteModule } from '@ngui/auto-complete';\nimport { AngularDraggableModule } from 'angular2-draggable';\nimport { ChartModule } from 'angular2-highcharts';\nimport { HighchartsStatic } from 'angular2-highcharts/dist/HighchartsService';\nimport { MomentModule } from 'angular2-moment';\nimport { JWBootstrapSwitchModule } from 'jw-bootstrap-switch-ng2';\nimport { Ng2TableModule } from 'ng2-table/ng2-table';\nimport { AccordionModule } from 'ngx-bootstrap/accordion';\nimport { AlertModule } from 'ngx-bootstrap/alert';\nimport { ButtonsModule } from 'ngx-bootstrap/buttons';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { ProgressbarModule } from 'ngx-bootstrap/progressbar';\nimport { TabsModule } from 'ngx-bootstrap/tabs';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\nimport { ClipboardModule } from 'ngx-clipboard';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { AuthModule } from './auth/auth.module';\nimport { AlertsHistoricalComponent } from './components/alerts-historical/alerts-historical.component';\nimport { AlertsManagementComponent } from './components/alerts-management/alerts-management.component';\nimport { ConnectasComponent } from './components/connectas/connectas.component';\nimport { ContactComponent } from './components/contact/contact.component';\nimport { CustomPortfolioComponent } from './components/custom-portfolio/custom-portfolio.component';\nimport { ErrorComponent } from './components/error/error.component';\nimport { FaqComponent } from './components/faq/faq.component';\nimport { FrameComponent } from './components/frame/frame.component';\nimport { GcuComponent } from './components/gcu/gcu.component';\nimport { MarketSentimentAnalysisComponent } from './components/market-sentiment-analysis/market-sentiment-analysis.component';\nimport { MarketSentimentOverviewComponent } from './components/market-sentiment-overview/market-sentiment-overview.component';\nimport { ResearchComponent } from './components/research/research.component';\nimport { SettingsComponent } from './components/settings/settings.component';\nimport { TutorialComponent } from './components/tutorial/tutorial.component';\nimport { AlertManageModalComponent } from './shared/components/alert-manage-modal/alert-manage-modal.component';\nimport { AlertRuleCreatorComponent } from './shared/components/alert-rule-creator/alert-rule-creator.component';\nimport { AlertRuleCurveSelectorComponent } from './shared/components/alert-rule-curve-selector/alert-rule-curve-selector.component';\nimport { AlertRulesBlockComponent } from './shared/components/alert-rules-block/alert-rules-block.component';\nimport { AlertRulesEditorComponent } from './shared/components/alert-rules-editor/alert-rules-editor.component';\nimport { AlertsTableComponent } from './shared/components/alerts-table/alerts-table.component';\nimport { AssetTitleComponent } from './shared/components/asset-title/asset-title.component';\nimport { BacktestTableComponent } from './shared/components/backtest-table/backtest-table.component';\nimport { BarsGroupComponent } from './shared/components/bars-group/bars-group.component';\nimport { CpMenuComponent } from './shared/components/cp-menu/cp-menu.component';\nimport { CreateAlertModalComponent } from './shared/components/create-alert-modal/create-alert-modal.component';\nimport { CurrentlyDisplayedComponent } from './shared/components/currently-displayed/currently-displayed.component';\nimport { CurvePanelComponent } from './shared/components/curve-panel/curve-panel.component';\nimport { DiscreteProgressBarComponent } from './shared/components/discrete-progress-bar/discrete-progress-bar.component';\nimport { DropzoneComponent } from './shared/components/dropzone/dropzone.component';\nimport { GcuContentComponent } from './shared/components/gcu-content/gcu-content.component';\nimport { HorizontalBarChartComponent } from './shared/components/horizontal-bar-chart/horizontal-bar-chart.component';\nimport { IconComponent } from './shared/components/icon/icon.component';\nimport { ImportAlertModalComponent } from './shared/components/import-alert-modal/import-alert-modal.component';\nimport { ImportTickersModalComponent } from './shared/components/import-tickers-modal/import-tickers-modal.component';\nimport { LiveFeedComponent } from './shared/components/live-feed/live-feed.component';\nimport { MoodCurvesComponent } from './shared/components/mood-curves/mood-curves.component';\nimport { MsaMenuComponent } from './shared/components/msa-menu/msa-menu.component';\nimport { NavbarComponent } from './shared/components/navbar/navbar.component';\nimport { PagedProgressBarListComponent } from './shared/components/paged-progress-bar-list/paged-progress-bar-list.component';\nimport { PagedProgressVolumeListComponent } from './shared/components/paged-progress-volume-list/paged-progress-volume-list.component';\nimport { PieChartComponent } from './shared/components/pie-chart/pie-chart.component';\nimport { ScoreTileComponent } from './shared/components/score-tile/score-tile.component';\nimport { SectionHelpComponent } from './shared/components/section-help/section-help.component';\nimport { SidebarComponent } from './shared/components/sidebar/sidebar.component';\nimport { SimpleDropdownComponent } from './shared/components/simple-dropdown/simple-dropdown.component';\nimport { SpinnerComponent } from './shared/components/spinner/spinner.component';\nimport { TickerProgressBarComponent } from './shared/components/ticker-progress-bar/ticker-progress-bar.component';\nimport { TickerVolumeBarComponent } from './shared/components/ticker-volume-bar/ticker-volume-bar.component';\nimport { TitleComponent } from './shared/components/title/title.component';\nimport { VueBarComponent } from './shared/components/vue-bar/vue-bar.component';\nimport { WinnersLosersComponent } from './shared/components/winners-losers/winners-losers.component';\nimport { AuthGuard } from './shared/guards/auth.guard';\nimport { IsNullOrUndefinedPipe } from './shared/pipes/is-null-or-undefined.pipe';\nimport { KeysPipe } from './shared/pipes/keys.pipe';\nimport { PagePipe } from './shared/pipes/page.pipe';\nimport { AlertsService } from './shared/services/alerts/alerts.service';\nimport { AppService } from './shared/services/app/app.service';\nimport { AuthInterceptorService } from './shared/services/auth-interceptor/auth-interceptor.service';\nimport { AuthService } from './shared/services/auth/auth.service';\nimport { AutoCompService } from './shared/services/auto-comp/auto-comp.service';\nimport { ChartsService } from './shared/services/charts/charts.service';\nimport { ExportService } from './shared/services/export/export.service';\nimport { IconRegistryService } from './shared/services/icon-registry/icon-registry.service';\nimport { IntroService } from './shared/services/intro.service';\nimport { LiveFeedService } from './shared/services/live-feed/live-feed.service';\nimport { LoadingService } from './shared/services/loading/loading.service';\nimport { MarketService } from './shared/services/market/market.service';\nimport { NavbarColorService } from './shared/services/navbar-color/navbar-color.service';\nimport { NavigationHelperService } from './shared/services/navigation-helper/navigation-helper.service';\nimport { OverviewService } from './shared/services/overview/overview.service';\nimport { PortfolioService } from './shared/services/portfolio/portfolio.service';\nimport { TickersService } from './shared/services/tickers/tickers.service';\nimport { TimeCodeService } from './shared/services/time-code/time-code.service';\nimport { UpdateService } from './shared/services/update/update.service';\nimport { UserService } from './shared/services/user/user.service';\nimport { UtilsService } from './shared/services/utils/utils.service';\nimport { WebSocketService } from './shared/services/websocket/websocket.service';\nimport { IntroStepDirective } from './shared/directives/intro-step/intro-step.directive';\n\nexport function highstockFactory() {\n return require('highcharts/highstock');\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n ScoreTileComponent,\n MarketSentimentOverviewComponent,\n MarketSentimentAnalysisComponent,\n CustomPortfolioComponent,\n FrameComponent,\n ContactComponent,\n ErrorComponent,\n FaqComponent,\n GcuComponent,\n ConnectasComponent,\n ResearchComponent,\n SettingsComponent,\n TutorialComponent,\n GcuContentComponent,\n BarsGroupComponent,\n HorizontalBarChartComponent,\n LiveFeedComponent,\n MsaMenuComponent,\n CpMenuComponent,\n NavbarComponent,\n SectionHelpComponent,\n SidebarComponent,\n SpinnerComponent,\n VueBarComponent,\n PieChartComponent,\n PagedProgressBarListComponent,\n WinnersLosersComponent,\n PagedProgressVolumeListComponent,\n TickerProgressBarComponent,\n TickerVolumeBarComponent,\n IsNullOrUndefinedPipe,\n DiscreteProgressBarComponent,\n MoodCurvesComponent,\n CurrentlyDisplayedComponent,\n CurvePanelComponent,\n SimpleDropdownComponent,\n CreateAlertModalComponent,\n ImportAlertModalComponent,\n ImportTickersModalComponent,\n DropzoneComponent,\n AlertRuleCreatorComponent,\n AlertRuleCurveSelectorComponent,\n AlertRulesBlockComponent,\n AlertsManagementComponent,\n AlertsHistoricalComponent,\n AlertManageModalComponent,\n KeysPipe,\n AlertsTableComponent,\n AlertRulesEditorComponent,\n BacktestTableComponent,\n IconComponent,\n AssetTitleComponent,\n PagePipe,\n TitleComponent,\n IntroStepDirective\n ],\n imports: [\n BrowserModule,\n AuthModule,\n AppRoutingModule,\n FormsModule,\n ReactiveFormsModule,\n ProgressbarModule.forRoot(),\n PaginationModule.forRoot(),\n TooltipModule.forRoot(),\n ModalModule.forRoot(),\n CollapseModule.forRoot(),\n AccordionModule.forRoot(),\n BsDropdownModule.forRoot(),\n TabsModule.forRoot(),\n TypeaheadModule.forRoot(),\n AlertModule.forRoot(),\n PopoverModule.forRoot(),\n ButtonsModule.forRoot(),\n MomentModule,\n ChartModule,\n NguiAutoCompleteModule,\n JWBootstrapSwitchModule,\n HttpClientModule,\n ClipboardModule,\n Ng2TableModule,\n AngularDraggableModule\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptorService,\n multi: true\n },\n { provide: HighchartsStatic, useFactory: highstockFactory },\n AppService,\n PortfolioService,\n LoadingService,\n AuthGuard,\n AuthService,\n AutoCompService,\n ExportService,\n WebSocketService,\n TimeCodeService,\n OverviewService,\n ChartsService,\n AlertsService,\n TickersService,\n LiveFeedService,\n UserService,\n UpdateService,\n UtilsService,\n MarketService,\n IntroService,\n IconRegistryService,\n NavbarColorService,\n NavigationHelperService\n ],\n bootstrap: [AppComponent],\n entryComponents: [\n AlertManageModalComponent,\n CreateAlertModalComponent,\n ImportAlertModalComponent,\n CpMenuComponent,\n MsaMenuComponent\n ],\n exports: [TitleComponent]\n})\nexport class AppModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ForgotPasswordComponent } from './pages/forgot-password/forgot-password.component';\nimport { LoginComponent } from './pages/login/login.component';\nimport { ResetPasswordComponent } from './pages/reset-password/reset-password.component';\nimport { SignupComponent } from './pages/signup/signup.component';\nimport { SignupGuard } from './shared/guards/signup.guard';\n\nconst routes: Routes = [\n {\n path: 'auth',\n children: [\n {\n path: 'login',\n component: LoginComponent\n },\n {\n path: 'forgotpassword',\n component: ForgotPasswordComponent\n },\n {\n path: 'resetpassword/:resetToken',\n component: ResetPasswordComponent\n },\n {\n path: 'signup',\n component: SignupComponent,\n canActivate: [SignupGuard]\n }\n ]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class AuthRoutingModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/auth-routing.module.ts","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { GtcuModalComponent } from './components/gtcu-modal/gtcu-modal.component';\nimport { LoginLayoutComponent } from './components/login-layout/login-layout.component';\nimport { ForgotPasswordComponent } from './pages/forgot-password/forgot-password.component';\nimport { LoginComponent } from './pages/login/login.component';\nimport { ResetPasswordComponent } from './pages/reset-password/reset-password.component';\nimport { SignupComponent } from './pages/signup/signup.component';\nimport { SignupGuard } from './shared/guards/signup.guard';\nimport { CountriesService } from './shared/services/countries/countries.service';\n\n@NgModule({\n imports: [CommonModule, AuthRoutingModule, ReactiveFormsModule, ModalModule],\n declarations: [\n LoginComponent,\n SignupComponent,\n ForgotPasswordComponent,\n ResetPasswordComponent,\n LoginLayoutComponent,\n GtcuModalComponent\n ],\n providers: [CountriesService, SignupGuard],\n entryComponents: [GtcuModalComponent]\n})\nexport class AuthModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/auth.module.ts","module.exports = \"
\\n General Terms and Conditions of use\\n \\n ×\\n \\n
\\n\\n
\\n
Preamble
\\n

\\n These General Terms and Conditions aim to set out the terms and conditions\\n under which the application “L’Humeur des Marchés” (hereinafter referred to\\n as the “ Application”) is provided by SESAMm SAS – Company with a\\n capital of €75,250 - registered on the Commercial Registry of METZ under\\n SIREN no. 802024737 – www.sesamm.com–\\n 11 Rempart Saint Thiébault – 57000 METZ – intra-community VAT no.\\n FR87802024737. Managing editor of the\\n https://humeurdesmarches.com\\n website, Florian Aubry, application hosted by IBM Luxembourg sàrl.\\n

\\n

\\n SESAMm SAS should be contacted by email only at\\n contact@sesamm.com or\\n hdmhelp@sesamm.com.\\n

\\n

\\n By accessing and using the service provided by the Application (the “\\n Service”), the user (hereinafter referred to as the “ User”)\\n unconditionally accepts the General Terms and Conditions of Use (hereinafter\\n “ GTCU” or “ General Terms and Conditions”).\\n

\\n

\\n The Application is reserved for professional use and the User acknowledges\\n and confirms that he is a professional.\\n

\\n

\\n The contractual documents are in order of priority from highest to lowest:\\n

\\n \\n

\\n When the Application is used for the first time, the user is presented with\\n the General Terms and Conditions, which he must accept in order to use the\\n Application. They apply, without restrictions or reservations, to all the\\n services provided to Users by SESAMm SAS.\\n

\\n

\\n In accordance with current regulations, these General Terms and Conditions\\n are automatically sent to any User or prospective customer who requests\\n them. They may also be accessed at any time on the Application website\\n https://humeurdesmarches.com/login\\n under the “information” tab.\\n

\\n

\\n The details that appear on the website\\n https://humeurdesmarches.com, and\\n in any other prospectus and SESAMm SAS’ prices are for information only and\\n are subject to change at any time. SESAMm SAS reserves the right to make any\\n changes to them that it deems necessary.\\n

\\n

\\n Please read these General Terms and Conditions carefully before using or\\n consulting our Application.\\n

\\n\\n
1. The Service provided by the Application:
\\n

\\n The Application is an information tool aimed at professionals which\\n automatically analyses news articles, social media messages, blogs and forum\\n posts relating to companies and listed financial products (hereinafter\\n referred to as the “ Service”). The Application can be accessed\\n remotely via the Internet.\\n

\\n

\\n To order the Application, during or after the beta test phase, please\\n contact SESAMm SAS at\\n contact@sesamm.com. SESAMm SAS will\\n then make either a face-to-face or online appointment with the prospective\\n customer in order to make the Application available. Orders cannot solely be\\n placed online. If they agree to the terms, the parties will sign the\\n Application User Agreement.\\n

\\n

\\n Any other service is expressly excluded from SESAMm SAS’ offering, in\\n particular the information available through the Application is not under\\n any circumstances a help desk for the User’s investment decisions. The User\\n is not given a source code with this Service.\\n

\\n

\\n Access to and use of the Application is restricted to natural and legal\\n persons aged 18 and over for professional use.\\n

\\n

\\n The Service is supplied provided that the User complies with his\\n obligations. He must, in particular, pay the network connection fee or it\\n will not be possible to access the Service.\\n

\\n

\\n SESAMm SAS will inform the User about all the technical requirements needed\\n for the service to function to optimum effect, which can be found at\\n https://humeurdesmarches.com/information/faq. The User is also advised that these requirements may change, particularly\\n for technical reasons. If any changes occur during the contract period, the\\n User will be advised of these in advance.\\n

\\n\\n
2. Accessing the Service
\\n

\\n To use the Application, SESAMm SAS grants the User a personal,\\n non-transferable, non-exclusive licence, against payment, once the beta test\\n phase is complete, that may be used worldwide for the duration of the\\n Service.\\n

\\n

\\n The User may access the Service at any time, 7 days a week, except during\\n maintenance periods according to the terms set out below. Each end user will\\n be able to access the Service using his login details from any desktop or\\n laptop, whether or not based at the User’s premises.\\n

\\n

\\n Access to the Service is authorised for the number of end users who share\\n one (1) unique user name for the Application. The User is advised that\\n simultaneous connections using the same login details are not possible and\\n that if any attempt is made to access the Application simultaneously using\\n the same login details, only the first end user to connect will be able to\\n access the Service.\\n

\\n

\\n Login details may be recovered from the technical department which can be\\n contacted at the following address:\\n hdmhelp@sesamm.com.\\n

\\n

\\n The User is only permitted to use the Application as part of the Service and\\n in accordance with the terms of the licence agreement. He is responsible for\\n the end users’ use of the Service. He must ensure that the end users comply\\n with the contractual terms and conditions for accessing the Service. The\\n User is not permitted to transfer the right to access the Service in any way\\n whatsoever. The User undertakes not to give access to the Service to\\n unauthorised persons and will ensure that each authorised person keeps his\\n login details confidential.\\n

\\n

\\n The Application and its content, whether it be text, an image, a logo,\\n branding, a computer code, a domain name, extracted files, a database\\n (hereinafter referred to as the “ Content”) supplied by SESAMm SAS,\\n its sub-contractors and partners, remains their exclusive property and is\\n thus protected by the provisions of the French intellectual property code.\\n Any unauthorised reproduction and/or communication to the public of this\\n Content will be deemed an act of counterfeit, punishable by criminal and\\n civil sanctions.\\n

\\n

\\n The User will immediately inform SESAMm SAS if it becomes aware of a\\n security breach, particularly if passwords are voluntarily disclosed or\\n stolen, so that SESAMm SAS may take appropriate action straight away in\\n order to remedy this security breach.\\n

\\n

\\n Access to the Service may be blocked temporarily if necessary, especially to\\n carry out maintenance work on SESAMm SAS’ servers. Should this happen, the\\n User will be notified by email at least 2 hours before, except in the case\\n of an emergency.\\n

\\n\\n
\\n 3. Personal data – the French Data Protection Act (Loi informatique et\\n liberté)\\n
\\n

\\n SESAMm SAS may collect personal details about the User, such as his surname,\\n first name, nickname, email address, password or login details and\\n information about payment methods, when he registers with the Application.\\n

\\n

\\n These personal details will be kept secure and confidential. SESAMm SAS will\\n only use them to identify Users and to supply and improve the Service. They\\n will never be used by third parties for marketing purposes. The data is for\\n SESAMm SAS and its sub-contractors.\\n

\\n

\\n In accordance with the provisions of Law No. 78-17 of 6 January 1978 on data\\n protection, the User who is a natural person has the right to access, amend\\n and delete his personal data, at any time, by sending an email to the\\n following address:\\n contact@sesamm.com.\\n

\\n

\\n Users’ personal details may not be held for any longer than the period that\\n is strictly necessary for using the Application. However, data that proves a\\n right or agreement, or held in order to comply with a legal obligation, may\\n be archived in accordance with the provisions in force.\\n

\\n

\\n Data used for marketing purposes may be held for a period of three (3) years\\n from the end of the business relationship. Personal details relating to\\n potential customers as opposed to actual customers may be held for a period\\n of (3) years from when they are collected by the data controller or from the\\n last contact made by the potential customer (for example, a request for\\n information). At the end of this three-year period, SESAMm SAS may contact\\n the User again to find out if he wishes to continue receiving marketing\\n material. If a clear, positive response is not given, the details will be\\n removed or archived in accordance with the provisions in force. SESAMm SAS\\n does not hold bank card details.\\n

\\n

\\n When a person exercises his right to object to receiving marketing material\\n from SESAMm SAS, the information needed to register this objection is held\\n for a minimum of three (3) years from when the right to object was\\n exercised. This information may not, under any circumstances, be used for\\n any reason other than managing the right to object.\\n

\\n

\\n With regard to audience tracking, data stored in the users’ terminal (e.g.\\n cookies) or any other tool used to identify users and enable them to be\\n traced is not held for more than six (6) months. Subsequent visits do not\\n extend the length of time this information is held for. Raw data related to\\n usage linked to a user name is only held for six (6) months. After this, the\\n information is removed.\\n

\\n

\\n The User is advised that the Application can recognise his terminal when he\\n is connected to the Application. The sole purpose of these Cookies is to\\n enable or facilitate electronic communication where they are strictly\\n necessary for providing the service on the User’s specific request.\\n

\\n\\n
4. Liability and warranties
\\n

\\n The content supplied through the Application does not constitute advice or a\\n recommendation of any kind, especially financial. In particular, SESAMm SAS\\n cannot guarantee the content will meet the User’s needs, that the service\\n provided by the Application will be uninterrupted, timely, secure or\\n error-free. SESAMm SAS advises Users that it does not warrant the\\n reliability, precision, completeness or accuracy of the content published on\\n its Application.\\n

\\n

\\n The content is supplied “as is” under an obligation of means and SESAMm SAS\\n makes no warranties in this respect other than those stipulated in the\\n public policy provisions of French law.\\n

\\n

\\n Thus, it cannot be held directly or indirectly liable for the content, data\\n and information available on the Application. The User is solely responsible\\n for the use of this content. He states that he has legal capacity and\\n acknowledges that he is solely responsible for his actions and decisions. On\\n this basis, the User warrants SESAMm SAS, its sub-contractors and all of its\\n partners against any kind of third-party claims and against any financial\\n consequences that such claims may result in.\\n

\\n

\\n The Application may suggest links to websites which do not belong to SESAMm\\n SAS and which it does not control. Consequently, SESAMm SAS shall not be\\n held liable for the use made of these external links. SESAMm SAS thus shall\\n not be held responsible for operations or transactions carried out by the\\n User on other websites or applications, or for the potentially illegal\\n nature of the content consulted. SESAMm SAS is not responsible for the\\n availability of these third-party websites and external resources and does\\n not endorse the advertising, products or other links that appear on these\\n websites or external resources or that may be accessed from them.\\n

\\n

\\n SESAMm SAS shall not be held responsible for any indirect loss or the\\n consequences of such loss suffered by the User which may occur from or\\n during the use of the Service. Consequential damage includes, but is not\\n limited to, loss of income or profit, loss of data, loss of opportunity,\\n commercial damage, consequences of third-party grievances or claims against\\n the User, notwithstanding the fact that SESAMm SAS would have been warned\\n about the possibility of such events occurring, subject to the public policy\\n provisions applicable herein.\\n

\\n

\\n SESAMm SAS shall not be held liable by the User in the case of force\\n majeure, computing or technical malfunction of the User’s computer system,\\n failure of the User’s electronic communication network or service provider,\\n improper use of the service by the User, fault, negligence, omission or\\n default of SESAMm SAS, failure to follow SESAMm SAS’ advice, unlawful\\n disclosure or use of a password sent confidentially to the User, fault,\\n negligence or omission of a third party whom SESAMm SAS has no power of\\n control or supervision over, after a competent administrative or judicial\\n authority has requested that the service be temporarily or permanently\\n suspended, the partial or total damage to data sent to the User.\\n

\\n

\\n In any case, SESAMm SAS’ liability, in the event of loss suffered by the\\n User for any reason and regardless of the legal basis invoked and relied\\n upon, for any type of loss, will be expressly limited and shall not exceed\\n the amount invoiced by SESAMm SAS over the past twelve (12) months.\\n

\\n

\\n SESAMm SAS does not create a backup of the content sent to the User. It is\\n the User’s responsibility to take any action required to back up this\\n content, for which SESAMm SAS excludes any warranty or liability.\\n

\\n

\\n The User is advised that he must connect to the services via the Internet.\\n He is warned about the technical issues that may affect the Internet and\\n result in a slower service and downtime preventing connection. SESAMm SAS\\n shall not be held liable for problems accessing the Services caused by\\n disruptions to the Internet.\\n

\\n

\\n Any person may at any time report illegal content to us so that it may be\\n deleted, if appropriate, as soon as possible, by writing to us at\\n hdmhelp@sesamm.com. In this case,\\n SESAMm will delete the content in question from its Application, but cannot,\\n under any circumstances, remove external content. In general, the editor or\\n host of the contentious external content should be contacted.\\n

\\n\\n
5. Duration of the Service
\\n

\\n The Service is provided for an indefinite period and includes two successive\\n phases: the beta test phase and the fee-paying phase.\\n

\\n
5.1 Initial beta test phase
\\n

\\n An initial beta test phase will commence once the User accepts these General\\n Terms and Conditions to allow the User to test the Application for a period\\n set by SESAMm.\\n

\\n

\\n This initial test phase is free of charge and will not be invoiced by SESAMm\\n SAS. During this phase, at any time, without notice, SESAMm reserves the\\n right to withdraw the service, which will mean that the Service will no\\n longer be provided.\\n

\\n
5.2 Second fee-paying phase
\\n

\\n During or after the initial beta test phase, a User who wishes to become a\\n customer must expressly state that they wish to enter the second,\\n fee-paying, phase. In this case, the parties will enter into and sign an\\n Application user agreement (the “ Agreement”).\\n

\\n

\\n This will lead to the commencement of the second phase, known as the\\n “fee-paying” phase.\\n

\\n\\n
6. Amendments to the General Terms and Conditions
\\n

\\n SESAMm SAS remains entirely free to amend these General Terms and Conditions\\n at any time. By using the Application, the User acknowledges that he has\\n read and accepted these General Terms and Conditions applicable on the date\\n the Application was accessed.\\n

\\n

\\n If these General Terms and Conditions are amended in any way, they will be\\n sent to the User again so that he can accept them before accessing the\\n Service. Should the User refuse to accept the General Terms and Conditions,\\n he will no longer be able to access the Application.\\n

\\n\\n
7. Miscellaneous
\\n

\\n Should any provision/s be declared void by the court or prove impossible to\\n implement, the other provisions would remain valid and the parties undertake\\n to negotiate in good faith a replacement provision.\\n

\\n

\\n The headings and sub-headings that appear in these General Terms and\\n Conditions are included for convenience. By express consent of the parties,\\n these headings and sub-heading shall under no circumstances be used to\\n interpret any provision whatsoever of the Agreement.\\n

\\n

\\n The waiver by a party of the application of any of the provisions in this\\n agreement or temporary or permanent acceptance of the breach of a provision,\\n shall not be interpreted as this party waiving the rights conferred to it\\n herein. The acceptance by a party of the breach or incomplete performance of\\n the contract, or more generally, of any act, failure to act or omission by\\n the other party that does not comply with the provisions of this agreement\\n will not confer any rights whatsoever to the party benefiting from this\\n acceptance.\\n

\\n

\\n These General Terms and Conditions and the Agreement express all the\\n agreements between the parties and replace any previous agreement, whether\\n it be written, verbal, express or implied. If there is a contradiction\\n between these two documents, the Agreement shall take precedence over these\\n General Terms and Conditions.\\n

\\n

\\n The parties accept that they are acting in the capacity of independent\\n co-contracting parties. This agreement shall not result in them becoming a\\n company or partnership of any kind.\\n

\\n\\n
8. Applicable law and jurisdiction
\\n

These General Terms and Conditions are subject to French law.

\\n

\\n Should a dispute arise in the interpretation, performance or termination of\\n these General Terms and Conditions, the parties undertake to endeavour to\\n seek an amicable solution before taking legal action within sixty (60) days\\n of any dispute relating to these General Terms and Conditions.\\n

\\n

\\n \\n If, after sixty (60) days following a dispute relating to these General\\n Terms and Conditions, the parties are unable to find a solution, the\\n courts of the city of Paris will have exclusive jurisdiction in the\\n matter.\\n \\n

\\n

\\n \\n This clause conferring exclusive jurisdiction must be applied in the\\n broadest possible sense with no restrictions, even in cases of several\\n defendants or the introduction of third parties, subject to the public\\n policy provisions that apply to these General Terms and Conditions.\\n \\n

\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/components/gtcu-modal/gtcu-modal.component.html\n// module id = ./src/app/auth/components/gtcu-modal/gtcu-modal.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/components/gtcu-modal/gtcu-modal.component.scss\n// module id = ./src/app/auth/components/gtcu-modal/gtcu-modal.component.scss\n// module chunks = main","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\n\n@Component({\n selector: 'app-gtcu-modal',\n templateUrl: './gtcu-modal.component.html',\n styleUrls: ['./gtcu-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GtcuModalComponent implements OnInit {\n constructor(public bsModalRef: BsModalRef) {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/components/gtcu-modal/gtcu-modal.component.ts","module.exports = \"
\\n\\n \\n\\n
\\n\\n

{{layoutTitle}}

\\n\\n \\n\\n
\\n\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/components/login-layout/login-layout.component.html\n// module id = ./src/app/auth/components/login-layout/login-layout.component.html\n// module chunks = main","module.exports = \".error-message {\\n color: white;\\n background-color: rgba(241, 110, 68, 0.7);\\n padding: 5px 10px;\\n border-radius: 4px; }\\n\\na {\\n color: #4f2259;\\n vertical-align: baseline; }\\n\\na:hover {\\n color: #4f2259; }\\n\\n.form-control {\\n background: none !important;\\n color: white !important;\\n border: none !important;\\n border-bottom: 1px solid white !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n border-radius: 0 !important;\\n -webkit-transition: border-color 100ms linear, color 100ms linear;\\n transition: border-color 100ms linear, color 100ms linear; }\\n\\n.form-control::-webkit-input-placeholder {\\n color: white !important; }\\n\\n.form-control:-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::placeholder {\\n color: white !important; }\\n\\n.form-control:focus {\\n border-color: #4f2259 !important;\\n color: #4f2259 !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n outline: none !important; }\\n\\n.form-control:focus::-webkit-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus:-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:disabled {\\n background: none !important;\\n color: rgba(255, 255, 255, 0.8) !important !important;\\n border-bottom: 1px solid rgba(255, 255, 255, 0.8) !important !important; }\\n\\nbutton {\\n background: rgba(79, 34, 89, 0.4);\\n border: none;\\n color: white;\\n border-radius: 4px;\\n font-size: 18px;\\n padding: 5px 8px;\\n -webkit-transition: background-color 100ms linear;\\n transition: background-color 100ms linear; }\\n\\nbutton:disabled {\\n color: rgba(255, 255, 255, 0.5);\\n cursor: not-allowed; }\\n\\nbutton:hover {\\n background: rgba(79, 34, 89, 0.5); }\\n\\nbutton:hover:disabled {\\n background: rgba(79, 34, 89, 0.4); }\\n\\nbutton:focus {\\n outline: none;\\n background: rgba(79, 34, 89, 0.5); }\\n\\nselect {\\n background: none;\\n color: white;\\n border-radius: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n border: none;\\n border-bottom: 1px solid white;\\n -webkit-transition: color 100ms linear;\\n transition: color 100ms linear; }\\n\\nselect:focus {\\n outline: none;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n color: #4f2259; }\\n\\noption {\\n color: black; }\\n\\nhr {\\n border-top: 1px solid white; }\\n\\n.form-container {\\n color: white;\\n background: rgba(255, 255, 255, 0.3);\\n -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n border-radius: 8px;\\n margin: auto;\\n margin-top: 30px;\\n padding: 0 20px 20px 20px;\\n width: 500px;\\n overflow: auto; }\\n\\n.form-container__title {\\n text-align: center;\\n margin-bottom: 20px; }\\n\\n.img-background {\\n background: url(\\\"/assets/img/bg.jpg\\\") no-repeat center center fixed;\\n background-size: cover;\\n min-height: 100vh;\\n overflow: auto; }\\n\\n.hdm-logo {\\n margin: auto;\\n margin-top: 50px;\\n max-width: 400px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/components/login-layout/login-layout.component.scss\n// module id = ./src/app/auth/components/login-layout/login-layout.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit\n} from '@angular/core';\n\n@Component({\n selector: 'app-login-layout',\n templateUrl: './login-layout.component.html',\n styleUrls: ['./login-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LoginLayoutComponent implements OnInit {\n @Input()\n layoutTitle: string;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/components/login-layout/login-layout.component.ts","module.exports = \"\\n
\\n
\\n Unknown e-mail.
\\n Please try again.\\n
\\n
\\n We sent a link to your mail address with the instructions to reset your\\n password.
\\n Please also check your spam folder.\\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n Reset my password\\n \\n
\\n\\n \\n \\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/pages/forgot-password/forgot-password.component.html\n// module id = ./src/app/auth/pages/forgot-password/forgot-password.component.html\n// module chunks = main","module.exports = \".error-message {\\n color: white;\\n background-color: rgba(241, 110, 68, 0.7);\\n padding: 5px 10px;\\n border-radius: 4px; }\\n\\na {\\n color: #4f2259;\\n vertical-align: baseline; }\\n\\na:hover {\\n color: #4f2259; }\\n\\n.form-control {\\n background: none !important;\\n color: white !important;\\n border: none !important;\\n border-bottom: 1px solid white !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n border-radius: 0 !important;\\n -webkit-transition: border-color 100ms linear, color 100ms linear;\\n transition: border-color 100ms linear, color 100ms linear; }\\n\\n.form-control::-webkit-input-placeholder {\\n color: white !important; }\\n\\n.form-control:-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::placeholder {\\n color: white !important; }\\n\\n.form-control:focus {\\n border-color: #4f2259 !important;\\n color: #4f2259 !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n outline: none !important; }\\n\\n.form-control:focus::-webkit-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus:-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:disabled {\\n background: none !important;\\n color: rgba(255, 255, 255, 0.8) !important !important;\\n border-bottom: 1px solid rgba(255, 255, 255, 0.8) !important !important; }\\n\\nbutton {\\n background: rgba(79, 34, 89, 0.4);\\n border: none;\\n color: white;\\n border-radius: 4px;\\n font-size: 18px;\\n padding: 5px 8px;\\n -webkit-transition: background-color 100ms linear;\\n transition: background-color 100ms linear; }\\n\\nbutton:disabled {\\n color: rgba(255, 255, 255, 0.5);\\n cursor: not-allowed; }\\n\\nbutton:hover {\\n background: rgba(79, 34, 89, 0.5); }\\n\\nbutton:hover:disabled {\\n background: rgba(79, 34, 89, 0.4); }\\n\\nbutton:focus {\\n outline: none;\\n background: rgba(79, 34, 89, 0.5); }\\n\\nselect {\\n background: none;\\n color: white;\\n border-radius: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n border: none;\\n border-bottom: 1px solid white;\\n -webkit-transition: color 100ms linear;\\n transition: color 100ms linear; }\\n\\nselect:focus {\\n outline: none;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n color: #4f2259; }\\n\\noption {\\n color: black; }\\n\\nhr {\\n border-top: 1px solid white; }\\n\\n.reset-form__login {\\n margin-top: 10px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/pages/forgot-password/forgot-password.component.scss\n// module id = ./src/app/auth/pages/forgot-password/forgot-password.component.scss\n// module chunks = main","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormBuilder, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AuthService } from '../../../shared/services/auth/auth.service';\n\n/**\n * Forgot Password page of the application.\n *\n * @export\n * @class ForgotPasswordComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.scss']\n})\nexport class ForgotPasswordComponent implements OnInit, OnDestroy {\n resetForm = this.fb.group({\n email: ['', [Validators.required, Validators.email]]\n });\n\n resetConfirm = false;\n resetError = false;\n\n private destroy$ = new Subject();\n\n constructor(private fb: FormBuilder, private authService: AuthService) {}\n\n ngOnInit(): void {}\n\n get email(): AbstractControl {\n return this.resetForm.get('email');\n }\n\n /**\n * Send the request to reset the password of the user from the form inputs.\n *\n * @memberof ForgotPasswordComponent\n */\n resetPassword() {\n this.authService\n .forgotPassword(this.email.value)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.resetConfirm = true;\n this.resetError = false;\n },\n () => {\n this.resetError = true;\n this.resetConfirm = false;\n }\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/pages/forgot-password/forgot-password.component.ts","module.exports = \"\\n
\\n \\n\\n
\\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n\\n
\\n I forgot my password\\n
\\n
\\n\\n \\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/pages/login/login.component.html\n// module id = ./src/app/auth/pages/login/login.component.html\n// module chunks = main","module.exports = \".error-message {\\n color: white;\\n background-color: rgba(241, 110, 68, 0.7);\\n padding: 5px 10px;\\n border-radius: 4px; }\\n\\na {\\n color: #4f2259;\\n vertical-align: baseline; }\\n\\na:hover {\\n color: #4f2259; }\\n\\n.form-control {\\n background: none !important;\\n color: white !important;\\n border: none !important;\\n border-bottom: 1px solid white !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n border-radius: 0 !important;\\n -webkit-transition: border-color 100ms linear, color 100ms linear;\\n transition: border-color 100ms linear, color 100ms linear; }\\n\\n.form-control::-webkit-input-placeholder {\\n color: white !important; }\\n\\n.form-control:-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::placeholder {\\n color: white !important; }\\n\\n.form-control:focus {\\n border-color: #4f2259 !important;\\n color: #4f2259 !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n outline: none !important; }\\n\\n.form-control:focus::-webkit-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus:-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:disabled {\\n background: none !important;\\n color: rgba(255, 255, 255, 0.8) !important !important;\\n border-bottom: 1px solid rgba(255, 255, 255, 0.8) !important !important; }\\n\\nbutton {\\n background: rgba(79, 34, 89, 0.4);\\n border: none;\\n color: white;\\n border-radius: 4px;\\n font-size: 18px;\\n padding: 5px 8px;\\n -webkit-transition: background-color 100ms linear;\\n transition: background-color 100ms linear; }\\n\\nbutton:disabled {\\n color: rgba(255, 255, 255, 0.5);\\n cursor: not-allowed; }\\n\\nbutton:hover {\\n background: rgba(79, 34, 89, 0.5); }\\n\\nbutton:hover:disabled {\\n background: rgba(79, 34, 89, 0.4); }\\n\\nbutton:focus {\\n outline: none;\\n background: rgba(79, 34, 89, 0.5); }\\n\\nselect {\\n background: none;\\n color: white;\\n border-radius: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n border: none;\\n border-bottom: 1px solid white;\\n -webkit-transition: color 100ms linear;\\n transition: color 100ms linear; }\\n\\nselect:focus {\\n outline: none;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n color: #4f2259; }\\n\\noption {\\n color: black; }\\n\\nhr {\\n border-top: 1px solid white; }\\n\\n.login-form__inputs {\\n margin-bottom: 10px; }\\n\\n.login-form__forgot-password {\\n margin-top: 10px;\\n text-align: center; }\\n\\n.error-message {\\n margin-bottom: 10px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/pages/login/login.component.scss\n// module id = ./src/app/auth/pages/login/login.component.scss\n// module chunks = main","import {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { UAParser } from 'ua-parser-js';\nimport { AuthService } from '../../../shared/services/auth/auth.service';\nimport { UserService } from '../../../shared/services/user/user.service';\nimport { WebSocketService } from '../../../shared/services/websocket/websocket.service';\nimport { Constant } from '../../../shared/utils/constant';\nimport { GtcuModalComponent } from '../../components/gtcu-modal/gtcu-modal.component';\n\n/**\n * Login page of the application.\n *\n * @export\n * @class LoginComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n @ViewChild('password')\n passwordInput: ElementRef;\n @ViewChild('gtcuModal', { read: ViewContainerRef })\n gtcuModal: ViewContainerRef;\n\n loginForm = this.fb.group({\n username: ['', Validators.required],\n password: ['', Validators.required],\n gtcu: [false, Validators.requiredTrue]\n });\n\n Constant = Constant;\n error: string;\n routeParam: string;\n UAParser = new UAParser();\n connecting = false;\n\n private destroy$ = new Subject();\n\n constructor(\n private fb: FormBuilder,\n private authService: AuthService,\n private webSocketService: WebSocketService,\n private router: Router,\n private route: ActivatedRoute,\n private userService: UserService,\n private modalService: BsModalService\n ) {}\n\n /**\n * Set the route the users will be redirected to once logged in if presents in the query params,\n * and close the socket connection in case of it's not done.\n *\n * @memberof LoginComponent\n */\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe(params => {\n this.routeParam = params['route'] || Constant.MSORoute;\n });\n\n if (this.webSocketService.isConnected()) {\n this.authService.logout();\n }\n }\n\n get username() {\n return this.loginForm.get('username');\n }\n\n get password() {\n return this.loginForm.get('password');\n }\n\n openGtcuModal(event: Event): void {\n event.preventDefault();\n this.modalService.show(GtcuModalComponent);\n }\n\n /**\n * Tries connecting the user to the websocket, then send the login request to the backend and finally set cookie and user's data.\n *\n * @memberof LoginComponent\n */\n login() {\n this.connecting = true;\n // Firstly we complete the websocket connection and then the login request (which need the socket id)\n this.webSocketService\n .connect(this.username.value)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.authService\n .login(\n this.username.value.toLowerCase(),\n this.password.value,\n JSON.stringify(this.UAParser.getBrowser()).toLowerCase(),\n JSON.stringify(this.UAParser.getOS()).toLowerCase(),\n JSON.stringify(this.UAParser.getDevice()).toLowerCase(),\n this.webSocketService.getSocketId()\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n value => {\n const idUser = this.authService.setCookies(value.token);\n this.userService.username = this.username.value;\n this.userService.id = idUser;\n this.router.navigate([this.routeParam]);\n },\n error => {\n switch (error.statusCode) {\n case 401:\n if (error.rateLimitRemaining > 0) {\n this.error = `Wrong username and/or password.
Please try again (${\n error.rateLimitRemaining\n } attempt${\n error.rateLimitRemaining > 1 ? 's' : ' '\n } remaining).`;\n } else {\n this.error = `Your account has been blocked.
\n Too many failed login attempts, please retry in a few minutes`;\n }\n break;\n case 403:\n this.error = `Your trial has expired.
\n Please contact our sales at sales@sesamm.com for further information.`;\n break;\n case 429:\n this.error = `Your account has been blocked.
\n Too many failed login attempts, please retry in a few minutes.`;\n break;\n case 503:\n this.error =\n 'The server is under maintenance, please try later.';\n break;\n default:\n this.error =\n 'An unexpected error occured, please try later.';\n }\n this.webSocketService.disconnect();\n this.connecting = false;\n }\n );\n },\n error => {\n this.connecting = false;\n switch (error.code) {\n case 0:\n this.error =\n 'Server unreachable, please check your internet connection.';\n break;\n case 403:\n this.error =\n 'Another session is already opened with this account.';\n break;\n default:\n this.error =\n '' +\n 'Server unreachable, please check your internet connection.' +\n '';\n break;\n }\n }\n );\n }\n\n /**\n * Switches the password input visibility by changing its type between 'password' and 'text'\n *\n * @memberof LoginComponent\n */\n switchPasswordInputVisibility() {\n this.passwordInput.nativeElement.type =\n this.passwordInput.nativeElement.type === 'password'\n ? 'text'\n : 'password';\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/pages/login/login.component.ts","module.exports = \"\\n
\\n
\\n
\\n Your password has successfully been changed. You are going to be\\n redirected to the login page.\\n
\\n
\\n\\n
\\n \\n\\n \\n The password must be at least 8 characters long and must contain at\\n least an upper case letter, a special chatacter and a number.\\n
\\n \\n\\n
\\n \\n\\n \\n The passwords do not match.\\n
\\n \\n\\n
\\n \\n
\\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/pages/reset-password/reset-password.component.html\n// module id = ./src/app/auth/pages/reset-password/reset-password.component.html\n// module chunks = main","module.exports = \".error-message {\\n color: white;\\n background-color: rgba(241, 110, 68, 0.7);\\n padding: 5px 10px;\\n border-radius: 4px; }\\n\\na {\\n color: #4f2259;\\n vertical-align: baseline; }\\n\\na:hover {\\n color: #4f2259; }\\n\\n.form-control {\\n background: none !important;\\n color: white !important;\\n border: none !important;\\n border-bottom: 1px solid white !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n border-radius: 0 !important;\\n -webkit-transition: border-color 100ms linear, color 100ms linear;\\n transition: border-color 100ms linear, color 100ms linear; }\\n\\n.form-control::-webkit-input-placeholder {\\n color: white !important; }\\n\\n.form-control:-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::placeholder {\\n color: white !important; }\\n\\n.form-control:focus {\\n border-color: #4f2259 !important;\\n color: #4f2259 !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n outline: none !important; }\\n\\n.form-control:focus::-webkit-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus:-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:disabled {\\n background: none !important;\\n color: rgba(255, 255, 255, 0.8) !important !important;\\n border-bottom: 1px solid rgba(255, 255, 255, 0.8) !important !important; }\\n\\nbutton {\\n background: rgba(79, 34, 89, 0.4);\\n border: none;\\n color: white;\\n border-radius: 4px;\\n font-size: 18px;\\n padding: 5px 8px;\\n -webkit-transition: background-color 100ms linear;\\n transition: background-color 100ms linear; }\\n\\nbutton:disabled {\\n color: rgba(255, 255, 255, 0.5);\\n cursor: not-allowed; }\\n\\nbutton:hover {\\n background: rgba(79, 34, 89, 0.5); }\\n\\nbutton:hover:disabled {\\n background: rgba(79, 34, 89, 0.4); }\\n\\nbutton:focus {\\n outline: none;\\n background: rgba(79, 34, 89, 0.5); }\\n\\nselect {\\n background: none;\\n color: white;\\n border-radius: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n border: none;\\n border-bottom: 1px solid white;\\n -webkit-transition: color 100ms linear;\\n transition: color 100ms linear; }\\n\\nselect:focus {\\n outline: none;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n color: #4f2259; }\\n\\noption {\\n color: black; }\\n\\nhr {\\n border-top: 1px solid white; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/pages/reset-password/reset-password.component.scss\n// module id = ./src/app/auth/pages/reset-password/reset-password.component.scss\n// module chunks = main","import { HttpClient } from '@angular/common/http';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AppService } from '../../../shared/services/app/app.service';\nimport { sameValuesValidator } from '../../../shared/validators/same-values.validator';\nimport { passwordValidator } from '../../shared/validator/password.validator';\n\n/**\n * Reset Password page of the application.\n *\n * @export\n * @class ResetPasswordComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-reset-password',\n templateUrl: './reset-password.component.html',\n styleUrls: ['./reset-password.component.scss']\n})\nexport class ResetPasswordComponent implements OnInit, OnDestroy {\n resetForm = this.fb.group(\n {\n newPassword: ['', [Validators.required, passwordValidator]],\n confirmNewPassword: ['', Validators.required]\n },\n { validator: sameValuesValidator }\n );\n\n resetConfirm: boolean;\n resetToken: string;\n\n private destroy$ = new Subject();\n\n constructor(\n private fb: FormBuilder,\n private appService: AppService,\n private http: HttpClient,\n private route: ActivatedRoute,\n private router: Router\n ) {}\n\n /**\n * Get the reset token (JWT) from the query parameters.\n *\n * @memberof ResetPasswordComponent\n */\n ngOnInit() {\n this.route.params.pipe(takeUntil(this.destroy$)).subscribe(params => {\n this.resetToken = params['resetToken'];\n });\n }\n\n get newPassword() {\n return this.resetForm.get('newPassword');\n }\n\n get confirmNewPassword() {\n return this.resetForm.get('confirmNewPassword');\n }\n\n /**\n * Sends the reset password request to the backend, then redirects to login if success. Otherwies, displays an error message to the user.\n *\n * @memberof ResetPasswordComponent\n */\n resetPassword() {\n this.http\n .post(\n `${this.appService.backEndUrl}/users/resetpassword/${this.resetToken}`,\n JSON.stringify({ password: this.newPassword.value })\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {},\n error => {\n // Show the error messages\n console.error(error);\n },\n () => {\n // Show the confirmation messages\n this.resetConfirm = true;\n // After 5 seconds, redirect to the login page\n setTimeout(() => {\n this.router.navigate(['auth/login']);\n }, 5000);\n }\n );\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/pages/reset-password/reset-password.component.ts","module.exports = \"\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n\\n
Username is required.
\\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n\\n
First name is required.
\\n
\\n\\n
\\n \\n\\n
Last name is required.
\\n
\\n
\\n\\n
\\n \\n\\n
Company is required.
\\n
\\n\\n
\\n \\n\\n
Country is required.
\\n
\\n\\n
\\n \\n\\n
Invalid phone number.
\\n\\n
Phone number is required.
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n \\n\\n
Investment strategy is required.
\\n
\\n\\n
\\n
Investiment interests*
\\n
\\n \\n
\\n\\n
You must pick at least one option.
\\n
\\n\\n
\\n \\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n\\n \\n \\n
\\n \\n\\n
\\n The password must be at least 8 characters long and must contain at least an upper case letter, a special chatacter and a number.\\n
\\n
\\n\\n
\\n \\n\\n
The passwords do not match.
\\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n\\n \\n \\n
\\n

\\n Successful registration!
\\n You can now logged in on our platform.\\n

\\n
\\n
\\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/pages/signup/signup.component.html\n// module id = ./src/app/auth/pages/signup/signup.component.html\n// module chunks = main","module.exports = \".error-message {\\n color: white;\\n background-color: rgba(241, 110, 68, 0.7);\\n padding: 5px 10px;\\n border-radius: 4px; }\\n\\na {\\n color: #4f2259;\\n vertical-align: baseline; }\\n\\na:hover {\\n color: #4f2259; }\\n\\n.form-control {\\n background: none !important;\\n color: white !important;\\n border: none !important;\\n border-bottom: 1px solid white !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n border-radius: 0 !important;\\n -webkit-transition: border-color 100ms linear, color 100ms linear;\\n transition: border-color 100ms linear, color 100ms linear; }\\n\\n.form-control::-webkit-input-placeholder {\\n color: white !important; }\\n\\n.form-control:-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::-ms-input-placeholder {\\n color: white !important; }\\n\\n.form-control::placeholder {\\n color: white !important; }\\n\\n.form-control:focus {\\n border-color: #4f2259 !important;\\n color: #4f2259 !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n outline: none !important; }\\n\\n.form-control:focus::-webkit-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus:-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::-ms-input-placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:focus::placeholder {\\n color: #4f2259 !important; }\\n\\n.form-control:disabled {\\n background: none !important;\\n color: rgba(255, 255, 255, 0.8) !important !important;\\n border-bottom: 1px solid rgba(255, 255, 255, 0.8) !important !important; }\\n\\nbutton {\\n background: rgba(79, 34, 89, 0.4);\\n border: none;\\n color: white;\\n border-radius: 4px;\\n font-size: 18px;\\n padding: 5px 8px;\\n -webkit-transition: background-color 100ms linear;\\n transition: background-color 100ms linear; }\\n\\nbutton:disabled {\\n color: rgba(255, 255, 255, 0.5);\\n cursor: not-allowed; }\\n\\nbutton:hover {\\n background: rgba(79, 34, 89, 0.5); }\\n\\nbutton:hover:disabled {\\n background: rgba(79, 34, 89, 0.4); }\\n\\nbutton:focus {\\n outline: none;\\n background: rgba(79, 34, 89, 0.5); }\\n\\nselect {\\n background: none;\\n color: white;\\n border-radius: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n border: none;\\n border-bottom: 1px solid white;\\n -webkit-transition: color 100ms linear;\\n transition: color 100ms linear; }\\n\\nselect:focus {\\n outline: none;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n color: #4f2259; }\\n\\noption {\\n color: black; }\\n\\nhr {\\n border-top: 1px solid white; }\\n\\n.signup-form__crypto {\\n margin: 10px 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/auth/pages/signup/signup.component.scss\n// module id = ./src/app/auth/pages/signup/signup.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { AsYouTypeFormatter } from 'google-libphonenumber';\nimport * as jwtDecode from 'jwt-decode';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AuthService } from '../../../shared/services/auth/auth.service';\nimport { requiredAtLeastOneTrueValidator } from '../../../shared/validators/required-at-least-one-true.validator';\nimport { sameValuesValidator } from '../../../shared/validators/same-values.validator';\nimport {\n CountriesService,\n Country\n} from '../../shared/services/countries/countries.service';\nimport { passwordValidator } from '../../shared/validator/password.validator';\nimport { phoneValidator } from '../../shared/validator/phone.validator';\n\n@Component({\n selector: 'app-signup',\n templateUrl: './signup.component.html',\n styleUrls: ['./signup.component.scss']\n})\nexport class SignupComponent implements OnInit, OnDestroy {\n error: string;\n investmentInterestsOptions = [\n { label: 'Asset classes', value: 'asset classes' },\n { label: 'Geography', value: 'geography' },\n { label: 'Europe', value: 'europe' },\n { label: 'USA', value: 'usa' },\n { label: 'Asia and emerging', value: 'asia and emerging' }\n ];\n\n signUpForm = this.fb.group({\n personal: this.fb.group(\n {\n email: [{ value: '', disabled: true }, Validators.required],\n username: ['', Validators.required],\n firstname: ['', Validators.required],\n lastname: ['', Validators.required],\n gender: ['', Validators.required],\n company: ['', Validators.required],\n country: ['', Validators.required],\n phone: ['', Validators.required]\n },\n { validator: phoneValidator }\n ),\n investorProfile: this.fb.group({\n investmentStrategy: ['', Validators.required],\n investmentInterests: this.fb.group(this.createInvestmentInterests(), {\n validator: requiredAtLeastOneTrueValidator\n }),\n crypto: [false]\n }),\n promo: this.fb.group({\n promoCode: ['']\n }),\n passwords: this.fb.group(\n {\n password: ['', [Validators.required, passwordValidator]],\n confirmPassword: ['', Validators.required]\n },\n { validator: sameValuesValidator }\n )\n });\n\n private lastPhoneValue = '';\n private destroy$ = new Subject();\n private signUpToken: string;\n\n step = 0;\n countries: Observable;\n\n constructor(\n private fb: FormBuilder,\n private countriesService: CountriesService,\n private authService: AuthService,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit() {\n this.countries = this.countriesService.getCountries();\n\n this.route.queryParams\n .pipe(takeUntil(this.destroy$))\n .subscribe(queryParams => {\n this.signUpToken = queryParams['sut'];\n const decodedToken: {\n id: string;\n email: string;\n promoCode: string;\n affiliateCode: string;\n } = jwtDecode(this.signUpToken);\n\n this.personal.get('email').setValue(decodedToken.email);\n this.promo.get('promoCode').setValue(decodedToken.promoCode || '');\n });\n\n this.country.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => this.updatePhoneValue(this.lastPhoneValue, value));\n\n this.phone.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => this.updatePhoneValue(value, this.country.value));\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get personal() {\n return this.signUpForm.get('personal');\n }\n\n get username() {\n return this.personal.get('username');\n }\n\n get firstname() {\n return this.personal.get('firstname');\n }\n\n get lastname() {\n return this.personal.get('lastname');\n }\n\n get company() {\n return this.personal.get('company');\n }\n\n get country() {\n return this.personal.get('country');\n }\n\n get phone() {\n return this.personal.get('phone');\n }\n\n get investorProfile() {\n return this.signUpForm.get('investorProfile');\n }\n\n get investmentStrategy() {\n return this.investorProfile.get('investmentStrategy');\n }\n\n get investmentInterests() {\n return this.investorProfile.get('investmentInterests');\n }\n\n get promo() {\n return this.signUpForm.get('promo');\n }\n\n get passwords() {\n return this.signUpForm.get('passwords');\n }\n\n get password() {\n return this.passwords.get('password');\n }\n\n get confirmPassword() {\n return this.passwords.get('confirmPassword');\n }\n\n updatePhoneValue(phone: string, countryCode: string): void {\n const phoneFormatter = new AsYouTypeFormatter(countryCode);\n let formattedValue = '';\n\n for (let i = 0, len = phone.length; i < len; i++) {\n if (!Number.isNaN(Number.parseInt(phone[i]))) {\n formattedValue = phoneFormatter.inputDigit(phone[i]);\n }\n }\n this.phone.setValue(formattedValue, { emitEvent: false });\n this.lastPhoneValue = formattedValue;\n }\n\n createInvestmentInterests(): { [key: string]: boolean } {\n const investmentInterests = {};\n this.investmentInterestsOptions.forEach(\n option => (investmentInterests[option.value] = false)\n );\n return investmentInterests;\n }\n\n signUp() {\n if (this.signUpForm.valid) {\n // Double check for the form validity (the user should not be able to enter the method if the form is invalid).\n const investmentInterests = [];\n\n const formValue = this.signUpForm.value;\n Object.keys(formValue.investorProfile.investmentInterests).forEach(k => {\n if (formValue.investorProfile.investmentInterests[k]) {\n investmentInterests.push(k);\n }\n });\n\n const payload = {\n ...{\n investmentInterests,\n investmentStrategy: formValue.investorProfile.investmentStrategy,\n password: formValue.passwords.password\n },\n ...formValue.personal,\n ...formValue.promo\n };\n this.authService\n .signUp(this.signUpToken, payload)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => this.nextStep(),\n error => {\n switch (error.status) {\n case 404:\n case 422:\n this.error = `${error.error.message}`;\n break;\n default:\n this.error = 'An unexpected error occured, please try later.';\n }\n return;\n }\n );\n }\n }\n\n nextStep() {\n this.step++;\n }\n\n prevStep() {\n this.step--;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/pages/signup/signup.component.ts","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport * as jwtDecode from 'jwt-decode';\nimport { utc } from 'moment';\nimport { Observable } from 'rxjs/Observable';\n\n@Injectable()\nexport class SignupGuard implements CanActivate {\n constructor(private router: Router) {}\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable | Promise | boolean {\n const signUpToken = next.queryParams['sut'];\n\n if (signUpToken) {\n try {\n const decoded: {\n id: string;\n email: string;\n promoCode: string;\n affiliateCode: string;\n exp: number;\n } = jwtDecode(signUpToken);\n if (decoded.exp < utc().unix()) {\n this.router.navigate(['/auth/login']);\n return false;\n }\n\n return true;\n } catch (e) {\n this.router.navigate(['/auth/login']);\n return false;\n }\n }\n this.router.navigate(['/auth/login']);\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/shared/guards/signup.guard.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport interface Country {\n name: string;\n code: string;\n phoneCode: string;\n}\n\n@Injectable()\nexport class CountriesService {\n constructor(private http: HttpClient) {}\n\n getCountries(): Observable {\n return this.http.get('./assets/countries.json').pipe(\n map(countries => {\n return countries.sort((a, b) => (a < b ? -1 : 1));\n })\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/shared/services/countries/countries.service.ts","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport const passwordValidator: ValidatorFn = (\n control: AbstractControl\n): ValidationErrors | null => {\n // tslint:disable-next-line:max-line-length\n const pwdRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[ !\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])[A-Za-z\\d !\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~]{8,}$/;\n\n return pwdRegex.test(control.value) ? null : { password: true };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/shared/validator/password.validator.ts","import { ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { PhoneNumberUtil } from 'google-libphonenumber';\n\nexport const phoneValidator: ValidatorFn = (\n control\n): ValidationErrors | null => {\n const countryCode = control.get('country').value;\n const phone = control.get('phone');\n const phoneUtil = PhoneNumberUtil.getInstance();\n\n if (phone.dirty && countryCode && phone.value.length > 0) {\n try {\n const phoneNumber = phoneUtil.parse(phone.value, countryCode);\n return phoneUtil.isValidNumber(phoneNumber) ? null : { phone: true };\n } catch (e) {\n return { phone: true };\n }\n }\n return null;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth/shared/validator/phone.validator.ts","module.exports = \"
\\n

\\n The Alerts Historical page allows you to visualize and download (as csv) all historical signals generated for\\n assets that\\n you are tracking, based on rules defined for your custom alerts.\\n

\\n

\\n This table is updated with each new live signal generated. You can filter by alerts names or tickers.\\n

\\n
\\n\\n
\\n\\n \\n\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/alerts-historical/alerts-historical.component.html\n// module id = ./src/app/components/alerts-historical/alerts-historical.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/alerts-historical/alerts-historical.component.scss\n// module id = ./src/app/components/alerts-historical/alerts-historical.component.scss\n// module chunks = main","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { utc } from 'moment';\nimport { PageChangedEvent } from 'ngx-bootstrap';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\nimport Alert, {\n actionBackToFront,\n AlertRule,\n alertStrategyBackToFront,\n CurveOperand\n} from '../../shared/models/alert.model';\nimport { AlertsService } from '../../shared/services/alerts/alerts.service';\nimport { IntroService } from '../../shared/services/intro.service';\n\n@Component({\n selector: 'app-alerts-historical',\n templateUrl: './alerts-historical.component.html',\n styleUrls: ['./alerts-historical.component.scss']\n})\nexport class AlertsHistoricalComponent implements OnInit, OnDestroy {\n rows = [];\n columns = [\n { title: 'Signal date', name: 'signalDate', sort: 'desc' },\n {\n title: 'Alert names',\n name: 'names',\n sort: false,\n filtering: { filterString: '', placeholder: 'Filter by name' }\n },\n {\n title: 'Ticker code',\n name: 'ticker',\n sort: false,\n filtering: { filterString: '', placeholder: 'Filter by ticker' }\n },\n {\n title: 'Strategy',\n name: 'strategy',\n sort: false\n // filtering: { filterString: '', placeholder: 'Filter by strategy' }\n },\n { title: 'Current action', name: 'currentAction', sort: false },\n { title: 'Previous action', name: 'previousAction', sort: false },\n { title: 'Rules', name: 'rules', sort: false }\n ];\n page = 1;\n itemsPerPage = 15;\n maxSize = 5;\n numPages = 1;\n\n config = {\n paging: true,\n sorting: { columns: this.columns },\n filtering: { filterString: '' },\n className: ['table-striped', 'table-bordered']\n };\n\n length: number;\n\n private destroy$ = new Subject();\n\n constructor(\n private alertsService: AlertsService,\n private introService: IntroService\n ) {}\n\n ngOnInit() {\n this.introService.addStep(\n {\n intro: `The Alerts Historical page allows you to visualize and download (as csv)\n all historical signals generated for assets that you are tracking, based on rules defined for your custom alerts.`\n },\n 1\n );\n this.introService.addStep(\n {\n intro: `This table is updated with each new live signal generated. You can filter by alerts names or tickers.`\n },\n 2\n );\n // this.introService.start().subscribe();\n }\n\n changePage(\n page: PageChangedEvent,\n filtering?: {\n name?: string;\n ticker?: string;\n strategy?: string;\n },\n sorting?: {\n signalDate?: number;\n }\n ): void {\n this.alertsService\n .getHistorical((page.page - 1) * page.itemsPerPage, this.itemsPerPage, {\n filtering,\n sorting\n })\n .pipe(\n takeUntil(this.destroy$),\n map(res => {\n const newBody: { alerts: any[] } = res.body;\n\n newBody.alerts = res.body.alerts.map(alert => {\n const newAlert = new Alert(\n alert.names,\n alert.ticker,\n alert.strategy,\n alert.rules.map(rule => {\n rule.firstOperand = new CurveOperand(\n rule.firstOperand.curveName,\n rule.firstOperand.EMA,\n rule.firstOperand.timeCode\n );\n if (typeof rule.secondOperand !== 'number') {\n rule.secondOperand = new CurveOperand(\n rule.secondOperand.curveName,\n rule.secondOperand.EMA,\n rule.secondOperand.timeCode\n );\n }\n return new AlertRule(\n rule.action,\n rule.firstOperand,\n rule.type,\n rule.secondOperand\n );\n }),\n alert.signals,\n alert.hash\n );\n\n return newAlert.signals.map(signal => ({\n signalDate: utc(signal.date)\n .toISOString()\n .split('T')[0],\n names: `
    ${newAlert.names\n .map(name => `
  • ${name}
  • `)\n .join('')}
`,\n ticker: alert.ticker.code,\n strategy: alertStrategyBackToFront[alert.strategy],\n currentAction:\n actionBackToFront[signal.currentAction.toUpperCase()] || '--',\n previousAction:\n actionBackToFront[signal.previousAction.toUpperCase()],\n rules: newAlert.getRulesForDisplay()\n // backtest: alert.backtest as AlertBacktest\n }));\n });\n if (newBody.alerts.length > 0) {\n newBody.alerts = newBody.alerts\n .reduce((acc, val) => acc.concat(val))\n .sort((a, b) =>\n utc(a.signalDate).isAfter(utc(b.signalDate)) ? -1 : 1\n );\n }\n\n return {\n totalCount: Number.parseInt(res.headers.get('x-total-count')),\n ...newBody\n };\n })\n )\n .subscribe(res => {\n this.length = res.totalCount;\n this.rows = res.alerts;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/alerts-historical/alerts-historical.component.ts","module.exports = \"
\\n

\\n The Alerts Management page allows you to visualize, modify and delete your existing alerts for all the assets that\\n you are\\n tracking.\\n

\\n

\\n You can filter by alerts names or tickers. Clicking on any alert will open a window to get access to the alert’s\\n rules details.\\n

\\n
\\n\\n
\\n \\n
\\n\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/alerts-management/alerts-management.component.html\n// module id = ./src/app/components/alerts-management/alerts-management.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/alerts-management/alerts-management.component.scss\n// module id = ./src/app/components/alerts-management/alerts-management.component.scss\n// module chunks = main","import {\n Component,\n ComponentFactoryResolver,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { utc } from 'moment';\nimport { PageChangedEvent } from 'ngx-bootstrap/pagination';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { AlertManageModalComponent } from '../../shared/components/alert-manage-modal/alert-manage-modal.component';\nimport Alert, {\n AlertRule,\n alertStrategyBackToFront,\n CurveOperand,\n getBacktestHTMLTable\n} from '../../shared/models/alert.model';\nimport { AlertsService } from '../../shared/services/alerts/alerts.service';\nimport { IntroService } from '../../shared/services/intro.service';\n\n@Component({\n selector: 'app-alerts-management',\n templateUrl: './alerts-management.component.html',\n styleUrls: ['./alerts-management.component.scss']\n})\nexport class AlertsManagementComponent implements OnInit, OnDestroy {\n @ViewChild('manageAlertModal', { read: ViewContainerRef })\n manageAlertModal: ViewContainerRef;\n @ViewChild('alertsManagement')\n alertsManagement: ElementRef;\n\n rows = [];\n columns = [\n { title: 'Creation date', name: 'creationDate', sort: 'desc' },\n {\n title: 'Alert name',\n name: 'name',\n filtering: { filterString: '', placeholder: 'Filter by name' },\n sort: ''\n },\n {\n title: 'Ticker code',\n name: 'ticker',\n filtering: { filterString: '', placeholder: 'Filter by ticker' },\n sort: ''\n },\n { title: 'Strategy', name: 'strategy', sort: '' },\n { title: 'Rules', name: 'rules', sort: false },\n { title: 'Performance', name: 'backtest', sort: false }\n ];\n page = 1;\n itemsPerPage = 50;\n maxSize = 5;\n numPages = 1;\n selectedAlerts = [];\n\n config = {\n paging: true,\n sorting: { columns: this.columns },\n filtering: { filterString: '' },\n className: ['table-striped', 'table-bordered']\n };\n\n length: number;\n alerts: Alert[];\n\n private destroy$ = new Subject();\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private alertsService: AlertsService,\n private introService: IntroService\n ) {}\n\n ngOnInit() {\n this.introService.addStep(\n {\n intro: `The Alerts Management page allows you to visualize, modify and delete\n your existing alerts for all the assets that wish to track.`\n },\n 1\n );\n this.introService.addStep(\n {\n intro: `You can filter your research by alerts names or tickers.\n Clicking on any alert will open a window to get access to the alert’s rules details.`\n },\n 2\n );\n // this.introService.start().subscribe();\n this.alertsService.alertCreated.subscribe(() =>\n this.changePage({ page: this.page, itemsPerPage: this.itemsPerPage })\n );\n }\n\n changePage(\n page: PageChangedEvent,\n filtering?: {\n name?: string;\n ticker?: string;\n strategy?: string;\n },\n sorting?: { [key: string]: number }\n ) {\n const start = (page.page - 1) * page.itemsPerPage;\n this.alerts = [];\n this.alertsService\n .getAlerts(start, this.itemsPerPage, { filtering, sorting })\n .pipe(\n takeUntil(this.destroy$),\n map(res => {\n return {\n totalCount: Number.parseInt(res.headers.get('x-total-count')),\n alerts: res.body.alerts.map(alert => {\n const backtest = alert.backtest;\n alert = new Alert(\n [alert.name],\n alert.ticker,\n alert.strategy,\n alert.rules.map(rule => {\n rule.firstOperand = new CurveOperand(\n rule.firstOperand.curveName,\n rule.firstOperand.EMA,\n rule.firstOperand.timeCode\n );\n if (typeof rule.secondOperand !== 'number') {\n rule.secondOperand = new CurveOperand(\n rule.secondOperand.curveName,\n rule.secondOperand.EMA,\n rule.secondOperand.timeCode\n );\n }\n return new AlertRule(\n rule.action,\n rule.firstOperand,\n rule.type,\n rule.secondOperand\n );\n }),\n alert.signals,\n alert.hash,\n alert.creationDate,\n alert.backtest\n );\n\n this.alerts.push(alert);\n\n return {\n name: alert.names[0],\n ticker: alert.ticker.code,\n strategy: alertStrategyBackToFront[alert.strategy],\n rules: alert.getRulesForDisplay(),\n backtest: getBacktestHTMLTable(backtest),\n creationDate: utc(alert.creationDate).format('YYYY-MM-DD'),\n hash: alert.hash\n };\n })\n };\n })\n )\n .subscribe(res => {\n this.length = res.totalCount;\n this.rows = res.alerts;\n });\n }\n\n onCellClick(data: any) {\n // Check if a modal is not already opened for this alert.\n if (\n !this.selectedAlerts.some(\n alert =>\n `${alert.hash}-${alert.names[0]}` ===\n `${data.row.hash}-${data.row.name}`\n )\n ) {\n const alert = this.alerts.find(\n a => `${a.hash}-${a.names[0]}` === `${data.row.hash}-${data.row.name}`\n );\n const index = this.selectedAlerts.push(alert) - 1;\n\n const alertManageModalFactory = this.resolver.resolveComponentFactory(\n AlertManageModalComponent\n );\n const component = this.manageAlertModal.createComponent(\n alertManageModalFactory\n );\n component.instance.alert = alert;\n\n const componentWidth =\n component.instance.draggableBlock.nativeElement.clientWidth;\n const componentMargin = 25;\n\n component.instance.position = {\n x:\n window.innerWidth -\n componentWidth -\n 100 -\n index * (componentWidth + componentMargin),\n y: 0\n };\n component.instance.reloadAlerts\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.changePage({ page: this.page, itemsPerPage: this.itemsPerPage });\n });\n component.instance.hide.pipe(takeUntil(this.destroy$)).subscribe(() => {\n const index2 = this.selectedAlerts.findIndex(\n a => a.creationDate === component.instance.alert.creationDate\n );\n this.selectedAlerts.splice(index2, 1);\n component.destroy();\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/alerts-management/alerts-management.component.ts","import { HttpClient } from '@angular/common/http';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport * as jwtDecode from 'jwt-decode';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { UAParser } from 'ua-parser-js';\nimport { AppService } from '../../shared/services/app/app.service';\nimport { AuthService } from '../../shared/services/auth/auth.service';\nimport { NavbarColorService } from '../../shared/services/navbar-color/navbar-color.service';\nimport { UserService } from '../../shared/services/user/user.service';\nimport { Constant } from '../../shared/utils/constant';\n\n/**\n * Connectas page of the application.\n *\n * @export\n * @class ConnectasComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-connectas',\n template: ''\n})\nexport class ConnectasComponent implements OnInit, OnDestroy {\n Constant = Constant;\n UAParser = new UAParser();\n error: string;\n id: string;\n sendEmail: boolean;\n url: string;\n who: string;\n\n private destroy$ = new Subject();\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private http: HttpClient,\n private appService: AppService,\n private authService: AuthService,\n private userService: UserService,\n private navbarColorService: NavbarColorService\n ) {}\n\n /**\n * Connect as init.\n *\n * @memberof ConnectasComponent\n */\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe(params => {\n this.id = params['id'];\n this.sendEmail = params['sendEmail'];\n this.url = params['url'];\n this.who = params['who'];\n });\n\n this.appService.appInitialized$\n .pipe(takeUntil(this.destroy$))\n .subscribe(appInitialized => {\n if (appInitialized) {\n this.connectas();\n }\n });\n }\n\n /**\n * Admin connection.\n *\n * @memberof ConnectasComponent\n */\n connectas() {\n this.http\n .post(\n `${this.appService.backEndUrl}/users/${this.url}`,\n JSON.stringify({\n id: this.id,\n device: JSON.stringify(this.UAParser.getDevice()).toLowerCase(),\n browser: JSON.stringify(this.UAParser.getBrowser()).toLowerCase(),\n os: JSON.stringify(this.UAParser.getOS()).toLowerCase(),\n sendEmail: this.sendEmail,\n who: this.userService.username\n }),\n {\n headers: this.appService.getHeaders()\n }\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n res => {\n const decodedToken = jwtDecode(res.token) as {\n id: string;\n aud: string;\n exp: number;\n iat: number;\n refreshToken: string;\n scope: string[];\n username: string;\n };\n const idUser = this.authService.setCookies(res.token, 'tmp');\n this.userService.username = decodedToken.username;\n this.userService.id = idUser;\n this.navbarColorService.setColor('red');\n\n this.router.navigate(['/']);\n },\n () => {\n this.router.navigate(['/']);\n }\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/connectas/connectas.component.ts","/**\n * Represents the contact form inputs\n *\n * @export\n * @class ContactForm\n */\nexport class ContactForm {\n constructor(public object: string, public message: string) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/contact/contact-form.ts","module.exports = \"
\\n
\\n
\\n CONTACT\\n
\\n
\\n
\\n
\\n

Need to add a ticker? Need to solve a problem?

\\n

Need a new functionality? Contact us!

\\n
\\n
\\n
Contact details
\\n\\n
\\n Mail\\n hdmhelp@sesamm.com\\n
\\n
\\n
\\n
Contact form
\\n
\\n
\\n \\n\\n \\n\\n
\\n
\\n Min:\\n = minLengthObject,\\n red: model.object.length < minLengthObject\\n }\\\"\\n >\\n {{ minLengthObject }} character\\n \\n , Remaining:\\n {{ maxLengthObject - model.object.length }} characters\\n
\\n
\\n
\\n
\\n \\n\\n \\n\\n
\\n
\\n Min:\\n = minLengthMessage,\\n red: model.message.length < minLengthMessage\\n }\\\"\\n >\\n {{ minLengthMessage }} characters\\n \\n , Remaining:\\n {{ maxLengthMessage - model.message.length }}\\n characters\\n
\\n
\\n
\\n
\\n
\\n \\n Send\\n \\n
\\n
\\n
\\n
\\n
\\n

Thank you for using our application, we will reply soon!

\\n
\\n
\\n \\n
SESAMm offices:
\\n
    \\n
  • \\n

    Metz

    \\n Pépinière Synergie Lorraine
    \\n 11 Rempart Saint Thiébault
    \\n 57000 Metz\\n
  • \\n
  • \\n

    Paris

    \\n SESAMm Paris
    16 rue de la Grange Batelière
    75009 Paris\\n
  • \\n
  • \\n

    Luxembourg

    \\n Lux future Lab
    \\n 59 Boulevard Royal
    \\n L-2449 Luxembourg\\n
  • \\n
\\n
\\n
\\n
\\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/contact/contact.component.html\n// module id = ./src/app/components/contact/contact.component.html\n// module chunks = main","module.exports = \"#contact-intro {\\n font-style: italic;\\n font-size: 14px;\\n margin-bottom: 20px; }\\n\\n#contact-details *:not(h3.subtitle) {\\n text-align: center; }\\n\\n#message {\\n resize: none; }\\n\\n#contact-send {\\n text-align: center; }\\n\\n#contact-form label {\\n font-weight: normal; }\\n\\n.smaller {\\n font-size: 12px; }\\n\\n#copyright {\\n text-align: center;\\n margin-top: 100px; }\\n\\n#legal-information {\\n margin-top: 50px; }\\n\\n#places {\\n list-style-type: none; }\\n\\n#humeurdesmarches {\\n margin-top: 50px; }\\n\\n.title {\\n color: black; }\\n\\n.red {\\n color: red; }\\n\\n.green {\\n color: green; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/contact/contact.component.scss\n// module id = ./src/app/components/contact/contact.component.scss\n// module chunks = main","import { HttpClient } from '@angular/common/http';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { AppService } from '../../shared/services/app/app.service';\nimport { AuthService } from '../../shared/services/auth/auth.service';\nimport { Constant } from '../../shared/utils/constant';\nimport { ContactForm } from './contact-form';\n/**\n * Contact page of the application, containing a form and SESAMm's legal informations\n *\n * @export\n * @class ContactComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-contact',\n templateUrl: './contact.component.html',\n styleUrls: ['./contact.component.scss']\n})\nexport class ContactComponent implements OnInit, OnDestroy {\n model = new ContactForm('', '');\n submitted = false;\n Constant = Constant;\n\n minLengthObject = 1;\n minLengthMessage = 10;\n\n maxLengthObject = 50;\n maxLengthMessage = 5000;\n\n private destroy$ = new Subject();\n\n constructor(\n private appService: AppService,\n private http: HttpClient,\n private authService: AuthService\n ) {}\n\n ngOnInit(): void {}\n\n /**\n * Send the message from the contact form inputs.\n *\n * @memberof ContactComponent\n */\n onSubmit(): void {\n const options = {\n headers: this.appService.getHeaders(),\n observe: 'response' as 'response' // workaround because of typescript type inference\n };\n this.http\n .post(\n this.appService.backEndUrl + '/information/sendForm',\n JSON.stringify({\n id: this.authService.getCurrentUser()['idUser'],\n object: this.model.object,\n message: this.model.message\n }),\n options\n )\n .pipe(\n takeUntil(this.destroy$),\n map(res => {\n if (res.status === 200) {\n this.submitted = true;\n }\n\n return res;\n })\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/contact/contact.component.ts","module.exports = \"\\n \\n
\\n
\\n \\n {{ Constant.AnalysisTickerLevel }}\\n \\n
\\n\\n 0\\\"\\n [tickers]=\\\"this.portfolioService.currentPortfolio.data.winners\\\"\\n [portfolios]=\\\"this.portfolioService.portfolios\\\"\\n >\\n
\\n\\n \\n
\\n \\n {{ Constant.AnalysisPortfolioLevel }}\\n \\n
\\n\\n \\n \\n\\n \\n\\n
\\n
{{ Constant.OpinionScore }}
\\n
\\n \\n 0\\n ? 'bullish'\\n : this.portfolioService.currentPortfolio.data.bullish_score\\n .bullish < 0\\n ? 'bearish'\\n : 'neutral'\\n \\\"\\n >\\n \\n \\n\\n
\\n\\n
\\n
\\n \\n {{ Constant.MoodCurves }}\\n \\n
\\n \\n \\n \\n\\n \\n
\\n Not enough data points to display in this section\\n
\\n
\\n
\\n \\n\\n\\n\\n
\\n Too many data points to display. You cannot display portfolios containing\\n more than 100 tickers. Contact us for more information.\\n
\\n
\\n\\n\\n
\\n

You don't have any portfolio.

\\n

\\n You can create a new portfolio by clicking on the\\n \\n button above.\\n

\\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/custom-portfolio/custom-portfolio.component.html\n// module id = ./src/app/components/custom-portfolio/custom-portfolio.component.html\n// module chunks = main","module.exports = \"@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:400,500\\\");\\n* {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box; }\\nhtml {\\n height: 100%; }\\nbody {\\n background-color: #ffffff;\\n overflow: initial;\\n overflow-x: hidden;\\n font-family: 'Roboto', sans-serif;\\n font-size: 14px; }\\n.introjs-tooltiptext {\\n margin: 10px 10px 0 10px; }\\n.link:hover {\\n cursor: pointer;\\n text-decoration: underline; }\\n.clickable-dataTable:not(.filter-dataTable) {\\n cursor: pointer !important; }\\n.clickable-dataTable.filter-dataTable tbody > tr:not(:first-child) {\\n cursor: pointer !important; }\\n.section-body-scrollable {\\n max-height: calc(100% - 47px);\\n overflow: auto; }\\n.panel-heading {\\n font-weight: bold;\\n font-size: large; }\\n.section-title {\\n font-size: 16px;\\n color: #4f2259;\\n padding-bottom: 2px;\\n margin-right: 10px;\\n border-bottom: #4f2259 2px solid;\\n text-transform: uppercase;\\n font-weight: bold; }\\n.section-body {\\n margin-top: 10px;\\n padding-left: 10px;\\n padding-right: 10px; }\\n.no-padding {\\n padding: 0 !important; }\\n.ui-dialog {\\n overflow: auto; }\\n.background-violet {\\n background-color: #4f2259; }\\n.white {\\n color: #ffffff; }\\n.grey {\\n color: #948d8d; }\\n.black * {\\n color: black; }\\n.blue {\\n color: #67a9b5; }\\n.orange {\\n color: #f16e44; }\\n.background-blue {\\n background-color: #67a9b5; }\\n.background-grey {\\n background-color: #948d8d; }\\n.background-orange {\\n background-color: #f16e44; }\\n.error-popover {\\n border-color: red !important; }\\n.error-popover .arrow {\\n border-bottom-color: red !important; }\\n.title-container {\\n vertical-align: top; }\\n.title {\\n text-transform: uppercase;\\n font-weight: bold;\\n color: #4f2259;\\n font-size: 1.2em;\\n letter-spacing: 0.05em; }\\n.subtitle {\\n font-size: 1.05em;\\n letter-spacing: 0.02em;\\n font-weight: 300;\\n text-transform: uppercase; }\\n.puce {\\n width: 15px;\\n margin-right: 5px;\\n margin-bottom: 3px; }\\n.progress-bar {\\n -webkit-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.3) !important;\\n box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.3) !important; }\\n.progress-bar-winners {\\n background-color: #67a9b5 !important; }\\n.progress-bar-losers {\\n background-color: #f16e44 !important; }\\n.uppercase {\\n text-transform: uppercase; }\\n.no-padding-left {\\n padding-left: 0 !important; }\\n.no-padding-right {\\n padding-right: 0 !important; }\\n.less-padding-right {\\n padding-right: 5px; }\\n.less-padding-left {\\n padding-left: 5px; }\\n.no-margin-top {\\n margin-top: 0; }\\n.margin-bottom {\\n margin-bottom: 20px; }\\n.margin-left-title {\\n margin-left: 30px; }\\n.ui-menu {\\n width: 310px !important;\\n overflow: hidden; }\\n.ui-dialog {\\n position: absolute; }\\n.information {\\n font-style: italic;\\n margin: 5px 0; }\\n.pointer {\\n cursor: pointer; }\\n.btn-icon {\\n padding-right: 7px; }\\n.icon-button {\\n border-radius: 50%;\\n height: 32px;\\n width: 32px;\\n background: none;\\n border: none;\\n outline: none;\\n padding: 0;\\n margin: 0;\\n opacity: 0.8;\\n -webkit-transition: background-color 50ms linear;\\n transition: background-color 50ms linear;\\n -webkit-transition: opacity 50ms linear;\\n transition: opacity 50ms linear; }\\n.icon-button:disabled {\\n cursor: not-allowed; }\\n.icon-button:disabled svg,\\n .icon-button:disabled i,\\n .icon-button:disabled img {\\n color: #948d8d; }\\n.icon-button:hover:not(:disabled) {\\n opacity: 1;\\n background-color: rgba(0, 0, 0, 0.1); }\\n.icon-button svg,\\n .icon-button i,\\n .icon-button img {\\n position: relative;\\n top: 3px;\\n height: 20px;\\n width: 20px; }\\n.btn-violet {\\n background-color: #90708c;\\n color: white; }\\n.btn-violet:focus {\\n border-color: #90708c !important;\\n background-color: #4f2259;\\n color: white !important; }\\n.btn-violet:hover {\\n background-color: #4f2259;\\n color: white !important; }\\n.btn-orange {\\n background-color: #e69b82;\\n color: white; }\\n.btn-orange:focus {\\n border-color: #e69b82 !important;\\n background-color: #f16e44;\\n color: white !important; }\\n.btn-orange:hover {\\n background-color: #f16e44;\\n color: white !important; }\\n.btn-green {\\n background-color: #52c496;\\n color: white; }\\n.btn-green:focus {\\n border-color: #52c496 !important;\\n background-color: #23c080;\\n color: white !important; }\\n.btn-green:hover {\\n background-color: #23c080;\\n color: white !important; }\\n.btn-default:focus {\\n border-color: #90708c !important; }\\n.violet {\\n color: #4f2259; }\\n.checkbox-container {\\n padding-right: 5px;\\n padding-left: 5px;\\n text-align: center; }\\n.switch-checkbox {\\n position: relative;\\n display: inline-block;\\n width: 40px;\\n height: 24px; }\\n.switch-checkbox input {\\n display: none; }\\n.checkbox-slider {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: #997a8d;\\n border: solid black 1px;\\n border-radius: 24px;\\n cursor: pointer; }\\n.checkbox-slider::before {\\n position: absolute;\\n content: '';\\n height: 23px;\\n width: 23px;\\n left: 16px;\\n top: 0;\\n background-color: #4f2259;\\n border-radius: 50%; }\\ninput:checked + .checkbox-slider:before {\\n -webkit-transform: translateX(-16px);\\n transform: translateX(-16px); }\\n.page-item:not(.active) .page-link {\\n color: #4f2259;\\n background-color: white; }\\n.page-item:not(.active):hover .page-link {\\n color: white;\\n background-color: #997a8d; }\\n.page-item.active .page-link,\\n.page-item.active:hover .page-link {\\n color: white;\\n background-color: #4f2259;\\n border-color: #4f2259; }\\n.full-width {\\n width: 100%; }\\n.white {\\n color: white; }\\n.big {\\n font-size: 20px; }\\n.med {\\n font-size: 16px; }\\n.ui-dialog {\\n overflow: visible; }\\n.ui-dialog .ui-dialog-content {\\n overflow: visible; }\\n.twit-body > a {\\n color: #4f2259; }\\n.twit-body > a:hover {\\n color: #4f2259; }\\n.panel-body.card-block {\\n padding: 0; }\\n.panel-padding {\\n padding: 15px; }\\n.form-control:focus {\\n border-color: #90708c;\\n -webkit-box-shadow: inset 0 1px 1px rgba(123, 76, 132, 0.075), 0 0 8px #90708c;\\n box-shadow: inset 0 1px 1px rgba(123, 76, 132, 0.075), 0 0 8px #90708c; }\\nchart {\\n width: 100% !important;\\n margin: 0 auto;\\n display: block; }\\nchart > div {\\n width: 100% !important; }\\nchart > div > svg {\\n width: 100% !important; }\\n.bootstrap-switch-handle-on {\\n background: #4f2259 !important; }\\n.bootstrap-switch-handle-off {\\n background: #90708c !important;\\n color: white !important; }\\n.no-padding-popover .popover-content {\\n margin: 0 !important;\\n padding: 0 !important; }\\n.fixed-popover .popover {\\n background-color: #f5f5f5; }\\n.fixed-popover .popover.right .arrow:after {\\n border-right-color: #f5f5f5; }\\ntypeahead-container > .dropdown-menu {\\n right: auto !important; }\\n.pagination-center {\\n text-align: center; }\\nhr {\\n border-color: rgba(143, 111, 139, 0.4); }\\n.modal {\\n overflow: visible; }\\n.modal-body {\\n overflow-y: visible; }\\n.modal-centered {\\n top: 30vh; }\\n.dropdown-menu > .active > a,\\n.dropdown-menu > .active > a:focus,\\n.dropdown-menu > .active > a:hover {\\n background-color: #90708c !important; }\\n/* ========================================================================\\n * bootstrap-switch - v3.3.2\\n * http://www.bootstrap-switch.org\\n * ========================================================================\\n * Copyright 2012-2013 Mattia Larentis\\n *\\n * ========================================================================\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n * ========================================================================\\n */\\n.bootstrap-switch {\\n display: inline-block;\\n direction: ltr;\\n cursor: pointer;\\n border-radius: 4px;\\n border: 1px solid;\\n border-color: #ccc;\\n position: relative;\\n text-align: left;\\n overflow: hidden;\\n line-height: 8px;\\n z-index: 0;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n vertical-align: middle;\\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\\n -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\\n transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; }\\n.bootstrap-switch .bootstrap-switch-container {\\n display: inline-block;\\n top: 0;\\n border-radius: 4px;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0); }\\n.bootstrap-switch .bootstrap-switch-handle-on,\\n .bootstrap-switch .bootstrap-switch-handle-off,\\n .bootstrap-switch .bootstrap-switch-label {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n cursor: pointer;\\n display: inline-block !important;\\n height: 100%;\\n padding: 6px 12px;\\n font-size: 14px;\\n line-height: 20px; }\\n.bootstrap-switch .bootstrap-switch-handle-on,\\n .bootstrap-switch .bootstrap-switch-handle-off {\\n text-align: center;\\n z-index: 1; }\\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\\n color: #fff;\\n background: #428bca; }\\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\\n color: #fff;\\n background: #5bc0de; }\\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\\n color: #fff;\\n background: #5cb85c; }\\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\\n background: #f0ad4e;\\n color: #fff; }\\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\\n color: #fff;\\n background: #d9534f; }\\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\\n color: #000;\\n background: #eee; }\\n.bootstrap-switch .bootstrap-switch-label {\\n text-align: center;\\n margin-top: -1px;\\n margin-bottom: -1px;\\n z-index: 100;\\n color: #333;\\n background: #fff; }\\n.bootstrap-switch .bootstrap-switch-handle-on {\\n border-bottom-left-radius: 3px;\\n border-top-left-radius: 3px; }\\n.bootstrap-switch .bootstrap-switch-handle-off {\\n border-bottom-right-radius: 3px;\\n border-top-right-radius: 3px; }\\n.bootstrap-switch input[type='radio'], .bootstrap-switch input[type='checkbox'] {\\n position: absolute !important;\\n top: 0;\\n left: 0;\\n opacity: 0;\\n filter: alpha(opacity=0);\\n z-index: -1; }\\n.bootstrap-switch input[type='radio'].form-control, .bootstrap-switch input[type='checkbox'].form-control {\\n height: auto; }\\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\\n .bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\\n .bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\\n padding: 1px 5px;\\n font-size: 12px;\\n line-height: 1.5; }\\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\\n .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\\n .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5; }\\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\\n .bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\\n .bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\\n padding: 6px 16px;\\n font-size: 18px;\\n line-height: 1.33; }\\n.bootstrap-switch.bootstrap-switch-disabled, .bootstrap-switch.bootstrap-switch-readonly, .bootstrap-switch.bootstrap-switch-indeterminate {\\n cursor: default !important; }\\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\\n .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\\n .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\\n .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\\n .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\\n .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\\n .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,\\n .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,\\n .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\\n opacity: 0.5;\\n filter: alpha(opacity=50);\\n cursor: default !important; }\\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\\n -webkit-transition: margin-left 0.5s;\\n transition: margin-left 0.5s; }\\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\\n border-bottom-left-radius: 0;\\n border-top-left-radius: 0;\\n border-bottom-right-radius: 3px;\\n border-top-right-radius: 3px; }\\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\\n border-bottom-right-radius: 0;\\n border-top-right-radius: 0;\\n border-bottom-left-radius: 3px;\\n border-top-left-radius: 3px; }\\n.bootstrap-switch.bootstrap-switch-focused {\\n border-color: #66afe9;\\n outline: 0;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\\n .bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\\n border-bottom-right-radius: 3px;\\n border-top-right-radius: 3px; }\\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\\n .bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\\n border-bottom-left-radius: 3px;\\n border-top-left-radius: 3px; }\\n.hidden-input {\\n visibility: hidden;\\n position: absolute; }\\n.bordered-bottom {\\n border-bottom: 1px solid black; }\\n.margin-donut {\\n margin-bottom: 30px;\\n padding: 5px; }\\n.donuts-container {\\n padding: 0; }\\n.inline {\\n display: inline-block; }\\n.custom-tuile {\\n width: 50%; }\\n.icon {\\n margin-right: 50%; }\\n.line-bar-charts {\\n margin-top: 30px; }\\n.uppercase {\\n text-transform: uppercase; }\\n.title-container {\\n padding-left: 0;\\n padding-right: 0;\\n margin-bottom: 30px; }\\n.tuile-container {\\n min-width: 137px;\\n max-width: 140px;\\n min-height: 50px;\\n padding: 5px; }\\n.bull-score {\\n margin-top: 30px; }\\n.no-portfolio-message {\\n height: 100%;\\n text-align: center; }\\n.fake-icon-button {\\n background: #90708c;\\n padding: 8px 12px;\\n border-radius: 4px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/custom-portfolio/custom-portfolio.component.scss\n// module id = ./src/app/components/custom-portfolio/custom-portfolio.component.scss\n// module chunks = main","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Step } from 'intro.js';\nimport { EMPTY, Observable, Subject } from 'rxjs';\nimport {\n catchError,\n finalize,\n map,\n switchMap,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators';\nimport { AlertsService } from '../../shared/services/alerts/alerts.service';\nimport { AppService } from '../../shared/services/app/app.service';\nimport { IntroService } from '../../shared/services/intro.service';\nimport { LoadingService } from '../../shared/services/loading/loading.service';\nimport { PortfolioService } from '../../shared/services/portfolio/portfolio.service';\nimport { TimeCodeService } from '../../shared/services/time-code/time-code.service';\nimport { Constant } from '../../shared/utils/constant';\n\n/**\n * Custom Portfolio page of the application.\n *\n * @export\n * @class CustomPortfolioComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-custom-portfolio',\n templateUrl: './custom-portfolio.component.html',\n styleUrls: ['./custom-portfolio.component.scss']\n})\nexport class CustomPortfolioComponent implements OnInit, OnDestroy {\n Constant = Constant;\n Object = Object;\n\n analysisTickerLevelHelp =\n 'In this section you can see indicators related to your selected portfolio.';\n analysisPortfolioLevelHelp =\n 'In this section you can find indicators for the portfolio as a whole.';\n moodCurvesHelp = `Aggregated weighted Mood Curves are displayed for Sentiment, Emotions and Trading Opinion\n  related to the portfolio.`;\n\n curves$ = this.portfolioService.curveSetSubject;\n\n readonly INTRO_STEPS: [Step, number][] = [\n [\n {\n intro:\n 'Here is Custom Portfolio! In this section you can create and manage portfolios.'\n },\n 1\n ],\n [\n { intro: 'As usual, you’ll find filters to help you display the data.' },\n 2\n ],\n [\n {\n intro: `The portfolios whom name begins by \"Default\" are created by SESAMm as examples and cannot be edited nor deleted.`\n },\n 3\n ],\n [\n {\n intro: `From the top bar you can select the active portfolio, manage it, and create a new portfolio.\n To create a portfolio, just press on the + button. Next, you'll have two possibilities:\n specify each assets and quantities or import a CSV file containing these values.`\n },\n 4\n ]\n ];\n private destroy$ = new Subject();\n\n constructor(\n public portfolioService: PortfolioService,\n private appService: AppService,\n private timeCodeService: TimeCodeService,\n private loadingService: LoadingService,\n private alertsService: AlertsService,\n private route: ActivatedRoute,\n private introService: IntroService\n ) {}\n\n /**\n * When the global initialization is done, start the component initialization.\n *\n * @memberof CustomPortfolioComponent\n */\n ngOnInit() {\n this.INTRO_STEPS.forEach(step =>\n this.introService.addStep(step[0], step[1])\n );\n\n this.appService.appInitialized$\n .pipe(\n takeUntil(this.destroy$),\n switchMap(appInitialized => {\n if (appInitialized) {\n return this.init().pipe(takeUntil(this.destroy$)) as Observable<\n any\n >;\n }\n return EMPTY as Observable;\n })// ,\n // switchMap(() => this.introService.start()\n // )\n )\n .subscribe();\n }\n\n /**\n * Get the query params if presents, then get the user's portfolios and portfolios' data if needed.\n *\n * @memberof CustomPortfolioComponent\n */\n init() {\n this.loadingService.addLoads();\n return this.route.queryParamMap.pipe(\n take(1),\n catchError((err, caught) => {\n this.loadingService.forceHide();\n\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'Data not available.'\n });\n return caught;\n }),\n switchMap(params => {\n const portfolioName = params.get('pn');\n\n return this.portfolioService.getPortfolios().pipe(\n switchMap(() => {\n let queryParamsValid = false;\n let stillExists = false;\n\n // If the portfolio name query param is defined, we search for this name in the portfolios set\n if (portfolioName) {\n this.portfolioService.portfolios.some(portfolio => {\n // TODO: need some update (name + hash)\n if (portfolio.name === portfolioName) {\n this.portfolioService.currentPortfolio = portfolio;\n queryParamsValid = true;\n return true;\n } else {\n return false;\n }\n });\n }\n\n // If the query param is not defined or does not match a portfolio, we verify if the current portfolio still exists\n if (this.portfolioService.currentPortfolio && !queryParamsValid) {\n stillExists = this.portfolioService.portfolios.some(portfolio => {\n // We verify that the current portfolio still exists (ie is included in the portfolio set)\n // TODO: need some update (name + hash)\n return (\n portfolio.name === this.portfolioService.currentPortfolio.name\n );\n });\n\n // If the current portfolio has not been found in the portfolios set, we define a new arbitrary current portfolio\n if (!stillExists) {\n this.portfolioService.currentPortfolio = this.portfolioService.portfolios[0];\n }\n } else if (!queryParamsValid) {\n // If we had not current portfolio before and the query param is not valid, we define a new arbitrary current portfolio\n this.portfolioService.currentPortfolio = this.portfolioService.portfolios[0];\n }\n\n if (this.portfolioService.currentPortfolio) {\n return this.portfolioService\n .getPortfolioData(\n this.timeCodeService.currentTimeCode,\n this.portfolioService.currentPortfolio.hash\n )\n .pipe(\n tap(portfolioData => {\n this.portfolioService.currentPortfolio.data = portfolioData;\n })\n ) as Observable;\n } else {\n return EMPTY as Observable;\n }\n }),\n switchMap(() => {\n if (this.portfolioService.currentPortfolio) {\n return this.portfolioService\n .getPortfolioCurveSet(\n this.portfolioService.currentPortfolio.hash,\n this.timeCodeService.currentTimeCode\n )\n .pipe(\n map(res => this.portfolioService.curveSetSubject.next([res]))\n ) as Observable;\n }\n\n return EMPTY as Observable;\n })\n ) as Observable;\n }),\n finalize(() => this.loadingService.removeLoads())\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/custom-portfolio/custom-portfolio.component.ts","module.exports = \"
\\n\\n
\\n
\\n
\\n
\\n
\\n
Automatic retry in {{timer}} seconds
\\n
\\n
Error code: {{currentError.code}}
\\n \\n \\n \\n
\\n\\n
\\n \\n
\\n\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/error/error.component.html\n// module id = ./src/app/components/error/error.component.html\n// module chunks = main","module.exports = \"#error-container {\\n background-color: #f5f5f5;\\n color: #565a5c;\\n height: 100vh;\\n width: 100%;\\n overflow: auto; }\\n\\n#label {\\n font-weight: bold; }\\n\\n#hdm-logo {\\n vertical-align: middle; }\\n\\n#error-links {\\n margin-top: 30px;\\n list-style-type: none; }\\n\\n.error-link {\\n color: #565a5c; }\\n\\n.error-link:hover {\\n color: #4f2259;\\n text-decoration: none; }\\n\\n.error-link:focus {\\n color: #90708c; }\\n\\n@media all and (min-width: 960px) {\\n #label {\\n font-size: 40px; }\\n #message {\\n font-size: 30px; }\\n #auto-retry {\\n font-size: 27px; }\\n #error-links {\\n font-size: 25px; }\\n #error-content {\\n padding-top: 25vh; }\\n #hdm-logo {\\n padding-top: 20vh; } }\\n\\n@media all and (max-width: 959px) and (min-width: 600px) {\\n #label {\\n font-size: 8vw; }\\n #message {\\n font-size: 6vw; }\\n #auto-retry {\\n font-size: 5vw; }\\n #error-links {\\n font-size: 4vw; }\\n #error-content,\\n #hdm-logo {\\n padding-top: 5vh; } }\\n\\n@media all and (max-width: 599px) and (min-width: 50px) {\\n #label {\\n font-size: 10vw; }\\n #message {\\n font-size: 8vw; }\\n #auto-retry {\\n font-size: 7vw; }\\n #error-links {\\n font-size: 6vw; }\\n #error-content,\\n #hdm-logo {\\n padding-top: 5vh; } }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/error/error.component.scss\n// module id = ./src/app/components/error/error.component.scss\n// module chunks = main","import { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Observable, Subject, Subscription, timer } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AuthService } from '../../shared/services/auth/auth.service';\nimport { LoadingService } from '../../shared/services/loading/loading.service';\nimport { UserService } from '../../shared/services/user/user.service';\nimport { WebSocketService } from '../../shared/services/websocket/websocket.service';\nimport { Constant } from '../../shared/utils/constant';\n/**\n * Error page of the application.\n *\n * @export\n * @class ErrorComponent\n * @implements {OnInit}\n * @implements {AfterViewInit}\n * @implements {OnDestroy}\n */\n@Component({\n selector: 'app-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss']\n})\nexport class ErrorComponent implements OnInit, AfterViewInit, OnDestroy {\n private error = {\n 0: {\n label: 'Server unreachable.',\n message: 'Please check your internet connection.',\n code: 0,\n autoRetry: true,\n links: {\n refresh: true\n }\n },\n 403: {\n label: 'Too many simultaneous connections.',\n message: 'A device is already connected with this account.',\n code: 403,\n autoRetry: true,\n links: {\n refresh: true,\n logout: true\n }\n },\n 503: {\n label: `Sorry, we're down for maintenance.`,\n message: 'We will be back shortly.',\n code: 503,\n autoRetry: true,\n links: {\n refresh: true,\n logout: true\n }\n },\n 500: {\n label: 'Something went wrong.',\n message: 'An internal server error occured. Please try to refresh.',\n code: 500,\n autoRetry: true,\n links: {\n refresh: true,\n logout: true\n }\n },\n 404: {\n label: 'Page not found.',\n message: 'We cannot find the document you asked for.',\n code: 404,\n links: {\n previousPage: true,\n home: true,\n faq: true,\n contact: true,\n logout: true\n }\n }\n };\n currentError: any;\n autoRetry: Observable;\n autoRetrySub: Subscription;\n timer = 10;\n\n private destroy$ = new Subject();\n\n constructor(\n public authService: AuthService,\n private route: ActivatedRoute,\n private router: Router,\n private userService: UserService,\n private webSocketService: WebSocketService,\n private loadingService: LoadingService\n ) {}\n\n ngOnInit(): void {\n this.loadingService.forceHide();\n // Get the current error from query params.\n this.route.params.pipe(takeUntil(this.destroy$)).subscribe(params => {\n this.currentError = this.error[params['id']];\n });\n\n if (this.currentError.autoRetry) {\n this.autoRetry = timer(1, 1000);\n }\n\n if (!this.userService.username) {\n const user = this.authService.getUserCookie();\n\n this.userService.username = user.username;\n this.userService.id = user.id;\n }\n }\n\n /**\n * Defines the timer if needed.\n *\n * @memberof ErrorComponent\n */\n ngAfterViewInit(): void {\n if (this.currentError.autoRetry) {\n let max = 10;\n this.autoRetry.pipe(takeUntil(this.destroy$)).subscribe(t => {\n if (this.timer === 0) {\n this.refresh();\n\n max = t + 10;\n }\n this.timer = max - t;\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Redirect to MSO after disconnecting socket and relaunching connection process.\n *\n * @memberof ErrorComponent\n */\n refresh(): void {\n this.webSocketService.disconnect();\n\n this.webSocketService\n .connect(this.userService.username)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.router.navigate([Constant.MSORoute]);\n });\n }\n\n /**\n * Redirect to the last visited page after disconnecting socket and relaunching connection process.\n *\n * @memberof ErrorComponent\n */\n goBack(): void {\n this.webSocketService.disconnect();\n this.webSocketService\n .connect(this.userService.username)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n history.back();\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/error/error.component.ts","module.exports = \"
\\n
\\n
\\n \\n FREQUENTLY ASKED QUESTION\\n
\\n
\\n\\n
\\n
{{ section.category }}
\\n\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n DOWNLOADABLE INFORMATION\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/faq/faq.component.html\n// module id = ./src/app/components/faq/faq.component.html\n// module chunks = main","module.exports = \".faq-section {\\n margin-top: 1em; }\\n\\n.faq-title {\\n margin-bottom: 1rem; }\\n\\n#ticker-list {\\n margin-left: 15px; }\\n\\n#sources-list {\\n margin-top: 10px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/faq/faq.component.scss\n// module id = ./src/app/components/faq/faq.component.scss\n// module chunks = main","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport * as FileSaver from 'file-saver';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ExportService } from '../../shared/services/export/export.service';\nimport { Constant } from '../../shared/utils/constant';\n\n/**\n * FAQ page of the application\n *\n * @export\n * @class FaqComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-faq',\n templateUrl: './faq.component.html',\n styleUrls: ['./faq.component.scss']\n})\nexport class FaqComponent implements OnInit, OnDestroy {\n Constant = Constant;\n\n faq: { category: string; entries: { title: string; content: string }[] }[] = [\n {\n category: 'SOURCES',\n entries: [\n {\n title: 'What are the sources of your data?',\n content: `SESAMm focuses on comprehensive textual analysis of 250,000+ data sources.\n These sources are divided in several types for fine filtering and weighting:\n
    \n
  • \n Web & Press, which corresponds to data extracted from financial and non-financial news, blogs,\n social media and forums. This includes the following underlying categories: news, blogs, discussions;\n
  • \n
  • \n Social Trading, which corresponds to data extracted from social trading platforms.\n
  • \n
`\n },\n {\n title: 'What time zone is used by L’Humeur des Marchés?',\n content: `The data in our application are using the time zone UTC+0.`\n },\n {\n title: 'Are the sources updated? How frequently?',\n content: `Sources are updated automatically in our systems.\n As soon as there is new and useful data available, it is directly integrated into our application.`\n },\n {\n title:\n 'What is the full process of analysis: from text mining to quantified indicators for market forecasting?',\n content: `Data is processed by four layers of technology to create powerful indicators:\n
    \n
  • \n Big Data Analytics: our systems extract and analyze large amounts of textual data corresponding\n to mentions of companies, financial assets, tickers, products etc. Systems used for live analysis and\n access to the platform are fully secured and redundant.\n
  • \n
  • \n Natural Language Processing (NLP): Based on statistical models, linguistics and machine learning,\n it allows us to extract the useful words, expressions and sentences and link them to a precise measurement\n of sentiment, emotions and trading opinions.\n
  • \n
  • \n Quantitative Analysis and Data Science: We interpret the results of our data to predict market movements\n (precise explanations and methodology can be found in back-tested portfolios – please see downloadable file and\n request our Whitepaper for more information).\n
  • \n
`\n },\n {\n title: 'How can indicators be interpreted?',\n content: `

Depending on your strategy, you might want to follow closely assets that are getting most traction or that have\n decreased in popularity.

\n

Our results give a simplified quantification of complex emotions, sentiment and volume based on millions of\n messages processed:\n

    \n
  • \n Sentiment and positive emotions (such as joy) increase might be at the basis of a market trend and could help\n confirm an investor’s intuition;\n
  • \n
  • \n Similarly, a decrease in sentiment or negative emotions (such as fear) could indicate a risk;\n
  • \n
  • \n More volume in messages could impact the market by increasing assets’ volatility and liquidity: a higher volume\n of messages means a highest interest from social traders, thus more trading of the respective asset could be\n expected.\n
  • \n

\n

You can download our specific study (Analyse Big Data d’émotions par classes d’actifs): an illustration of\n the impact of Brexit vote will help you better understand the use of our indicators. For instance, we observed our\n results were in line with movements of the market: emotion and sentiment scores had strong correlation with equity,\n commodity, currency and bonds movements; Our indicators can be used to anticipate market movements.

`\n },\n {\n title: 'What does the live feed on the right-hand side represent?',\n content: `

Only messages from social trading platforms are shown in the live feed. So, you can have an overview of the data\n analyzed and be aware of most interesting messages.

\n

If you want to see posts about one specific ticker, you can follow the link – by clicking on the ticker itself –\n to be redirected to the StockTwits forum.

`\n }\n ]\n },\n {\n category: 'INDICATORS',\n entries: [\n {\n title: 'What are the indicators used in HDM?',\n content: `There are four types of indicators to visualize in HDM:\n
    \n
  • \n Emotions: based on Ekman’s emotions, restricted to the 5 basic emotions\n (Joy, Fear, Sadness, Anger, Surprise) and Neutral;\n
  • \n
  • \n Sentiment: Based on ternary classification of sentiment: Positive, Negative or Neutral;\n
  • \n
  • \n Trading Opinion: Traders’ opinions (bullish or bearish), only available for Social Trading data;\n
  • \n
  • \n Volume: Based on the number of posts and messages over a specific period.\n
  • \n
`\n },\n {\n title: 'What does Sentiment measure?',\n content: `Sentiment, also called Valence or Polarity, is how we define three types of tendencies:\n
    \n
  • \n Positive: text with positively-related mood;\n
  • \n
  • \n Negative: text with negatively-related mood;\n
  • \n
  • \n Neutral: the text does not indicate a specific tendency; it is neither a negatively-related nor\n a positively-related mood.\n
  • \n
`\n },\n {\n title: 'What do emotions and sentiment values displayed represent?',\n content: `For emotions and sentiments indicators, two types of display are available:\n
    \n
  • \n You have the option to visualize all the values constituting each set by selecting one of the two analysis\n engines to display “Emotion” (display six aspects of emotions) or “Sentiment” (display three sentiments values);\n
  • \n
  • \n You can also display the aggregated sentiment value and aggregated emotion by selecting “All” in the analysis\n engine menu.\n
  • \n
\n Sentiment and emotions values measured by our algorithms are initially bound between 0 and 1 (for one message) and the\n sum of each set is equal to 1 (for example: joy + fear + sadness + anger + neutral = 1). The values brought by L’Humeur\n des Marchés are transformed and standardized through the use of a z-score. The z-score allows a homogenous comparison\n between the different values of each set, and a sharper visualization of the aggregated values. The z-score can be\n higher than 1 and lower than 0. It describes a number of standard deviations compared to a moving average. The\n higher the z-score, the more the sentiment / emotions are deviating from their average.`\n },\n {\n title: 'What does Data Volume Ranking represent?',\n content: `

It represents historical measurement of the number of publications analyzed for each of the tickers.

\n

Three different aspects are to be taken into consideration:\n

    \n
  • \n Winners and Losers: 10 tickers that attract the most or the least amount of information;\n respectively defined as Trending and Lagging assets;\n
  • \n
  • \n Period Volume: Represented by rectangles from 1 to 10, a larger (smaller) number of colored\n rectangle would mean an attractive (unattractive) asset, also defined as trending (lagging);\n
  • \n
  • \n Volume variation: measure of the change from beginning of period to current date, in percentage.\n
  • \n
\n

`\n },\n {\n title: 'What do Sentiment and Emotion Rankings measure?',\n content: `Sentiment / Emotion Ranking measures the amount of each sentiment / emotion contained in all information,\n for each ticker (Emotions are defined as in Ekman’s basic range, as explained above).`\n },\n {\n title:\n 'Why are there Winners and Losers in Social Sentiment and Emotions?',\n content: `In HDM, Sentiment Ranking and Emotion Raking measure the overall Sentiment and Emotion for each asset,\n from all publications, and are classified in two groups:\n
    \n
  • \n Winners: Tickers receiving most percentage of positive sentiment (or emotion), ranked as top\n 10 performers.\n
  • \n
  • \n Losers: Tickers receiving most percentage of negative sentiment (or emotion), ranked as worst\n 10 performers.\n
  • \n
\n \n
  • \n Winners and Losers express interest (good or bad) from the communities (investors, consumers, experts, etc.) and\n represent a set of tickers that should be carefully followed.`\n },\n {\n title: 'What is the Trading Opinion?',\n content: `Measurement of people’s reflection of daily market tendencies. Results are based on machine\n learning algorithm from stock-related micro-blogging publications. For instance, a positive (negative)\n score means investors might buy (sell) an asset, whereas a neutral score means investors would prefer\n to hold their assets. Score ranges from -1 to 1:\n
      \n
    • \n Positive trend: a positive view appears from online messages;\n
    • \n
    • \n Negative trend: a negative opinion is reflected in online messages;\n
    • \n
    • \n Neutral trend: as score approaches 0, no specific trend is noticeable.\n This could be translated in expected financial movements as a Hold advice.\n
    • \n
    `\n }\n ]\n },\n {\n category: 'FINANCIAL DATA',\n entries: [\n {\n title: 'How many assets can we chose from?',\n content: `

    As of now, L'Humeur des Marchés covers more than 4,000 instruments in its standard version\n (Equity, Commodities, Currencies, Bonds, Cryptocurrencies).

    \n

    Constantly improving our algorithms, we will to increase ticker coverage at each new version\n of the platform.

    `\n },\n {\n title: 'Can we ask for specific instruments to be added?',\n content: `Any ticker can be added, feel free to request new tickers that are not yet covered.\n Please note that some instruments do not collect as much information, messages or publications as the most well-known tickers;\n thus, a few of them might lack some interpretability.`\n }\n ]\n },\n {\n category: 'MARKET SENTIMENT ANALYSIS',\n entries: [\n {\n title: 'Which data will be retrieved by using the download button?',\n content: `This button allows you to download the entire set of data displayed which you have selected\n (ie. Sentiment, Emotions, Trading Opinion ..).`\n },\n {\n title: 'What is the difference between Expert and Global mode?',\n content: `It is important to mention that Expert data is only available for social trading sources, whereas Global data\n takes all sources into account. More precisely:\n
      \n
    • \n Expert data only takes information from financial savvy publications and leading authors that gain attraction\n from followers (active traders, renowned names, authors with most shared messages, …).\n
    • \n
    • \n Global mode takes into account all information from all available sources.\n
    • \n
    `\n },\n {\n title: 'How to insert a new curve?',\n content: `

    You can add a new curve either by searching from a ticker in the \"Search for tickers\" box on the top right\n side of any page or by clicking on \"Add curve\" in the Market Sentiment Analysis page.

    \n

    Two choices are available when adding or replacing a curve, when clicking on “Add curve”:\n

      \n
    • \n By clicking on “Add by Ticker”: Choose the ticker you would like to see by typing its\n symbol and select filters;\n
    • \n
    • \n By clicking on “Add by Filter”: Choose curves to represent a combination of filters\n in order to represent a sector and industry for a specific source and then, choose one or\n several kinds of display for the data among “Curves”;\n
    • \n
    \n

    \n

    When you choose to add a curve, only two instruments can be visualized at the same time.

    `\n },\n {\n title: 'What are the different smoothing choices for curves?',\n content: `Three types of curves (smoothed or not) are available for display:\n
      \n
    • \n No smoothing: Allows to display the raw data only, without smoothing;\n
    • \n
    • \n EMA (exponential moving average): Allows to display smoothed curves. Two periodicities are available:\n short term with 30 days and long term with 150 days. We prefer an exponential average to a standard one, as\n latter days weigh higher in the model.\n
    • \n
    `\n }\n ]\n },\n {\n category: 'CUSTOM PORTFOLIO',\n entries: [\n {\n title: 'What is a portfolio?',\n content: `A Sentiment Portfolio is the replication of a financial portfolio for which we can visualize its Emotion, Sentiment,\n Trading Opinion and Volume indicators. Two types of portfolios can be chosen:\n
      \n
    • \n You can build your own portfolios, by choosing as many tickers as you wish.\n
    • \n
    • \n Standard portfolios are also available, specially picked by SESAMm’s Quant team. For some standard portfolios,\n you can download a document that contains simulated back-tests and explanations about the construction of strategy\n based on our indicators. This kind of portfolio is computed by SESAMm to show the user how to integrate our data and\n build efficient strategies thanks to the platform.\n
    • \n
    `\n },\n {\n title: 'How many portfolios can I build?',\n content: `You can build as many portfolios as you wish.`\n },\n {\n title: 'How many assets can I put into each portfolio?',\n content: `

    You can personalize each of your portfolios by adding up to 100 assets for each portfolio.

    \n

    For portfolios with higher number of assets and very specific tickers (50 assets in derivatives,\n for example), please ask us.

    `\n },\n {\n title: 'Can other customers see what is inside my portfolio?',\n content: `No user can know which tickers are used or added by any other customer to a portfolio.`\n },\n {\n title: 'What type of documents can be downloaded?',\n content: `

    \n The downloadable documents give use cases of data from the platform.\n They have been created to help develop trading strategies based on our indicators.\n These documents present in detail the mothodology and\n achieved results by back-testing the simulated strategy.\n

    `\n }\n ]\n },\n {\n category: 'OPERATIONAL REQUIREMENTS',\n entries: [\n {\n title: 'What are the browser and system requirements?',\n content: `

    On desktop, it is available online for all major web browsers: IE10+, Chrome47+, Firefox43+, Safari9+, Opera35+.\n No other system requirements exist except for having access to the internet.

    `\n }\n ]\n }\n ];\n\n private destroy$ = new Subject();\n\n /**\n * Creates an instance of FaqComponent.\n * @constructor\n * @param {ExportService} exportService\n * @memberof FaqComponent\n */\n constructor(private exportService: ExportService) {}\n\n ngOnInit(): void {}\n\n /**\n * Get the ticker list file from the backend and propose it to the user for downloading.\n *\n * @memberof FaqComponent\n */\n downloadTickerList(): void {\n this.exportService\n .getTickersList()\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n const filename = value.headers.get('content-disposition')['filename'];\n const blob = new Blob([value.body], { type: 'text/csv' });\n\n FileSaver.saveAs(blob, filename || 'ticker_list.csv');\n });\n }\n\n /**\n * Get the source list from the backend and propose it to the user for downloading.\n *\n * @returns\n * @memberof FaqComponent\n */\n downloadSourcesList(): void {\n this.exportService\n .getFile('SourceList')\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n let filename: string;\n if (value.headers.get('content-disposition')) {\n filename = value.headers.get('content-disposition')['filename'];\n }\n const blob = new Blob([value.body], { type: 'text/csv' });\n FileSaver.saveAs(blob, filename || 'source_list.csv');\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/faq/faq.component.ts","module.exports = \"
      \\n
    • \\n \\n \\n \\n
    • \\n
    \\n\\n\\n\\n\\n\\n
    \\n \\n\\n
    \\n \\n \\n
    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/frame/frame.component.html\n// module id = ./src/app/components/frame/frame.component.html\n// module chunks = main","module.exports = \"#app {\\n margin-left: 60px;\\n height: 100%; }\\n\\n#main {\\n padding-top: 120px;\\n overflow: auto;\\n height: 100%; }\\n\\n.app-pushed {\\n margin-left: 250px !important; }\\n\\n.alert-fixed {\\n position: fixed;\\n top: 15px;\\n right: 15px;\\n z-index: 9999;\\n border-radius: 0; }\\n\\n.alert-list {\\n list-style: none;\\n padding: 5px 0 5px 0; }\\n\\n.usersnap-widget-margin {\\n margin-bottom: 40px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/frame/frame.component.scss\n// module id = ./src/app/components/frame/frame.component.scss\n// module chunks = main","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ModalDirective } from 'ngx-bootstrap';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { environment } from '../../../environments/environment';\nimport { AlertsService } from '../../shared/services/alerts/alerts.service';\nimport { AppService } from '../../shared/services/app/app.service';\nimport { AuthService } from '../../shared/services/auth/auth.service';\nimport { IntroService } from '../../shared/services/intro.service';\nimport { LoadingService } from '../../shared/services/loading/loading.service';\nimport { NavbarColorService } from '../../shared/services/navbar-color/navbar-color.service';\nimport { TickersService } from '../../shared/services/tickers/tickers.service';\nimport { TimeCodeService } from '../../shared/services/time-code/time-code.service';\nimport { UpdateService } from '../../shared/services/update/update.service';\nimport { UserService } from '../../shared/services/user/user.service';\nimport { WebSocketService } from '../../shared/services/websocket/websocket.service';\n/**\n * Global component encapsuling all components with framed structure (application menu, lateral navigation menu and vue menu).\n *\n * @export\n * @class FrameComponent\n * @implements {OnInit}\n * @implements {AfterViewInit}\n */\n@Component({\n selector: 'app-frame',\n templateUrl: './frame.component.html',\n styleUrls: ['./frame.component.scss']\n})\nexport class FrameComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('createAlertModal')\n createAlertModal: ModalDirective;\n @ViewChild('createImportAlertModal')\n createImportAlertModal: ModalDirective;\n\n sidebarExpanded = false;\n\n private destroy$ = new Subject();\n\n constructor(\n public appService: AppService,\n public alertsService: AlertsService,\n private ref: ChangeDetectorRef,\n private elementRef: ElementRef,\n private webSocketService: WebSocketService,\n private timeCodeService: TimeCodeService,\n private tickersService: TickersService,\n private router: Router,\n private userService: UserService,\n private authService: AuthService,\n private updateService: UpdateService,\n private loadingService: LoadingService,\n private navbarColorService: NavbarColorService,\n private introService: IntroService\n ) {}\n\n /**\n * Connect the user if needed, store the user's information if there is a cookie and launch the global initialization.\n *\n * @memberof FrameComponent\n */\n ngOnInit() {\n // If there is no socket id, the user did not go through the login page\n if (!this.webSocketService.isConnected()) {\n this.loadingService.addLoads();\n\n if (!this.userService.username) {\n const user = this.authService.getUserCookie();\n\n this.userService.username = user.username;\n this.userService.id = user.id;\n }\n\n this.webSocketService\n .connect(this.userService.username)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.loadingService.removeLoads();\n this.init();\n },\n err => {\n this.webSocketService.disconnect();\n this.loadingService.forceHide();\n\n switch (err.code) {\n case 0:\n this.router.navigate(['/error', 0]);\n break;\n case 403:\n this.router.navigate(['/error', 403]);\n break;\n default:\n this.router.navigate(['/error', 500]);\n }\n }\n );\n } else {\n this.init();\n }\n }\n\n /**\n * Initialize the application globally by getting user's, times' and tickers' data.\n *\n * @memberof FrameComponent\n */\n init() {\n this.loadingService.addLoads();\n\n if (!localStorage.getItem('intro-init')) {\n this.introService.addStep(\n {\n intro: `Welcome to L'Humeur des Marchés, your new platform to visualize Emotions and Sentiments in Financial Markets.`\n },\n 0\n );\n localStorage.setItem('intro-init', 'true');\n }\n\n this.userService\n .getUserInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n user => {\n this.userService.updateUser(user);\n\n this.timeCodeService\n .getTimes()\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.tickersService\n .getTickers()\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n tickers => {\n this.tickersService.tickers = tickers;\n this.tickersService.setCodeToLabel();\n\n this.appService.globalInitTrigger();\n if (sessionStorage.getItem('cu')) {\n this.navbarColorService.setColor('red');\n }\n\n this.loadingService.removeLoads();\n },\n () => {\n this.loadingService.forceHide();\n }\n );\n },\n () => {\n this.loadingService.forceHide();\n }\n );\n },\n err => {\n this.loadingService.forceHide();\n }\n );\n }\n\n /**\n * Initialize the UserSnap bug report tool and set the listener on the update event once the application globaly initialized.\n *\n * @memberof FrameComponent\n */\n ngAfterViewInit() {\n if (\n !this.appService.usersnapInitialized &&\n environment.production === true\n ) {\n const s = document.createElement('script');\n s.setAttribute('id', 'usersnap');\n s.type = 'text/javascript';\n s.src = '//api.usersnap.com/load/e493fd46-0405-4aa1-bff0-b149b4338b69.js';\n\n this.elementRef.nativeElement.appendChild(s);\n this.appService.usersnapInitialized = true;\n\n this.ref.detectChanges();\n }\n\n this.appService.appInitialized$\n .pipe(takeUntil(this.destroy$))\n .subscribe(appInitialized => {\n if (appInitialized) {\n this.webSocketService.updateSubject\n .pipe(takeUntil(this.destroy$))\n .subscribe(data => {\n if (data.name === 'update') {\n if (\n data.timeCode === this.timeCodeService.currentTimeCode ||\n data.timeCode === undefined\n ) {\n if (this.tickersService.tickers) {\n this.updateService.update();\n }\n }\n this.ref.detectChanges();\n } else if (data.name === 'updateTickersList') {\n this.tickersService\n .getTickers()\n .pipe(takeUntil(this.destroy$))\n .subscribe(tickers => {\n this.tickersService.tickers = tickers;\n\n this.tickersService.setCodeToLabel();\n });\n }\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/frame/frame.component.ts","module.exports = \"
    \\n
    \\n
    \\n GENERAL TERMS AND CONDITIONS OF USE - English version\\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n GENERAL TERMS AND CONDITIONS OF USE - French version\\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/gcu/gcu.component.html\n// module id = ./src/app/components/gcu/gcu.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/gcu/gcu.component.scss\n// module id = ./src/app/components/gcu/gcu.component.scss\n// module chunks = main","import { Component, OnInit } from '@angular/core';\nimport { Constant } from '../../shared/utils/constant';\n\n/**\n * GCU page of the application.\n *\n * @export\n * @class GcuComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-gcu',\n templateUrl: './gcu.component.html',\n styleUrls: ['./gcu.component.scss']\n})\nexport class GcuComponent implements OnInit {\n Constant = Constant;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/gcu/gcu.component.ts","module.exports = \"
    \\n \\n \\n\\n \\n\\n \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/market-sentiment-analysis/market-sentiment-analysis.component.html\n// module id = ./src/app/components/market-sentiment-analysis/market-sentiment-analysis.component.html\n// module chunks = main","module.exports = \".bordered-bottom {\\n border-bottom: 1px solid black; }\\n\\n.margin-graph {\\n margin-top: 15px;\\n padding-left: 0;\\n margin-bottom: 15px; }\\n\\n.title {\\n margin-top: 5px;\\n margin-bottom: 5px; }\\n\\n.icon {\\n margin-right: 50%; }\\n\\n.my-bar {\\n min-width: 10px; }\\n\\n.progress-bar-container {\\n margin-top: 10px; }\\n\\n.analysis-info {\\n color: #969281; }\\n\\n.dropdown-menu-left {\\n left: -45px !important; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/market-sentiment-analysis/market-sentiment-analysis.component.scss\n// module id = ./src/app/components/market-sentiment-analysis/market-sentiment-analysis.component.scss\n// module chunks = main","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { EMPTY, forkJoin, Observable, Subject } from 'rxjs';\nimport {\n catchError,\n finalize,\n isEmpty,\n map,\n mergeMap,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators';\nimport { actionBackToFront } from '../../shared/models/alert.model';\nimport { CurveSetParams } from '../../shared/models/curve-set.model';\nimport { AlertsService } from '../../shared/services/alerts/alerts.service';\nimport { AppService } from '../../shared/services/app/app.service';\nimport { ChartsService } from '../../shared/services/charts/charts.service';\nimport { IntroService } from '../../shared/services/intro.service';\nimport { LoadingService } from '../../shared/services/loading/loading.service';\nimport { OverviewService } from '../../shared/services/overview/overview.service';\nimport { PortfolioService } from '../../shared/services/portfolio/portfolio.service';\nimport { TickersService } from '../../shared/services/tickers/tickers.service';\nimport { TimeCodeService } from '../../shared/services/time-code/time-code.service';\nimport { UtilsService } from '../../shared/services/utils/utils.service';\nimport { Constant } from '../../shared/utils/constant';\n\nenum CurveProperty {\n MessageType = 'messageType',\n Language = 'language',\n Engine = 'engine',\n CurveType = 'curveType',\n Expert = 'expert',\n Financial = 'financial',\n Alert = 'alert'\n}\n\n/**\n * Market Sentiment Analysis page of the application.\n *\n * @export\n * @class MarketSentimentAnalysisComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-market-sentiment-analysis',\n templateUrl: './market-sentiment-analysis.component.html',\n styleUrls: ['./market-sentiment-analysis.component.scss']\n})\nexport class MarketSentimentAnalysisComponent implements OnInit, OnDestroy {\n Constant = Constant;\n CurveProperty = CurveProperty;\n\n initialized = false;\n portfoliosItems: { name: string; hash: string }[];\n\n // hideSeries = new EventEmitter<{ requestId: number }>();\n\n analysisLastSelectionHelp = `

    Sentiment and Emotions charts show the respective indicators\n available related to the asset.

    \n

    Trading Opinion allows you to see if authors are feeling positive about the asset's performance.

    \n

    Volume represents the quantity of publications related to the asset over the selected period.

    `;\n\n private destroy$ = new Subject();\n\n constructor(\n public chartsService: ChartsService,\n public utilsService: UtilsService,\n private appService: AppService,\n private loadingService: LoadingService,\n private timeCodeService: TimeCodeService,\n private overviewService: OverviewService,\n private alertsService: AlertsService,\n private tickersService: TickersService,\n private route: ActivatedRoute,\n private portfolioService: PortfolioService,\n private introService: IntroService\n ) {}\n\n /**\n * Waits for global initialization event then launches local initialization.\n *\n * @memberof MarketSentimentAnalysisComponent\n */\n ngOnInit(): void {\n this.introService.addStep(\n {\n intro: `The Market Sentiment Analysis section allows you to analyze and\n compare assets using all our indicators and a large set of filters.\n Let's discover it!`\n },\n 1\n );\n this.introService.addStep(\n {\n intro:\n 'The curves we are computing are the Sentiment, the Emotion and the Trading Opinion Curve.'\n },\n 3\n );\n this.introService.addStep(\n {\n intro:\n 'The price curve, and the volume of messages compared to the volume exchanged for each day are also available.'\n },\n 4\n );\n this.introService.addStep(\n {\n intro:\n 'You can directly filter the curves you want to display by clicking on them.'\n },\n 5\n );\n\n this.loadingService.addLoads();\n\n this.appService.appInitialized$\n .pipe(takeUntil(this.destroy$))\n .subscribe(appInitialized => {\n if (appInitialized) {\n this.loadingService.removeLoads();\n this.init().subscribe(() => { /* this.introService.start().subscribe() */ });\n }\n });\n }\n\n /**\n * Looks at query parameters to know if a specific set of curves has to be displayed,\n * then get the data (from query parameters or default if no curve in memory) from backend.\n *\n * @memberof MarketSentimentAnalysisComponent\n */\n init() {\n let curves: string | CurveSetParams[];\n this.loadingService.addLoads(3);\n\n this.portfolioService\n .getPortfolios()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.portfolioService.portfoliosObs\n .pipe(takeUntil(this.destroy$))\n .subscribe(portfolios => {\n this.loadingService.removeLoads(1);\n this.portfoliosItems = portfolios.map(portfolio => {\n return { name: portfolio.name, hash: portfolio.hash };\n });\n });\n });\n\n this.route.queryParams.pipe(take(1)).subscribe(queryParams => {\n curves = queryParams['c'] ? queryParams['c'] : null;\n this.loadingService.removeLoads(1);\n });\n\n let curveSets$: Observable = EMPTY;\n\n // If curves query parameter exists, we use it to get the right curves.\n if (curves) {\n try {\n curves = JSON.parse(curves as string);\n curveSets$ = this.chartsService\n .getCurveSets(curves as CurveSetParams[], true)\n .pipe(\n tap(res => {\n // If res is not undefined, we just got the result of the first query.\n if (res != null) {\n this.tickersService.posnegTickers = res;\n if (!this.tickersService.currentTickerId) {\n this.tickersService.currentTickerId = 750;\n }\n }\n })\n );\n } catch (error) {\n console.error(error);\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'Malformed URL. The default curve set has been loaded.'\n });\n }\n }\n\n const assetsIndustries$ = this.overviewService.getAssetsIndustries();\n\n return forkJoin(\n curveSets$.pipe(\n isEmpty(),\n mergeMap(empty => {\n if (empty) {\n return this.getCurves();\n }\n return EMPTY;\n })\n ),\n assetsIndustries$\n ).pipe(\n takeUntil(this.destroy$),\n map(res => {\n this.overviewService.assets = res[1].assets;\n this.overviewService.industries = res[1].sectors;\n }),\n finalize(() => {\n this.initialized = true;\n this.loadingService.removeLoads(1);\n })\n );\n }\n\n /**\n * Gets the curves to display, either the last displayed or the defaults.\n *\n * @memberof MarketSentimentAnalysisComponent\n */\n getCurves() {\n this.loadingService.addLoads();\n\n let noData = false;\n return this.chartsService.getCurveSets(null, true).pipe(\n takeUntil(this.destroy$),\n catchError((error, caught) => {\n console.error(error);\n this.loadingService.forceHide();\n noData = true;\n switch (error.status) {\n case 410:\n this.timeCodeService.changeTimeCode(\n this.timeCodeService.fallbackTimeCode\n );\n this.chartsService\n .getCurveSets(null, true)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {}, error2 => console.error(error2));\n break;\n }\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'Data not available'\n });\n\n return caught;\n }),\n finalize(() => {\n if (!noData) {\n this.timeCodeService.changeTimeCode(\n this.timeCodeService.currentTimeCode\n );\n }\n this.loadingService.removeLoads();\n })\n );\n }\n\n /**\n * Updates a curve on property change.\n *\n * @param {CurveProperty} property\n * @param {{ value: string; index: number }} event\n * @memberof MarketSentimentAnalysisComponent\n */\n onCurveSetParamsChange(\n property: CurveProperty,\n event: { value: string; index: number }\n ): void {\n this.loadingService.addLoads();\n\n const queryParams = this.chartsService.curveSets.map(\n curveSet => curveSet.params\n );\n queryParams[event.index][property] = event.value;\n\n this.chartsService\n .getCurveSets(queryParams, true)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.loadingService.removeLoads();\n },\n error => console.error(error)\n );\n }\n\n onDisplayedAlertChange(event: {\n alertHash: string;\n alertName: string;\n requestId: number;\n }): void {\n const dates = this.chartsService.curveSets[0].dates;\n this.loadingService.addLoads();\n this.alertsService\n .getAlertSignals(\n event.alertHash,\n event.alertName,\n dates[0],\n dates[dates.length - 1]\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n res => {\n // Replace the quotes in the curve set.\n const curveSet = this.chartsService.curveSets.find(cs =>\n cs.params.requestIds.includes(event.requestId)\n );\n curveSet.signals = res.signals.map(signal => ({\n ...signal,\n title: actionBackToFront[signal.title]\n }));\n curveSet.params.alertHash = event.alertHash;\n // Reorder the alerts to put the displayed one first.\n const displayedAlert = curveSet.alertsList.splice(\n curveSet.alertsList.findIndex(\n alert => alert.hash === event.alertHash\n ),\n 1\n )[0];\n curveSet.alertsList.splice(0, 0, displayedAlert);\n // Trigger change detection for curves to update.\n this.chartsService.curveSets = [...this.chartsService.curveSets];\n },\n error => console.error(error),\n () => this.loadingService.removeLoads()\n );\n }\n\n // onToggleVisibility(event: { requestId: number }): void {\n // this.hideSeries.emit(event);\n // }\n\n deleteCurveSet(index: number): void {\n this.chartsService.curveSets.splice(index, 1);\n const newCurveSets = [...this.chartsService.curveSets];\n this.chartsService.curveSets = newCurveSets.length > 0 ? newCurveSets : [];\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/market-sentiment-analysis/market-sentiment-analysis.component.ts","module.exports = \"
    \\n \\n \\n \\n\\n \\n
    \\n
    \\n
    {{ Constant.AssetClasses }}
    \\n
    \\n \\n \\n \\n
    \\n\\n
    \\n
    \\n
    {{ Constant.Sectors }}
    \\n
    \\n \\n \\n \\n
    \\n
    \\n \\n\\n
    \\n\\n \\n \\n \\n\\n \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n \\n\\n
    \\n\\n
    \\n \\n \\n \\n
    \\n\\n
    \\n\\n
    \\n \\n \\n \\n
    \\n \\n \\n
    \\n\\n\\n \\n
    \\n \\n \\n \\n
    \\n \\n
    \\n\\n\\n
    \\n
    \\n

    Unfortunately we have no data to display in this section.

    \\n

    \\n Feel free to contact us for more information.\\n

    \\n
    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/market-sentiment-overview/market-sentiment-overview.component.html\n// module id = ./src/app/components/market-sentiment-overview/market-sentiment-overview.component.html\n// module chunks = main","module.exports = \".time {\\n margin-top: 15px;\\n margin-left: 40px; }\\n\\n.overview-title {\\n margin-bottom: 5px; }\\n\\n.time-panel {\\n text-align: center;\\n cursor: pointer;\\n margin-right: 5px;\\n min-width: 15%; }\\n\\n.bordered {\\n border-top: 1px solid #4f2259;\\n margin-top: 5px; }\\n\\n.sub-title-container {\\n margin-bottom: 5px; }\\n\\n.container-market {\\n padding-left: 0px; }\\n\\n.container-market img:first-child {\\n height: 27px; }\\n\\n.title {\\n margin-top: 5px;\\n margin-bottom: 5px; }\\n\\n#donut .margin-graph {\\n margin-top: 15px; }\\n\\n#live-feed-title {\\n margin-bottom: 34px; }\\n\\n.mso-section {\\n overflow: auto; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/market-sentiment-overview/market-sentiment-overview.component.scss\n// module id = ./src/app/components/market-sentiment-overview/market-sentiment-overview.component.scss\n// module chunks = main","import {\n AfterContentChecked,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { forkJoin, Observable, Observer, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AppService } from '../../shared/services/app/app.service';\nimport { IntroService } from '../../shared/services/intro.service';\nimport { LiveFeedService } from '../../shared/services/live-feed/live-feed.service';\nimport { LoadingService } from '../../shared/services/loading/loading.service';\nimport { OverviewService } from '../../shared/services/overview/overview.service';\nimport { PortfolioService } from '../../shared/services/portfolio/portfolio.service';\nimport { TickersService } from '../../shared/services/tickers/tickers.service';\nimport { TimeCodeService } from '../../shared/services/time-code/time-code.service';\nimport { Constant } from '../../shared/utils/constant';\n\n/**\n * Market Sentiment Overview page of the application.\n *\n * @export\n * @class MarketSentimentOverviewComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-market-sentiment-overview',\n templateUrl: './market-sentiment-overview.component.html',\n styleUrls: ['./market-sentiment-overview.component.scss']\n})\nexport class MarketSentimentOverviewComponent\n implements OnInit, AfterContentChecked, OnDestroy {\n @ViewChild('overview')\n overview: ElementRef;\n\n Constant = Constant;\n\n overviewHelp = `

    Asset Classes and Sectors\n correspond to aggregated Trading Opinion extracted from social\n media platforms.

    `;\n emotionHelp = `

    Emotion Ranking winners and losers are tickers with the highest or lowest values in terms of emotion;\n highest joy or greatest fear, for instance.

    \n

    Two variables are displayed: average score of aggregated emotions over the period (z-score), and standard deviation (percentage).

    `;\n sentimentHelp = `

    Sentiment Ranking winners and losers are tickers with the highest or lowest values in terms of sentiment;\n positive or negative, for instance.

    \n

    Two variables are displayed: average score of aggregated sentiment over the period (z-score),\n and standard deviation (percentage).

    `;\n dataVolumeHelp = `

    Data volume ranking winners (losers) are the tickers with most (least) popularity,\n depending on the number of publications. Change over the period is shown on the right (percentage).

    `;\n allTickerAnalysisHelp = `

    Emotion distribution overview represents the distribution of emotions\n over all tickers: it is a global overview related to all assets available within the platform.

    \n

    Sentiment distribution overview displays global sentiment analytics in the same fashion.

    \n

    Data sources distribution overview: Distribution of articles and messages accros different types of data sources,\n for all tickers. The types of data sources are: news, blogs, discussions (forums and social media) and social trading.

    \n

    Global/Expert distribution overview: Within Social Trading platforms, we can differentiate publications written by experts:\n Experts are professional traders and influencers in social trading communities.

    `;\n liveFeedHelp = `

    Live Feed on the right-hand side are live messages linked to each of the tickers available in our platform.

    \n

    Messages are directly extracted from StockTwits, one of our Social Trading data sources, and you can be redirected to the forum easily\n by clicking on a ticker.

    `;\n\n liveFeedHeight: number;\n\n initialized = false;\n\n private destroy$ = new Subject();\n\n /**\n * Creates an instance of MarketSentimentOverviewComponent.\n *\n * @param {AppService} appService\n * @param {LoadingService} loadingService\n * @param {OverviewService} overviewService\n * @param {TimeCodeService} timeCodeService\n * @param {PortfolioService} portfolioService\n * @param {TickersService} tickersService\n * @param {LiveFeedService} liveFeedService\n * @memberof MarketSentimentOverviewComponent\n */\n constructor(\n public overviewService: OverviewService,\n public portfolioService: PortfolioService,\n public tickersService: TickersService,\n public liveFeedService: LiveFeedService,\n private appService: AppService,\n private loadingService: LoadingService,\n private timeCodeService: TimeCodeService,\n private introService: IntroService\n ) {}\n\n ngAfterContentChecked() {\n this.liveFeedHeight = this.overview.nativeElement.clientHeight - 100;\n }\n\n /**\n * Waits for the global initialization and then launches the local initialization.\n *\n * @memberof MarketSentimentOverviewComponent\n */\n ngOnInit() {\n this.introService.addStep(\n {\n intro: `The Market Sentiment Overview allows you to have an overall view of the sentiment\n and emotions of asset classes and sectors. Let's discover it!`\n },\n 1\n );\n\n this.loadingService.addLoads();\n\n this.appService.appInitialized$\n .pipe(takeUntil(this.destroy$))\n .subscribe(appInitialized => {\n if (appInitialized) {\n this.init().subscribe(() => { /* this.introService.start().subscribe() */ });\n this.loadingService.removeLoads();\n }\n });\n }\n\n /**\n * Get all needed data from the backend for the local initialization.\n *\n * @memberof MarketSentimentOverviewComponent\n */\n init(): Observable {\n let initObserver: Observer;\n const initObservable = Observable.create(observer => {\n initObserver = observer;\n });\n\n const portfoliosObs = this.portfolioService.getPortfolios();\n const assetSectorsObs = this.overviewService.getAssetsIndustries();\n const leaderLoserBoardObs = this.overviewService.getLeaderLoserBoard(\n this.timeCodeService.currentTimeCode\n );\n const overviewObs = this.overviewService.getOverview(\n this.timeCodeService.currentTimeCode\n );\n\n this.loadingService.addLoads();\n\n forkJoin(assetSectorsObs, portfoliosObs, leaderLoserBoardObs, overviewObs)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n res => {\n const assetsSectors = res[0];\n const portfolios = res[1];\n const leaderLoserBoard = res[2];\n\n this.overviewService.assets = assetsSectors.assets;\n this.overviewService.industries = assetsSectors.sectors;\n this.tickersService.posnegTickers = leaderLoserBoard;\n\n initObserver.next(null);\n },\n error => {\n this.loadingService.forceHide();\n initObserver.error(error);\n },\n () => {\n this.initialized = true;\n this.loadingService.removeLoads();\n initObserver.complete();\n }\n );\n\n return initObservable;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/market-sentiment-overview/market-sentiment-overview.component.ts","module.exports = \"
    \\n
    \\n

    \\n BEHAVIORAL FINANCE\\n

    \\n
    \\n
    \\n

    What is behavioral Finance (BF)?

    \\n

    \\n Our analyses are based on Behavioral Finance and Market Sentiment\\n theories, as well as research in extraction of emotions from social\\n media. It is important to understand the distinction between emotions\\n and sentiment: emotions are nuanced and can take various forms (5\\n basic emotions from Ekman), while sentiment is a specific ternary\\n trend (positive, negative or neutral).\\n

    \\n

    \\n Behavioral Finance is a field that proposes to consider\\n non-rational behavior from investors to better comprehend and\\n anticipate stock exchange movements. It allows us to improve our\\n comprehension of financial asset prices by considering irrational\\n choices as part of the available information.\\n

    \\n

    \\n Market Sentiment theory is based on the analysis of\\n investors’ attitude towards market expectations, divided within three\\n indicators: bullish, bearish and neutral for respectively Buy, Sell\\n and Hold strategies.\\n

    \\n

    \\n Finally, we base our core study on Emotion that is extracted,\\n measured and defined amidst Ekman’s primary human emotions map (Joy,\\n Fear, Sadness, Anger, Surprise) and a Neutral class.\\n Sentiment is differentiated in three classes: Positive,\\n Negative or Neutral.\\n

    \\n\\n
    What is SESAMm’s mission?
    \\n

    \\n At SESAMm we use innovative technology to fulfill one single goal: to\\n give you the most robust indicators to help you predict financial\\n markets’ movements.\\n

    \\n

    \\n Our underlying indicators can be visualized in HDM, and data is made\\n available to all our subscribers. Thanks to these indicators, our\\n users could build their own strategies based on values of our\\n explanatory variables and refine their own predictions.\\n

    \\n

    \\n Moreover, we would like Behavioral Finance to gain as much interest as\\n traditional analyzes in financial markets and have cognitive and\\n psychological tools from L'Humeur des Marchés be fully integrated in\\n the finance industry.\\n

    \\n\\n
    What is the purpose of HDM’s indicators?
    \\n\\n

    \\n Our models integrate robust Natural Language Processing tools,\\n machine-learning and big data analytics to give a refined model of\\n market mood. By analyzing thousands of textual data sources, we can\\n quantify a set of qualitative data and give investors a new layer for\\n valuation of their assets.\\n

    \\n

    \\n All aspects of information are then available: fundamental, technical\\n and behavioral.\\n

    \\n\\n
    \\n How can HDM help you as an Investor/ Asset Manager?\\n
    \\n\\n

    \\n Being an asset Manager or institutional investor nowadays requires a\\n set of quantitative skills and strong resilience against increasing\\n competition: fundamental and technical analyses are not sufficient\\n anymore. You need to add a new technological layer so as to get all\\n information available to value asset prices. That is why we created\\n L’Humeur des Marchés, to have quantifiable scores based on qualitative\\n data: sentiment, emotions and opinion.\\n

    \\n

    \\n Considering the Efficient Model Hypothesis, all information available\\n should be translated within the price of an asset in the exchange. As\\n of now, our research has found that cumulated information from\\n investors, experts and customers available in social media is not\\n immediately transferred in the price of the asset. Indeed, there is a\\n time lag between measurement of an opinion signal and its repercussion\\n within the price of a specific asset; thus, leading to an arbitrage\\n opportunity to profit from the biases in asset prices. Our platform\\n will allow you to visualize and explore all available information that\\n can potentially impact your assets. HDM is an opportunity to integrate\\n a powerful qualitative tool in support of your own quantitative\\n models. Moreover, we let you extract our data, so it can be\\n implemented within any of your investment strategies.\\n

    \\n\\n Sentiment Values (Valence):\\n
      \\n
    • \\n Positive: an increasing positive sentiment, could be related to an\\n attractive ticker. A long position on the asset could be considered.\\n
    • \\n
    • \\n Negative: an increasing negative sentiment, could be related to an\\n unattractive ticker. A short position on the asset could be\\n considered.\\n
    • \\n
    • Neutral: no sentiment is noticeable.
    • \\n
    \\n\\n Ekman Universal Emotions:\\n\\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    EmotionDescriptionRepresentative wordsFinancial interpretation
    JoyGood feelings from pleasurable experiencesgood, merrily, heart, favorableBullish
    FearSynonym of danger, it anticipates a threatsorrow, oppressed, grim, guiltBearish
    SadnessA response to loss, it shows one needs supportirritated, jealous, annoy, furyBearish
    AngerWhen treated unfairly or reaching a stalematenausea, obscene, repulsive, wickedBearish
    SurpriseShock, in response to an unexpected event or factamazing, baffle, stupefied, astonish\\n Depends on other factors, such as percentage and volumes of\\n other emotions as well as type of event. May lead to high\\n volatility.\\n
    NeutralNo noticeable emotion-Hold strategy
    \\n
    \\n\\n Volume interpretation:\\n
      \\n
    • \\n Whenever volume of news, opinion and messages increases, it\\n indicates a ticker is buzzing; we have found strong correlations of\\n quantity of publications with volatility and liquidity in financial\\n markets. Though volatility levels increase with amount of\\n publications, direction of market trends would depend on the type of\\n event happening at the same time. Please relate to our research\\n papers and use cases to better understand our indicators’\\n explanatory value\\n
    • \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n INTERNAL RESEARCH\\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    SESAMm Technical Overview\\n \\n \\n Download as PDF\\n \\n
    Report « Big Data par classes d'actifs »\\n \\n \\n Download as PDF\\n \\n
    Backtest and Methodology - Default_LongShort_10stocks\\n \\n \\n Download as PDF\\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n EXTERNAL RESEARCH\\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n Quantifying the effects of online bullishness on\\n international financial markets, Bollen, J., Counts, S., Mao, H., (2015).\\n European Central Bank\\n
      \\n
    • \\n Twitter bullishness has a statistically and economically\\n significant predictive value in respect of share prices\\n in the United States, the United Kingdom and Canada\\n
    • \\n
    • \\n High Twitter bullishness indicates an increase in daily\\n returns on the following day\\n
    • \\n
    \\n
    \\n \\n \\n Download as PDF\\n \\n
    \\n Quantifying StockTwits semantic terms’ trading behavior\\n in financial markets: An effective application of decision\\n tree algorithms, Al Nasseri, A., Tucker, A., de Cesare, S., (2015) Expert\\n Systems with Applications. Brunel Univeristy, UK\\n
      \\n
    • \\n This potentially offers guidelines to help investors and\\n traders determine the correct time to invest in the\\n market, what type of stocks or sectors to invest in, and\\n which ones yield maximum returns on their investments.\\n
    • \\n
    \\n
    \\n \\n \\n Download as PDF\\n \\n
    \\n Stock return predictability and investor sentiment: A\\n high-frequency perspective, Sun, L., Najand, M., Shen, J., (2016). Journal of Banking\\n and Finance.\\n Strome College of Business, Old Dominion University,\\n College of Arts and Sciences, Regent University\\n
      \\n
    • \\n Strong evidence that market index returns are\\n predictable with investor sentiment at least at the\\n intraday level\\n
    • \\n
    • \\n Sentiment measure is much more broadly based and\\n constructed from all encompassing traditional and social\\n media sources. Thus, it is able to pick up changes in\\n investor sentiment with accuracy\\n
    • \\n
    \\n
    \\n \\n \\n Download as PDF\\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/research/research.component.html\n// module id = ./src/app/components/research/research.component.html\n// module chunks = main","module.exports = \".title {\\n margin-bottom: 5px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/research/research.component.scss\n// module id = ./src/app/components/research/research.component.scss\n// module chunks = main","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport * as FileSaver from 'file-saver';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ExportService } from '../../shared/services/export/export.service';\nimport { Constant } from '../../shared/utils/constant';\n\n/**\n * Research page of the application.\n *\n * @export\n * @class ResearchComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-research',\n templateUrl: './research.component.html',\n styleUrls: ['./research.component.scss']\n})\nexport class ResearchComponent implements OnInit, OnDestroy {\n Constant = Constant;\n\n private destroy$ = new Subject();\n\n /**\n * Creates an instance of ResearchComponent.\n * @param {ExportService} exportService\n * @memberof ResearchComponent\n */\n constructor(private exportService: ExportService) {}\n\n ngOnInit() {}\n\n /**\n * Get a file from the backend (by its file name) and then propose it to the user for downloading.\n *\n * @param {string} fileName\n * @memberof ResearchComponent\n */\n downloadFile(fileName: string) {\n this.exportService\n .getPDFFile(fileName)\n .pipe(takeUntil(this.destroy$))\n .subscribe(res => {\n let filename2: string;\n if (res.headers.get('content-disposition')) {\n filename2 = res.headers.get('content-disposition')['filename'];\n }\n\n FileSaver.saveAs(res.body, filename2 || fileName + '.pdf');\n });\n }\n\n /**\n * Get the default backtest file from the backend propose it to the user for downloading.\n *\n * @memberof ResearchComponent\n */\n downloadBacktest() {\n this.exportService\n .getPortfolioBacktest('Default_LongShort_10stocks')\n .pipe(takeUntil(this.destroy$))\n .subscribe(file => {\n let filename: string;\n if (file.headers.get('content-disposition')) {\n filename = file.headers.get('content-disposition')['filename'];\n }\n FileSaver.saveAs(\n file.body,\n filename ||\n 'SESAMm - Backtest and Methodology - Default_LongShort_10stocks.pdf'\n );\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/research/research.component.ts","module.exports = \"
    \\n \\n \\n Account \\n\\n
    \\n
    \\n
    \\n \\n \\n {{ profileError }}\\n \\n \\n\\n
    Change username
    \\n

    Your username allows you to connect to the application and is also used to customize your Morning Briefing if you subscribed to it.

    \\n
    \\n \\n \\n
    Username is required!
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    Change email address
    \\n

    Your email address is used to contact you back if you used the contact form. This address will also be used to send you the morning briefing if you subscribed to it.

    \\n
    \\n \\n \\n
    Email is required!
    \\n
    Invalid email address.
    \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n \\n {{ passwordError }}\\n \\n \\n\\n
    Change password
    \\n\\n
    \\n \\n
    Old password is required!
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n The password must be at least 8 characters long and must contain at least an upper case letter, a special chatacter and a number.\\n
    \\n
    \\n\\n
    \\n \\n \\n
    The passwords do not match.
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n \\n Morning Briefing \\n\\n
    \\n
    \\n
    Subscribe
    \\n

    The Morning Briefing is an email sent every morning, containing a summary of the Market Sentiment Overview section and of your Custom Portfolios.

    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n Alerts \\n\\n
    \\n
    \\n
    Subscribe
    \\n\\n \\n\\n

    The daily alerts emails contain a recap of your alerts' performances.

    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/settings/settings.component.html\n// module id = ./src/app/components/settings/settings.component.html\n// module chunks = main","module.exports = \"tab {\\n margin-top: 20px; }\\n\\n.m-b-20 {\\n margin-bottom: 20px; }\\n\\n.error-message {\\n color: white;\\n background-color: #f16e44;\\n padding: 5px 10px;\\n border-radius: 4px; }\\n\\n.error-message {\\n margin-bottom: 10px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/settings/settings.component.scss\n// module id = ./src/app/components/settings/settings.component.scss\n// module chunks = main","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { TabsetComponent } from 'ngx-bootstrap/tabs';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { passwordValidator } from '../../auth/shared/validator/password.validator';\nimport { AlertsService } from '../../shared/services/alerts/alerts.service';\nimport { AppService } from '../../shared/services/app/app.service';\nimport { LoadingService } from '../../shared/services/loading/loading.service';\nimport { UserService } from '../../shared/services/user/user.service';\nimport { sameValuesValidator } from '../../shared/validators/same-values.validator';\n\n/**\n * Settings page of the application.\n *\n * @export\n * @class SettingsComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-settings',\n templateUrl: './settings.component.html',\n styleUrls: ['./settings.component.scss']\n})\nexport class SettingsComponent implements OnInit, OnDestroy {\n @ViewChild('tabset')\n tabset: TabsetComponent;\n\n profileForm = this.fb.group({\n username: ['', [Validators.required]],\n email: ['', [Validators.required, Validators.email]]\n });\n profileError: string;\n\n passwordError: string;\n\n briefingSubscription: boolean;\n // alertWeeklySubscription: boolean;\n alertDailySubscription: boolean;\n\n loading = false;\n\n tabNameToId = {\n account: 0,\n morningbriefing: 1,\n alerts: 2\n };\n\n passwordForm = this.fb.group({\n oldPassword: ['', [Validators.required]],\n newPasswords: this.fb.group(\n {\n password: ['', [Validators.required, passwordValidator]],\n confirmPassword: ['', Validators.required]\n },\n { validator: sameValuesValidator }\n )\n });\n\n private destroy$ = new Subject();\n\n constructor(\n private userService: UserService,\n private loadingService: LoadingService,\n private appService: AppService,\n private alertsService: AlertsService,\n private route: ActivatedRoute,\n private fb: FormBuilder\n ) {}\n\n /**\n * Gets the fragment in the route (if exists) to know which tab to display.\n *\n * @memberof SettingsComponent\n */\n ngOnInit(): void {\n this.route.fragment.pipe(takeUntil(this.destroy$)).subscribe(fragment => {\n if (fragment) {\n const tabId = this.tabNameToId[fragment.toLowerCase()];\n if (tabId) {\n this.tabset.tabs[tabId].active = true;\n }\n }\n });\n\n this.loadingService.addLoads();\n this.appService.appInitialized$\n .pipe(takeUntil(this.destroy$))\n .subscribe(appInitialized => {\n if (appInitialized) {\n this.username.setValue(this.userService.username);\n this.email.setValue(this.userService.email);\n this.briefingSubscription = this.userService.briefingSubscription;\n // this.alertWeeklySubscription = this.userService.alertWeeklySubscription;\n this.alertDailySubscription = this.userService.alertDailySubscription;\n this.loadingService.removeLoads();\n }\n });\n\n this.username.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => this.updateUsernameValue(value));\n }\n\n get oldPassword() {\n return this.passwordForm.get('oldPassword');\n }\n\n get newPasswords() {\n return this.passwordForm.get('newPasswords');\n }\n\n get password() {\n return this.newPasswords.get('password');\n }\n\n get confirmPassword() {\n return this.newPasswords.get('confirmPassword');\n }\n\n get username() {\n return this.profileForm.get('username');\n }\n\n get email() {\n return this.profileForm.get('email');\n }\n\n updateUsernameValue(username: string): void {\n this.username.setValue(username.toLowerCase(), { emitEvent: false });\n }\n\n /**\n * Sends the new user's information to the backend, then gets them back to be sure to be up to date.\n *\n * @memberof SettingsComponent\n */\n updateUsersInfo(): void {\n if (this.profileForm.valid) {\n this.loading = true;\n\n this.userService\n .updateUsersInfo({\n username: this.username.value,\n email: this.email.value\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.userService\n .getUserInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe(user => {\n this.userService.updateUser(user);\n this.loading = false;\n\n this.alertsService.notifications.push({\n type: 'success',\n msg: 'Your profile has been successfully updated.'\n });\n });\n },\n err => {\n this.profileError = err.message;\n this.loading = false;\n\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'An error occured, please try later.'\n });\n }\n );\n }\n }\n\n /**\n * Sends the new user's password to the backend.\n *\n * @memberof SettingsComponent\n */\n changePassword(): void {\n if (this.passwordForm.valid) {\n const formValue = this.passwordForm.value;\n this.loading = true;\n\n this.userService\n .changePassword({\n oldPassword: formValue.oldPassword,\n newPassword: formValue.newPasswords.password\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.alertsService.notifications.push({\n type: 'success',\n msg: 'Your password has been successfully updated.'\n });\n this.passwordForm.reset();\n },\n err => {\n this.passwordError = err.error.message;\n this.loading = false;\n\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'An error occured, please try later.'\n });\n }\n );\n }\n }\n\n /**\n * Sends the new value of the user's morning briefing subscription to the backend,\n * and then get the user's information back to be sure to be up to date.\n *\n * @memberof SettingsComponent\n */\n updateBriefingSubscription(): void {\n this.loading = true;\n\n this.userService\n .updateBriefingSubscription(this.briefingSubscription ? 1 : 0)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.userService\n .getUserInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe(user => {\n this.userService.updateUser(user);\n this.loading = false;\n\n this.alertsService.notifications.push({\n type: 'success',\n msg:\n 'Your Morning Briefing preferences has been successfully updated.'\n });\n });\n },\n () => {\n this.loading = false;\n\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'An error occured, please try later.'\n });\n }\n );\n }\n\n updateAlertEmailingSubscription(): void {\n this.loading = true;\n\n this.userService\n .updateAlertsEmailingPreferences(\n // this.alertWeeklySubscription ? 1 : 0,\n this.alertDailySubscription ? 1 : 0\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.userService\n .getUserInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe(user => {\n this.userService.updateUser(user);\n this.loading = false;\n\n this.alertsService.notifications.push({\n type: 'success',\n msg:\n 'Your Alert Emailing preferences has been successfully updated.'\n });\n });\n },\n () => {\n this.loading = false;\n\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'An error occured, please try later.'\n });\n }\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/settings/settings.component.ts","module.exports = \"
    \\n
    \\n
    \\n \\n VIDEO TUTORIAL\\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n \\n TUTORIAL\\n
    \\n
    \\n
    \\n
    \\n Welcome to\\n \\n L'Humeur des Marchés\\n , your new platform to visualize Emotions and Sentiments in Financial Markets\\n
    \\n
    The Platform is divided into 7 sections, that can be chosen on the left-hand side.\\n\\n
    \\n
    \\n \\n
    \\n
    \\n Let us start with the Market Sentiment Overview. This section allows you to have an overall view of all our\\n indicators for\\n all tickers. You will have access to many different analytics such as:\\n
      \\n
    • Which classes or sectors are leading the opinion (on social trading platforms)
    • \\n
    • Which tickers are the most or least attractive, in terms of sentiment and emotions
    • \\n
    • Which tickers go most or least viral
    • \\n
    • Sentiment and Emotion distribution: Which sentiments or emotions are leading the global market mood?
    • \\n
    • Data sources distribution overview: Check how volumes of articles and messages are distributed across\\n different\\n types of data sources
    • \\n
    • Global-Expert distribution: What percentage of publication are written by experts in financial markets
    • \\n
    \\n
    \\n
    \\n\\n

    Let us begin our tour of the different functionalities offered by\\n \\n L’Humeur des Marchés\\n . We will start with a few examples to put into practice.

    \\n

    Click on\\n Market Sentiment Overview to start visualizing global trends.

    \\n

    First, we will begin with the technology sector: is it trending today? What do traders feel about stocks from\\n this\\n industry? This information is directly available on top of the page. You can visualize information for both\\n whole\\n asset classes and whole sectors.

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

    We can see now the different scores for the time period. From 1 day to up to 3 years, you can choose the\\n period corresponding\\n to your investment frequency.

    \\n

    We now go to\\n Market Sentiment Analysis to analyze single names in more depth.

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

    Please note that you can easily expand the side bar by clicking on the arrows on the lower left corner of the\\n platform.

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

    Here, we can visualize our data through graphs. Let’s see for instance how people are feeling today about one\\n of the\\n top tech companies in the industry: Apple (\\n AAPL: US). By default, you will see the sentiments, emotions on Trading Opinion curve for one ticker.\\n Let’s replace\\n that curve with Apple’s Ticker.

    \\n\\n

    To select Apple, search for the ticker on the top right side of the screen.

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

    You can also delete the existing curves by clicking on\\n Remove curve and then click on\\n Add curve on the screen inside the\\n Market Sentiment Analysis page.

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

    Then, click on\\n ADD CURVE BY TICKER.

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

    Enter the ticker you would like to add, for instance, “APPLE”

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

    Several options are available. Let us review them by order of appearances:

    \\n\\n
      \\n
    • Filter by\\n Language: to choose publications in a specific language only, select from the list the language you\\n want (English,\\n French, Spanish, Chinese, Japanese, Portuguese, Italian and German).\\n \\n
    • \\n
    • \\n Filter by\\n Data Source\\n \\n
    • \\n
    • \\n Filter by\\n Engine\\n \\n
    • \\n
    • \\n Filter by\\n Curves\\n \\n
    • \\n
    • \\n Filter by\\n Type of sources (Financial / Non-Financial)\\n \\n
    • \\n
    \\n\\n

    We can also display our indicators in two different modes:

    \\n
      \\n
    • the\\n Global mode aggregates data from every kind of source and every type of user;
    • \\n
    • the\\n Expert mode allows you to visualize data only from people with experience in trading and finance (for\\n Social\\n Trading data only)
    • \\n
    \\n

    To do so, we will tick the following parameter:

    \\n \\n

    After Clicking on\\n Add curve, we can now see all the curves, representing aggregated Sentiment, Trading Opinion and\\n aggregated Emotions\\n for the selected filters.

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

    If you prefer to only see a few of the displayed curves, look at the legend above the graph and choose which\\n ones to\\n hide. You can freely choose which graphs you want to see for your preferred period. For instance, we can choose\\n to\\n hide “Opinion Score” by clicking on it.

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

    The legend becomes grey and the curve disappears once the action is successfully performed.

    \\n\\n

    Please note that to obtain a smoother and more readable display, it is usually best to choose EMA 30 days (set\\n by default).

    \\n\\n

    Now, let’s check how Microsoft (\\n MSFT:US) relates to Apple (\\n AAPL:US) in terms of Sentiment. Click on “\\n Add curve”, enter Microsoft in the ticker field. Then select the same filter you have selected for Apple\\n (\\n AAPL:US) and click on\\n Add Curve.

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

    Now, the platform displays our indicators, ticker prices and volumes for both Microsoft (\\n MSFT:US) and Apple (\\n AAPL:US).

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

    Please note that you can also change the prices display (from candlesticks to curve), simply by clicking on\\n the\\n Curve button right above the timeframe of the display.

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

    The displayed data can be easily downloaded as a .csv file, allowing you to check and measure values by\\n yourself. You\\n just have to click on the top right-hand side of the platform, right below your user settings. You can use this\\n data\\n as excel files, giving you the freedom to integrate indicators within your own models

    \\n\\n \\\"\\\"\\n\\n

    Now that we have seen interesting values for each of these tickers, we would like to create a portfolio and\\n choose\\n both Microsoft (\\n MSFT:US) and Apple (\\n AAPL:US). Go to\\n Custom Portfolio section

    \\n\\n \\\"\\\"\\n\\n

    Please note that, in the dropdown list of the portfolio selection, you will find some portfolios with names\\n beginning\\n with “\\n Default” along with portfolios representing major indices such as CAC40 and DAX30. This kind of\\n portfolio has\\n been computed by SESAMm in order to show you how our data is used. These portfolios can’t be modified by users,\\n but\\n you can pick up tickers to add them to one of your portfolios.

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

    Then click on “\\n Create a new portfolio

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

    Enter a name for your portfolio, for instance, “My Tech Portfolio”, and choose the tickers you desire, i.e.\\n Apple and\\n Microsoft, with 50% weight for each of them and save this portfolio by clicking on “\\n Create portfolio”.

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

    We now have a complete view on each of the tickers and we can assess what the portfolio is made of in terms of\\n Sentiment,\\n Emotions and Trading Opinion along with the volume for the period.

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

    Moreover, by scrolling down, you can also see curves representing the portfolio’s Sentiment, Emotions and\\n Trading Opinion\\n as well as volume during the whole period. As mentioned earlier, you can choose to display or hide a specific\\n curve\\n by clicking on the respective legend: if the curve name becomes grey, it will be temporarily hidden.

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

    Let’s see if there are any differences in terms of indicators whenever the period changes. You can choose\\n different\\n periods to see movements and differences in indicators.

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

    Select \\\"\\n 1 Day\\\" from the list to obtain the following results:

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

    Select \\\"\\n 6 months\\\" from the list to obtain the following results:

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

    Select \\\"\\n 3 Years\\\" from the list to obtain the following results:

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

    Let’s now add another Technology company to this Portfolio, so as to have a wider overview of the industry.\\n First,\\n click on\\n Modify the current Portfolio\\n

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

    Add Facebook's ticker (\\n FB:US) and let us give it more weight by adding shares. Don’t forget to click on\\n Save to confirm your choices

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

    We observe changes in the doughnut charts: in the right side of the page you can see the Emotions, Sentiment\\n and aggregated\\n Trading Opinion for the portfolio; the aggregation takes into account the weights chosen within the portfolio.

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

    If you now wish to see an asset's curve directly, you can simply click on its ticker. This will redirect you\\n to the\\n Market Sentiment Analysis page with selected ticker displayed.

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

    So, how is Facebook doing? Let’s only keep Anger and Joy to analyze 2 main indicators of the emotion spectrum.\\n Do so\\n by steps:

    \\n
      \\n
    • Filter by engine: select\\n Emotions from the list
    • \\n
    • Hide the appropriate Emotions to keep only\\n Anger and\\n Joy\\n
    • \\n
    \\n\\n \\n \\n\\n

    It is a good way to see how people are viewing a specific asset and if an indicator is gaining more value\\n compared\\n to another. You should keep an eye on it, it will allow you to anticipate certain market movements and trends!

    \\n\\n

    Let’s go back to\\n Market Sentiment Overview and check\\n Winners and\\n Losers (both in terms of Sentiment and Emotion). It would be interesting to pick our tickers based\\n solely on\\n Winners and Losers and to add them to a Portfolio. We can see that the top 3 tickers amid these 2 indicators\\n are\\n quite different. Let’s pick all 6 of them and add them to a specific portfolio. To do this, simply click on the\\n \\\" +\\\"\\n sign at the right of each ticker

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

    Now, choose which portfolio you would like to add them to. For example, My Portfolio.

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

    You will see a confirmation on the top right corner of the platform, as seen above

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

    After choosing all desired tickers, you can check how the portfolio has behaved, in terms of Mood – or\\n “Humeur” – and\\n if it would be attractive for you to build a strategy based on these emotional assets.

    \\n\\n

    In addition to our functionalities, you can check what kind of messages are being written (Social Trading\\n only) about\\n tickers and even join conversations if you would like to chat directly with other traders or opinion makers. To\\n do\\n that, just go to the live feed on the right-hand of the platform and click on the tickers – marked with a\\n dollar\\n sign.\\n

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

    When clicking on any of them, you will be redirected to one of the main microblogging platforms for investors.\\n For\\n example, we can see what is being said about Hercules Technology Growth Capital.

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

    We have added new functionalities to the platform: Building and Managing customized\\n Alerts. Let us see how these new functions work. Go to the\\n Alert section and click on the\\n Management section.

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

    To start creating an Alert, you can either:

    \\n
      \\n
    • Click on the alert logo in\\n Market Sentiment Analysis;\\n \\n
    • \\n
    • Or click on “\\n Create alert” on the upper right corner of the platform in\\n Alerts Management.\\n \\n
    • \\n
    \\n\\n

    Start by entering a name for your alert, for example “TestApple”. Then add a ticker on which the alert will be\\n based\\n on, such as “Apple (\\n AAPL:US).

    \\n\\n

    Then, 3 Strategies are available from the list, let us take for example the\\n Long Flat from the list and start by entering your criteria for the Long signals.

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

    As an example, we want to be Long Apple when:

    \\n
      \\n
    • ggregated Sentiment, EMA 5 days, Exceeds 0
    • \\n
    \\n\\n

    We want to be Flat Apple when:

    \\n
      \\n
    • Aggregated Sentiment, EMA 5 days, Drops below 0
    • \\n
    \\n\\n

    Please note that you can add several rules for a signal by clicking on “\\n Add rule

    \\n\\n

    A backtest is displayed below the section. It allows you to compare the impact on the performance of your\\n strategy\\n whenever you modify a parameter.

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

    To create the alert click on “\\n Create alert

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

    Your alert is summarized as the following.

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

    To see the history of your alerts go the “\\n Historical” section.

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

    Your signals are summarized by dates and by action “Long, Flat or Short” along with the date on which the\\n signal was\\n triggered.

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

    You can also easily download your alert history as CSV by clicking on the upper right “\\n Download alerts historical as CSV

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

    If you have any questions or require any additional information, go to the\\n Information section

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

    In this section, you will find four subsections:

    \\n
      \\n
    • The\\n Tutorial contains a video and a written tutorial.
    • \\n
    • The\\n FAQ contains a list of common questions, giving you quick and simple answers. Moreover, you can\\n download the\\n ticker’s list and the sources list.
    • \\n
    • In the\\n Research section, you can read about links between our indicators and behavioral finance field. At the\\n bottom\\n of this page, several articles can be downloaded. These are separated into two columns: internal research and\\n academic\\n papers.\\n
    • \\n
    • The\\n CGU section contains the General Conditions of Use of our services.
    • \\n
    \\n\\n

    If you have a specific query or wish to discuss any unresolved issue, you can go to the\\n Contact section

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

    Contact us by filling in the\\n Contact form provided or call us directly for any urgent demand; we will be happy to help you right away\\n and\\n find a solution corresponding to your request

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

    You are now ready to use all our features and to harness the power of Big Data for your investment decisions.

    \\n\\n

    Thank you for your attention!

    \\n
    \\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/tutorial/tutorial.component.html\n// module id = ./src/app/components/tutorial/tutorial.component.html\n// module chunks = main","module.exports = \"video {\\n max-width: 100%;\\n height: auto; }\\n\\n.panel-video {\\n max-height: 100%; }\\n\\nvideo::-internal-media-controls-download-button {\\n display: none; }\\n\\nvideo::-webkit-media-controls-enclosure {\\n overflow: hidden; }\\n\\nvideo::-webkit-media-controls-panel {\\n width: calc(100% + 30px);\\n /* Adjust as needed */ }\\n\\n.margin-right {\\n margin-right: 5px; }\\n\\nimg {\\n max-width: 100%; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/tutorial/tutorial.component.scss\n// module id = ./src/app/components/tutorial/tutorial.component.scss\n// module chunks = main","import { Component, OnInit } from '@angular/core';\n\nimport { Constant } from '../../shared/utils/constant';\n\n/**\n * Tutorial page of the application\n *\n * @export\n * @class TutorialComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-tutorial',\n templateUrl: './tutorial.component.html',\n styleUrls: ['./tutorial.component.scss']\n})\nexport class TutorialComponent implements OnInit {\n Constant = Constant;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/tutorial/tutorial.component.ts","module.exports = \"
    \\n\\n
    \\n

    {{alert.names[0]}} - {{alert.ticker.code}} - {{alert.strategy}}

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

    Alert's rules

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

    Alert's performance

    \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-manage-modal/alert-manage-modal.component.html\n// module id = ./src/app/shared/components/alert-manage-modal/alert-manage-modal.component.html\n// module chunks = main","module.exports = \".draggable-block {\\n width: 500px;\\n z-index: 1000;\\n overflow: auto;\\n position: fixed;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n border-radius: 6px;\\n outline: 0;\\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); }\\n .draggable-block .draggable-block-handle {\\n cursor: move;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n .draggable-block .draggable-block-handle .close {\\n padding: 0 5px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-manage-modal/alert-manage-modal.component.scss\n// module id = ./src/app/shared/components/alert-manage-modal/alert-manage-modal.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport * as FileSaver from 'file-saver';\nimport { ModalDirective } from 'ngx-bootstrap';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport Alert, {\n AlertRule,\n AlertStrategy,\n RuleAction\n} from '../../models/alert.model';\nimport { AlertsService } from '../../services/alerts/alerts.service';\nimport { CreateAlertModalComponent } from '../create-alert-modal/create-alert-modal.component';\n\n@Component({\n selector: 'app-alert-manage-modal',\n templateUrl: './alert-manage-modal.component.html',\n styleUrls: ['./alert-manage-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertManageModalComponent implements OnInit, OnDestroy {\n @Input()\n alert: Alert;\n @Input()\n position: { x: number; y: number };\n @Output()\n hide = new EventEmitter();\n @Output()\n reloadAlerts = new EventEmitter();\n\n @ViewChild('draggableBlock')\n draggableBlock: ElementRef;\n @ViewChild('manageAlertModal')\n manageAlertModal: ModalDirective;\n @ViewChild('modifyAlertModal', { read: ViewContainerRef })\n modifyAlertModal: ViewContainerRef;\n\n private destroy$ = new Subject();\n\n constructor(\n private alertsService: AlertsService,\n private resolver: ComponentFactoryResolver\n ) {}\n\n ngOnInit(): void {}\n\n exportAlert(): void {\n const alert = JSON.parse(JSON.stringify(this.alert));\n delete alert.backtest;\n const blob = new Blob([JSON.stringify(alert)], {\n type: 'application/json'\n });\n const filename =\n alert.names && alert.names[0]\n ? `${this.alert.names[0]}.json`\n : 'alert.json';\n FileSaver.saveAs(blob, filename);\n }\n\n deleteAlert(): void {\n this.alertsService\n .deleteAlert(this.alert.hash, this.alert.names[0])\n .subscribe(() => {\n this.reloadAlerts.emit();\n this.hide.emit();\n });\n }\n\n modifyAlert(): void {\n const formattedRules: AlertRule[][] = [[]];\n\n let lastAction = this.alert.rules[0].action;\n let actionIndex = 0;\n let addFlat = this.alert.strategy === AlertStrategy.LongShort;\n this.alert.rules.forEach(rule => {\n if (rule.action === RuleAction.Flat) {\n addFlat = addFlat && false;\n }\n if (!formattedRules[actionIndex]) {\n formattedRules[actionIndex] = [];\n }\n if (rule.action === lastAction) {\n formattedRules[actionIndex].push(rule);\n } else {\n lastAction = rule.action;\n actionIndex++;\n formattedRules[actionIndex] = [rule];\n }\n });\n\n // Flat is optional for Long Short, it may need to be init.\n if (addFlat) {\n formattedRules[actionIndex + 1] = [new AlertRule(RuleAction.Flat)];\n }\n\n const createAlertModalComponentFactory = this.resolver.resolveComponentFactory(\n CreateAlertModalComponent\n );\n const component = this.modifyAlertModal.createComponent(\n createAlertModalComponentFactory\n );\n component.instance.alertModification = true;\n component.instance.rules = formattedRules;\n component.instance.hash = this.alert.hash;\n component.instance.ticker = this.alert.ticker;\n component.instance.alertName = this.alert.names[0];\n component.instance.strategy = this.alert.strategy;\n component.instance.creationDate = this.alert.creationDate;\n\n component.instance.alertCreated\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.reloadAlerts.emit();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/alert-manage-modal/alert-manage-modal.component.ts","module.exports = \"
    \\n\\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n\\n \\n\\n \\n\\n \\n\\n
    \\n\\n \\n \\n \\n\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-rule-creator/alert-rule-creator.component.html\n// module id = ./src/app/shared/components/alert-rule-creator/alert-rule-creator.component.html\n// module chunks = main","module.exports = \".invalid-rule {\\n border: 1px solid red;\\n border-radius: 4px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-rule-creator/alert-rule-creator.component.scss\n// module id = ./src/app/shared/components/alert-rule-creator/alert-rule-creator.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { AlertRule, Connector, CurveOperand } from '../../models/alert.model';\nimport DropdownOption from '../../models/dropdown-option.model';\n\n@Component({\n selector: 'app-alert-rule-creator',\n templateUrl: './alert-rule-creator.component.html',\n styleUrls: ['./alert-rule-creator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertRuleCreatorComponent implements OnInit, OnChanges {\n @Input()\n rule: AlertRule;\n @Input()\n error: boolean;\n @Input()\n displayConnector: boolean;\n\n @Output()\n ruleChange = new EventEmitter();\n\n Connector = Connector;\n\n types = [\n {\n name: 'Threshold',\n value: [\n { name: 'Exceeds', value: 'threshold_exceeds' },\n { name: 'Drops below', value: 'threshold_dropsDown' }\n ]\n },\n {\n name: 'Cross',\n value: [\n { name: 'Crosses up', value: 'crosses_up' },\n { name: 'Crosses down', value: 'crosses_down' }\n ]\n }\n ];\n\n firstOperand: CurveOperand;\n type = new DropdownOption();\n secondOperand: number | CurveOperand;\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.rule && changes.rule.firstChange && changes.rule.currentValue) {\n this.type = new DropdownOption(\n this.findTypeNameByValue(changes.rule.currentValue.type),\n changes.rule.currentValue.type\n );\n }\n }\n\n ngOnInit(): void {}\n\n /**\n * Returns the type name corresponding to the given type value.\n *\n * @param {string} value the type value.\n * @returns {string} the corresponding type name.\n * @memberof AlertRuleCreatorComponent\n */\n findTypeNameByValue(value: string): string {\n for (const type of this.types) {\n for (const t of type.value) {\n if (t.value === value) {\n return t.name;\n }\n }\n }\n return null;\n }\n\n /**\n * Handles first operand changes.\n * @param firstOperand the option selected by the user.\n */\n firstOperandChange(firstOperand: CurveOperand): void {\n this.emitChanges('firstOperand', this.firstOperand, firstOperand);\n this.firstOperand = firstOperand;\n }\n\n /**\n * Handles changes of the second operand.\n * @param selectedOption the option selected by the user.\n */\n secondOperandChange(secondOperand: CurveOperand): void {\n this.emitChanges('secondOperand', this.secondOperand, secondOperand);\n this.secondOperand = secondOperand;\n }\n\n /**\n * Handles changes of the type.\n * @param selectedOption the option selected by the user.\n */\n typeChange(selectedOption: DropdownOption): void {\n this.emitChanges('type', this.type.value, selectedOption.value);\n this.type = selectedOption;\n }\n\n /**\n * Formats and emits the changes to the parent component.\n * @param {string} propertyName\n * @param {(CurveOperand | string | number)} previousValue\n * @param {(CurveOperand | string | number)} currentValue\n * @memberof AlertRuleCreatorComponent\n */\n emitChanges(\n propertyName: string,\n previousValue: CurveOperand | string | number,\n currentValue: CurveOperand | string | number\n ): void {\n const changes: SimpleChanges = {};\n\n changes[propertyName] = {\n previousValue: previousValue,\n currentValue: currentValue,\n firstChange: previousValue === undefined,\n isFirstChange: () => {\n return previousValue === undefined;\n }\n };\n this.ruleChange.emit(changes);\n }\n\n isFirstOperandSet(): boolean {\n return !(\n this.firstOperand === undefined ||\n (this.firstOperand.EMA === undefined && this.firstOperand.timeCode === '')\n );\n }\n\n connectorChange(connector: Connector): void {\n this.ruleChange.emit({\n connector: {\n currentValue: connector,\n previousValue: this.rule.connector,\n firstChange: false,\n isFirstChange: () => false\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/alert-rule-creator/alert-rule-creator.component.ts","module.exports = \"\\n\\n\\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-rule-curve-selector/alert-rule-curve-selector.component.html\n// module id = ./src/app/shared/components/alert-rule-curve-selector/alert-rule-curve-selector.component.html\n// module chunks = main","module.exports = \".ema-input {\\n max-width: 75px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-rule-curve-selector/alert-rule-curve-selector.component.scss\n// module id = ./src/app/shared/components/alert-rule-curve-selector/alert-rule-curve-selector.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { CurveOperand } from '../../models/alert.model';\nimport DropdownOption from '../../models/dropdown-option.model';\n\n@Component({\n selector: 'app-alert-rule-curve-selector',\n templateUrl: './alert-rule-curve-selector.component.html',\n styleUrls: ['./alert-rule-curve-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertRuleCurveSelectorComponent implements OnInit, OnChanges {\n @Input() curve: CurveOperand;\n @Output() curveChange = new EventEmitter();\n\n curveNames = [\n { name: 'Trading Opinion', value: 'bullish_score' },\n { name: 'Volume', value: 'volume' },\n {\n name: 'Emotions',\n value: [\n { name: 'Agg. emotions', value: 'emotion' },\n { name: 'Joy', value: 'emotions.joy' },\n { name: 'Fear', value: 'emotions.fear' },\n { name: 'Anger', value: 'emotions.anger' },\n { name: 'Surprise', value: 'emotions.sadness' },\n { name: 'Sadness', value: 'emotions.sadness' },\n { name: 'Neutral emotion', value: 'emotions.neutral' }\n ]\n },\n {\n name: 'Sentiment',\n value: [\n { name: 'Agg. sentiment', value: 'sentiment' },\n { name: 'Pos. sentiment', value: 'sentiments.positive' },\n { name: 'Neg. sentiment', value: 'sentiments.negative' },\n { name: 'Neutral sentiment', value: 'sentiments.neutral' }\n ]\n }\n ];\n curveTypes = [\n {\n name: 'Smoothing',\n value: [\n { name: 'Not smoothed', value: 'raw' },\n { name: 'EMA', value: 'ema' }\n ]\n }\n ];\n volumeTypes = [\n {\n name: 'Smoothing',\n value: [{ name: 'Not smoothed', value: 'raw' }]\n },\n {\n name: 'Standard deviation',\n value: [\n {\n name: 'One year STD',\n value: 'sd_1Y'\n },\n {\n name: 'One month STD',\n value: 'sd_1M'\n },\n {\n name: 'One week STD',\n value: 'sd_1W'\n }\n ]\n }\n ];\n\n curveName = new DropdownOption();\n curveType = new DropdownOption();\n ema = 30;\n\n constructor(private _ref: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.curve &&\n changes.curve.firstChange &&\n changes.curve.currentValue\n ) {\n if (\n changes.curve.currentValue.curveName === this.curveName.value &&\n (changes.curve.currentValue.EMA === this.ema ||\n changes.curve.currentValue.timeCode ===\n this.curveType.value.split('_')[1])\n ) {\n return;\n }\n if (changes.curve.currentValue) {\n const curveName = this.getCurveNameFromValue(\n changes.curve.currentValue.curveName\n );\n this.curveName = new DropdownOption(\n curveName,\n changes.curve.currentValue.curveName\n );\n this.curveNameChange(this.curveName);\n\n if (changes.curve.currentValue.EMA) {\n this.ema = changes.curve.currentValue.EMA;\n if (changes.curve.currentValue.EMA === 0) {\n this.curveType = new DropdownOption(\n this.curveTypes[0].value[0].name,\n this.curveTypes[0].value[0].value\n );\n } else {\n this.curveType = new DropdownOption(\n this.curveTypes[0].value[1].name,\n this.curveTypes[0].value[1].value\n );\n }\n this._ref.markForCheck();\n }\n if (changes.curve.currentValue.timeCode) {\n const value = 'sd_' + changes.curve.currentValue.timeCode;\n const name = this.getCurveTypeFromValue(value);\n this.curveType = new DropdownOption(name, value);\n this._ref.markForCheck();\n }\n this.curveTypeChange(this.curveType);\n }\n }\n }\n\n ngOnInit() {}\n\n /**\n * Returns the curve name corresponding to the given value, null if not found.\n *\n * @param {string} value the value corresponding to the needed name.\n * @returns {string} the curve name.\n * @memberof AlertRuleCurveSelectorComponent\n */\n getCurveNameFromValue(value: string): string {\n for (const curve of this.curveNames) {\n if (typeof curve.value === 'string') {\n if (curve.value === value) {\n return curve.name;\n }\n } else {\n for (const subCurve of curve.value) {\n if (subCurve.value === value) {\n return subCurve.name;\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Returns the curve type corresponding to the given value.\n *\n * @param value the value corresponding to the needed type.\n * @returns {string} the curve type.\n * @memberof AlertRuleCurveSelectorComponent\n */\n getCurveTypeFromValue(value: string): string {\n for (const curve of this.volumeTypes) {\n if (typeof curve.value === 'string') {\n if (curve.value === value) {\n return curve.name;\n }\n } else {\n for (const subCurve of curve.value) {\n if (subCurve.value === value) {\n return curve.name;\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Handles first operand changes.\n *\n * @param selectedOption the option selected by the user.\n */\n curveNameChange(selectedOption: DropdownOption) {\n this.curveName = selectedOption;\n if (selectedOption.value === 'volume') {\n this.curveType = this.volumeTypes[0].value[0];\n }\n this.curveChange.emit(this.getCurveOperand());\n }\n\n /**\n * Handles curve type changes.\n *\n * @param {DropdownOption} selectedOption the option selected by the user.\n * @memberof AlertRuleCreatorComponent\n */\n curveTypeChange(selectedOption: DropdownOption) {\n this.curveType = selectedOption;\n this.curveChange.emit(this.getCurveOperand());\n }\n\n /**\n * Creates a CurveOperand (to return to the backend) from a CurveRef (to display dropdowns).\n *\n * @returns {CurveOperand} the created CurveOperand.\n * @memberof AlertRuleCreatorComponent\n */\n getCurveOperand(): CurveOperand {\n let ema: number;\n let timeCode = '';\n\n if (this.curveType.value) {\n if (\n this.curveName.value === 'volume' &&\n this.curveType.value &&\n this.curveType.value.match(/sd_[0-9][W,M,Y]/)\n ) {\n timeCode = this.curveType.value.split('_')[1];\n } else {\n ema = this.curveType.value === 'raw' ? 1 : this.ema;\n }\n }\n\n return new CurveOperand(this.curveName.value, ema, timeCode);\n }\n\n /**\n * Handles EMA changes.\n *\n * @memberof AlertRuleCurveSelectorComponent\n */\n emaChange() {\n this.curveChange.emit(this.getCurveOperand());\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/alert-rule-curve-selector/alert-rule-curve-selector.component.ts","module.exports = \"\\n
    \\n \\n\\n
    \\n\\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n
    \\n\\n \\n \\n \\n \\n\\n
    \\n\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-rules-block/alert-rules-block.component.html\n// module id = ./src/app/shared/components/alert-rules-block/alert-rules-block.component.html\n// module chunks = main","module.exports = \".alert-creation-rules div.alert-creation-rule {\\n margin-bottom: 5px; }\\n .alert-creation-rules div.alert-creation-rule:first-child {\\n margin-left: 107px; }\\n .alert-creation-rules div.alert-creation-rule:nth-child(3) {\\n margin-bottom: 0; }\\n .alert-creation-rules div.alert-creation-rule .btn-group {\\n margin-right: 5px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-rules-block/alert-rules-block.component.scss\n// module id = ./src/app/shared/components/alert-rules-block/alert-rules-block.component.scss\n// module chunks = main","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { AlertRule } from '../../models/alert.model';\n\n@Component({\n selector: 'app-alert-rules-block',\n templateUrl: './alert-rules-block.component.html',\n styleUrls: ['./alert-rules-block.component.scss']\n})\nexport class AlertRulesBlockComponent implements OnInit {\n @Input() rules: AlertRule[];\n @Input() errors: boolean[];\n @Output()\n rulesChange = new EventEmitter<{ changes: SimpleChanges; index: number }>();\n @Output() ruleAdded = new EventEmitter();\n @Output() ruleRemoved = new EventEmitter<{ index: number }>();\n @Output() ruleCleared = new EventEmitter<{ index: number }>();\n\n constructor() {}\n\n ngOnInit() {}\n\n /**\n * Handles changes in rules.\n *\n * @param {SimpleChanges} changes the changes that occured.\n * @param {number} index the rule index.\n * @memberof CreateAlertModalComponent\n */\n ruleChange(changes: SimpleChanges, index: number) {\n this.rulesChange.emit({ changes, index });\n }\n\n /**\n * Add a new rule.\n *\n * @memberof CreateAlertModalComponent\n */\n addRule() {\n this.ruleAdded.emit();\n }\n\n /**\n * Remove the rule at the given index.\n *\n * @param {number} index the index of the rule to remove.\n * @memberof CreateAlertModalComponent\n */\n removeRule(index: number) {\n this.ruleRemoved.emit({ index });\n }\n\n clearRule(index: number) {\n this.ruleCleared.emit({ index });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/alert-rules-block/alert-rules-block.component.ts","module.exports = \"
    \\n
    \\n \\n \\n Reset rules to their default values\\n \\n \\n \\n Clear all rules\\n \\n
    \\n
    \\n\\n\\n
    \\n
    \\n
    {{ i + 1 }}
    \\n
    \\n
    \\n\\n
    \\n \\n \\n \\n \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-rules-editor/alert-rules-editor.component.html\n// module id = ./src/app/shared/components/alert-rules-editor/alert-rules-editor.component.html\n// module chunks = main","module.exports = \".rules-buttons {\\n margin-bottom: 10px; }\\n\\n.rules-group-title .index {\\n position: absolute;\\n margin-top: 7px;\\n width: 20px;\\n height: 20px;\\n text-align: center;\\n border: 1px solid #cccccc;\\n border-radius: 50%; }\\n\\n.rules-group-title .separator {\\n margin-left: 20px;\\n margin-top: 16px;\\n margin-bottom: 17px;\\n border: 0;\\n border-top: 1px solid #cccccc; }\\n\\n.rules-group:last-child {\\n margin-bottom: 10px; }\\n\\n.rule-action-selector {\\n margin: 15px 0; }\\n\\n.action-selector {\\n margin-top: -34px;\\n margin-bottom: 10px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alert-rules-editor/alert-rules-editor.component.scss\n// module id = ./src/app/shared/components/alert-rules-editor/alert-rules-editor.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport {\n actionBackToFront,\n actionsPerStrategy,\n AlertRule,\n AlertStrategy,\n CurveOperand,\n RuleAction\n} from '../../models/alert.model';\n\n@Component({\n selector: 'app-alert-rules-editor',\n templateUrl: './alert-rules-editor.component.html',\n styleUrls: ['./alert-rules-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertRulesEditorComponent implements OnInit, OnChanges {\n @Input() strategy: AlertStrategy;\n @Input() rules: AlertRule[][];\n @Output() rulesChange = new EventEmitter<{ index: number; rule: any }>();\n\n actionsPerStrategy = actionsPerStrategy;\n actionBackToFront = actionBackToFront;\n AlertStrategy = AlertStrategy;\n RuleAction = RuleAction;\n\n actions: RuleAction[];\n\n previousStates: { [strategy in AlertStrategy]: AlertRule[][] } = {\n [AlertStrategy.LongShort]: this.getDefaultRulesByStrategy(\n AlertStrategy.LongShort\n ),\n [AlertStrategy.LongFlat]: this.getDefaultRulesByStrategy(\n AlertStrategy.LongFlat\n ),\n [AlertStrategy.AlertOnly]: this.getDefaultRulesByStrategy(\n AlertStrategy.AlertOnly\n )\n };\n\n errors: boolean[][];\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges) {\n let changeRules = true;\n if (changes.rules) {\n if (changes.rules.isFirstChange() && !changes.rules.currentValue) {\n this.resetRulesToDefault();\n } else {\n changeRules = false;\n }\n }\n if (changes.strategy) {\n if (!changes.strategy.isFirstChange()) {\n this.previousStates[changes.strategy.previousValue] = this.rules;\n }\n if (changeRules) {\n this.rules = this.previousStates[changes.strategy.currentValue];\n }\n this.actions = this.rules.map(rules => rules[0].action);\n this.errors = this.rules.map(set => set.map(() => false));\n this.rulesChange.emit();\n }\n }\n\n ngOnInit() {\n this.errors = this.rules.map(set => set.map(() => false));\n }\n\n /**\n * Handles changes in rule types order.\n * @param {number} ruleGroupIndex the index of the rule group.\n * @param {RuleAction} newAction the rules block new action.\n */\n ruleActionsChange(ruleGroupIndex: number, newAction: RuleAction): void {\n // Retrieve the old action.\n const oldAction = this.rules[ruleGroupIndex][0].action;\n // Update the rules that had the action \"stolen\" by the rule block.\n const oldRulesBlockIndex = this.actions.findIndex((action, index) => {\n if (index !== ruleGroupIndex && action === newAction) {\n return true;\n }\n return false;\n });\n this.rules[oldRulesBlockIndex].forEach(rule => (rule.action = oldAction));\n this.actions[oldRulesBlockIndex] = oldAction;\n // Update the rules at the given index with their new action.\n this.rules[ruleGroupIndex].forEach(rule => (rule.action = newAction));\n this.actions[ruleGroupIndex] = newAction;\n this.rulesChange.emit();\n }\n\n /**\n * Checks if given rules are valid and returns the result in an array.\n *\n * @param {AlertRule[][]} ruleSets the rule sets to check.\n * @returns {boolean[][]} to validity results.\n * @memberof CreateAlertModalComponent\n */\n getRulesErrors(displayErrors = true): boolean[][] {\n const errors = this.rules.map(rules => {\n return rules.map(rule => {\n // For Long Short strategy, ignore empty Flat action.\n if (\n this.strategy === AlertStrategy.LongShort &&\n rule.action === RuleAction.Flat &&\n rule.isEmpty()\n ) {\n return false;\n }\n return !rule.isValid();\n });\n });\n\n if (displayErrors) {\n this.errors = errors;\n }\n return errors;\n }\n\n getRulesByAction(action: RuleAction): AlertRule[] {\n return this.rules[\n this.actions.findIndex(ruleAction => ruleAction === action)\n ];\n }\n\n getRulesIndexByAction(action: RuleAction): number {\n return this.actions.findIndex(ruleAction => ruleAction === action);\n }\n\n /**\n * Removes the rule of the given type at the given index.\n *\n * @param {number} rulesGroupIndex the index of the rules group.\n * @param {number} ruleIndex the index of the rule to remove.\n * @memberof CreateAlertModalComponent\n */\n removeRule(rulesGroupIndex: number, ruleIndex: number): void {\n this.rules[rulesGroupIndex].splice(ruleIndex, 1);\n\n this.rulesChange.emit();\n }\n\n /**\n * Clears all rules.\n *\n * @memberof CreateAlertModalComponent\n */\n clearRules(): void {\n this.rules = this.getEmptyRules();\n\n this.rulesChange.emit();\n }\n\n clearRule(ruleGroupIndex: number, ruleIndex: number) {\n this.errors[ruleGroupIndex][ruleIndex] = false;\n this.rules[ruleGroupIndex][ruleIndex] = new AlertRule(\n this.rules[ruleGroupIndex][ruleIndex].action\n );\n\n this.rulesChange.emit();\n }\n\n /**\n *Returns an empty rules set.\n *\n * @returns {AlertRule[][]}\n * @memberof CreateAlertModalComponent\n */\n getEmptyRules(): AlertRule[][] {\n return [\n [new AlertRule(this.actions[0])],\n [new AlertRule(this.actions[1])],\n [new AlertRule(this.actions[2])],\n [new AlertRule(RuleAction.Alert)]\n ];\n }\n\n resetRulesToDefault(): void {\n this.rules = this.getDefaultRulesByStrategy(this.strategy);\n this.actions = this.rules.map(rules => rules[0].action);\n this.errors = this.rules.map(set => set.map(() => false));\n\n this.rulesChange.emit();\n }\n\n reinitErrors() {\n this.errors = this.rules.map(set => set.map(_ => false));\n }\n\n /**\n * Adds a new rule at the given index.\n *\n * @param {number} rulesGroupIndex the index of the rules group.\n * @memberof CreateAlertModalComponent\n */\n addRule(rulesGroupIndex: number): void {\n const rulesGroupAction = this.rules[rulesGroupIndex][0].action;\n this.rules[rulesGroupIndex].push(new AlertRule(rulesGroupAction));\n\n this.rulesChange.emit();\n }\n\n /**\n * Handles rules changes.\n *\n * @param {number} rulesGroupIndex the index of the rules group.\n * @param {SimpleChanges} changes the changes.\n * @memberof CreateAlertModalComponent\n */\n onRulesChange(\n rulesGroupIndex: number,\n event: { changes: SimpleChanges; index: number }\n ): void {\n this.errors[rulesGroupIndex][event.index] = false;\n for (const property of Object.keys(event.changes)) {\n this.rules[rulesGroupIndex][event.index][property] =\n event.changes[property].currentValue;\n }\n this.rulesChange.emit();\n }\n\n loopIndex(index: number, _) {\n return index;\n }\n\n getDefaultRulesByStrategy(strategy: AlertStrategy): AlertRule[][] {\n switch (strategy) {\n case AlertStrategy.LongFlat:\n return [\n [\n new AlertRule(\n RuleAction.Long,\n new CurveOperand('sentiment', 30),\n 'threshold_exceeds',\n -0.5\n )\n ],\n [\n new AlertRule(\n RuleAction.Flat,\n new CurveOperand('sentiment', 30),\n 'threshold_dropsDown',\n -0.5\n )\n ]\n ];\n case AlertStrategy.LongShort:\n return [\n [\n new AlertRule(\n RuleAction.Long,\n new CurveOperand('emotions.fear', 30),\n 'threshold_dropsDown',\n 0.5\n )\n ],\n [\n new AlertRule(\n RuleAction.Short,\n new CurveOperand('emotions.fear', 30),\n 'threshold_exceeds',\n 0.5\n )\n ],\n [new AlertRule(RuleAction.Flat)]\n ];\n case AlertStrategy.AlertOnly:\n return [[new AlertRule(RuleAction.Alert)]];\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/alert-rules-editor/alert-rules-editor.component.ts","module.exports = \"\\n\\n\\n
    \\n \\n \\n
    \\n\\n
    \\n These results are simulations only and do not represent real investments. These contents do not constitute an offer\\n or solicitation\\n to buy services or shares in any fund. The information displayed on this page does not constitute investment advice\\n or\\n an offer to invest or to provide management services and is subject to correction, completion and amendment.\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alerts-table/alerts-table.component.html\n// module id = ./src/app/shared/components/alerts-table/alerts-table.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/alerts-table/alerts-table.component.scss\n// module id = ./src/app/shared/components/alerts-table/alerts-table.component.scss\n// module chunks = main","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\nimport { PageChangedEvent } from 'ngx-bootstrap/pagination';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-alerts-table',\n templateUrl: './alerts-table.component.html',\n styleUrls: ['./alerts-table.component.scss']\n})\nexport class AlertsTableComponent implements OnInit, OnDestroy {\n @Input()\n columns: any;\n @Input()\n rows = [];\n @Input()\n length: number;\n @Input()\n config = {\n paging: true,\n sorting: { columns: this.columns },\n filtering: { filterString: '' },\n className: ['table-striped', 'table-bordered']\n };\n\n @Output()\n changePage = new EventEmitter<{\n page: PageChangedEvent;\n filtering?: any;\n sorting?: any;\n }>();\n @Output()\n cellClick = new EventEmitter();\n\n page = 1;\n itemsPerPage = 17;\n maxSize = 5;\n numPages = 1;\n\n private lastSorting: string;\n\n private changePageObserver$: Observer<{\n page: PageChangedEvent;\n filtering?: any;\n sorting?: any;\n }>;\n\n private destroy$ = new Subject();\n\n constructor() {}\n\n ngOnInit(): void {\n this.lastSorting = this.columns[0].sort;\n\n Observable.create(observer => {\n this.changePageObserver$ = observer;\n })\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(300)\n )\n .subscribe(config => {\n this.changePage.emit(config);\n });\n\n this.onChangeTable();\n }\n\n onChangeTable(\n page = { page: this.page, itemsPerPage: this.itemsPerPage }\n ): void {\n const filtering = {};\n const sorting = {};\n this.columns.forEach(column => {\n if (column.filtering) {\n if (column.filtering.filterString !== '') {\n filtering[column.name] = column.filtering.filterString;\n }\n }\n if (column.sort) {\n let sort: string;\n column.sort === ''\n ? (sort = this.lastSorting)\n : (sort = this.lastSorting = column.sort);\n sorting[column.name] = sort === 'asc' ? 1 : -1;\n }\n });\n\n this.changePageObserver$.next({\n page,\n filtering,\n sorting\n });\n }\n\n click(event: any): void {\n this.cellClick.emit(event);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/alerts-table/alerts-table.component.ts","module.exports = \"
    \\n {{tickerCode}}\\n
    \\n
    \\n {{assetName}}\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/asset-title/asset-title.component.html\n// module id = ./src/app/shared/components/asset-title/asset-title.component.html\n// module chunks = main","module.exports = \".ticker-code {\\n text-transform: uppercase;\\n font-size: 18px;\\n font-weight: 500;\\n line-height: 18px;\\n padding-top: 4px; }\\n\\n.asset-name {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 14px;\\n padding-bottom: 4px;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden; }\\n\\n.link:hover {\\n text-decoration: underline;\\n cursor: pointer; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/asset-title/asset-title.component.scss\n// module id = ./src/app/shared/components/asset-title/asset-title.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit\n} from '@angular/core';\n\n@Component({\n selector: 'app-asset-title',\n templateUrl: './asset-title.component.html',\n styleUrls: ['./asset-title.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AssetTitleComponent implements OnInit {\n @Input()\n tickerCode: string;\n @Input()\n assetName: string;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/asset-title/asset-title.component.ts","module.exports = \"\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    YTD12M3Y
    Number of signals
    Cumulated Return
    Annualized Return
    Annualized Volatility
    Annualized Sharpe Ratio
    Cumulated Market Return
    Annualized Market Return
    \\n\\n\\n \\n\\n\\n\\n 0 && color, grey: value === 0 && color}\\\">\\n \\n \\n N.A.\\n \\n \\n {{ value }}\\n %\\n \\n \\n \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/backtest-table/backtest-table.component.html\n// module id = ./src/app/shared/components/backtest-table/backtest-table.component.html\n// module chunks = main","module.exports = \".fa-spinner {\\n color: black; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/backtest-table/backtest-table.component.scss\n// module id = ./src/app/shared/components/backtest-table/backtest-table.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit\n} from '@angular/core';\nimport { AlertBacktest } from '../../models/alert.model';\n\n@Component({\n selector: 'app-backtest-table',\n templateUrl: './backtest-table.component.html',\n styleUrls: ['./backtest-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BacktestTableComponent implements OnInit {\n @Input() data: AlertBacktest;\n @Input() loading = false;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/backtest-table/backtest-table.component.ts","module.exports = \"
    \\n
    \\n 0\\n ? ''\\n : 'A summary of the trading opinion, emotion and volume of each assets from your portfolio is displayed. This allows you to look at your favorite assets.'\\n \\\"\\n appIntroIndex=\\\"5\\\"\\n appIntroRoute=\\\"/portfolio\\\"\\n >\\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n {{ Constant.OpinionScore }}\\n
    \\n
    \\n \\n \\n N.A.\\n {{ row.bullish_score }}\\n \\n \\n
    \\n
    \\n\\n \\n
    \\n
    \\n {{ Constant.Emotions }}\\n
    \\n
    \\n \\n \\n N.A.\\n {{ row.emotion }}\\n \\n \\n
    \\n
    \\n \\n -\\n {{ row.emotion_variation }}%\\n \\n
    \\n
    \\n\\n \\n
    \\n
    \\n {{ Constant.Sentiment }}\\n
    \\n
    \\n \\n \\n N.A.\\n {{ row.sentiment }}\\n \\n \\n
    \\n
    \\n -\\n \\n {{ row.sentiment_variation }}%\\n \\n
    \\n
    \\n \\n \\n \\n \\n\\n \\n
    \\n
    \\n
    \\n\\n \\n
    \\n
    \\n {{ Constant.Volume }}\\n
    \\n
    \\n = 0 ? 'blue' : 'red'\\\"\\n [tooltipContent]=\\\"Constant.PeriodVolume\\\"\\n [value]=\\\"row.volume * 10\\\"\\n >\\n
    \\n
    \\n \\n -%\\n\\n \\n 0\\\">+\\n {{ utilsService.round(row.volume_variation * 100) }}%\\n \\n \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n
    \\n \\\"\\n [totalItems]=\\\"tickers.length\\\"\\n itemsPerPage=\\\"5\\\"\\n [(ngModel)]=\\\"currentPage\\\"\\n (pageChanged)=\\\"onPageChanged($event)\\\"\\n >\\n
    \\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/bars-group/bars-group.component.html\n// module id = ./src/app/shared/components/bars-group/bars-group.component.html\n// module chunks = main","module.exports = \"#value-ticker-winner,\\n#value-ticker-winner2 {\\n position: absolute;\\n display: block;\\n width: 100%;\\n color: black;\\n left: 0px; }\\n\\n.progess-bar-container {\\n max-width: 53%;\\n margin-left: 5px; }\\n\\n.center {\\n text-align: center; }\\n\\n.underline {\\n text-decoration: underline; }\\n\\n.bullscore-value {\\n font-size: 130%; }\\n\\n.group-bar {\\n padding-bottom: 20px; }\\n\\n.add-portfolio {\\n color: black !important; }\\n\\n.firm-name {\\n overflow-wrap: break-word;\\n font-style: italic; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/bars-group/bars-group.component.scss\n// module id = ./src/app/shared/components/bars-group/bars-group.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Portfolio } from '../../models/portfolio.model';\nimport { ChartsService } from '../../services/charts/charts.service';\nimport { NavigationHelperService } from '../../services/navigation-helper/navigation-helper.service';\nimport { PortfolioService } from '../../services/portfolio/portfolio.service';\nimport { TickersService } from '../../services/tickers/tickers.service';\nimport { UtilsService } from '../../services/utils/utils.service';\nimport { Constant } from '../../utils/constant';\n\n@Component({\n selector: 'app-bars-group',\n templateUrl: './bars-group.component.html',\n styleUrls: ['./bars-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarsGroupComponent implements OnInit, OnChanges {\n @Input()\n tickers: any[];\n @Input()\n portfolios: Portfolio[];\n\n currentPage = 1;\n rows: any[];\n Constant = Constant;\n currentTickerId: number;\n\n items: {\n label: string;\n command: () => void;\n }[];\n\n /**\n * Creates an instance of BarsGroupComponent.\n * @param {PortfolioService} portfolioService\n * @param {Router} router\n * @param {ChartsService} chartsService\n * @param {TickersService} tickersService\n * @memberof BarsGroupComponent\n */\n constructor(\n public tickersService: TickersService,\n public utilsService: UtilsService,\n private portfolioService: PortfolioService,\n private navigationHelper: NavigationHelperService\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.tickers) {\n this.linearizeTickers();\n\n this.currentPage = 1;\n this.onPageChanged({ page: this.currentPage, itemsPerPage: 5 });\n }\n if (changes.portfolios) {\n this.items = [];\n\n (changes.portfolios.currentValue || []).forEach(portfolio => {\n if (\n !this.portfolioService.isDefaultPortfolio(portfolio.name) &&\n `${portfolio.name}-${portfolio.hash}` !==\n `${this.portfolioService.currentPortfolio.name}-${\n this.portfolioService.currentPortfolio.hash\n }`\n ) {\n this.items.push({\n label: portfolio.name,\n command: () => {\n this.portfolioService.addToPortfolio(\n this.currentTickerId,\n portfolio.name,\n portfolio.hash\n );\n }\n });\n }\n });\n }\n }\n\n /**\n * Goes through every portfolio and for non-default ones, add an entry in the item list. Each entry is an\n * object containing the portfolio name under the 'label' key, and a function allowing to add the ticker of\n * the component in this portfolio (under the 'command' label).\n *\n * @memberof BarsGroupComponent\n */\n ngOnInit() {}\n\n onPageChanged(page: any) {\n const start = (page.page - 1) * page.itemsPerPage;\n const end =\n page.itemsPerPage > 1\n ? start + Number(page.itemsPerPage)\n : this.tickers.length;\n this.rows = this.tickers.slice(start, end);\n }\n\n linearizeTickers() {\n const opinionScorePosValues: any[] = [];\n const opinionScoreNegValues: any[] = [];\n\n const emotionPosValues: any[] = [];\n const emotionNegValues: any[] = [];\n\n const sentimentPosValues: any[] = [];\n const sentimentNegValues: any[] = [];\n\n this.tickers.forEach(ticker => {\n // Trading Opinion\n if (ticker.bullish_score >= 0) {\n opinionScorePosValues.push(ticker);\n } else {\n opinionScoreNegValues.push(ticker);\n }\n\n // Emotion\n if (ticker.emotion >= 0) {\n emotionPosValues.push(ticker);\n } else {\n emotionNegValues.push(ticker);\n }\n // Sentiment\n if (ticker.sentiment >= 0) {\n sentimentPosValues.push(ticker);\n } else {\n sentimentNegValues.push(ticker);\n }\n });\n\n // Trading Opinion\n if (opinionScorePosValues.length > 0) {\n const OpinionScoreMaxValue = Math.max(\n ...opinionScorePosValues.map(ticker => {\n return ticker.bullish_score;\n })\n );\n\n opinionScorePosValues.forEach(ticker => {\n if (OpinionScoreMaxValue) {\n ticker.linearized_opinion_score =\n (100 * ticker.bullish_score) / OpinionScoreMaxValue;\n } else {\n ticker.linearized_opinion_score = 0;\n }\n });\n }\n if (opinionScoreNegValues.length > 0) {\n const opinionScoreMinValue = Math.min(\n ...opinionScoreNegValues.map(ticker => {\n return ticker.bullish_score;\n })\n );\n\n opinionScoreNegValues.forEach(ticker => {\n ticker.linearized_opinion_score =\n (100 * ticker.bullish_score) / opinionScoreMinValue;\n });\n }\n // Emotion\n if (emotionPosValues.length > 0) {\n const emotionMaxValue = Math.max(\n ...emotionPosValues.map(ticker => {\n return ticker.emotion;\n })\n );\n\n emotionPosValues.forEach(ticker => {\n if (emotionMaxValue) {\n ticker.linearized_emotion = (100 * ticker.emotion) / emotionMaxValue;\n } else {\n ticker.linearized_emotion = 0;\n }\n });\n }\n if (emotionNegValues.length > 0) {\n const emotion_min_value = Math.min(\n ...emotionNegValues.map(ticker => {\n return ticker.emotion;\n })\n );\n\n emotionNegValues.forEach(ticker => {\n ticker.linearized_emotion = (100 * ticker.emotion) / emotion_min_value;\n });\n }\n // Sentiment\n if (sentimentPosValues.length > 0) {\n const sentimentMaxValue = Math.max(\n ...sentimentPosValues.map(ticker => {\n return ticker.sentiment;\n })\n );\n\n sentimentPosValues.forEach(ticker => {\n if (sentimentMaxValue) {\n ticker.linearized_sentiment =\n (100 * ticker.sentiment) / sentimentMaxValue;\n } else {\n ticker.linearized_sentiment = 0;\n }\n });\n }\n if (sentimentNegValues.length > 0) {\n const sentiment_min_value = Math.min(\n ...sentimentNegValues.map(ticker => {\n return ticker.sentiment;\n })\n );\n\n sentimentNegValues.forEach(ticker => {\n ticker.linearized_sentiment =\n (100 * ticker.sentiment) / sentiment_min_value;\n });\n }\n }\n\n changeTypeBar(data: number) {\n return data > 0 ? 'winners' : 'losers';\n }\n\n navigateToMsa(tickerId: number) {\n this.navigationHelper.toMsa(tickerId);\n }\n\n tickerCode(_, item: any) {\n return item.ticker.code;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/bars-group/bars-group.component.ts","module.exports = \"
    \\n
    \\n
    \\n\\n
    \\n \\n\\n

    \\n \\n Modify: {{portfolio.name}}\\n \\n \\n Create a new portfolio\\n \\n

    \\n
    \\n\\n
    \\n\\n
    \\n\\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n \\n\\n
    \\n
    \\n \\n\\n \\n \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    \\n
    \\n\\n
      \\n
    • \\n\\n
      \\n \\n\\n
      \\n \\n
      \\n
      \\n\\n
      \\n {{tickerPercent(asset.get('quantity').value) || 0}}%\\n
      \\n\\n \\n
    • \\n
    \\n\\n
    \\n \\\"\\n [totalItems]=\\\"assets.controls.length\\\"\\n [itemsPerPage]=\\\"itemsPerPage\\\"\\n (pageChanged)=\\\"pageChanged($event)\\\"\\n [maxSize]=\\\"5\\\"\\n [boundaryLinks]=\\\"true\\\"\\n [rotate]=\\\"false\\\">\\n
    \\n
    \\n\\n\\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n\\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n\\n {{model.code}} - {{model.label}}\\n\\n\\n
    \\n
    \\n
    \\n
    \\n

    Are you sure?

    \\n
    \\n
    \\n

    \\n The portfolio\\n {{portfolio.name}} will be permanently deleted.\\n

    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/cp-menu/cp-menu.component.html\n// module id = ./src/app/shared/components/cp-menu/cp-menu.component.html\n// module chunks = main","module.exports = \".portfolio-button-container {\\n height: 32px;\\n color: white;\\n background-color: #4f2259;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer; }\\n\\n.assets {\\n list-style: none;\\n padding: 0;\\n margin: 0; }\\n\\n.asset {\\n padding-bottom: 10px; }\\n\\n.asset__ratio {\\n padding-top: 7px;\\n margin-bottom: 0; }\\n\\n.portfolio-button {\\n display: inline-block;\\n margin-top: 6px; }\\n\\n.modal-body {\\n padding-bottom: 0 !important; }\\n\\n.close-row {\\n text-align: right;\\n margin-bottom: 10px; }\\n\\n.error {\\n color: #cc5757;\\n font-style: italic; }\\n\\n#tickers {\\n max-height: 50vh;\\n overflow: auto;\\n border-top: 1px solid #e5e5e5;\\n padding-top: 15px;\\n margin-top: 10px; }\\n\\n#search-ticker {\\n padding-top: 5px; }\\n\\n.portfolio-name-container {\\n height: 32px;\\n color: #90708c; }\\n\\n.portfolio-name {\\n height: 32px;\\n border: none;\\n border-radius: 3px;\\n text-align: center; }\\n\\n#ticker-add-error {\\n color: #f16e44;\\n font-style: italic; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/cp-menu/cp-menu.component.scss\n// module id = ./src/app/shared/components/cp-menu/cp-menu.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { FormArray, FormBuilder, Validators } from '@angular/forms';\nimport { ModalDirective } from 'ngx-bootstrap';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { debounceTime, map, mergeMap, takeUntil } from 'rxjs/operators';\nimport { Portfolio } from '../../models/portfolio.model';\nimport Ticker from '../../models/ticker.model';\nimport { AutoCompService } from '../../services/auto-comp/auto-comp.service';\nimport { LoadingService } from '../../services/loading/loading.service';\nimport { PortfolioService } from '../../services/portfolio/portfolio.service';\nimport { TimeCodeService } from '../../services/time-code/time-code.service';\nimport { Constant } from '../../utils/constant';\n\n/**\n * Custom Portfolio modal menu allowing the user to add manage its portfolios\n * by adding and removing tickers and to delete and create portfolios.\n *\n * @export\n * @class CpMenuComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-cp-menu',\n templateUrl: './cp-menu.component.html',\n styleUrls: ['./cp-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CpMenuComponent implements OnInit, OnDestroy {\n @ViewChild('portfolioModal')\n portfolioModal: ModalDirective;\n @ViewChild('confirmModal')\n confirmModal: ModalDirective;\n\n itemsPerPage = 25;\n\n private _portfolio: Portfolio;\n\n get portfolio(): Portfolio {\n return this._portfolio;\n }\n\n set portfolio(portfolio: Portfolio) {\n this.portfolioForm.get('name').setValue(portfolio.name);\n\n if (portfolio.data) {\n if (portfolio.data) {\n portfolio.data.forEach(asset => this.addAsset(asset));\n }\n }\n\n this._portfolio = portfolio;\n this.cd.detectChanges();\n }\n\n Constant = Constant;\n dataSource: Observable;\n\n portfolioForm = this.fb.group({\n name: [\n '',\n [\n Validators.required,\n control => {\n // User's portfolios names cannot be set to 'new' or begin with 'default'.\n const forbidden =\n control.value.trim().toUpperCase() === 'NEW' ||\n /^default/i.test(control.value.trim());\n return forbidden ? { forbidden: true } : null;\n }\n ]\n ],\n search: '',\n assets: this.fb.array([], control => {\n // A portfolio must contain at least one asset.\n // TODO: extract in its own ValidatorFn\n return control.value.length === 0\n ? {\n noElement: true\n }\n : null;\n }),\n page: 1\n });\n\n private destroy$ = new Subject();\n\n /**\n * Creates an instance of CpMenuComponent.\n * @param {AutoCompService} autoCompService\n * @param {PortfolioService} portfolioService\n * @param {LoadingService} loadingService\n * @param {TickersService} tickersService\n * @param {TimeCodeService} timeCodeService\n * @memberof CpMenuComponent\n */\n constructor(\n private autoCompService: AutoCompService,\n private portfolioService: PortfolioService,\n private loadingService: LoadingService,\n private timeCodeService: TimeCodeService,\n private fb: FormBuilder,\n private cd: ChangeDetectorRef\n ) {}\n\n /**\n * Defines the data source of the auto-completing ticker input.\n *\n * @memberof CpMenuComponent\n */\n ngOnInit(): void {\n this.dataSource = Observable.create((observer: Observer) => {\n // Runs on every search\n observer.next(this.portfolioForm.get('search').value);\n }).pipe(\n debounceTime(300),\n mergeMap((token: string) =>\n this.autoCompService.getTickersAsObservable(token, 20)\n )\n );\n }\n\n get assets(): FormArray {\n return this.portfolioForm.get('assets') as FormArray;\n }\n\n addAsset(asset: Ticker): void {\n this.assets.push(this.fb.group(asset));\n }\n\n removeAsset(index: number): void {\n this.assets.removeAt(index);\n }\n\n isAssetOnPage(index: number): boolean {\n return (\n index >= this.itemsPerPage * (this.portfolioForm.get('page').value - 1) &&\n index < this.itemsPerPage * this.portfolioForm.get('page').value\n );\n }\n\n /**\n * Displays the modal menu after having set the menu type and portfolio data.\n *\n * @param {boolean} newPortfolio\n * @memberof CpMenuComponent\n */\n show() {\n this.portfolioModal.config = { backdrop: true };\n this.portfolioModal.show();\n }\n\n /**\n * Hide modal menu.\n *\n * @memberof CpMenuComponent\n */\n hide() {\n this.portfolioModal.hide();\n if (this.confirmModal) {\n this.confirmModal.hide();\n }\n }\n\n /**\n * Gets the percentage of the ticker distribution in the portfolio from its quantity.\n *\n * @param {number} quantity\n * @returns\n * @memberof CpMenuComponent\n */\n tickerPercent(quantity: number) {\n const total = this.assets.controls\n .map(asset => {\n return asset.get('quantity').value;\n })\n .reduce((a: number, b: number) => {\n return a + b;\n });\n return Math.round((quantity / total) * 10000) / 100;\n }\n\n /**\n * Add a new ticker in the portfolio.\n *\n * @memberof CpMenuComponent\n */\n addTicker(ticker: Ticker): void {\n if (!this.currentPortfolioContains(ticker.tickerId)) {\n if (ticker.quantity === undefined) {\n ticker.quantity = 1;\n }\n this.addAsset(ticker);\n\n this.pageChanged({\n page: this.portfolioForm.get('page').value,\n itemsPerPage: this.itemsPerPage\n });\n\n this.portfolioForm.get('search').setValue('');\n this.cd.markForCheck();\n }\n }\n\n addTickers(tickers: Ticker[]) {\n tickers.forEach(ticker => {\n setTimeout(() => {\n this.addTicker(ticker);\n }, (tickers.length * 10) / 14500);\n });\n }\n\n /**\n * Delete the whole portfolio.\n *\n * @memberof CpMenuComponent\n */\n deletePortfolio() {\n this.loadingService.addLoads();\n\n this.portfolioService\n .deletePortfolio(\n this.portfolio.hash,\n this.portfolioForm.get('name').value\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.refreshPortfolios().subscribe(\n () => {\n this.hide();\n },\n () => {\n this.loadingService.forceHide();\n },\n () => {\n this.loadingService.removeLoads();\n }\n );\n });\n }\n\n /**\n * Create a new portfolio from the inputs of the portfolio creation form inputs.\n *\n * @memberof CpMenuComponent\n */\n createPortfolio(): void {\n this.loadingService.addLoads();\n const data = this.assets.value.map(asset => ({\n tickerId: asset.tickerId,\n quantity: asset.quantity\n }));\n const name = this.portfolioForm.get('name').value;\n\n this.portfolioService\n .createPortfolio(name, data)\n .pipe(takeUntil(this.destroy$))\n .subscribe(portfolio => {\n this.refreshPortfolios(portfolio)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.hide();\n },\n () => {\n this.loadingService.forceHide();\n },\n () => {\n this.loadingService.removeLoads();\n }\n );\n });\n }\n\n /**\n * Sets a new current portfolio and refresh the portfolios list.\n *\n * @param {Portfolio} portfolio the portfolio to set as new current portfolio.\n * @memberof CpMenuComponent\n */\n refreshPortfolios(portfolio?: Portfolio): Observable {\n // The portfolios list must be refreshed.\n return this.portfolioService.getPortfolios().pipe(\n mergeMap(portfolios => {\n if (!portfolio) {\n portfolio = portfolios[0];\n }\n\n // Fetch the portfolio's data and set it as current portfolio.\n return this.portfolioService\n .getPortfolioData(\n this.timeCodeService.currentTimeCode,\n portfolio.hash\n )\n .pipe(\n takeUntil(this.destroy$),\n map(\n portfolioData =>\n (this.portfolioService.currentPortfolio = {\n ...portfolio,\n data: portfolioData\n })\n )\n );\n })\n );\n }\n\n /**\n * Change the content of an existing portfolio from the portfolio modification form inputs.\n *\n * @memberof CpMenuComponent\n */\n editPortfolio() {\n this.loadingService.addLoads();\n\n this.portfolioService\n .updatePortfolio(\n this.portfolio.hash,\n this.portfolioForm.get('name').value,\n this.assets.value.map(asset => ({\n tickerId: asset.tickerId,\n quantity: asset.quantity\n }))\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(portfolio => {\n this.refreshPortfolios(portfolio)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.hide();\n },\n () => {\n this.loadingService.forceHide();\n },\n () => {\n this.loadingService.removeLoads();\n }\n );\n });\n }\n\n /**\n * Returns the ticker id (ngFor trackBy method)\n *\n * @param {number} index\n * @param {*} item\n * @returns\n * @memberof CpMenuComponent\n */\n tickerId(_, item: Ticker) {\n return item.tickerId;\n }\n\n /**\n * Change the data to be displayed on a page change.\n *\n * @param {*} page\n * @memberof CpMenuComponent\n */\n pageChanged(page: any): void {\n this.portfolioForm.get('page').setValue(page.page);\n }\n\n currentPortfolioContains(tickerId: number): boolean {\n return false; // !!this.portfolio.data.find((t: Ticker) => t.tickerId === tickerId);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/cp-menu/cp-menu.component.ts","module.exports = \"\\n
    \\n
    \\n
    \\n

    \\n {{ this.alertModification ? 'Modify' : 'Create' }} an alert\\n

    \\n\\n \\n ×\\n \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n \\n
    \\n \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n

    \\n Alert's rules\\n

    \\n\\n \\n Notes: The order of actions (Long, Short, Flat) defines their\\n priority rank. The Flat action is optional for Long Short\\n strategies.\\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n\\n
    \\n \\n

    \\n Alert's performance\\n

    \\n

    \\n The values below allow you to estimate the relevance of\\n this alert. Backtests are computed with open to open market\\n data.\\n \\n

    \\n
    \\n
    \\n \\n
    \\n\\n
    \\n These results are simulations only and do not represent real\\n investments. These contents do not constitute an offer or\\n solicitation to buy services or shares in any fund. The\\n information displayed on this page does not constitute\\n investment advice or an offer to invest or to provide management\\n services and is subject to correction, completion and amendment.\\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n \\n\\n\\n {{ model.code }} - {{ model.label }}\\n\\n\\n\\n
    \\n
    \\n
    \\n

    Alert already exists

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

    \\n You have already created a similar alert (same rules, strategy and\\n ticker).\\n

    \\n
    \\n\\n
    \\n \\n Cancel alert {{ alertModification ? 'modification' : 'creation' }}\\n \\n \\n Return to alert {{ alertModification ? 'modification' : 'creation' }}\\n \\n
    \\n
    \\n
    \\n\\n\\n\\n
    \\n
    \\n
    \\n

    \\n Alert successfully {{ alertModification ? 'modified' : 'created' }}\\n

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

    \\n The alert has been successfully\\n {{ alertModification ? 'modified' : 'created' }}.\\n

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

    \\n Too many alerts on {{ ticker?.code }}\\n

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

    \\n You have already created the maximum number of alerts on\\n {{ ticker?.code }}.\\n

    \\n
    \\n\\n
    \\n \\n Cancel alert {{ alertModification ? 'modification' : 'creation' }}\\n \\n \\n Return to alert {{ alertModification ? 'modification' : 'creation' }}\\n \\n
    \\n
    \\n
    \\n\\n\\n\\n
    \\n
    \\n
    \\n

    \\n An alert named {{ alertName }} already exists\\n

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

    You have already created an alert named {{ alertName }}.

    \\n
    \\n\\n
    \\n \\n Cancel alert {{ alertModification ? 'modification' : 'creation' }}\\n \\n \\n Return to alert {{ alertModification ? 'modification' : 'creation' }}\\n \\n
    \\n
    \\n
    \\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/create-alert-modal/create-alert-modal.component.html\n// module id = ./src/app/shared/components/create-alert-modal/create-alert-modal.component.html\n// module chunks = main","module.exports = \".alert-creation-heading div {\\n padding-right: 0; }\\n .alert-creation-heading div input.error {\\n border-color: red; }\\n .alert-section-heading {\\n text-align: center;\\n border-top: 1px solid #cccccc; }\\n .alert-creation-body #backtest {\\n margin-top: 10px; }\\n .alert-creation-body #backtest div.subtitle {\\n margin-top: 10px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/create-alert-modal/create-alert-modal.component.scss\n// module id = ./src/app/shared/components/create-alert-modal/create-alert-modal.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { ModalDirective, PopoverDirective } from 'ngx-bootstrap';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { debounceTime, mergeMap, takeUntil } from 'rxjs/operators';\nimport Alert, {\n AlertRule,\n AlertStrategy,\n RuleAction\n} from '../../models/alert.model';\nimport Ticker from '../../models/ticker.model';\nimport { AlertsService } from '../../services/alerts/alerts.service';\nimport { AutoCompService } from '../../services/auto-comp/auto-comp.service';\nimport { TickersService } from '../../services/tickers/tickers.service';\nimport { AlertRulesEditorComponent } from '../alert-rules-editor/alert-rules-editor.component';\n\n@Component({\n selector: 'app-create-alert-modal',\n templateUrl: './create-alert-modal.component.html',\n styleUrls: ['./create-alert-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CreateAlertModalComponent implements OnInit, OnDestroy {\n @ViewChild('createAlertModal')\n createAlertModal: ModalDirective;\n @ViewChild('alertAlreadyExists')\n alertAlreadyExists: ModalDirective;\n @ViewChild('alertCreated')\n alertCreatedModal: ModalDirective;\n @ViewChild('rulesEditor')\n rulesEditor: AlertRulesEditorComponent;\n @ViewChild('tooManyAlerts')\n tooManyAlerts: ModalDirective;\n @ViewChild('nameAlreadyExists')\n nameAlreadyExists: ModalDirective;\n @ViewChild('alertNamePop')\n alertNamePop: PopoverDirective;\n @ViewChild('tickerPop')\n tickerPop: PopoverDirective;\n\n @Input()\n alertType = '';\n @Input()\n ticker: Ticker;\n @Input()\n alertModification = false;\n @Input()\n hash: string;\n @Input()\n rules: AlertRule[][];\n\n @Output()\n alertCreated = new EventEmitter();\n\n RuleAction = RuleAction;\n AlertStrategy = AlertStrategy;\n\n dataSource: Observable;\n writtenTickerCode = '';\n tickerError = false;\n alertName = '';\n alertNameError = false;\n strategy = AlertStrategy.LongFlat;\n backtest = {};\n backtestLoading = true;\n creationDate;\n\n updateBacktestObserver$: Observer;\n\n private destroy$ = new Subject();\n\n /**\n * Creates an instance of CreateAlertModalComponent.\n * @param {AutoCompService} autoCompService\n * @memberof CreateAlertModalComponent\n */\n constructor(\n private autoCompService: AutoCompService,\n private alertsService: AlertsService,\n private tickersService: TickersService,\n private ref: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n Observable.create(observer => (this.updateBacktestObserver$ = observer))\n .debounceTime(100)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.updateBacktest();\n });\n\n this.dataSource = Observable.create(observer => {\n // Runs on every search\n observer.next(this.writtenTickerCode);\n }).pipe(\n debounceTime(300),\n mergeMap((token: string) =>\n this.autoCompService.getTickersAsObservable(token, 20)\n )\n );\n\n if (this.ticker) {\n this.tickerSelected(this.ticker);\n this.writtenTickerCode = this.ticker.code;\n }\n this.show();\n }\n\n reinitErrors(): void {\n this.alertNameError = false;\n this.tickerError = false;\n this.rulesEditor.reinitErrors();\n }\n\n tickerSelected(ticker: Ticker): void {\n this.ticker = ticker;\n this.tickerError = false;\n this.tickerPop.hide();\n this.updateBacktestObserver$.next(null);\n }\n\n tickerUnselected() {\n this.ticker = undefined;\n this.updateBacktestObserver$.next(null);\n this.tickerError = false;\n this.tickerPop.hide();\n }\n\n /**\n * Shows the modal, optionally with a preset ticker code.\n *\n * @param {string} [ticker] the ticker code the alert will work on (optional).\n * @memberof CreateAlertModalComponent\n */\n show(): void {\n this.createAlertModal.config = { backdrop: true };\n this.createAlertModal.show();\n this.updateBacktestObserver$.next(null);\n }\n\n /**\n * Updates the backtest.\n *\n * @memberof CreateAlertModalComponent\n */\n updateBacktest() {\n this.backtestLoading = true;\n this.ref.markForCheck();\n // Check ticker.\n let tickerError: boolean;\n if (this.ticker !== undefined) {\n if (!this.tickersService.exists(this.ticker.tickerId)) {\n tickerError = true;\n }\n } else {\n tickerError = true;\n }\n // Check rules validity.\n const rulesErrors = this.rulesEditor.getRulesErrors(false);\n // Continue if no error.\n if (!(tickerError || rulesErrors.reduce((acc, cur) => acc && cur).pop())) {\n // Flatten rules (backend format) and remove empty ones.\n const rules = this.rulesEditor.rules\n .reduce((acc: AlertRule[], val: AlertRule[]) => acc.concat(val), [])\n .filter(rule => !rule.isEmpty());\n this.alertsService\n .createAlert(\n new Alert(['↑↑↓↓←→←→BA'], this.ticker, this.strategy, rules),\n true\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n res => {\n this.backtest = res;\n this.backtestLoading = false;\n this.ref.markForCheck();\n },\n error => {\n switch (error.status) {\n case 422:\n this.backtest = {};\n break;\n }\n this.backtestLoading = false;\n this.ref.markForCheck();\n }\n );\n } else {\n this.backtest = {};\n this.backtestLoading = false;\n this.ref.markForCheck();\n }\n }\n\n /**\n * Checks the rules and creates the alert if they are valid.\n *\n * @memberof CreateAlertModalComponent\n */\n createAlert(): void {\n this.reinitErrors();\n // Check name.\n if (this.alertName.trim().length < 5) {\n this.alertNameError = true;\n this.alertNamePop.show();\n }\n // Check ticker.\n if (this.ticker !== undefined) {\n if (!this.tickersService.exists(this.ticker.tickerId)) {\n this.tickerError = true;\n this.tickerPop.show();\n }\n } else {\n this.tickerError = true;\n this.tickerPop.show();\n }\n // Check rules validity.\n const rulesErrors = this.rulesEditor.getRulesErrors();\n // Continue if no error.\n if (\n !(\n this.alertNameError ||\n this.tickerError ||\n rulesErrors.reduce((acc, cur) => acc && cur).pop()\n )\n ) {\n // Flatten rules (backend format) and remove empty ones.\n const rules = this.rulesEditor.rules\n .reduce((acc: AlertRule[], val: AlertRule[]) => acc.concat(val), [])\n .filter(rule => !rule.isEmpty());\n\n // Send the create/update request.\n const alert = new Alert(\n [this.alertName],\n this.ticker,\n this.strategy,\n rules,\n undefined,\n this.hash,\n this.creationDate\n );\n (this.alertModification\n ? this.alertsService.updateAlerts(alert)\n : this.alertsService.createAlert(alert)\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.alertCreated.emit(this.ticker.tickerId);\n this.alertCreatedModal.show();\n },\n error => {\n // Alert already exists (same ticker and rules).\n switch (error.status) {\n case 403:\n this.tooManyAlerts.show();\n break;\n case 409:\n this.alertAlreadyExists.show();\n break;\n default:\n this.nameAlreadyExists.show();\n break;\n }\n }\n );\n }\n }\n\n rulesChange(): void {\n this.updateBacktestObserver$.next(null);\n }\n\n alertNameChange(): void {\n if (this.alertNameError && this.alertName.trim().length >= 5) {\n this.alertNamePop.hide();\n this.alertNameError = false;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/create-alert-modal/create-alert-modal.component.ts","module.exports = \"
    \\n \\n \\n \\n\\n \\n \\n \\n Add curve \\n \\n
    \\n \\n\\n\\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/currently-displayed/currently-displayed.component.html\n// module id = ./src/app/shared/components/currently-displayed/currently-displayed.component.html\n// module chunks = main","module.exports = \".btn-panel {\\n margin-bottom: 20px;\\n height: 40px; }\\n\\n.add-curve {\\n font-weight: 500; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/currently-displayed/currently-displayed.component.scss\n// module id = ./src/app/shared/components/currently-displayed/currently-displayed.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CurveSet } from '../../models/curve-set.model';\nimport { PortfolioService } from '../../services/portfolio/portfolio.service';\nimport { Constant } from '../../utils/constant';\nimport { CurveSetInfo } from '../curve-panel/curve-panel.component';\nimport { MsaMenuComponent } from '../msa-menu/msa-menu.component';\n\n@Component({\n selector: 'app-currently-displayed',\n templateUrl: './currently-displayed.component.html',\n styleUrls: ['./currently-displayed.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CurrentlyDisplayedComponent\n implements OnChanges, OnInit, OnDestroy {\n @Input()\n curveSets: CurveSet[];\n @Input()\n portfolios: any[];\n\n @Output()\n messageTypeChange = new EventEmitter<{ value: string; index: number }>();\n @Output()\n curveTypeChange = new EventEmitter<{ value: string; index: number }>();\n @Output()\n expertModeChange = new EventEmitter<{ value: string; index: number }>();\n @Output()\n engineChange = new EventEmitter<{ value: string; index: number }>();\n @Output()\n languageChange = new EventEmitter<{ value: string; index: number }>();\n @Output()\n financialChange = new EventEmitter<{ value: string; index: number }>();\n @Output()\n displayedAlertChange = new EventEmitter<{\n alertHash: string;\n alertName: string;\n requestId: number;\n }>();\n @Output()\n toggleVisibility = new EventEmitter<{ requestId: number }>();\n @Output()\n curveSetDelete = new EventEmitter();\n\n @ViewChild('analysisModal', { read: ViewContainerRef })\n analysisModal: ViewContainerRef;\n\n curveSetsInfo: CurveSetInfo[];\n\n addToPortfolioItems: {\n label: string;\n command: (tickerId: number) => void;\n }[] = [];\n\n private destroy$ = new Subject();\n\n constructor(\n private portfolioService: PortfolioService,\n private resolver: ComponentFactoryResolver\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.curveSets && changes.curveSets.currentValue) {\n this.curveSetsInfo = this.formatCurveInfos(this.curveSets);\n }\n\n if (changes.portfolios) {\n if (this.portfolios && this.portfolios.length > 0) {\n this.addToPortfolioItems = this.getPortfoliosItems();\n }\n }\n }\n\n ngOnInit(): void {}\n\n getPortfoliosItems(): {\n label: string;\n command: (tickerId: number) => void;\n }[] {\n const addToPortfolioItems = [];\n this.portfolios.forEach(portfolio => {\n if (!this.portfolioService.isDefaultPortfolio(portfolio.name)) {\n addToPortfolioItems.push({\n label: portfolio.name,\n command: tickerId =>\n this.portfolioService.addToPortfolio(\n tickerId,\n portfolio.name,\n portfolio.hash\n )\n });\n }\n });\n\n return addToPortfolioItems;\n }\n\n /**\n * Triggers an event to hide the curve.\n *\n * @param {{ requestId: number }} event\n * @memberof CurrentlyDisplayedComponent\n */\n onToggleVisibility(event: { requestId: number }) {\n this.toggleVisibility.emit(event);\n }\n\n /**\n * Triggers an event to update the curve.\n *\n * @param {{ property: string, value: string }} event\n * @param {number} index\n * @memberof CurrentlyDisplayedComponent\n */\n updateCurveSet(event: { property: string; value: string }, index: number) {\n switch (event.property) {\n case 'engine':\n this.engineChange.emit({ value: event.value, index: index });\n break;\n case 'messageType':\n this.messageTypeChange.emit({ value: event.value, index: index });\n break;\n case 'curveType':\n this.curveTypeChange.emit({\n value: event.value.toUpperCase(),\n index: index\n });\n break;\n case 'expert':\n this.expertModeChange.emit({\n value: event.value,\n index: index\n });\n break;\n case 'financial':\n this.financialChange.emit({ value: event.value, index: index });\n break;\n case 'language':\n this.languageChange.emit({ value: event.value, index: index });\n break;\n }\n }\n\n onDisplayedAlertChange(event: {\n alertHash: string;\n alertName: string;\n requestId: number;\n }): void {\n this.displayedAlertChange.emit(event);\n }\n\n deleteCurveSet(index: number): void {\n this.curveSetDelete.emit(index);\n }\n\n curveIndex(index: number, _): number {\n return index;\n }\n\n /**\n * Shows analysis modal menu.\n *\n * @param {string} action\n * @memberof VueBarComponent\n */\n showAnalysisMenu(): void {\n const alertManageModalFactory = this.resolver.resolveComponentFactory(\n MsaMenuComponent\n );\n const component = this.analysisModal.createComponent(\n alertManageModalFactory\n );\n component.instance.show();\n component.instance.hidden.pipe(takeUntil(this.destroy$)).subscribe(() => {\n component.destroy();\n });\n }\n\n /**\n * Formats the curve infos from the component curve sets.\n *\n * @returns {void}\n * @memberof CurrentlyDisplayedComponent\n */\n formatCurveInfos(curveSets: CurveSet[]): CurveSetInfo[] {\n const curveInfos: CurveSetInfo[] = [];\n\n curveSets.forEach(curveSet => {\n const hasTicker =\n curveSet.params.ticker && curveSet.params.ticker.tickerId != null;\n const assetName = hasTicker\n ? curveSet.params.ticker.asset\n : curveSet.params.asset;\n const sectorName = hasTicker\n ? curveSet.params.ticker.sector\n : curveSet.params.sector;\n\n curveInfos.push({\n requestId: curveSet.params.requestIds[0],\n financial: (() => {\n switch (curveSet.params.financial) {\n case -1:\n return 'All topics';\n case 0:\n return 'Non Financial';\n case 1:\n return 'Financial';\n }\n })(),\n curveType:\n curveSet.params.curveType.toUpperCase() === 'RAW'\n ? 'No smoothing'\n : `${curveSet.params.curveType} smoothing`,\n language:\n Constant.LanguagesMapping[\n JSON.stringify(curveSet.params.language.sort())\n ],\n messageType:\n Constant.MessageTypesMapping[\n JSON.stringify(curveSet.params.messageType.sort())\n ],\n expert: {\n name: curveSet.params.expert ? 'Expert' : 'Global',\n title: curveSet.params.expert\n ? 'Only people qualified as expert on social trading'\n : 'All the population'\n },\n sector: {\n name: sectorName,\n title: Constant.SectorsBackToFront[sectorName].name || '',\n icon: Constant.SectorsBackToFront[sectorName].icon || ''\n },\n asset: {\n name: assetName,\n title: Constant.AssetsBackToFront[assetName].name || '',\n icon: Constant.AssetsBackToFront[assetName].icon || ''\n },\n engine: {\n name:\n Constant.EnginesKeyValue[curveSet.params.engine.toLowerCase()].name,\n title:\n Constant.EnginesKeyValueTitle[curveSet.params.engine.toLowerCase()]\n .name\n },\n ticker: curveSet.params.ticker,\n alerts: curveSet.alertsList\n });\n });\n return curveInfos;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/currently-displayed/currently-displayed.component.ts","module.exports = \"
    \\n
    \\n \\n\\n
    \\n \\n
    \\n\\n \\n
    Curve set by filters
    \\n
    \\n\\n
      \\n
    • \\n \\n
    • \\n\\n \\n
    • \\n
      \\n\\n
    • \\n \\n
    • \\n\\n \\n
    • \\n
      \\n
    \\n\\n \\n \\n \\n
    \\n \\n \\n \\n \\n
    \\n\\n \\n\\n\\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/curve-panel/curve-panel.component.html\n// module id = ./src/app/shared/components/curve-panel/curve-panel.component.html\n// module chunks = main","module.exports = \".curve-panel {\\n border: none;\\n border-radius: 4px;\\n -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 0; }\\n .curve-panel .curve-panel__heading {\\n background-color: #90708c;\\n color: white;\\n border-top-left-radius: 4px;\\n border-top-right-radius: 4px;\\n height: 40px;\\n padding: 0 10px; }\\n .curve-panel .curve-panel__heading .toggle-visibility {\\n vertical-align: top;\\n margin-top: 5px; }\\n .curve-panel .curve-panel__heading .asset {\\n display: inline-block; }\\n .curve-panel .curve-panel__heading .filters {\\n display: inline-block;\\n vertical-align: top;\\n margin-top: 7px;\\n font-weight: 500; }\\n .curve-panel .curve-panel__heading ul.class-sector {\\n display: inline-block;\\n margin: 0;\\n padding: 0;\\n margin-left: 10px;\\n margin-top: 8px;\\n height: 20px;\\n vertical-align: top; }\\n .curve-panel .curve-panel__heading ul.class-sector li {\\n height: inherit;\\n display: inline-block;\\n vertical-align: top; }\\n .curve-panel .curve-panel__heading ul.class-sector li img {\\n height: inherit;\\n max-width: 30px;\\n padding: 0 5px; }\\n .curve-panel .curve-panel__heading .remove-curve {\\n float: right;\\n margin-top: 4px; }\\n .curve-panel .curve-panel__body {\\n padding: 5px;\\n text-align: center; }\\n .curve-panel .curve-panel__body button {\\n border: none; }\\n .curve-panel .displayed-alert {\\n font-weight: 500;\\n display: inline-block; }\\n .curve-panel .curve-panel__footer {\\n background-color: #f7f6f6;\\n color: black;\\n height: 40px;\\n padding: 0;\\n border-bottom-left-radius: 4px;\\n border-bottom-right-radius: 4px; }\\n .curve-panel .curve-panel__footer .footer__actions {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n height: 100%;\\n vertical-align: top;\\n font-size: 0; }\\n .curve-panel .curve-panel__footer .footer__actions .footer__action {\\n width: calc(100% / 3);\\n height: inherit;\\n padding: 10px 0;\\n display: inline-block;\\n -webkit-transition: background-color 100ms linear;\\n transition: background-color 100ms linear;\\n text-align: center;\\n vertical-align: top; }\\n .curve-panel .curve-panel__footer .footer__actions .footer__action:hover {\\n background-color: #dedcdc;\\n cursor: pointer; }\\n .curve-panel .curve-panel__footer .footer__actions .footer__action .footer__action__icon {\\n height: 20px;\\n width: 20px;\\n margin-right: 5px; }\\n .curve-panel .curve-panel__footer .footer__actions .footer__action .footer__action__text {\\n display: inline-block;\\n vertical-align: top;\\n font-size: 14px; }\\n .curve-panel .curve-panel__footer .footer__actions .footer__action--green {\\n border-right: 1px solid #ddd;\\n background-color: #65cba1; }\\n .curve-panel .curve-panel__footer .footer__actions .footer__action--green:hover {\\n background-color: #40bc8a;\\n cursor: pointer; }\\n .curve-panel .curve-panel__footer .footer__actions .footer__action--disabled {\\n background-color: #f7f6f6;\\n color: #948d8d; }\\n .curve-panel .curve-panel__footer .footer__actions .footer__action--disabled:hover {\\n background-color: #f7f6f6;\\n cursor: not-allowed; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/curve-panel/curve-panel.component.scss\n// module id = ./src/app/shared/components/curve-panel/curve-panel.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport Ticker from '../../models/ticker.model';\nimport { ChartsService } from '../../services/charts/charts.service';\nimport { Constant } from '../../utils/constant';\nimport { CreateAlertModalComponent } from '../create-alert-modal/create-alert-modal.component';\n\nexport interface CurveSetInfo {\n asset: {\n name: string;\n title: string;\n icon: string;\n };\n sector: {\n name: string;\n title: string;\n icon: string;\n };\n engine: {\n name: string;\n title: string;\n };\n messageType: string;\n language: string;\n expert: {\n name: string;\n title: string;\n };\n curveType: string;\n financial: string;\n requestId: number;\n ticker: Ticker;\n alerts: { name: string; hash: string; creationDate: string }[];\n}\n\n@Component({\n selector: 'app-curve-panel',\n templateUrl: './curve-panel.component.html',\n styleUrls: ['./curve-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CurvePanelComponent implements OnChanges, OnInit, OnDestroy {\n @Input()\n curveSetInfo: CurveSetInfo;\n @Input()\n index: number;\n @Input()\n portfolios: { label: string; command: (tickerId: number) => void }[];\n @Input()\n isCurveVisible = true;\n\n @Output()\n toggleVisibility = new EventEmitter<{ requestId: number }>();\n @Output()\n curveSetUpdate = new EventEmitter<{ property: string; value: string }>();\n @Output()\n curveSetDelete = new EventEmitter();\n @Output()\n displayedAlertChange = new EventEmitter<{\n alertHash: string;\n alertName: string;\n requestId: number;\n }>();\n\n @ViewChild('createAlertModal', { read: ViewContainerRef })\n createAlertModal: ViewContainerRef;\n\n Constant = Constant;\n\n dropdowns = [\n {\n name: 'Engine',\n property: 'engine',\n options: [\n { name: 'All engines', value: 'ALL' },\n { name: 'Trading Opinion', value: 'BULLISH_SCORE' },\n { name: 'Emotions', value: 'EMOTIONS' },\n { name: 'Sentiment', value: 'SENTIMENT' }\n ]\n },\n {\n name: 'Message type',\n property: 'messageType',\n options: Object.keys(Constant.MessageTypesMapping).map(value => ({\n name: Constant.MessageTypesMapping[value],\n value: value\n }))\n },\n {\n name: 'Curve type',\n property: 'curveType',\n options: [\n { name: 'EMA_30 smoothing', value: 'EMA_30' },\n { name: 'EMA_150 smoothing', value: 'EMA_150' },\n { name: 'No smoothing', value: 'RAW' }\n ]\n },\n {\n name: 'Expert mode',\n property: 'expert',\n options: [{ name: 'Global', value: 0 }, { name: 'Experts', value: 1 }]\n },\n {\n name: 'Language',\n property: 'language',\n options: Object.keys(Constant.LanguagesMapping).map(value => ({\n name: Constant.LanguagesMapping[value],\n value: value\n }))\n },\n {\n name: 'Financial mode',\n property: 'financial',\n options: [\n {\n name: 'All topics',\n value: -1\n },\n {\n name: 'Financial',\n value: 1\n },\n {\n name: 'Non Financial',\n value: 0\n }\n ]\n }\n ];\n\n displayedAlert: { name: string; hash: string; creationDate: string };\n\n private destroy$ = new Subject();\n\n constructor(\n private chartsService: ChartsService,\n private resolver: ComponentFactoryResolver\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.curveSetInfo && changes.curveSetInfo.currentValue) {\n if (this.curveSetInfo.alerts && this.curveSetInfo.alerts.length > 0) {\n this.displayedAlert = this.curveSetInfo.alerts[0];\n } else {\n this.displayedAlert = undefined;\n }\n }\n }\n\n ngOnInit(): void {}\n\n /**\n * Deletes a set of curves.\n *\n * @param {number} index\n * @memberof MarketSentimentAnalysisComponent\n */\n deleteCurveSet(): void {\n this.curveSetDelete.emit();\n }\n\n onToggleVisibility(): void {\n this.toggleVisibility.emit({\n requestId: this.curveSetInfo.requestId\n });\n }\n\n updateCurveSet(property: string, value: string): void {\n if (property === 'engine') {\n this.updateMessageTypes(value);\n } else if (property === 'messageType') {\n this.updateEngines(value);\n }\n this.curveSetUpdate.emit({ property: property, value: value });\n }\n\n onDisplayedAlertChange(alertHash: string, alertName: string): void {\n this.displayedAlertChange.emit({\n alertHash,\n alertName,\n requestId: this.curveSetInfo.requestId\n });\n }\n\n updateEngines(messageType: string): void {\n if (!(messageType === '[0,1,2,3]' || messageType === '[3]')) {\n this.dropdowns.find(\n dropdown => dropdown.property === 'engine'\n ).options = [\n { name: 'All engines', value: 'ALL' },\n // { name: 'Trading Opinion', value: 'BULLISH_SCORE' },\n { name: 'Emotions', value: 'EMOTIONS' },\n { name: 'Sentiment', value: 'SENTIMENT' }\n ];\n } else {\n this.dropdowns.find(\n dropdown => dropdown.property === 'engine'\n ).options = [\n { name: 'All engines', value: 'ALL' },\n { name: 'Trading Opinion', value: 'BULLISH_SCORE' },\n { name: 'Emotions', value: 'EMOTIONS' },\n { name: 'Sentiment', value: 'SENTIMENT' }\n ];\n }\n }\n\n updateMessageTypes(engine: string): void {\n if (engine === 'BULLISH_SCORE') {\n this.dropdowns.find(\n dropdown => dropdown.property === 'messageType'\n ).options = Object.keys(Constant.MessageTypesMapping)\n .map(key => ({\n name: Constant.MessageTypesMapping[key],\n value: key\n }))\n .filter(\n messageType =>\n messageType.value === '[3]' || messageType.value === '[0,1,2,3]'\n );\n } else {\n this.dropdowns.find(\n dropdown => dropdown.property === 'messageType'\n ).options = Object.keys(Constant.MessageTypesMapping).map(key => ({\n name: Constant.MessageTypesMapping[key],\n value: key\n }));\n }\n }\n\n dropdownName(_, item: any): string {\n return item.name;\n }\n\n getSelectedOptionName(property: string): string {\n const option = this.curveSetInfo[property];\n return typeof option === 'object' ? option.name : option;\n }\n\n createAlert(ticker: Ticker): void {\n const createAlertModalFactory = this.resolver.resolveComponentFactory(\n CreateAlertModalComponent\n );\n const component = this.createAlertModal.createComponent(\n createAlertModalFactory\n );\n component.instance.ticker = ticker;\n component.instance.alertCreated\n .pipe(takeUntil(this.destroy$))\n .subscribe(tickerId => {\n if (\n !this.chartsService.curveSets.some(curveSet => {\n if (curveSet.params.ticker && curveSet.params.ticker.tickerId) {\n return curveSet.params.ticker.tickerId === tickerId;\n }\n return false;\n })\n ) {\n // If the currently displayed curve sets does not include a curve set with the alert ticker id,\n // get the default curve set for this ticker id.\n this.chartsService\n .getCurveSets([{ ticker: { tickerId } }], true)\n .pipe(takeUntil(this.destroy$))\n .subscribe();\n } else {\n // Update the current curve sets to get the new alert.\n this.chartsService.updateGraphics(null, { market: true }).subscribe();\n }\n });\n component.instance.alertCreatedModal.onHidden\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => component.destroy());\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/curve-panel/curve-panel.component.ts","module.exports = \"
    \\n
    \\n\\n
    value}\\\">
    \\n\\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/discrete-progress-bar/discrete-progress-bar.component.html\n// module id = ./src/app/shared/components/discrete-progress-bar/discrete-progress-bar.component.html\n// module chunks = main","module.exports = \".vol-img-container {\\n display: inline-block;\\n width: 10%;\\n height: 20px;\\n border: 1px solid rgba(255, 255, 255, 0); }\\n\\n.vol-img {\\n width: 100%;\\n height: 100%;\\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); }\\n\\n.empty {\\n background-color: #f5f5f5; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/discrete-progress-bar/discrete-progress-bar.component.scss\n// module id = ./src/app/shared/components/discrete-progress-bar/discrete-progress-bar.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport { Constant } from '../../utils/constant';\n\n@Component({\n selector: 'app-discrete-progress-bar',\n templateUrl: './discrete-progress-bar.component.html',\n styleUrls: ['./discrete-progress-bar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DiscreteProgressBarComponent implements OnInit, OnChanges {\n @Input() value: number;\n @Input() tooltipContent: string;\n @Input() type: string;\n @Input() length = 10;\n\n items: number[] = [];\n\n Constant = Constant;\n\n constructor() {}\n\n ngOnInit() {\n for (let i = 1; i < this.length + 1; i++) {\n this.items.push(i);\n }\n }\n\n index(index: number, item: any): number {\n return index;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.value) {\n const diff = changes.value.currentValue - changes.value.previousValue;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/discrete-progress-bar/discrete-progress-bar.component.ts","module.exports = \"
    \\n
    \\n {{message}}\\n
    \\n
    \\n\\n \\n
    \\n
    \\n\\n\\n
    \\n
    \\n Importing file...\\n
    \\n \\n
    \\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/dropzone/dropzone.component.html\n// module id = ./src/app/shared/components/dropzone/dropzone.component.html\n// module chunks = main","module.exports = \"#dropzone,\\n#disabled-dropzone {\\n border: 1px dashed #948d8d;\\n padding: 40px 0;\\n margin: 0; }\\n\\n#dropzone {\\n cursor: pointer; }\\n\\n#dropzone:hover {\\n background-color: #f0f0f0; }\\n\\n#disabled-dropzone {\\n cursor: not-allowed; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/dropzone/dropzone.component.scss\n// module id = ./src/app/shared/components/dropzone/dropzone.component.scss\n// module chunks = main","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild\n} from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { mergeMap, takeUntil, toArray } from 'rxjs/operators';\n\n@Component({\n selector: 'app-dropzone',\n templateUrl: './dropzone.component.html',\n styleUrls: ['./dropzone.component.scss']\n})\nexport class DropzoneComponent implements OnDestroy {\n private files: File[] = [];\n\n @ViewChild('uploadForm')\n uploadForm: NgForm;\n\n @Input()\n message = 'Drop file here or click to upload.';\n @Output()\n error = new EventEmitter();\n @Output()\n contentUploaded = new EventEmitter<[{ content: string; name: string }]>();\n\n uploading = false;\n\n private destroy$ = new Subject();\n\n constructor() {}\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n drop(event: DragEvent) {\n event.preventDefault();\n this.uploading = true;\n\n if (event.dataTransfer.files.length > 0) {\n this.files = Array.from(event.dataTransfer.files);\n this.uploadForm.ngSubmit.emit();\n } else {\n this.error.emit('Invalid file.');\n }\n }\n\n dragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n dragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n fileSelected(event: Event) {\n this.uploading = true;\n\n if ((event.target as any).files.length > 0) {\n this.files = Array.from((event.target as any).files);\n this.uploadForm.ngSubmit.emit();\n } else {\n this.error.emit('Invalid file.');\n }\n }\n\n onSubmit() {\n Observable.from(this.files)\n .pipe(\n mergeMap((file: File) => {\n const fileReader = new FileReader();\n fileReader.readAsText(file);\n return Observable.create(observer => {\n fileReader.onloadend = event => {\n observer.next({\n content: (event.target as any).result,\n name: file.name\n });\n observer.complete();\n };\n\n fileReader.onerror = error => observer.error(error);\n });\n }),\n toArray(),\n takeUntil(this.destroy$)\n )\n .subscribe(\n result => {\n this.contentUploaded.emit(result as [\n { content: string; name: string }\n ]);\n this.files = [];\n this.uploading = false;\n },\n err => {\n this.uploading = false;\n this.error.emit(err);\n }\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/dropzone/dropzone.component.ts","module.exports = \"\\n
    Préambule
    \\n

    \\n Les présentes Conditions Générales ont pour objet de définir les conditions\\n dans lesquelles l'application « L’Humeur des Marchés » (ci-après\\n l’« Application ») est mise à disposition par SESAMm SAS – Société au\\n capital de 75 250€ - RCS METZ – SIREN : 802024737 - www.sesamm.com - 11\\n Rempart Saint Thiébault - 57000 METZ - TVA intracommunautaire FR87802024737.\\n Directeur de publication du site\\n https://humeurdesmarches.com\\n Florian Aubry ; application hébergée par la société IBM Luxembourg sàrl.\\n

    \\n

    \\n SESAMm SAS doit être contacté exclusivement par courrier électronique à\\n l’adresse contact@sesamm.com ou\\n hdmhelp@sesamm.com.\\n

    \\n

    \\n L'accès au service fourni par l’Application et son utilisation (le «\\n Service ») supposent l'acceptation préalable et sans réserve par\\n l’Utilisateur (ci-après dénommé l’« Utilisateur ») des présentes\\n Conditions Générales d'Utilisation (ci-après « CGU » ou «\\n Conditions Générales »).\\n

    \\n

    \\n L’Application est réservée à un usage professionnel et l’Utilisateur\\n reconnaît et confirme être un professionnel.\\n

    \\n

    Les documents contractuels sont dans l'ordre de priorité décroissant :

    \\n
      \\n
    • \\n en cas de conclusion d’un Contrat d’Utilisation de l’Application, celui-ci\\n et ses éventuelles annexes ;\\n
    • \\n
    • \\n les présentes Conditions Générales d’Utilisation de L’Humeur des Marchés;\\n
    • \\n
    \\n

    \\n En cas de contradiction entre les différents documents, le document de\\n niveau supérieur prévaudra pour l'obligation en cause.\\n

    \\n

    \\n Lors de la première utilisation, les Conditions Générales sont présentées à\\n l’Utilisateur qui doit les accepter pour pouvoir utiliser l’Application.\\n Elles s'appliquent, sans restriction ni réserve, à tous les services rendus\\n par SESAMm SAS auprès des Utilisateurs.\\n

    \\n

    \\n Conformément à la réglementation en vigueur, ces Conditions Générales sont\\n systématiquement communiquées à tout Utilisateur ou prospect qui le demande.\\n Elles sont, de plus, accessibles à tout moment sur le site\\n https://humeurdesmarches.com/login\\n et dans l’onglet « Information » de l’Application.\\n

    \\n

    \\n Les renseignements figurant sur le site web\\n https://humeurdesmarches.com, et\\n tout autre prospectus et les tarifs de SESAMm SAS sont donnés à titre\\n indicatif et sont révisables à tout moment. SESAMm SAS est en droit d'y\\n apporter toutes modifications qui lui paraîtront utiles.\\n

    \\n

    \\n Nous vous remercions de lire les présentes Conditions Générales\\n attentivement avant d'utiliser ou consulter notre Application.\\n

    \\n\\n
    1. Le Service fourni par l’Application :
    \\n

    \\n L’Application est un outil d’information destiné aux professionnels\\n concernant l’analyse automatique d’articles de presse, messages de réseaux\\n sociaux, posts de blogs et de forums relatifs à des entreprises et des\\n produits financiers cotés (ci-après le « Service »). L’Application\\n est accessible à distance grâce à internet.\\n

    \\n

    \\n Après la phase de bêtatest gratuite, l’Application est accessible à distance\\n grâce à internet après un paiement biannuel ou annuel selon la formule\\n choisie par l’Utilisateur, qui deviendra alors client.\\n

    \\n

    \\n Pour passer commande de l’Application, pendant ou à l’issue de la phase de\\n Bêtatest, il convient de prendre contact avec SESAMm SAS à l’adresse\\n contact@sesamm.com. SESAMm SAS\\n prendra ensuite rendez-vous en présentiel ou par un moyen dématérialisé avec\\n le prospect afin de mettre l’Application à disposition. Aucune procédure de\\n commande exclusivement en ligne ne sera assurée. En cas d’accord des\\n parties, le Contrat d’Usage de l’Application sera signé par les parties.\\n

    \\n

    \\n Tout autre service est expressément exclu de l’offre de SESAMm SAS, en\\n particulier les informations disponibles au travers de l’Application ne\\n constituent en aucun cas un service d’assistance pour les décisions\\n d’investissement de l’Utilisateur. Aucun code source n’est mis à disposition\\n de l’Utilisateur du fait du présent Service.\\n

    \\n

    \\n L’accès et l’utilisation de l’Application est réservé aux personnes morales\\n et physiques âgées d’au moins 18 ans pour un usage professionnel.\\n

    \\n

    \\n Le Service est fourni, sous réserve du respect par l’Utilisateur des\\n obligations lui incombant, notamment en ce qui concerne l'acquittement du\\n prix de connexion au réseau sans lequel aucun accès n'est possible au\\n Service.\\n

    \\n

    \\n L’Utilisateur est informé par le SESAMm SAS de l'ensemble des prérequis\\n techniques nécessaires au fonctionnement optimal du service accessible à\\n l'adresse\\n https://humeurdesmarches.com/information/faq. L’Utilisateur est par ailleurs informé du fait que ces prérequis peuvent\\n évoluer, notamment pour des raisons techniques. Si une évolution intervient\\n en cours de contrat, l’Utilisateur en sera informé au préalable.\\n

    \\n\\n
    2. Accès au Service :
    \\n

    \\n Dans le cadre de l’utilisation de l’Application, SESAMm SAS accorde à\\n l’Utilisateur une simple licence d’utilisation personnelle, non-cessible, à\\n titre payant une fois la phase Bêtatest achevée, non exclusive, pour la\\n durée du Service et pour le monde entier.\\n

    \\n

    \\n Le Service est accessible par l’Utilisateur à tout moment, 24H sur 24H et 7\\n jours sur 7, à l'exception des périodes de maintenance dans les conditions\\n définies ci-après. L'accès au Service par les utilisateurs finaux\\n s'effectue, pour chaque utilisateur final, à l'aide de ses identifiants à\\n partir de tout ordinateur fixe ou portable, même non situé dans les locaux\\n de l’Utilisateur.\\n

    \\n

    \\n L'accès aux Services est autorisé pour le nombre d'utilisateurs finaux\\n correspondant à un (1) unique identifiant d’accès à l’Application.\\n L’Utilisateur est informé qu’aucune connexion simultanée n’est possible avec\\n le même identifiant et qu’en cas de tentative d’accès simultané au Service à\\n l’aide du même identifiant, l'accès au Service est impossible pour tout\\n autre utilisateur final que le premier connecté.\\n

    \\n

    \\n La récupération des identifiants s’effectuera auprès du service technique à\\n l’adresse suivante :\\n hdmhelp@sesamm.com\\n

    \\n

    \\n L’Utilisateur ne pourra utiliser l’Application que dans le cadre du Service\\n et conformément aux termes de la licence. Il est responsable de\\n l'utilisation du Service par les utilisateurs finaux. Il lui appartient de\\n veiller à ce que les utilisateurs finaux respectent les conditions\\n contractuelles d'accès au Service. L’Utilisateur ne pourra céder de quelque\\n façon que ce soit le droit d'accès au Service. L’Utilisateur s'engage à ne\\n pas laisser accéder au Service des personnes non autorisées et doit veiller\\n à ce que chaque personne autorisée respecte les règles de confidentialité de\\n ses identifiants.\\n

    \\n

    \\n L’Application et ses contenus, qu'ils soient sous forme rédactionnelle,\\n graphique, d’image, de logo, de marque, de code informatique, nom de\\n domaine, fichiers extraits, base de données (ci-après les «\\n Contenus ») qui ont été apportés par SESAMm SAS, ses sous-traitants\\n et partenaires sont leurs propriétés exclusives et sont protégés à ce titre\\n par les dispositions du Code de la propriété intellectuelle. Toute\\n reproduction et/ou communication au public non autorisée de ces Contenus\\n constitue une contrefaçon passible de sanctions pénales et civiles.\\n

    \\n

    \\n L’Utilisateur devra informer sans délai SESAMm SAS s'il constate une faille\\n de sécurité liée notamment à la communication volontaire ou au détournement\\n d'identifiants et de mots de passe, afin que SESAMm SAS puisse prendre sans\\n délai toute mesure adaptée en vue de faire remédier à la faille de sécurité.\\n

    \\n

    \\n L'accès au Service peut être momentanément interrompu pour des raisons de\\n nécessité liée au Service et notamment afin d'assurer la maintenance des\\n serveurs de SESAMm SAS. Dans cette hypothèse, l’Utilisateur sera informé par\\n courrier électronique au minimum 2 heures à l'avance sauf urgence.\\n

    \\n\\n
    \\n 3. Données personnelles – Loi informatique et liberté :\\n
    \\n

    \\n SESAMm SAS peut collecter des données à caractère personnel sur\\n l’Utilisateur lors de l’inscription sur l’Application tel que son nom\\n prénom, pseudonyme, adresse e-mail, son mot de passe ou ses identifiants de\\n connexion et des données relatives aux moyens de paiement.\\n

    \\n

    \\n Ces données personnelles sont sécurisées et confidentielles. SESAMm SAS\\n utilise uniquement ces données afin d'identifier les Utilisateurs pour\\n fournir et améliorer le Service. En aucun cas ces données ne sont utilisées\\n à des fins commerciales par des tiers. Les destinataires des données sont\\n SESAMm SAS et ses sous-traitants.\\n

    \\n

    \\n Conformément aux dispositions de la Loi n°78-17 du 6 janvier 1978 relative à\\n l’informatique, aux fichiers et aux libertés, l’Utilisateur personne\\n physique dispose à tout moment, d'un droit d'accès, de rectification et de\\n suppression des données à caractère personnel le concernant par l'envoi d'un\\n mail à l'adresse suivante :\\n contact@sesamm.com.\\n

    \\n

    \\n Les données à caractère personnel relatives aux Utilisateurs ne peuvent être\\n conservées au-delà de la durée strictement nécessaire à l’utilisation de\\n l’Application. Toutefois, les données permettant d’établir la preuve d’un\\n droit ou d’un contrat, ou, conservées au titre du respect d’une obligation\\n légale peuvent être archivées conformément aux dispositions en vigueur.\\n

    \\n

    \\n Les données utilisées à des fins de prospection commerciale peuvent être\\n conservées pendant un délai de trois (3) ans à compter de la fin de la\\n relation commerciale. Les données à caractère personnel relatives à un\\n prospect non client peuvent être conservées pendant un délai de trois (3)\\n ans à compter de leur collecte par le responsable de traitement ou du\\n dernier contact émanant du prospect (demande de documentation par exemple).\\n Au terme de ce délai de trois (3) ans, SESAMm SAS pourra reprendre contact\\n avec l’Utilisateur afin de savoir s’il souhaite continuer à recevoir ses\\n sollicitations commerciales. En l’absence de réponse positive et explicite,\\n les données seront supprimées ou archivées conformément aux dispositions en\\n vigueur. Concernant les données relatives aux cartes bancaires, SESAMm SAS\\n n’est pas destinataire de ces informations.\\n

    \\n

    \\n Lorsqu’une personne exerce son droit d’opposition à recevoir de la\\n prospection auprès de SESAMm SAS, les informations permettant de prendre en\\n compte son droit d’opposition sont conservées au minimum trois (3) ans à\\n compter de l’exercice du droit d’opposition. Ces données ne peuvent en aucun\\n cas être utilisées à d’autres fins que la gestion du droit d’opposition.\\n

    \\n

    \\n Au sujet des statistiques de mesure d’audience, les informations stockées\\n dans le terminal des utilisateurs (ex : cookies) ou tout autre élément\\n utilisé pour identifier les utilisateurs et permettant la traçabilité des\\n utilisateurs ne sont pas conservés au-delà de six (6) mois. Les nouvelles\\n visites ne prolongent pas la durée de vie de ces informations. Les données\\n de fréquentation brutes associant un identifiant ne sont pas conservées plus\\n de six (6) mois. Au-delà de ce délai, les données sont supprimées.\\n

    \\n

    \\n L’Utilisateur est informé que l’Application peut reconnaître son terminal\\n lors de ses connexions à l’Application. Ces Cookies ont pour finalité\\n exclusive de permettre ou faciliter la communication par voie électronique\\n ou sont strictement nécessaires à la fourniture du service à la demande\\n expresse de l’Utilisateur.\\n

    \\n\\n
    4. Responsabilité et garanties :
    \\n

    \\n Les contenus fournis au travers de l’Application ne constituent en aucun cas\\n un conseil ou une recommandation de quelque nature que ce soit, notamment\\n financier. SESAMm SAS ne peut assurer en particulier que ceux-ci répondent\\n aux besoins de l’Utilisateur, que le service offert par l’Application sera\\n ininterrompu, opportun, sécurisé ou exempt d'erreur. SESAMm SAS informe ses\\n Utilisateurs que les contenus diffusés au travers de son Application sont\\n fournis sans aucune garantie de fiabilité, de justesse, d’exhaustivité ou\\n d’exactitude.\\n

    \\n

    \\n Les contenus sont fournis en l'état au titre d’une obligation de moyens et\\n SESAMm SAS n'accorde aucune garantie à cet égard autre que celles\\n éventuellement prévues par les dispositions d’ordre public de la loi\\n française.\\n

    \\n

    \\n Les contenus, données et informations disponibles sur l’Application, ne\\n saurait donc engager directement ou indirectement sa responsabilité.\\n L'utilisation de ces contenus est de la seule responsabilité de\\n l’Utilisateur. Il s'engage à avoir la capacité juridique et se reconnaît\\n seul responsable de ses actes et de ses décisions. À ce titre, l’Utilisateur\\n garantit SESAMm SAS, ses sous-traitants et l’ensemble de ses partenaires\\n contre toute revendication d'un tiers à un titre quelconque et contre les\\n conséquences financières qu'une telle revendication pourrait avoir.\\n

    \\n

    \\n L’Application peut proposer des liens vers des sites internet qui\\n n’appartiennent pas à SESAMm SAS et qu’elle ne contrôle pas. Par conséquent,\\n la responsabilité de SESAMm SAS ne peut être en aucun cas engagée par\\n rapport à l'utilisation faite de ces liens externes. SESAMm SAS ne pourra\\n ainsi en aucun cas être tenue responsable des opérations ou transactions\\n menées par l’Utilisateur sur d'autres sites internet ou applications, ni à\\n raison du caractère potentiellement illicite du contenu ainsi consulté.\\n SESAMm SAS n'est pas responsable de la disponibilité de ces sites tiers et\\n ressources externes et ne cautionne ni la publicité, ni les produits ou\\n autres liens ou données figurant sur ces sites Internet ou ressources\\n externes, ou accessibles depuis ceux-ci.\\n

    \\n

    \\n SESAMm SAS ne pourra en aucun cas être tenu pour responsable des préjudices\\n indirects subis par l’Utilisateur qui pourraient survenir du fait ou à\\n l'occasion de l'exécution du Service et de ses suites. Par dommages\\n indirects, on entend notamment, sans que cette liste soit limitative, les\\n pertes de gains ou de profits, perte de données, perte de chance, dommages\\n commerciaux, les conséquences de plaintes ou réclamations de tiers contre\\n l’Utilisateur, nonobstant le fait que SESAMm SAS aurait été averti de\\n l'éventualité de leur survenance, sous réserve des dispositions d'ordre\\n public applicables aux présentes.\\n

    \\n

    \\n L’Utilisateur ne pourra engager la responsabilité de SESAMm SAS en cas de\\n force majeure, de dysfonctionnement informatique ou technique du système\\n informatique de l’Utilisateur, de panne du réseau de communication\\n électronique ou du fournisseur d'accès de l’Utilisateur, de la mauvaise\\n utilisation du service par l’Utilisateur, de faute, négligence, omission ou\\n défaillance de la part de le SESAMm SAS, du non-respect des conseils donnés\\n par SESAMm SAS, de la divulgation ou utilisation illicite d’un mot de passe\\n remis confidentiellement à l’Utilisateur, de la faute, négligence ou\\n omission d'un tiers sur lequel SESAMm SAS n'a aucun pouvoir de contrôle ou\\n de surveillance, suite la demande d'interruption temporaire ou définitive du\\n service émanant d'une autorité administrative ou judiciaire compétente, de\\n la destruction partielle ou totale des informations transmises à\\n l’Utilisateur.\\n

    \\n

    \\n En tout état de cause la responsabilité de SESAMm SAS, en cas de dommages\\n survenu à l’Utilisateur, pour quelque raison que ce soit et quel que soit le\\n fondement juridique invoqué ou retenu, tous préjudices confondus et cumulés,\\n sera expressément limitée et ne pourra en aucun cas excéder le montant\\n facturé par SESAMm SAS lors des douze (12) derniers mois.\\n

    \\n

    \\n SESAMm SAS n'effectue aucune sauvegarde spécifique des contenus communiqués\\n à l’Utilisateur. Il appartient à l’Utilisateur de prendre toutes mesures\\n nécessaires à la sauvegarde de ces contenus pour lesquels SESAMm SAS exclut\\n toutes garanties ou responsabilité.\\n

    \\n

    \\n L’Utilisateur est informé que la connexion aux services s'effectue via le\\n réseau Internet. Il est averti des aléas techniques qui peuvent affecter ce\\n réseau et entraîner des ralentissements ou des indisponibilités rendant la\\n connexion impossible. SESAMm SAS ne peut être tenu responsable des\\n difficultés d'accès aux Services dus à des perturbations du réseau internet.\\n

    \\n

    \\n Toute personne peut à tout moment nous signaler un contenu illicite afin que\\n nous le supprimions, si cette action est appropriée et dans les meilleurs\\n délais en nous écrivant à\\n hdmhelp@sesamm.com. Dans ce cas,\\n SESAMm SAS supprime ledit contenu sur son Application mais ne peut en aucun\\n cas retirer le contenu extérieur. En règle générale, c’est à l’éditeur ou à\\n l’hébergeur du contenu extérieur litigieux qu’il convient de s’adresser.\\n

    \\n\\n
    5. Durée du Service :
    \\n

    \\n Le Service est fourni pour une durée indéterminée et comprend deux phases\\n successives, à savoir la phase de Bêtatest, et la phase payante.\\n

    \\n
    5.1 Première phase de Bêtatest
    \\n

    \\n Une première phase de Bêtatest débute dès l’acceptation par l’Utilisateur\\n des présentes Conditions Générales pour permettre à l’Utilisateur de tester\\n l’Application pour une durée définie par SESAMm.\\n

    \\n

    \\n Cette première phase de test est gratuite et ne donne lieu à aucune\\n facturation de la part de SESAMm SAS. SESAMm se réserve le droit durant\\n cette phase à tout moment et sans préavis de décider de cesser la mise en\\n exploitation du Service, ce qui entrainera l’arrêt de la fourniture du\\n Service.\\n

    \\n
    5.2 Seconde phase payante du Service
    \\n

    \\n Durant la première phase de Bêtatest ou à l’issue de celle-ci, l’Utilisateur\\n qui veut devenir client, doit manifester une volonté expresse et sans\\n équivoque de vouloir entrer dans la deuxième phase payante.\\n

    \\n

    \\n Dans un tel cas, un contrat d’usage de l’Application (le « Contrat ») sera\\n alors conclu et signé entre les parties.\\n

    \\n

    Il entraînera le début de la seconde phase dite ‘‘payante’’.

    \\n\\n
    6. Modification des Conditions Générales
    \\n

    \\n SESAMm SAS demeure entièrement libre de modifier les présentes Conditions\\n Générales à n'importe quel moment. En utilisant l’Application, l’Utilisateur\\n reconnaît avoir pris connaissance et accepter les présentes Conditions\\n Générales en vigueur le jour de l'accès à l’Application.\\n

    \\n

    \\n Lors de la modification des présentes Conditions Générales, celles-ci seront\\n à nouveau présentées à l’Utilisateur pour qu’il les accepte préalablement à\\n l’accès au Service. En cas de refus de la part de l’Utilisateur d’accepter\\n les termes et les conditions des Conditions Générales, celui-ci ne pourra\\n plus accéder à l’Application.\\n

    \\n\\n
    7. Divers
    \\n

    \\n Dans l'hypothèse où une ou plusieurs clause viendrait à être déclarée nulle\\n par une décision de justice ou s'avérerait impossible à mettre en œuvre, la\\n validité des autres dispositions ne sera pas affectée et les parties\\n s'engagent à négocier de bonne foi une disposition de remplacement.\\n

    \\n

    \\n Les titres et sous titres figurant dans les présentes Conditions Générales\\n sont inclus à titre de pure commodité. De convention expresse entre les\\n parties, ces titres et sous titres ne pourront en aucun cas servir à\\n interpréter quelque disposition que ce soit du Contrat.\\n

    \\n

    \\n Le fait pour une partie de ne pas revendiquer l'application d'une\\n disposition quelconque du présent contrat ou d'en tolérer l'inexécution de\\n façon temporaire ou permanente, ne pourra en aucun cas être interprété comme\\n une renonciation par cette partie à exercer les droits qu'elle détient au\\n titre des présentes. Le fait pour une partie de tolérer une inexécution ou\\n une exécution imparfaite du contrat ou plus généralement de tolérer tout\\n acte, abstention ou omission de l'autre partie non conforme aux dispositions\\n du présent contrat ne saurait conférer un droit quelconque à la partie qui\\n bénéficie d'une telle tolérance.\\n

    \\n

    \\n Les présentes Conditions Générales et le Contrat expriment l'intégralité des\\n accords des parties et se substituent à tout accord antérieur, écrit ou oral\\n explicite et implicite. En cas de contrariété entre ces deux documents, le\\n Contrat prime sur les présentes Conditions Générales.\\n

    \\n

    \\n Les parties reconnaissent qu'elles agissent en qualité de co-contractants\\n indépendants. Le présent contrat ne peut avoir pour effet de créer entre\\n elle une société ou association de forme quelconque.\\n

    \\n\\n
    8. Droit applicable et juridiction compétente
    \\n

    Les présentes Conditions Générales sont soumises à la loi française.

    \\n

    \\n En cas de litige à l'occasion de l'interprétation, de l'exécution ou de la\\n résiliation de ces Conditions Générales, les parties s’engagent à essayer de\\n trouver une solution amiable préalablement à toute action judiciaire dans un\\n délai de soixante (60) jours suivant un quelconque litige en relation avec\\n ces Conditions Générales.\\n

    \\n

    \\n \\n Si aucune solution amiable n’a pu être trouvée dans un délai de soixante\\n (60) jours suivant un quelconque litige en relation avec les présentes\\n Conditions Générales, les parties attribuent une compétence exclusive aux\\n juridictions de la ville de Paris.\\n \\n

    \\n

    \\n \\n La présente clause attributive de juridiction à titre exclusif doit être\\n appliquée de la manière la plus large et la plus absolue, y compris en cas\\n de pluralité de défendeurs ou d’appel en garantie, sous réserve des\\n dispositions d’ordre public applicables aux présentes Conditions\\n Générales.\\n \\n

    \\n
    \\n\\n
    Preamble
    \\n

    \\n These General Terms and Conditions aim to set out the terms and conditions\\n under which the application “L’Humeur des Marchés” (hereinafter referred to\\n as the “ Application”) is provided by SESAMm SAS – Company with a\\n capital of €75,250 - registered on the Commercial Registry of METZ under\\n SIREN no. 802024737 – www.sesamm.com–\\n 11 Rempart Saint Thiébault – 57000 METZ – intra-community VAT no.\\n FR87802024737. Managing editor of the\\n https://humeurdesmarches.com\\n website, Florian Aubry, application hosted by IBM Luxembourg sàrl.\\n

    \\n

    \\n SESAMm SAS should be contacted by email only at\\n contact@sesamm.com or\\n hdmhelp@sesamm.com.\\n

    \\n

    \\n By accessing and using the service provided by the Application (the “\\n Service”), the user (hereinafter referred to as the “ User”)\\n unconditionally accepts the General Terms and Conditions of Use (hereinafter\\n “ GTCU” or “ General Terms and Conditions”).\\n

    \\n

    \\n The Application is reserved for professional use and the User acknowledges\\n and confirms that he is a professional.\\n

    \\n

    \\n The contractual documents are in order of priority from highest to lowest:\\n

    \\n
      \\n
    • \\n in the case of entering into an Application User Agreement, this and any\\n annexes;\\n
    • \\n
    • \\n these General Terms and Conditions of Use of L’Humeur des Marchés; Should\\n there be a contradiction between the different documents, the document\\n listed first shall prevail for the obligation concerned.\\n
    • \\n
    \\n

    \\n When the Application is used for the first time, the user is presented with\\n the General Terms and Conditions, which he must accept in order to use the\\n Application. They apply, without restrictions or reservations, to all the\\n services provided to Users by SESAMm SAS.\\n

    \\n

    \\n In accordance with current regulations, these General Terms and Conditions\\n are automatically sent to any User or prospective customer who requests\\n them. They may also be accessed at any time on the Application website\\n https://humeurdesmarches.com/login\\n under the “information” tab.\\n

    \\n

    \\n The details that appear on the website\\n https://humeurdesmarches.com, and\\n in any other prospectus and SESAMm SAS’ prices are for information only and\\n are subject to change at any time. SESAMm SAS reserves the right to make any\\n changes to them that it deems necessary.\\n

    \\n

    \\n Please read these General Terms and Conditions carefully before using or\\n consulting our Application.\\n

    \\n\\n
    1. The Service provided by the Application:
    \\n

    \\n The Application is an information tool aimed at professionals which\\n automatically analyses news articles, social media messages, blogs and forum\\n posts relating to companies and listed financial products (hereinafter\\n referred to as the “ Service”). The Application can be accessed\\n remotely via the Internet.\\n

    \\n

    \\n To order the Application, during or after the beta test phase, please\\n contact SESAMm SAS at\\n contact@sesamm.com. SESAMm SAS will\\n then make either a face-to-face or online appointment with the prospective\\n customer in order to make the Application available. Orders cannot solely be\\n placed online. If they agree to the terms, the parties will sign the\\n Application User Agreement.\\n

    \\n

    \\n Any other service is expressly excluded from SESAMm SAS’ offering, in\\n particular the information available through the Application is not under\\n any circumstances a help desk for the User’s investment decisions. The User\\n is not given a source code with this Service.\\n

    \\n

    \\n Access to and use of the Application is restricted to natural and legal\\n persons aged 18 and over for professional use.\\n

    \\n

    \\n The Service is supplied provided that the User complies with his\\n obligations. He must, in particular, pay the network connection fee or it\\n will not be possible to access the Service.\\n

    \\n

    \\n SESAMm SAS will inform the User about all the technical requirements needed\\n for the service to function to optimum effect, which can be found at\\n https://humeurdesmarches.com/information/faq. The User is also advised that these requirements may change, particularly\\n for technical reasons. If any changes occur during the contract period, the\\n User will be advised of these in advance.\\n

    \\n\\n
    2. Accessing the Service
    \\n

    \\n To use the Application, SESAMm SAS grants the User a personal,\\n non-transferable, non-exclusive licence, against payment, once the beta test\\n phase is complete, that may be used worldwide for the duration of the\\n Service.\\n

    \\n

    \\n The User may access the Service at any time, 7 days a week, except during\\n maintenance periods according to the terms set out below. Each end user will\\n be able to access the Service using his login details from any desktop or\\n laptop, whether or not based at the User’s premises.\\n

    \\n

    \\n Access to the Service is authorised for the number of end users who share\\n one (1) unique user name for the Application. The User is advised that\\n simultaneous connections using the same login details are not possible and\\n that if any attempt is made to access the Application simultaneously using\\n the same login details, only the first end user to connect will be able to\\n access the Service.\\n

    \\n

    \\n Login details may be recovered from the technical department which can be\\n contacted at the following address:\\n hdmhelp@sesamm.com.\\n

    \\n

    \\n The User is only permitted to use the Application as part of the Service and\\n in accordance with the terms of the licence agreement. He is responsible for\\n the end users’ use of the Service. He must ensure that the end users comply\\n with the contractual terms and conditions for accessing the Service. The\\n User is not permitted to transfer the right to access the Service in any way\\n whatsoever. The User undertakes not to give access to the Service to\\n unauthorised persons and will ensure that each authorised person keeps his\\n login details confidential.\\n

    \\n

    \\n The Application and its content, whether it be text, an image, a logo,\\n branding, a computer code, a domain name, extracted files, a database\\n (hereinafter referred to as the “ Content”) supplied by SESAMm SAS,\\n its sub-contractors and partners, remains their exclusive property and is\\n thus protected by the provisions of the French intellectual property code.\\n Any unauthorised reproduction and/or communication to the public of this\\n Content will be deemed an act of counterfeit, punishable by criminal and\\n civil sanctions.\\n

    \\n

    \\n The User will immediately inform SESAMm SAS if it becomes aware of a\\n security breach, particularly if passwords are voluntarily disclosed or\\n stolen, so that SESAMm SAS may take appropriate action straight away in\\n order to remedy this security breach.\\n

    \\n

    \\n Access to the Service may be blocked temporarily if necessary, especially to\\n carry out maintenance work on SESAMm SAS’ servers. Should this happen, the\\n User will be notified by email at least 2 hours before, except in the case\\n of an emergency.\\n

    \\n\\n
    \\n 3. Personal data – the French Data Protection Act (Loi informatique et\\n liberté)\\n
    \\n

    \\n SESAMm SAS may collect personal details about the User, such as his surname,\\n first name, nickname, email address, password or login details and\\n information about payment methods, when he registers with the Application.\\n

    \\n

    \\n These personal details will be kept secure and confidential. SESAMm SAS will\\n only use them to identify Users and to supply and improve the Service. They\\n will never be used by third parties for marketing purposes. The data is for\\n SESAMm SAS and its sub-contractors.\\n

    \\n

    \\n In accordance with the provisions of Law No. 78-17 of 6 January 1978 on data\\n protection, the User who is a natural person has the right to access, amend\\n and delete his personal data, at any time, by sending an email to the\\n following address:\\n contact@sesamm.com.\\n

    \\n

    \\n Users’ personal details may not be held for any longer than the period that\\n is strictly necessary for using the Application. However, data that proves a\\n right or agreement, or held in order to comply with a legal obligation, may\\n be archived in accordance with the provisions in force.\\n

    \\n

    \\n Data used for marketing purposes may be held for a period of three (3) years\\n from the end of the business relationship. Personal details relating to\\n potential customers as opposed to actual customers may be held for a period\\n of (3) years from when they are collected by the data controller or from the\\n last contact made by the potential customer (for example, a request for\\n information). At the end of this three-year period, SESAMm SAS may contact\\n the User again to find out if he wishes to continue receiving marketing\\n material. If a clear, positive response is not given, the details will be\\n removed or archived in accordance with the provisions in force. SESAMm SAS\\n does not hold bank card details.\\n

    \\n

    \\n When a person exercises his right to object to receiving marketing material\\n from SESAMm SAS, the information needed to register this objection is held\\n for a minimum of three (3) years from when the right to object was\\n exercised. This information may not, under any circumstances, be used for\\n any reason other than managing the right to object.\\n

    \\n

    \\n With regard to audience tracking, data stored in the users’ terminal (e.g.\\n cookies) or any other tool used to identify users and enable them to be\\n traced is not held for more than six (6) months. Subsequent visits do not\\n extend the length of time this information is held for. Raw data related to\\n usage linked to a user name is only held for six (6) months. After this, the\\n information is removed.\\n

    \\n

    \\n The User is advised that the Application can recognise his terminal when he\\n is connected to the Application. The sole purpose of these Cookies is to\\n enable or facilitate electronic communication where they are strictly\\n necessary for providing the service on the User’s specific request.\\n

    \\n\\n
    4. Liability and warranties
    \\n

    \\n The content supplied through the Application does not constitute advice or a\\n recommendation of any kind, especially financial. In particular, SESAMm SAS\\n cannot guarantee the content will meet the User’s needs, that the service\\n provided by the Application will be uninterrupted, timely, secure or\\n error-free. SESAMm SAS advises Users that it does not warrant the\\n reliability, precision, completeness or accuracy of the content published on\\n its Application.\\n

    \\n

    \\n The content is supplied “as is” under an obligation of means and SESAMm SAS\\n makes no warranties in this respect other than those stipulated in the\\n public policy provisions of French law.\\n

    \\n

    \\n Thus, it cannot be held directly or indirectly liable for the content, data\\n and information available on the Application. The User is solely responsible\\n for the use of this content. He states that he has legal capacity and\\n acknowledges that he is solely responsible for his actions and decisions. On\\n this basis, the User warrants SESAMm SAS, its sub-contractors and all of its\\n partners against any kind of third-party claims and against any financial\\n consequences that such claims may result in.\\n

    \\n

    \\n The Application may suggest links to websites which do not belong to SESAMm\\n SAS and which it does not control. Consequently, SESAMm SAS shall not be\\n held liable for the use made of these external links. SESAMm SAS thus shall\\n not be held responsible for operations or transactions carried out by the\\n User on other websites or applications, or for the potentially illegal\\n nature of the content consulted. SESAMm SAS is not responsible for the\\n availability of these third-party websites and external resources and does\\n not endorse the advertising, products or other links that appear on these\\n websites or external resources or that may be accessed from them.\\n

    \\n

    \\n SESAMm SAS shall not be held responsible for any indirect loss or the\\n consequences of such loss suffered by the User which may occur from or\\n during the use of the Service. Consequential damage includes, but is not\\n limited to, loss of income or profit, loss of data, loss of opportunity,\\n commercial damage, consequences of third-party grievances or claims against\\n the User, notwithstanding the fact that SESAMm SAS would have been warned\\n about the possibility of such events occurring, subject to the public policy\\n provisions applicable herein.\\n

    \\n

    \\n SESAMm SAS shall not be held liable by the User in the case of force\\n majeure, computing or technical malfunction of the User’s computer system,\\n failure of the User’s electronic communication network or service provider,\\n improper use of the service by the User, fault, negligence, omission or\\n default of SESAMm SAS, failure to follow SESAMm SAS’ advice, unlawful\\n disclosure or use of a password sent confidentially to the User, fault,\\n negligence or omission of a third party whom SESAMm SAS has no power of\\n control or supervision over, after a competent administrative or judicial\\n authority has requested that the service be temporarily or permanently\\n suspended, the partial or total damage to data sent to the User.\\n

    \\n

    \\n In any case, SESAMm SAS’ liability, in the event of loss suffered by the\\n User for any reason and regardless of the legal basis invoked and relied\\n upon, for any type of loss, will be expressly limited and shall not exceed\\n the amount invoiced by SESAMm SAS over the past twelve (12) months.\\n

    \\n

    \\n SESAMm SAS does not create a backup of the content sent to the User. It is\\n the User’s responsibility to take any action required to back up this\\n content, for which SESAMm SAS excludes any warranty or liability.\\n

    \\n

    \\n The User is advised that he must connect to the services via the Internet.\\n He is warned about the technical issues that may affect the Internet and\\n result in a slower service and downtime preventing connection. SESAMm SAS\\n shall not be held liable for problems accessing the Services caused by\\n disruptions to the Internet.\\n

    \\n

    \\n Any person may at any time report illegal content to us so that it may be\\n deleted, if appropriate, as soon as possible, by writing to us at\\n hdmhelp@sesamm.com. In this case,\\n SESAMm will delete the content in question from its Application, but cannot,\\n under any circumstances, remove external content. In general, the editor or\\n host of the contentious external content should be contacted.\\n

    \\n\\n
    5. Duration of the Service
    \\n

    \\n The Service is provided for an indefinite period and includes two successive\\n phases: the beta test phase and the fee-paying phase.\\n

    \\n
    5.1 Initial beta test phase
    \\n

    \\n An initial beta test phase will commence once the User accepts these General\\n Terms and Conditions to allow the User to test the Application for a period\\n set by SESAMm.\\n

    \\n

    \\n This initial test phase is free of charge and will not be invoiced by SESAMm\\n SAS. During this phase, at any time, without notice, SESAMm reserves the\\n right to withdraw the service, which will mean that the Service will no\\n longer be provided.\\n

    \\n
    5.2 Second fee-paying phase
    \\n

    \\n During or after the initial beta test phase, a User who wishes to become a\\n customer must expressly state that they wish to enter the second,\\n fee-paying, phase. In this case, the parties will enter into and sign an\\n Application user agreement (the “ Agreement”).\\n

    \\n

    \\n This will lead to the commencement of the second phase, known as the\\n “fee-paying” phase.\\n

    \\n\\n
    6. Amendments to the General Terms and Conditions
    \\n

    \\n SESAMm SAS remains entirely free to amend these General Terms and Conditions\\n at any time. By using the Application, the User acknowledges that he has\\n read and accepted these General Terms and Conditions applicable on the date\\n the Application was accessed.\\n

    \\n

    \\n If these General Terms and Conditions are amended in any way, they will be\\n sent to the User again so that he can accept them before accessing the\\n Service. Should the User refuse to accept the General Terms and Conditions,\\n he will no longer be able to access the Application.\\n

    \\n\\n
    7. Miscellaneous
    \\n

    \\n Should any provision/s be declared void by the court or prove impossible to\\n implement, the other provisions would remain valid and the parties undertake\\n to negotiate in good faith a replacement provision.\\n

    \\n

    \\n The headings and sub-headings that appear in these General Terms and\\n Conditions are included for convenience. By express consent of the parties,\\n these headings and sub-heading shall under no circumstances be used to\\n interpret any provision whatsoever of the Agreement.\\n

    \\n

    \\n The waiver by a party of the application of any of the provisions in this\\n agreement or temporary or permanent acceptance of the breach of a provision,\\n shall not be interpreted as this party waiving the rights conferred to it\\n herein. The acceptance by a party of the breach or incomplete performance of\\n the contract, or more generally, of any act, failure to act or omission by\\n the other party that does not comply with the provisions of this agreement\\n will not confer any rights whatsoever to the party benefiting from this\\n acceptance.\\n

    \\n

    \\n These General Terms and Conditions and the Agreement express all the\\n agreements between the parties and replace any previous agreement, whether\\n it be written, verbal, express or implied. If there is a contradiction\\n between these two documents, the Agreement shall take precedence over these\\n General Terms and Conditions.\\n

    \\n

    \\n The parties accept that they are acting in the capacity of independent\\n co-contracting parties. This agreement shall not result in them becoming a\\n company or partnership of any kind.\\n

    \\n\\n
    8. Applicable law and jurisdiction
    \\n

    These General Terms and Conditions are subject to French law.

    \\n

    \\n Should a dispute arise in the interpretation, performance or termination of\\n these General Terms and Conditions, the parties undertake to endeavour to\\n seek an amicable solution before taking legal action within sixty (60) days\\n of any dispute relating to these General Terms and Conditions.\\n

    \\n

    \\n \\n If, after sixty (60) days following a dispute relating to these General\\n Terms and Conditions, the parties are unable to find a solution, the\\n courts of the city of Paris will have exclusive jurisdiction in the\\n matter.\\n \\n

    \\n

    \\n \\n This clause conferring exclusive jurisdiction must be applied in the\\n broadest possible sense with no restrictions, even in cases of several\\n defendants or the introduction of third parties, subject to the public\\n policy provisions that apply to these General Terms and Conditions.\\n \\n

    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/gcu-content/gcu-content.component.html\n// module id = ./src/app/shared/components/gcu-content/gcu-content.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/gcu-content/gcu-content.component.scss\n// module id = ./src/app/shared/components/gcu-content/gcu-content.component.scss\n// module chunks = main","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-gcu-content',\n templateUrl: './gcu-content.component.html',\n styleUrls: ['./gcu-content.component.scss']\n})\nexport class GcuContentComponent implements OnInit {\n @Input() language: string;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/gcu-content/gcu-content.component.ts","module.exports = \"
    \\n
    {{title}}: {{overall}}
    \\n
    \\n\\n
    \\n \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/horizontal-bar-chart/horizontal-bar-chart.component.html\n// module id = ./src/app/shared/components/horizontal-bar-chart/horizontal-bar-chart.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/horizontal-bar-chart/horizontal-bar-chart.component.scss\n// module id = ./src/app/shared/components/horizontal-bar-chart/horizontal-bar-chart.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnInit\n} from '@angular/core';\n\n@Component({\n selector: 'app-horizontal-bar-chart',\n templateUrl: './horizontal-bar-chart.component.html',\n styleUrls: ['./horizontal-bar-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HorizontalBarChartComponent implements OnInit, OnChanges {\n options = {\n chart: {\n type: 'bar',\n height: 250\n },\n title: {\n text: null\n },\n subtitle: {\n text: null\n },\n xAxis: {\n categories: [],\n title: {\n text: null\n }\n },\n yAxis: {\n title: {\n text: null\n }\n },\n tooltip: {\n enabled: false\n },\n legend: {\n enabled: false\n },\n plotOptions: {\n bar: {\n dataLabels: {\n enabled: true\n }\n },\n series: {\n colorByPoint: true\n }\n },\n credits: {\n enabled: false\n },\n series: []\n };\n\n chart: any;\n\n @Input()\n data: any;\n @Input()\n title: string;\n @Input()\n overall: number;\n\n constructor() {}\n\n ngOnInit() {}\n\n ngOnChanges() {\n if (this.chart === undefined) {\n this.options.xAxis.categories = this.data.categories;\n this.options.series.push({\n data: this.data.series,\n pointWidth: 20\n });\n } else {\n this.chart.series[0].setData(this.data.series, true, true);\n }\n }\n\n saveInstance(chartInstance: any) {\n this.chart = chartInstance;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/horizontal-bar-chart/horizontal-bar-chart.component.ts","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/icon/icon.component.html\n// module id = ./src/app/shared/components/icon/icon.component.html\n// module chunks = main","module.exports = \":host {\\n display: inline-block;\\n height: 24px;\\n width: 24px;\\n fill: currentColor; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/icon/icon.component.scss\n// module id = ./src/app/shared/components/icon/icon.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { IconRegistryService } from '../../services/icon-registry/icon-registry.service';\n\n@Component({\n selector: 'app-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IconComponent implements OnChanges, OnInit, OnDestroy {\n @Input()\n svgIcon;\n\n @Input()\n color = 'black';\n\n @HostBinding('attr.role')\n role = 'img';\n\n private destroy$ = new Subject();\n\n constructor(\n private iconRegistry: IconRegistryService,\n private elementRef: ElementRef\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.svgIcon) {\n if (this.svgIcon) {\n this.iconRegistry\n .getSvgIcon(this.svgIcon)\n .pipe(takeUntil(this.destroy$))\n .subscribe(svg => this.setSvgElement(svg));\n } else {\n this.clearSvgElement();\n }\n }\n }\n\n ngOnInit(): void {}\n\n private setSvgElement(svg: SVGElement): void {\n this.clearSvgElement();\n\n // Workaround for IE11 and Edge ignoring `style` tags inside dynamically-created SVGs.\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/\n // Do this before inserting the element into the DOM, in order to avoid a style recalculation.\n const styleTags = svg.querySelectorAll('style') as NodeListOf<\n HTMLStyleElement\n >;\n\n for (let i = 0; i < styleTags.length; i++) {\n styleTags[i].textContent += ' ';\n }\n\n const paths = svg.getElementsByTagName('path'); // += `color: ${this.color}`;\n if (paths.length > 0) {\n paths[0].setAttribute('fill', this.color);\n } else {\n svg.getElementsByTagName('image')[0].setAttribute('height', '100%');\n svg.getElementsByTagName('image')[0].setAttribute('width', '100%');\n }\n\n this.elementRef.nativeElement.appendChild(svg);\n }\n\n private clearSvgElement(): void {\n const layoutElement: HTMLElement = this.elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n // Remove existing non-element child nodes and SVGs, and add the new SVG element. Note that\n // we can't use innerHTML, because IE will throw if the element has a data binding.\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n // 1 corresponds to Node.ELEMENT_NODE. We remove all non-element nodes in order to get rid\n // of any loose text nodes, as well as any SVG elements in order to remove any old icons.\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n layoutElement.removeChild(child);\n }\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/icon/icon.component.ts","module.exports = \"
    \\n
    \\n
    \\n\\n
    \\n

    Import alerts

    \\n\\n \\n
    \\n\\n
    \\n\\n
    \\n
    \\n
    Upload alerts
    \\n \\n \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    Manage imported alerts
    \\n

    To update an alert's name or to remove an alert, click on the corresponding table's\\n row below.

    \\n

    Error: {{alertCreationError}}

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

    Can't process imported alert

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

    \\n An error occurred while processing alert import on this file: {{currentProcessedFile}}.
    \\n Reason: {{errorDetails}}\\n

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

    {{currentAlert?.name}} - {{currentAlert?.ticker}} -\\n {{currentAlert?.strategy}}

    \\n \\n
    \\n\\n
    \\n\\n
    \\n
    \\n\\n \\n
    \\n \\n
    \\n
    \\n
    \\n\\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/import-alert-modal/import-alert-modal.component.html\n// module id = ./src/app/shared/components/import-alert-modal/import-alert-modal.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/import-alert-modal/import-alert-modal.component.scss\n// module id = ./src/app/shared/components/import-alert-modal/import-alert-modal.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { utc } from 'moment';\nimport { ModalDirective } from 'ngx-bootstrap';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { concatMap, mergeMap, takeUntil } from 'rxjs/operators';\nimport Alert, {\n AlertRule,\n alertStrategyBackToFront,\n CurveOperand\n} from '../../models/alert.model';\nimport { AlertsService } from '../../services/alerts/alerts.service';\n\n@Component({\n selector: 'app-import-alert-modal',\n templateUrl: './import-alert-modal.component.html',\n styleUrls: ['./import-alert-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ImportAlertModalComponent implements OnInit, OnDestroy {\n @ViewChild('importAlertModal')\n importAlertModal: ModalDirective;\n\n @ViewChild('cantProcessImportedFile')\n cantProcessImportedFile: ModalDirective;\n\n @ViewChild('alertEditor')\n alertEditor: ModalDirective;\n\n alerts: Alert[] = [];\n rows = [];\n currentAlert: any;\n\n isNotLoading$ = new BehaviorSubject(true);\n currentProcessedFile: string;\n errorDetails: string;\n alertCreationError: string;\n\n columns = [\n // { title: 'Creation date', name: 'creationDate', sort: false },\n { title: 'Alert name', name: 'name', sort: false },\n { title: 'Ticker', name: 'ticker', sort: false },\n { title: 'Strategy', name: 'strategy', sort: false },\n { title: 'Rules', name: 'rules', sort: false }\n ];\n\n config = {\n paging: false,\n sorting: false,\n filtering: false,\n className: ['table-striped', 'table-bordered']\n };\n\n private destroy$ = new Subject();\n\n /**\n * Creates an instance of CreateImportAlertModalComponent.\n * @memberof CreateImportAlertModalComponent\n */\n constructor(private alertsService: AlertsService) {}\n\n ngOnInit(): void {\n this.alertEditor.onHidden.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.currentAlert = null;\n });\n this.show();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Shows the modal.\n *\n * @memberof ImportAlertModalComponent\n */\n show(): void {\n this.importAlertModal.config = { backdrop: true };\n this.importAlertModal.show();\n }\n\n hide() {\n this.importAlertModal.hide();\n }\n\n processContent(files: [{ content: string; name: string }]): void {\n this.isNotLoading$.next(false);\n Observable.from(files)\n .pipe(\n takeUntil(this.destroy$),\n concatMap((file: { content: string; name: string }) => {\n return Observable.create(observer => {\n this.cantProcessImportedFile.onHidden\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.currentProcessedFile = '';\n this.errorDetails = '';\n observer.next();\n return observer.complete();\n });\n\n this.currentProcessedFile = file.name;\n let alert;\n try {\n const json = JSON.parse(file.content);\n\n if (this.alerts.some(a => a.hash === json.hash)) {\n throw new Error('Alert already exist!');\n }\n\n alert = new Alert(\n json.names,\n json.ticker,\n json.strategy,\n json.rules.map(rule => {\n rule.firstOperand = new CurveOperand(\n rule.firstOperand.curveName,\n rule.firstOperand.EMA,\n rule.firstOperand.timeCode\n );\n if (typeof rule.secondOperand !== 'number') {\n rule.secondOperand = new CurveOperand(\n rule.secondOperand.curveName,\n rule.secondOperand.EMA,\n rule.secondOperand.timeCode\n );\n }\n return new AlertRule(\n rule.action,\n rule.firstOperand,\n rule.type,\n rule.secondOperand\n );\n }),\n json.signals,\n json.hash,\n utc(new Date()).unix(),\n json.backtest\n );\n\n this.alerts.push(alert);\n\n this.rows.push({\n name: alert.names[0],\n ticker: alert.ticker.code,\n strategy: alertStrategyBackToFront[alert.strategy],\n rules: alert.getRulesForDisplay(),\n creationDate: utc(alert.creationDate * 1000).format(\n 'YYYY-MM-DD'\n ),\n hash: alert.hash\n });\n\n this.currentProcessedFile = '';\n observer.next();\n observer.complete();\n } catch (err) {\n this.errorDetails = err.message;\n if (this.errorDetails !== 'Alert already exist!') {\n this.errorDetails = 'JSON file malformatted!';\n }\n this.cantProcessImportedFile.show();\n }\n });\n })\n )\n .subscribe(() => {\n this.isNotLoading$.next(true);\n });\n }\n\n importAlert(): void {\n this.alertCreationError = null;\n this.isNotLoading$.next(false);\n if (this.alerts.length) {\n Observable.from(this.alerts)\n .pipe(\n takeUntil(this.destroy$),\n mergeMap((alert: Alert) => {\n alert = Object.assign({}, alert);\n delete alert.backtest;\n delete alert.creationDate;\n delete alert.hash;\n return this.alertsService.createAlert(alert);\n })\n )\n .toArray()\n .subscribe(\n () => {\n this.alerts = [];\n this.rows = [];\n this.isNotLoading$.next(true);\n this.hide();\n },\n err => {\n this.alertCreationError = err.error.message;\n this.isNotLoading$.next(true);\n }\n );\n } else {\n this.alertCreationError = 'No alert to create!';\n this.isNotLoading$.next(true);\n }\n }\n\n onCellClick(event): void {\n this.currentAlert = event.row;\n this.alertEditor.show();\n }\n\n deleteAlert(): void {\n if (this.currentAlert) {\n this.isNotLoading$.next(false);\n this.alerts = this.alerts.filter(a => a.hash !== this.currentAlert.hash);\n this.rows = this.rows.filter(row => row.hash !== this.currentAlert.hash);\n this.isNotLoading$.next(true);\n this.alertEditor.hide();\n }\n }\n\n updateAlertName(name): void {\n if (name.value.trim().length >= 5) {\n this.isNotLoading$.next(false);\n this.alerts[\n this.alerts.findIndex(a => a.hash === this.currentAlert.hash)\n ].names[0] = name.value.trim();\n this.rows[\n this.rows.findIndex(row => row.hash === this.currentAlert.hash)\n ].name = name.value.trim();\n this.isNotLoading$.next(true);\n this.alertEditor.hide();\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/import-alert-modal/import-alert-modal.component.ts","module.exports = \"
    \\n
    \\n
    \\n
    \\n\\n

    Import tickers from CSV

    \\n\\n \\n\\n
    \\n
    \\n\\n
    \\n\\n \\n\\n
    \\n
    \\n
    \\n
    \\n\\n\\n
    \\n Loading...\\n
    \\n \\n
    \\n
    \\n\\n\\n

    File imported:\\n {{ this.filename }} ({{ csv.length }} lines)

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

    Unrecognized tickers

    \\n\\n \\n\\n
    \\n
    \\n The imported file contains unrecognized tickers:\\n
      \\n
    • \\n {{ticker.code}}\\n
    • \\n
    \\n If you continue, they will be ignored.\\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/import-tickers-modal/import-tickers-modal.component.html\n// module id = ./src/app/shared/components/import-tickers-modal/import-tickers-modal.component.html\n// module chunks = main","module.exports = \".capitalize {\\n text-transform: capitalize; }\\n\\n.process-error {\\n color: #f16e44;\\n font-weight: bold;\\n text-align: center;\\n padding: 10px;\\n padding-top: 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/import-tickers-modal/import-tickers-modal.component.scss\n// module id = ./src/app/shared/components/import-tickers-modal/import-tickers-modal.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { Converter } from 'csvtojson';\nimport * as detectCsv from 'detect-csv';\nimport { ModalDirective } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport Ticker from '../../models/ticker.model';\nimport { TickersService } from '../../services/tickers/tickers.service';\n\n@Component({\n selector: 'app-import-tickers-modal',\n templateUrl: './import-tickers-modal.component.html',\n styleUrls: ['./import-tickers-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ImportTickersModalComponent implements OnInit, OnDestroy {\n @ViewChild('importTickersModal')\n importTickersModal: ModalDirective;\n @ViewChild('validationModal')\n validationModal: ModalDirective;\n\n @Input()\n addTickerError: string;\n @Output()\n addTickers = new EventEmitter();\n\n unrecognizedTickers: Ticker[];\n filteredTickers: Ticker[];\n csv: any[][];\n filename: string;\n dropdowns: { name: string; options: { name: string; value: any }[] }[];\n selected: {\n 'ticker code': { name: string; value: any };\n quantity: { name: string; value: any };\n };\n hasHeader: boolean;\n globalQuantity: number;\n loading: boolean;\n processedSuccessfully = false;\n processError = '';\n\n private destroy$ = new Subject();\n\n constructor(\n private ref: ChangeDetectorRef,\n private tickersService: TickersService\n ) {}\n\n ngOnInit() {\n this.init();\n }\n\n init() {\n this.csv = null;\n this.filename = null;\n this.dropdowns = [\n {\n name: 'ticker code',\n options: []\n },\n {\n name: 'quantity',\n options: []\n }\n ];\n\n this.selected = {\n 'ticker code': { name: null, value: null },\n quantity: { name: null, value: null }\n };\n this.hasHeader = true;\n this.ref.markForCheck();\n this.globalQuantity = 1;\n this.loading = false;\n this.processError = '';\n this.processedSuccessfully = false;\n this.unrecognizedTickers = [];\n this.filteredTickers = [];\n }\n\n show() {\n this.importTickersModal.show();\n }\n\n hide() {\n this.importTickersModal.hide();\n }\n\n processContent(files: [{ content: string; name: string }]) {\n const file = files[0];\n this.filename = file.name;\n\n const csvFormat = detectCsv(file.content);\n\n if (!csvFormat) {\n this.processError =\n 'The CSV is malformed: the delimiter can\\'t be detected.\\n Please check your file and retry.';\n return;\n }\n const csv = [];\n\n new Converter({\n noheader: true,\n delimiter: csvFormat.delimiter,\n ignoreEmpty: true,\n checkColumn: true\n })\n .fromString(file.content)\n .on('error', err => {\n // CSV malformed, do not keep vaid values (the user will import the CSV once fixed).\n if (err.err === 'column_mismatched') {\n csv.length = 0;\n this.processError = `The CSV is malformed (line ${err.line}).\\n\n Please verify that the first column contains the ticker codes (either HDM or ISIN),\n and that the second column contains the quantities.`;\n return;\n }\n })\n .on('csv', row => {\n if (row.length > 0) {\n csv.push(row);\n }\n })\n .on('done', () => {\n this.csv = csv;\n this.setDropdowns();\n this.processedSuccessfully = true;\n this.ref.markForCheck();\n });\n }\n\n setDropdowns(row: number = 0) {\n const options = this.csv[row].map((value: string, index: number) => {\n return { name: value, value: '' + index };\n });\n\n this.dropdowns.forEach((dropdown, index) => {\n dropdown.options = options.slice();\n\n\n if (dropdown.name === 'quantity') {\n dropdown.options.unshift({\n name: 'None (global value)',\n value: -1\n });\n\n const optionsIndex = options.map(opt => opt.name).indexOf('quantity');\n this.setSelected(\n dropdown.name,\n options[optionsIndex === -1 ? 0 : optionsIndex]\n );\n } else {\n const optionsIndex = options.map(opt => opt.name).indexOf('asset');\n this.setSelected(\n dropdown.name,\n options[optionsIndex === -1 ? 0 : optionsIndex]\n );\n }\n });\n }\n\n setSelected(dropdownName: string, option: { name: string; value: any }) {\n this.selected[dropdownName] = option;\n this.ref.markForCheck();\n }\n\n submit(validationMade = false) {\n this.loading = true;\n // If we don't come from the validation modal.\n if (!validationMade) {\n // Get ticker codes from CSV.\n const tickerCodes = this.csv.map(row => row[this.selected['ticker code'].value || 0]);\n if (this.hasHeader) {\n tickerCodes.shift();\n }\n\n // Get full tickers.\n this.tickersService\n .getTickers(tickerCodes)\n .pipe(takeUntil(this.destroy$))\n .subscribe(tickers => {\n this.unrecognizedTickers = tickers.filter((ticker, index) => {\n if (ticker.tickerId === -1) {\n return true;\n } else {\n ticker.quantity =\n Number.parseInt(\n this.csv[index + (this.hasHeader ? 1 : 0)][this.selected['quantity'].value || 1]\n ) || 1;\n this.filteredTickers.push(ticker);\n return false;\n }\n });\n\n this.ref.markForCheck();\n\n if (this.unrecognizedTickers.length > 0 && !validationMade) {\n this.validationModal.show();\n } else {\n this.addTickers.emit(this.filteredTickers);\n this.loading = false;\n if (this.validationModal.isShown) {\n this.validationModal.hide();\n }\n this.hide();\n }\n });\n } else {\n this.addTickers.emit(this.filteredTickers);\n this.loading = false;\n if (this.validationModal.isShown) {\n this.validationModal.hide();\n }\n this.hide();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/import-tickers-modal/import-tickers-modal.component.ts","module.exports = \"
    \\n
    \\n \\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/live-feed/live-feed.component.html\n// module id = ./src/app/shared/components/live-feed/live-feed.component.html\n// module chunks = main","module.exports = \"/* #live-feed-wrapper {\\n max-width: 340px;\\n} */\\n#twits-list-wrapper {\\n z-index: 99;\\n overflow-x: hidden;\\n overflow-y: auto;\\n -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n border-radius: 4px;\\n background-color: white; }\\n#twits-list {\\n list-style-type: none;\\n padding: 0;\\n margin: 0; }\\n.twit-item {\\n padding-top: 5px;\\n padding-bottom: 5px;\\n border-bottom: 1px solid #ddd; }\\n.twit-item:hover {\\n background-color: #f5f5f5; }\\n.twit-user-img {\\n margin-right: 10px; }\\n.twit-username {\\n font-size: larger; }\\n.twit-user-link {\\n color: #4f2259; }\\n.twit-body {\\n margin: 5px 10px;\\n width: inherit; }\\n.twit-footer {\\n text-align: right;\\n font-style: italic;\\n color: #565a5c; }\\na.tickers {\\n color: #4f2259; }\\na.tickers:hover {\\n font-weight: bolder;\\n text-decoration: none; }\\n.fixed {\\n position: fixed;\\n top: 100px;\\n right: 15px;\\n width: calc(100% - 66% - 60px); }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/live-feed/live-feed.component.scss\n// module id = ./src/app/shared/components/live-feed/live-feed.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit\n} from '@angular/core';\n\n@Component({\n selector: 'app-live-feed',\n templateUrl: './live-feed.component.html',\n styleUrls: ['./live-feed.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LiveFeedComponent implements OnInit {\n @Input() twits: any;\n @Input() height: number;\n\n fixedLiveFeed = false;\n\n constructor() {}\n\n ngOnInit() {}\n\n twitId(_, item: any) {\n return item.id;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/live-feed/live-feed.component.ts","module.exports = \"
    \\n UTC+0 Time Zone. It is currently {{ date | async }}. Format example: data\\n point at 4:00 represents data from 3:00 to 4:00.\\n
    \\n\\n
    \\n \\n \\n \\n\\n \\n \\n \\n
    \\n\\n\\n\\n
    \\n \\n Market Data\\n by Xignite\\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/mood-curves/mood-curves.component.html\n// module id = ./src/app/shared/components/mood-curves/mood-curves.component.html\n// module chunks = main","module.exports = \"#timezone-information {\\n text-align: center;\\n margin-bottom: 10px; }\\n\\n#no-market-data {\\n text-align: center;\\n font-weight: bold;\\n color: #f16e44; }\\n\\n.btn img {\\n max-width: 14px;\\n max-height: 14px; }\\n\\n.btn.btn-active {\\n background-color: #4f2259; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/mood-curves/mood-curves.component.scss\n// module id = ./src/app/shared/components/mood-curves/mood-curves.component.scss\n// module chunks = main","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport { ChartObject, SeriesObject, SeriesOptions } from 'highcharts';\nimport * as Moment from 'moment';\nimport { interval } from 'rxjs';\nimport { map, share } from 'rxjs/operators';\nimport {\n Curve,\n CurveSet,\n CurveSetParams,\n Quote\n} from '../../models/curve-set.model';\nimport Ticker from '../../models/ticker.model';\nimport { ChartsService } from '../../services/charts/charts.service';\nimport { UtilsService } from '../../services/utils/utils.service';\n\nenum ChartType {\n Column = 'column',\n Spline = 'spline',\n Candlestick = 'candlestick'\n}\n\n@Component({\n selector: 'app-mood-curves',\n templateUrl: './mood-curves.component.html',\n styleUrls: ['./mood-curves.component.scss']\n})\nexport class MoodCurvesComponent implements OnInit, OnChanges {\n readonly CURVES_AXIS = 'curves';\n readonly VOLUME_AXIS = 'volumes';\n readonly PRICES_AXIS_PREFIX = 'prices-quotes';\n readonly PRICES_VOLUME_AXIS = 'prices-volumes';\n\n @Input()\n curveSets: CurveSet[];\n\n // @Input() hideSeries: EventEmitter<{ curve: any }>;\n\n Object = Object;\n ChartType = ChartType;\n\n thereAreQuotes: boolean;\n pricesChartType: ChartType = ChartType.Candlestick;\n // This Map is used as a memory to match the current curve sets with the curves ids.\n currentCurveSets = new Map();\n\n // The quotes computed by chart type for each set (as there is maximum 2 sets we can use tuples).\n cachedQuotes = {\n [ChartType.Candlestick]: [null, null],\n [ChartType.Spline]: [null, null]\n };\n\n // visibilitySubject = new Subject();\n chart: ChartObject;\n options = {\n chart: {\n width: null,\n height: 675,\n animation: true,\n zoomType: 'x'\n },\n // plotOptions: {\n // series: {\n // events: {\n // // hide: (event) => this.visibilitySubject.next(event),\n // // show: (event) => this.visibilitySubject.next(event)\n // }\n // }\n // },\n rangeSelector: {\n selected: 5,\n verticalAlign: 'top',\n y: -5\n },\n navigator: {\n maskFill: 'rgba(70, 26, 82, 0.3)',\n series: {\n type: 'spline'\n }\n },\n yAxis: [\n {\n id: this.CURVES_AXIS,\n title: {\n text: 'Mood curves'\n },\n lineWidth: 0,\n height: '75%',\n endOnTick: false\n },\n {\n id: this.VOLUME_AXIS,\n title: {\n text: 'Mood volumes'\n },\n top: '76%',\n height: '24%',\n offset: 0,\n lineWidth: 0\n }\n ],\n xAxis: { plotLines: [] },\n tooltip: {\n split: true\n },\n scrollbar: {\n enabled: true\n },\n legend: {\n enabled: true,\n verticalAlign: 'top',\n align: 'center'\n },\n credits: {\n enabled: false\n },\n series: []\n /*responsive: {\n rules: [{\n condition: {\n maxWidth: 1024\n },\n chartOptions: {\n chart: {\n height: 525\n }\n }\n }]\n }*/\n };\n\n date = interval(1000).pipe(\n map(() =>\n Moment()\n .utc()\n .format('HH:mm:ss')\n ),\n share()\n );\n\n constructor(private utilsService: UtilsService) {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.pricesChartType && !changes.pricesChartType.firstChange) {\n // Curve type changes.\n this.changePricesChartType(changes.pricesChartType.currentValue);\n }\n if (changes.curveSets) {\n if (changes.curveSets.currentValue) {\n this.thereAreQuotes = this.curveSets.some(\n set => set.quotes && set.quotes.data.length > 0\n );\n // Data changes.\n if (!this.chart) {\n // Page opening (the chart instance has not been saved yet).\n this.initChart();\n } else {\n // The chart instance has already been saved.\n this.updateChart();\n }\n }\n }\n }\n\n /**\n * Saves the chart's instance.\n *\n * @param {ChartObject} chartInstance\n * @memberof MoodCurvesComponent\n */\n saveInstance(chartInstance: ChartObject): void {\n this.chart = chartInstance;\n }\n\n /**\n * Sets the chart options from the data input and creates the first series of the chart.\n *\n * @memberof MoodCurvesComponent\n */\n initChart(): void {\n let seriesIds: string[] = [];\n\n if (this.thereAreQuotes) {\n // If there is quotes, init the prices axes and data.\n seriesIds.push(...this.initPrices());\n }\n this.curveSets.forEach((curveSet, curveSetIndex) => {\n if (curveSetIndex > 0) {\n seriesIds = [];\n }\n // Init curves.\n curveSet.curves.forEach(curve => {\n seriesIds.push(\n this.addSeries(\n curve,\n ChartType.Spline,\n this.CURVES_AXIS,\n curveSetIndex\n )\n );\n });\n // Init volumes.\n seriesIds.push(\n this.addSeries(\n curveSet.volume,\n ChartType.Column,\n this.VOLUME_AXIS,\n curveSetIndex\n )\n );\n // Init signals.\n this.getAlertsSignalsSeries(curveSetIndex).forEach(series =>\n this.options.series.push(series)\n );\n this.currentCurveSets.set(curveSet.params.requestIds[0], seriesIds);\n });\n }\n\n /**\n * Sets chart options for the prices data and returns the prices series.\n *\n * @memberof MoodCurvesComponent\n */\n initPrices(): string[] {\n // Update the curves and volumes axes' sizes (per default there is no price axis).\n this.options.yAxis.forEach(el => {\n if (el.id === this.CURVES_AXIS) {\n el.height = '44%';\n (el as any).threshold = null;\n } else {\n (el as any).top = '90%';\n el.height = '10%';\n }\n });\n\n const seriesIds: string[] = [];\n let firstPriceSeries = true;\n // Iterate on the curve sets.\n this.curveSets.forEach((curveSet: CurveSet, curveSetIndex: number) => {\n if (!(curveSet.quotes && curveSet.quotes.data.length > 0)) {\n // If the set doesn't contain quotes, skip it.\n return;\n }\n\n const pricesAxis = this.createPricesAxis(\n curveSetIndex,\n firstPriceSeries\n ) as any;\n // Add the prices axes.\n this.options.yAxis.push(pricesAxis);\n\n // Add the price volumes axes.\n (this.options.yAxis as any[]).push({\n id: this.PRICES_VOLUME_AXIS,\n title: {\n text: 'Market volumes'\n },\n opposite: false,\n top: '90%',\n height: '10%',\n offset: 0,\n lineWidth: 0\n });\n // Init the prices data.\n seriesIds.push(...this.addPricesSeries(curveSet, curveSetIndex, true));\n firstPriceSeries = false;\n });\n\n return seriesIds;\n }\n\n /**\n * Creates and returns an Axis for a prices series.\n *\n * @param {string} tickerCode the prices series' ticker code.\n * @param {string} currency the prices series' currency.\n * @param {boolean} opposite if the axis must be set at the opposite position.\n * @returns the prices series Axis.\n * @memberof MoodCurvesComponent\n */\n createPricesAxis(curveSetIndex: number, opposite: boolean) {\n const tickerCode = this.curveSets[curveSetIndex].params.ticker.code;\n return {\n id: this.pricesAxisName(tickerCode),\n title: {\n text: this.pricesSeriesName(\n tickerCode,\n this.curveSets[curveSetIndex].quotes.currency\n )\n },\n opposite,\n top: '45%',\n height: '44%',\n offset: 0,\n lineWidth: 0,\n endOnTick: false\n };\n }\n\n /**\n * Updates the chart from the data input and redraws it.\n *\n * @memberof MoodCurvesComponent\n */\n updateChart(): void {\n // Deal with prev curve sets that does not exist anymore.\n this.clearChart();\n // For each current curve set.\n this.curveSets.forEach((curveSet, curveSetIndex) => {\n // Does the the current curve set match a prev curve set ?\n const updateCurveSet = this.currentCurveSets.has(\n curveSet.params.requestIds[0]\n );\n if (updateCurveSet) {\n // Update the prev curve set with current data.\n this.updateCurveSet(curveSet, curveSetIndex);\n } else {\n // Deal with new curve sets.\n this.addCurveSet(curveSet, curveSetIndex);\n }\n });\n\n this.chart.redraw(true);\n }\n\n updateCurveSet(curveSet: CurveSet, curveSetIndex: number): void {\n const prevCurveSetSeriesIds = this.currentCurveSets.get(\n curveSet.params.requestIds[0]\n );\n\n // Update the previsouly existing series (reverse loop to avoid bugs due to array item deletion).\n for (let i = prevCurveSetSeriesIds.length - 1; i > -1; i--) {\n this.updateSeries(prevCurveSetSeriesIds[i], curveSet, curveSetIndex);\n }\n\n // Compute the number of series in the curve set.\n const curveSetSeriesNumber =\n curveSet.curves.length +\n (curveSet.quotes ? 2 : 0) + // Quotes curve series and quotes volume series.\n (curveSet.volume ? 1 : 0); // Always one volume per asset or filter.\n\n if (prevCurveSetSeriesIds.length < curveSetSeriesNumber) {\n // If there is new series, find them and add them to the curve set.\n curveSet.curves.forEach(curve => {\n if (!prevCurveSetSeriesIds.includes(`${curveSetIndex}-${curve.key}`)) {\n // If the curve was not aready in the chart curve set series, create a new series;\n const seriesId = this.addSeries(\n curve,\n ChartType.Spline,\n this.CURVES_AXIS,\n curveSetIndex\n );\n this.currentCurveSets\n .get(curveSet.params.requestIds[0])\n .push(seriesId);\n }\n });\n }\n }\n\n addCurveSet(curveSet: CurveSet, curveSetIndex: number): void {\n // Check if a previous curve set contains quotes.\n const aQuotesSeriesExists = this.curveSets\n .slice(0, curveSetIndex)\n .some(cs => cs.quotes && cs.quotes.data.length > 0);\n\n const seriesIds: string[] = [];\n\n // New curves.\n curveSet.curves.forEach(curve => {\n if (curve.data && curve.data.length > 0) {\n seriesIds.push(\n this.addSeries(\n curve,\n ChartType.Spline,\n this.CURVES_AXIS,\n curveSetIndex\n )\n );\n }\n });\n // New volumes.\n if (curveSet.volume.data && curveSet.volume.data.length > 0) {\n seriesIds.push(\n this.addSeries(\n curveSet.volume,\n ChartType.Column,\n this.VOLUME_AXIS,\n curveSetIndex\n )\n );\n }\n\n if (curveSet.quotes && curveSet.quotes.data.length > 0) {\n // New prices.\n const pricesAxis = this.createPricesAxis(\n curveSetIndex,\n !aQuotesSeriesExists\n );\n this.chart.addAxis(pricesAxis, false, false);\n seriesIds.push(...this.addPricesSeries(curveSet, curveSetIndex, true));\n }\n // New signals.\n this.getAlertsSignalsSeries(curveSetIndex).forEach(series => {\n this.chart.addSeries(series, false);\n });\n this.currentCurveSets.set(curveSet.params.requestIds[0], seriesIds);\n }\n\n /**\n * Updates an existing series with curve set data.\n *\n * @param seriesId the id of the series to update.\n * @param curveSetIndex the index of the curve set to use to update the series.\n */\n updateSeries(seriesId: string, curveSet: CurveSet, curveSetIndex: number) {\n // Check if a previous curve set contains quotes.\n const aQuotesSeriesExists = this.curveSets\n .slice(0, curveSetIndex)\n .some(cs => cs.quotes && cs.quotes.data.length > 0);\n\n const key = this.getKey(seriesId);\n let data: any[];\n\n if (key === 'quotes') {\n // Update quotes themselves.\n this.cachedQuotes = {\n [ChartType.Candlestick]: [null, null],\n [ChartType.Spline]: [null, null]\n };\n data = this.getPricesData(curveSetIndex, this.pricesChartType);\n (this.chart.get(seriesId) as SeriesObject).yAxis.update(\n {\n opposite: !aQuotesSeriesExists\n },\n false\n );\n // Update signals.\n const signalsSeries = this.chart.get(\n `${curveSetIndex}-signals`\n ) as SeriesObject;\n if (signalsSeries && curveSet.signals && curveSet.signals.length > 0) {\n signalsSeries.update(\n {\n data: curveSet.signals,\n name: `${curveSet.signals[0].text} signals (${\n curveSet.params.ticker.code\n })`\n },\n false\n );\n } else if (signalsSeries) {\n signalsSeries.remove(false);\n }\n } else if (key === 'quotes-volume') {\n data = this.getPricesVolumeData(curveSetIndex);\n } else {\n if (curveSet[key]) {\n data = curveSet[key].data;\n } else {\n const curve = curveSet.curves.find(c => c.key === key);\n if (curve) {\n data = curve.data;\n } else {\n // If the series does not exist anymore in the curve set, delete it and remove the series id from the map.\n this.chart.get(seriesId).remove(false);\n const seriesIds = this.currentCurveSets.get(\n curveSet.params.requestIds[0]\n );\n const seriesIndex = seriesIds.findIndex(sId => sId === seriesId);\n seriesIds.splice(seriesIndex, 1);\n return;\n }\n }\n }\n // Update series style.\n (this.chart.get(seriesId) as SeriesObject).update(\n {\n data,\n name: this.createCurveName(key, curveSet.params),\n ...this.getStyle(key, curveSetIndex)\n } as any,\n false\n );\n\n // Ensure the chart is zoomed out.\n this.chart.xAxis[0].setExtremes(\n this.curveSets[0].dates[0],\n this.curveSets[0].dates[this.curveSets[0].dates.length - 1],\n false\n );\n }\n\n getKey(seriesId: string) {\n return seriesId\n .split('-')\n .splice(1)\n .join('-');\n }\n\n /**\n * Removes all existing series of the chart.\n *\n * @memberof MoodCurvesComponent\n */\n removeAllSeries(): void {\n // Get all the prev curve sets request ids.\n const prevRequestIds = Array.from(this.currentCurveSets.keys());\n // Remove each curve of each curve set.\n prevRequestIds.forEach(prevRequestId => {\n this.currentCurveSets.get(prevRequestId).forEach(seriesId => {\n this.removeSeries(seriesId);\n });\n });\n // Clear the map.\n this.currentCurveSets.clear();\n }\n\n /**\n * Removes a series from the chart.\n *\n * @param seriesId The series to remove.\n */\n removeSeries(seriesId: string) {\n const series = this.chart.get(seriesId) as SeriesObject;\n\n if (this.getKey(seriesId) === 'quotes') {\n // If the series is a quotes series, delete its axis (and all the associated series will be deleted with it).\n series.yAxis.remove(false);\n } else {\n series.remove(false);\n }\n }\n\n /**\n * Clears the chart by removing curve sets that doesn't need to be displayed anymore.\n *\n * @memberof MoodCurvesComponent\n */\n clearChart() {\n // If the current curve sets is empty, remove all curves.\n if (this.curveSets.length === 0) {\n this.removeAllSeries();\n return;\n }\n\n // If there are still some curve sets, find the useless series and remove them.\n for (const requestId of Array.from(this.currentCurveSets.keys())) {\n // If the current curve sets doesn't contain a set with the prev request id.\n if (\n !this.curveSets.some(curveSet =>\n curveSet.params.requestIds.includes(requestId)\n )\n ) {\n // Remove all series of the curve set.\n this.currentCurveSets.get(requestId).forEach(seriesId => {\n this.removeSeries(seriesId);\n });\n // Delete the curve set of the map.\n this.currentCurveSets.delete(requestId);\n }\n }\n }\n\n /**\n * Gets the style to apply to a dataset from its name and its type.\n *\n * @param {string} name the name of the dataset\n * @param {string} curveKey the type of the dataset\n * @returns {{ color: string, dashStyle: string }}\n * @memberof MoodCurvesComponent\n */\n getStyle(\n curveKey: string,\n setIndex: number\n ): {\n color: string;\n dashStyle: string;\n lineColor?: string;\n upColor?: string;\n upLineColor?: string;\n } {\n switch (curveKey) {\n case 'volume':\n return {\n color: ChartsService.curveTypeToColors[curveKey][setIndex],\n dashStyle: 'Solid'\n };\n\n case 'quotes':\n const isCandlestick = this.pricesChartType === ChartType.Candlestick;\n\n let color: string;\n let upColor: string;\n\n if (setIndex === 0) {\n upColor = 'green';\n\n if (isCandlestick) {\n color = '#ff0008';\n } else {\n color = '#4f2259';\n }\n } else {\n upColor = '#67A9B5';\n\n if (isCandlestick) {\n color = '#F16E44';\n } else {\n color = '#90708c';\n }\n }\n\n return {\n color,\n upColor,\n lineColor: color,\n upLineColor: upColor,\n dashStyle: 'solid'\n };\n\n case 'quotes-volume':\n return {\n color: ChartsService.curveTypeToColors['volume'][setIndex + 2],\n dashStyle: 'Solid'\n };\n\n default:\n return {\n color: ChartsService.curveTypeToColors[curveKey],\n dashStyle: ChartsService.CurveDashStyles[setIndex]\n };\n }\n }\n\n /**\n * Changes the prices chart type by the type provided as parameter.\n *\n * @param {ChartType} type the type to change for.\n * @memberof MoodCurvesComponent\n */\n changePricesChartType(type: ChartType): void {\n this.pricesChartType = type;\n // Updates each curve sets' series with the data formatted for the new type.\n this.curveSets.forEach((curveSet, curveSetIndex) => {\n if (!(curveSet.quotes && curveSet.quotes.data.length > 0)) {\n // If no prices data, skip the iteration.\n return;\n }\n (this.chart.get(`${curveSetIndex}-quotes`) as SeriesObject).update(\n {\n type,\n data: this.getPricesData(curveSetIndex, type),\n ...this.getStyle('quotes', curveSetIndex)\n } as any,\n false\n );\n });\n\n this.chart.redraw(true);\n }\n\n /**\n * Returns the code of the given ticker (ngFor trackBy method).\n *\n * @param {number} index the index of the ticker in the for loop.\n * @param {*} ticker the ticker.\n * @returns {string} the code of the ticker.\n * @memberof MoodCurvesComponent\n */\n tickerCode(_, ticker: Ticker): string {\n return ticker.code;\n }\n\n /**\n * Computes and returns the prices chart data of the set at the given index from the current prices chart type.\n *\n * @param {string} ticker the ticker corresponding to the data wanted.\n * @returns {number[]} the prices data.\n * @memberof MoodCurvesComponent\n */\n getPricesData(setIndex: number, chartType: ChartType): any[] {\n // if (this.cachedQuotes[chartType][setIndex]) {\n // return this.cachedQuotes[chartType][setIndex];\n // }\n\n if (this.curveSets[setIndex].quotes) {\n const quotesData = this.curveSets[setIndex].quotes.data;\n if (chartType === ChartType.Candlestick) {\n this.cachedQuotes[chartType][setIndex] = quotesData.map(quote => [\n quote.d * 1000, // date\n quote.o, // open\n quote.h, // high\n quote.l, // low\n quote.c // close\n ]);\n } else {\n this.cachedQuotes[chartType][setIndex] = quotesData.map(quote => [\n quote.d * 1000, // date\n quote.c // close\n ]);\n }\n\n return this.cachedQuotes[chartType][setIndex];\n }\n\n return [];\n }\n\n /**\n * Creates a Highcharts series from the given parameters.\n *\n * @param {*} curve the series' dataset.\n * @param {*} style the series' style.\n * @param {ChartType} type the series' type.\n * @param {string} yAxis the series' axis.\n * @returns {any} the series.\n * @memberof MoodCurvesComponent\n */\n createSeries(\n curve: Curve | { key: string; data: Quote[][] },\n options: {\n style: any;\n chartType: ChartType;\n yAxis: string;\n curveSetIndex: number;\n name: string;\n }\n ): any {\n return {\n id: `${options.curveSetIndex}-${curve.key}`,\n name: options.name,\n data: curve.data,\n color: options.style.color,\n upColor: options.style.upColor,\n lineColor: options.style.lineColor,\n upLineColor: options.style.upLineColor,\n dashStyle: options.style.dashStyle,\n animation: options.chartType === ChartType.Column ? false : true,\n // visible: curve.data.some(el => el[1] !== 0) ? true : false,\n marker: {\n enabled: true,\n radius: 0\n },\n type: options.chartType,\n tooltip: {\n valueDecimals: 2\n },\n yAxis: options.yAxis,\n showInNavigator: options.yAxis === this.CURVES_AXIS ? true : false\n };\n }\n\n /**\n * Creates a Highprices series from given parameters.\n *\n * @param {string} tickerCode the series' ticker.\n * @param {boolean} [first=true] determines if the series is the first to be created.\n * @returns {*} the series.\n * @memberof MoodCurvesComponent\n */\n createPricesSeries(curveSet: CurveSet, curveSetIndex: number): any {\n const tickerCode = curveSet.params.ticker.code;\n\n return this.createSeries(\n {\n key: 'quotes',\n data: this.getPricesData(curveSetIndex, this.pricesChartType)\n },\n {\n style: this.getStyle('quotes', curveSetIndex),\n chartType: this.pricesChartType,\n yAxis: this.pricesAxisName(tickerCode),\n name: this.createCurveName('quotes', curveSet.params),\n curveSetIndex\n }\n );\n }\n\n /**\n * Creates a prices volume series from the given ticker.\n *\n * @param {string} tickerCode the series' ticker.\n * @returns {*} the series.\n * @memberof MoodCurvesComponent\n */\n createPricesVolumeSeries(\n curveSetIndex: number\n ): { name: string; data: any[]; key: string } {\n return {\n name: this.pricesVolumeSeriesName(\n this.curveSets[curveSetIndex].params.ticker.code\n ),\n data: this.getPricesVolumeData(curveSetIndex),\n key: 'quotes-volume'\n };\n }\n\n getPricesVolumeData(curveSetIndex: number): Array<[number, number]> {\n const volumeData = [];\n if (\n this.curveSets[curveSetIndex].quotes &&\n this.curveSets[curveSetIndex].quotes.data.length > 0\n ) {\n this.curveSets[curveSetIndex].quotes.data.forEach(quote => {\n volumeData.push([quote.d * 1000, quote.v]);\n });\n }\n return volumeData;\n }\n\n /**\n * Adds a new series created from the given parameters to the chart and returns the series id.\n *\n * @param curve the data points to create the series from.\n * @param chartType the chart type of the series to create.\n * @param yAxis the y axis of the series to create.\n */\n addSeries(\n curve: Curve,\n chartType: ChartType,\n yAxis: string,\n curveSetIndex: number\n ): string {\n const style = this.getStyle(curve.key, curveSetIndex);\n const name = this.createCurveName(\n curve.key,\n this.curveSets[curveSetIndex].params\n );\n const series = this.createSeries(curve, {\n style,\n chartType,\n yAxis,\n curveSetIndex,\n name\n });\n if (this.chart) {\n this.chart.addSeries(series, false);\n } else {\n this.options.series.push(series);\n }\n\n return series.id;\n }\n\n /**\n * Creates the curve name.\n *\n * @param {string} curveKey\n * @param {CurveSetParams} curveSetParams\n * @returns {string}\n * @memberof MoodCurvesComponent\n */\n createCurveName(curveKey: string, curveSetParams: CurveSetParams): string {\n let name = '';\n const differentTickers = this.curveSets.some(set => {\n if (!set.params.ticker || !curveSetParams.ticker) {\n return false;\n } else {\n return (\n set.params.ticker.tickerId != null &&\n set.params.ticker.tickerId !== curveSetParams.ticker.tickerId\n );\n }\n });\n if (this.curveSets.length > 1) {\n // If there is only one curve there is no need to add these details in the curve title.\n if (curveSetParams.ticker && curveSetParams.ticker.tickerId !== null) {\n // If the curve set has a ticker.\n if (differentTickers) {\n // If all sets have not the same ticker, the title must precise the ticker code.\n name += `${curveSetParams.ticker.code} `;\n }\n }\n }\n\n // Curve type, always needed.\n if (curveKey === 'bullish_score') {\n name += 'Trading Opinion ';\n } else if (curveKey === 'quotes') {\n name += 'Prices ';\n } else if (curveKey === 'quotes-volume') {\n name += 'Prices Volume ';\n } else if (curveKey) {\n const pointIndex = curveKey.indexOf('.');\n if (pointIndex < 0) {\n name += this.utilsService.toCamelCase(curveKey) + ' ';\n } else if (curveKey.endsWith('neutral')) {\n name += `Neutral ${this.utilsService.toCamelCase(\n curveKey.substring(0, pointIndex)\n )} `;\n } else {\n name += `${this.utilsService.toCamelCase(\n curveKey.substring(pointIndex + 1)\n )} `;\n }\n }\n\n if (name.length === 0) {\n name = 'All';\n }\n\n return name.trim();\n }\n\n /**\n * Add a prices series to the chart and returns the series id.\n *\n * @param {number} curveSetIndex\n * @param {boolean} volume\n * @param {boolean} first\n * @returns {string[]}\n * @memberof MoodCurvesComponent\n */\n addPricesSeries(\n curveSet: CurveSet,\n curveSetIndex: number,\n volume: boolean\n ): string[] {\n const seriesIds: string[] = [];\n const series = this.createPricesSeries(curveSet, curveSetIndex);\n\n seriesIds.push(series.id);\n const curveKey = 'quotes-volume';\n\n const style = this.getStyle(curveKey, 0);\n let volumeSeries;\n if (volume) {\n volumeSeries = this.createSeries(\n this.createPricesVolumeSeries(curveSetIndex),\n {\n style,\n chartType: ChartType.Column,\n yAxis: this.PRICES_VOLUME_AXIS,\n name: this.createCurveName(\n curveKey,\n this.curveSets[curveSetIndex].params\n ),\n curveSetIndex\n }\n );\n seriesIds.push(volumeSeries.id);\n }\n if (this.chart) {\n this.chart.addSeries(series, false);\n if (volume) {\n this.chart.addSeries(volumeSeries, false);\n }\n } else {\n this.options.series.push(series);\n if (volume) {\n this.options.series.push(volumeSeries);\n }\n }\n\n return seriesIds;\n }\n\n // /**\n // * Handles the hide event and hides the corresponding set of curves.\n // *\n // * @param {{ requestId: number }} event\n // * @memberof MoodCurvesComponent\n // */\n // onHideSeries(event: { requestId: number }): void {\n // this.requestIdSeriesMap.get(event.requestId).forEach(seriesIndex => {\n // const series = this.chart.series[seriesIndex];\n // if (series.visible) {\n // series.hide();\n // } else {\n // series.show();\n // }\n // });\n // }\n\n /**\n * Returns the prices series' name from the given ticker.\n *\n * @param {string} tickerCode the series' ticker.\n * @returns {string} the series' name.\n * @memberof MoodCurvesComponent\n */\n pricesSeriesName(tickerCode: string, currency: string): string {\n return `${tickerCode} Prices (CUR: ${currency})`;\n }\n\n /**\n * Returns the prices volume series' name from the given ticker\n *\n * @param {string} tickerCode the series' ticker.\n * @returns {string} the series' name.\n * @memberof MoodCurvesComponent\n */\n pricesVolumeSeriesName(tickerCode: string): string {\n return `${tickerCode} Prices Volume`;\n }\n\n /**\n * Returns the prices axis' name from the given ticker.\n *\n * @param {string} tickerCode the axis' ticker.\n * @returns {string} the axis' name.\n * @memberof MoodCurvesComponent\n */\n pricesAxisName(tickerCode: string): string {\n return `${this.PRICES_AXIS_PREFIX}-${tickerCode}`;\n }\n\n getAlertsSignalsSeries(curveSetIndex: number): SeriesOptions[] {\n const series = [];\n const curveSet = this.curveSets[curveSetIndex];\n // this.curveSets.forEach(curveSet => {\n if (curveSet.signals && curveSet.signals.length > 0) {\n let pricesSeriesId: string;\n let axisName: string;\n if (this.chart) {\n pricesSeriesId = (this.chart.series.find(s => {\n return s.name === this.createCurveName('quotes', curveSet.params);\n }) as any).userOptions.id;\n axisName = this.chart.get(\n this.pricesAxisName(curveSet.params.ticker.code)\n )\n ? this.pricesAxisName(curveSet.params.ticker.code)\n : undefined;\n } else {\n const pricesSeries: SeriesOptions = this.options.series.find(s => {\n return s.name === this.createCurveName('quotes', curveSet.params);\n });\n if (pricesSeries) {\n pricesSeriesId = pricesSeries.id;\n }\n axisName = this.options.yAxis.find(\n axis => axis.id === this.pricesAxisName(curveSet.params.ticker.code)\n )\n ? this.pricesAxisName(curveSet.params.ticker.code)\n : undefined;\n }\n const signals: Array<{\n text: string;\n title: string;\n x: number;\n color?: string;\n }> = curveSet.signals.map(signal => {\n const sig: any = { ...signal };\n switch (signal.title) {\n case 'Long':\n sig.color = '#67A9B5 ';\n break;\n case 'Short':\n sig.color = '#F16E44';\n break;\n case 'Flat':\n sig.color = '#948d8d';\n break;\n }\n return sig;\n });\n series.push({\n type: 'flags',\n id: `${curveSetIndex}-signals`,\n name: `${signals[0].text} signals (${curveSet.params.ticker.code})`,\n data: signals,\n onSeries: pricesSeriesId,\n shape: 'squarepin',\n allowOverlapX: true,\n yAxis: axisName\n });\n }\n // });\n\n return series;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/mood-curves/mood-curves.component.ts","module.exports = \"\\n
    \\n
    \\n
    \\n \\n \\n \\n Add curve by Ticker\\n \\n\\n \\n
    \\n
    TICKER
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    {{ Constant.Language }}
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    {{ Constant.DataSource }}
    \\n
    \\n \\n {{ Constant.MessageTypesMapping[key] }}\\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n {{ Constant.AnalysisEngine }}\\n
    \\n
    \\n \\n \\n {{ Constant.OpinionScore }}\\n \\n \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    {{ Constant.Curves }}
    \\n
    \\n \\n\\n \\n\\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    {{ Constant.Financial }}
    \\n
    \\n \\n \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n Cancel\\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n \\n
    \\n\\n \\n \\n Add curve by {{ Constant.Filters }}\\n \\n\\n \\n
    \\n
    {{ Constant.Language }}
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    {{ Constant.DataSource }}
    \\n
    \\n \\n {{ Constant.MessageTypesMapping[key] }}\\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n {{ Constant.AnalysisEngine }}\\n
    \\n
    \\n \\n \\n {{ Constant.OpinionScore }}\\n \\n \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    {{ Constant.AssetClasses }}
    \\n
    \\n \\n {{ Constant.AssetsBackToFront[assetName].name }}\\n \\n
    \\n
    \\n\\n
    \\n\\n \\n
    \\n
    {{ Constant.Sectors }}
    \\n
    \\n \\n \\n \\n {{ Constant.SectorsBackToFront[sectorName].name }}\\n \\n \\n
    \\n
    \\n\\n
    \\n
    \\n\\n
    \\n
    {{ Constant.Curves }}
    \\n
    \\n \\n\\n \\n\\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    {{ Constant.Financial }}
    \\n
    \\n \\n \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n Cancel\\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n\\n\\n {{ ticker.code }} - {{ ticker.label }}\\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/msa-menu/msa-menu.component.html\n// module id = ./src/app/shared/components/msa-menu/msa-menu.component.html\n// module chunks = main","module.exports = \".analysis-button {\\n text-align: center;\\n color: white;\\n text-transform: uppercase;\\n min-width: 13%;\\n cursor: pointer;\\n background-color: #997a8d;\\n margin: 3px 3px 10px 3px;\\n padding: 1px;\\n border-radius: 13px /50%;\\n border: solid black 1px; }\\n\\n.error-message {\\n margin-top: 5px;\\n color: #cc5757;\\n font-style: italic; }\\n\\n.ticker-select {\\n margin-top: 15px;\\n overflow-y: visible; }\\n\\n.description {\\n font-style: italic;\\n font-size: 12px;\\n margin-bottom: 10px; }\\n\\n.modal-body {\\n padding: 0; }\\n\\n.menu-form {\\n margin-top: 15px;\\n padding: 15px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/msa-menu/msa-menu.component.scss\n// module id = ./src/app/shared/components/msa-menu/msa-menu.component.scss\n// module chunks = main","import {\n Component,\n ElementRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { ModalDirective } from 'ngx-bootstrap/modal';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, mergeMap, takeUntil } from 'rxjs/operators';\nimport { CurveSetParams } from '../../models/curve-set.model';\nimport { AlertsService } from '../../services/alerts/alerts.service';\nimport { AutoCompService } from '../../services/auto-comp/auto-comp.service';\nimport { ChartsService } from '../../services/charts/charts.service';\nimport { LoadingService } from '../../services/loading/loading.service';\nimport { OverviewService } from '../../services/overview/overview.service';\nimport { TickersService } from '../../services/tickers/tickers.service';\nimport { TimeCodeService } from '../../services/time-code/time-code.service';\nimport { Constant } from '../../utils/constant';\n\n/**\n * Used to add new curves to the stock charts or to replace current curves by new ones.\n *\n * @export\n * @class MsaMenuComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-msa-menu',\n templateUrl: './msa-menu.component.html',\n styleUrls: ['./msa-menu.component.scss']\n})\nexport class MsaMenuComponent implements OnInit, OnDestroy {\n @Output()\n hidden = new EventEmitter();\n @ViewChild('analysisModal')\n analysisModal: ModalDirective;\n @ViewChild('ticker')\n ticker: ElementRef;\n\n Constant = Constant;\n mode: Boolean = false;\n // raw: Boolean = false;\n // ema150: Boolean = false;\n // ema30: Boolean = true;\n tickerErrorMessage: string;\n displayError: Boolean;\n\n dataSource: Observable;\n writtenTicker: string;\n selectedTicker: { code: string; label: string; tickerId: number };\n\n curveType: string;\n messageType: string;\n language: string;\n engine: string;\n asset: string;\n sector: string;\n financial: string;\n\n private destroy$ = new Subject();\n\n constructor(\n public timeCodeService: TimeCodeService,\n public tickersService: TickersService,\n public overviewService: OverviewService,\n private autoCompService: AutoCompService,\n private loadingService: LoadingService,\n private chartsService: ChartsService,\n private alertsService: AlertsService\n ) {}\n\n ngOnInit(): void {\n this.dataSource = Observable.create(observer => {\n // Runs on every search\n observer.next(this.writtenTicker);\n }).pipe(\n takeUntil(this.destroy$),\n debounceTime(300),\n mergeMap((token: string) =>\n this.autoCompService.getTickersAsObservable(token, 20)\n )\n );\n\n this.reInit();\n }\n\n /**\n * Set the focus to ticker name input on modal shown\n */\n setFocus(): void {\n this.ticker.nativeElement.focus();\n }\n\n /**\n * Show the Market Sentiment Analysis modal menu.\n *\n * @memberof MsaMenuComponent\n */\n show(): void {\n this.analysisModal.config = { backdrop: true };\n this.analysisModal.show();\n }\n\n /**\n * Hide the Market Sentiment Analysis modal menu.\n *\n * @memberof MsaMenuComponent\n */\n hide(): void {\n this.analysisModal.hide();\n this.analysisModal.onHidden.subscribe(() => {\n this.hidden.emit();\n });\n }\n\n onTickerSelect(event): void {\n this.selectedTicker = event.item;\n }\n\n /**\n * Parses the form inputs and then get the new data.\n *\n * @param {NgForm} form\n * @returns\n * @memberof MsaMenuComponent\n */\n onSubmit(form: NgForm): void {\n this.loadingService.addLoads();\n const queryParams: CurveSetParams[] = this.chartsService.curveSets.map(\n curveSet => curveSet.params\n );\n const newCurveSetParams: CurveSetParams = {};\n\n for (const field in form.value) {\n if (form.value.hasOwnProperty(field)) {\n if (!/^curveType/.test(field) && field !== 'expertMode') {\n if (field === 'tickerId') {\n if (!!form.value[field]) {\n const tickerId = this.selectedTicker.tickerId; // form.value[field].code || form.value[field];\n if (this.tickersService.exists(tickerId)) {\n newCurveSetParams.ticker = { tickerId } || {\n tickerId: this.selectedTicker.tickerId\n };\n } else {\n this.tickerErrorMessage = this.Constant.TickerNotAvailable;\n this.displayError = true;\n this.loadingService.forceHide();\n return;\n }\n } else {\n this.tickerErrorMessage = this.Constant.TickerRequired;\n this.displayError = true;\n this.loadingService.forceHide();\n return;\n }\n } else if (field !== 'engine') {\n if (!!form.value[field]) {\n newCurveSetParams[field] = form.value[field];\n }\n }\n }\n }\n }\n newCurveSetParams.curveType = this.curveType;\n // params.prevRequests = this.chartsService.getPrevRequests();\n newCurveSetParams.engine = this.engine;\n newCurveSetParams.expert = this.mode ? 1 : 0;\n\n queryParams.push(newCurveSetParams);\n\n this.chartsService.getCurveSets(queryParams, true).subscribe(\n () => {},\n error => {\n console.error(error);\n this.loadingService.forceHide();\n this.alertsService.notifications.push({\n type: 'danger',\n msg:\n 'No Data available - this datasets may only be available for a different' +\n 'type of filter (for example only News / only Social Trading)'\n });\n },\n () => {\n this.loadingService.removeLoads();\n }\n );\n this.hide();\n }\n\n /**\n * Set all the modal menu entries to their initial values\n *\n * @memberof MsaMenuComponent\n */\n reInit(): void {\n // this.SelectByFilter = false;\n\n this.messageType = Object.keys(Constant.MessageTypesMapping)[0];\n this.language = Object.keys(Constant.LanguagesMapping)[0];\n this.financial = '-1';\n this.engine = this.Constant.All.toUpperCase();\n this.asset = this.Constant.Bond.toUpperCase();\n this.sector = this.Constant.BASM.toUpperCase();\n this.curveType = Constant.EMA_30;\n this.selectedTicker = undefined;\n this.writtenTicker = '';\n this.mode = false;\n }\n\n /**\n * Set the focus on the ticker name input when the relevant tab is selected\n *\n * @memberof MsaMenuComponent\n */\n onTickerTabSelected(): void {\n setTimeout(() => {\n this.ticker.nativeElement.focus();\n }, 100);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/msa-menu/msa-menu.component.ts","module.exports = \"\\n
    \\n
    \\n \\n \\\"HDM\\n \\n
    \\n
    \\n \\n\\n
    \\n
    \\n
    \\n \\n \\n \\n\\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n\\n\\n {{ model.code }} - {{ model.label }}\\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/navbar/navbar.component.html\n// module id = ./src/app/shared/components/navbar/navbar.component.html\n// module chunks = main","module.exports = \"#user-icon {\\n width: 30px;\\n height: auto;\\n margin-right: 5px; }\\n\\n#user-dropdown {\\n padding-top: 10px !important;\\n padding-bottom: 10px !important; }\\n\\n#navbar-search {\\n width: 200px; }\\n\\n.navbar-brand > img {\\n max-height: 100%; }\\n\\n.navbar-default {\\n background-color: #4f2259;\\n border-color: #4f2259;\\n border-bottom: none !important; }\\n\\n.navbar-default .navbar-brand {\\n color: #ffffff; }\\n\\n.navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {\\n color: #ffffff; }\\n\\n.navbar-default .navbar-text {\\n color: #ffffff; }\\n\\n.navbar-default .navbar-nav > li > a {\\n color: #ffffff; }\\n\\n.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {\\n color: #ffffff; }\\n\\n.navbar-default .navbar-nav > .active > a {\\n color: #ffffff;\\n background-color: #90708c; }\\n\\n.navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {\\n color: #ffffff;\\n background-color: #90708c; }\\n\\n.navbar-default .navbar-nav > .open > a {\\n color: #ffffff;\\n background-color: #90708c; }\\n\\n.navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {\\n color: #ffffff;\\n background-color: #90708c; }\\n\\n.navbar-default .navbar-toggle {\\n border-color: #4f2259; }\\n\\n.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {\\n background-color: #90708c; }\\n\\n.navbar-default .navbar-toggle .icon-bar {\\n background-color: #ffffff; }\\n\\n.navbar-default .navbar-collapse,\\n .navbar-default .navbar-form {\\n border-color: #4f2259; }\\n\\n.navbar-default .navbar-link {\\n color: #ffffff; }\\n\\n.navbar-default .navbar-link:hover {\\n color: #ffffff; }\\n\\n@media (max-width: 767px) {\\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\\n color: #ffffff; }\\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\\n color: #ffffff; }\\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a {\\n color: #ffffff;\\n background-color: #90708c; }\\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\\n color: #ffffff;\\n background-color: #90708c; } }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/navbar/navbar.component.scss\n// module id = ./src/app/shared/components/navbar/navbar.component.scss\n// module chunks = main","import {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { debounceTime, mergeMap, takeUntil } from 'rxjs/operators';\nimport { AppService } from '../../services/app/app.service';\nimport { AuthService } from '../../services/auth/auth.service';\nimport { AutoCompService } from '../../services/auto-comp/auto-comp.service';\nimport { ChartsService } from '../../services/charts/charts.service';\nimport { LoadingService } from '../../services/loading/loading.service';\nimport { NavbarColorService } from '../../services/navbar-color/navbar-color.service';\nimport { NavigationHelperService } from '../../services/navigation-helper/navigation-helper.service';\nimport { UserService } from '../../services/user/user.service';\nimport { Constant } from '../../utils/constant';\n\n@Component({\n selector: 'app-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss']\n})\nexport class NavbarComponent implements OnInit, OnDestroy {\n @ViewChild('navbarSearch')\n navbarSearch: ElementRef;\n\n selectedTickerCode: string;\n\n dataSource: Observable;\n\n private destroy$ = new Subject();\n\n constructor(\n public authService: AuthService,\n public userService: UserService,\n public navbarColorService: NavbarColorService,\n private chartsService: ChartsService,\n private appService: AppService,\n private loadingService: LoadingService,\n private autoCompService: AutoCompService,\n private navigationHelper: NavigationHelperService\n ) {}\n\n ngOnInit() {\n this.dataSource = Observable.create((observer: Observer) => {\n // Runs on every search\n observer.next(this.selectedTickerCode);\n }).pipe(\n takeUntil(this.destroy$),\n debounceTime(300),\n mergeMap((token: string) =>\n this.autoCompService.getTickersAsObservable(token, 20)\n )\n );\n }\n\n navigateToMsa(tickerId: number) {\n if (this.appService.getCurrentRoute() !== Constant.MSARoute) {\n this.navigationHelper.toMsa(tickerId);\n } else {\n this.loadingService.addLoads();\n\n this.chartsService\n .getCurveSets([{ curveType: 'EMA_30', ticker: { tickerId } }], true)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {},\n error => {\n console.error(error);\n this.loadingService.forceHide();\n },\n () => {\n this.loadingService.removeLoads();\n }\n );\n }\n\n this.navbarSearch.nativeElement.value = '';\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/navbar/navbar.component.ts","module.exports = \"
    \\n
    {{ title }}
    \\n
    \\n\\n\\n \\n\\n\\n
    \\n \\\"\\n [totalItems]=\\\"data.length\\\"\\n itemsPerPage=\\\"5\\\"\\n [(ngModel)]=\\\"currentPage\\\"\\n (pageChanged)=\\\"pageChanged($event)\\\"\\n >\\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/paged-progress-bar-list/paged-progress-bar-list.component.html\n// module id = ./src/app/shared/components/paged-progress-bar-list/paged-progress-bar-list.component.html\n// module chunks = main","module.exports = \".bar-title {\\n margin-bottom: 15px;\\n padding-left: -15px; }\\n\\n.bar-container {\\n padding: 0px; }\\n\\n.add-portfolio {\\n color: black !important;\\n cursor: pointer; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/paged-progress-bar-list/paged-progress-bar-list.component.scss\n// module id = ./src/app/shared/components/paged-progress-bar-list/paged-progress-bar-list.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport { TickersService } from '../../services/tickers/tickers.service';\nimport { Constant } from '../../utils/constant';\n\n@Component({\n selector: 'app-paged-progress-bar-list',\n templateUrl: './paged-progress-bar-list.component.html',\n styleUrls: ['./paged-progress-bar-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PagedProgressBarListComponent implements OnInit, OnChanges {\n @Input() title: string;\n @Input() data: any;\n @Input() itemsPerPage: number;\n @Input() type: string;\n\n currentTickerId: number;\n currentPage = 1;\n currentPageData: any[];\n\n Constant = Constant;\n\n constructor(public tickersService: TickersService) {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n this.currentPage = 1;\n\n this.linearize();\n\n this.pageChanged({\n page: this.currentPage,\n itemsPerPage: this.itemsPerPage\n });\n }\n\n tickerPosition(index: number, item: any) {\n return index;\n }\n\n pageChanged(page: any): void {\n const start: number = (page.page - 1) * page.itemsPerPage;\n const end: number =\n page.itemsPerPage > 1\n ? start + Number(page.itemsPerPage)\n : this.data.length;\n this.currentPageData = this.data.slice(start, end);\n }\n\n linearize(): void {\n let max = this.data[0].value;\n let min = this.data[this.data.length - 1].value;\n\n min -= max / 3;\n\n max -= min;\n\n if (max !== 0) {\n this.data.forEach(datum => {\n datum.linearizedValue = Math.abs((100 * (datum.value - min)) / max);\n });\n } else {\n this.data.forEach(datum => {\n datum.linearizedValue = 0;\n });\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/paged-progress-bar-list/paged-progress-bar-list.component.ts","module.exports = \"
    \\n
    {{ title }}
    \\n
    \\n\\n\\n \\n \\n \\n\\n
    \\n \\\"\\n [totalItems]=\\\"tickers.length\\\"\\n itemsPerPage=\\\"5\\\"\\n [(ngModel)]=\\\"currentPage\\\"\\n (pageChanged)=\\\"onPageChanged(tickers, $event)\\\"\\n >\\n
    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/paged-progress-volume-list/paged-progress-volume-list.component.html\n// module id = ./src/app/shared/components/paged-progress-volume-list/paged-progress-volume-list.component.html\n// module chunks = main","module.exports = \".bar-title {\\n margin-bottom: 15px; }\\n\\n.bar-container {\\n padding: 0;\\n margin-bottom: 13px; }\\n\\n#data-volume {\\n position: absolute;\\n display: block;\\n width: 100%;\\n color: black; }\\n\\n.percent {\\n padding: 0; }\\n\\n.uppercase {\\n text-transform: uppercase; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/paged-progress-volume-list/paged-progress-volume-list.component.scss\n// module id = ./src/app/shared/components/paged-progress-volume-list/paged-progress-volume-list.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnInit\n} from '@angular/core';\nimport { TickersService } from '../../services/tickers/tickers.service';\nimport { UtilsService } from '../../services/utils/utils.service';\nimport { Constant } from '../../utils/constant';\n\n@Component({\n selector: 'app-paged-progress-volume-list',\n templateUrl: './paged-progress-volume-list.component.html',\n styleUrls: ['./paged-progress-volume-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PagedProgressVolumeListComponent implements OnInit, OnChanges {\n @Input()\n tickers: any[];\n @Input()\n title: string;\n @Input()\n volColor: string;\n\n rows: any[];\n currentPage = 1;\n display = false;\n Constant = Constant;\n currentTicker: string;\n\n constructor(\n public tickersService: TickersService,\n public utilsService: UtilsService\n ) {}\n\n ngOnInit() {}\n\n ngOnChanges() {\n if (this.tickers) {\n this.currentPage = 1;\n this.onPageChanged(this.tickers, { page: 1, itemsPerPage: 5 });\n }\n }\n\n onPageChanged(data: any[], page: any) {\n const start: number = (page.page - 1) * page.itemsPerPage;\n const end: number =\n page.itemsPerPage > 1 ? start + Number(page.itemsPerPage) : data.length;\n this.rows = data.slice(start, end);\n }\n\n rowIndex(index: number, item: any) {\n return index;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/paged-progress-volume-list/paged-progress-volume-list.component.ts","module.exports = \"\\n
    {{title}}:\\n
    \\n {{overall}}\\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/pie-chart/pie-chart.component.html\n// module id = ./src/app/shared/components/pie-chart/pie-chart.component.html\n// module chunks = main","module.exports = \".distribution-overall {\\n font-weight: bold;\\n display: inline-block; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/pie-chart/pie-chart.component.scss\n// module id = ./src/app/shared/components/pie-chart/pie-chart.component.scss\n// module chunks = main","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { Color, Gradient } from 'highcharts';\nimport { ChartsService } from './../../services/charts/charts.service';\n\n/**\n * Pie chart with a title.\n *\n * @export\n * @class PieChartComponent\n * @implements {OnInit}\n * @implements {OnChanges}\n */\n@Component({\n selector: 'app-pie-chart',\n templateUrl: './pie-chart.component.html',\n styleUrls: ['./pie-chart.component.scss']\n})\nexport class PieChartComponent implements OnInit, OnChanges {\n @Input()\n title: string;\n @Input()\n data: any[];\n @Input()\n overall: number;\n @Input()\n type: string;\n\n chart: any;\n\n options = {\n chart: {\n plotBackgroundColor: null,\n plotBorderWidth: null,\n plotShadow: false,\n type: 'pie'\n },\n title: {\n text: null\n },\n tooltip: {\n pointFormat: '{point.y}'\n },\n plotOptions: {\n pie: {\n allowPointSelect: false,\n cursor: '',\n dataLabels: {\n enabled: false\n },\n showInLegend: true\n }\n },\n legend: {\n align: 'center',\n verticalAlign: 'top'\n },\n credits: {\n enabled: false\n },\n colors: [\n ChartsService.curveTypeToColors.anger,\n ChartsService.curveTypeToColors.sadness\n ],\n series: [\n {\n name: '',\n colorByPoint: true,\n innerSize: '70%',\n data: []\n }\n ]\n };\n\n private readonly COLORS = {\n sentiment: {\n positive: '#67a9b5',\n negative: '#f16f44',\n neutral: '#948d8d'\n },\n emotion: {\n joy: '#79ef79',\n fear: '#efee76',\n sadness: '#968cfe',\n anger: '#f18b8e',\n surprise: '#7ef8ef',\n neutral: '#948d8d'\n }\n };\n\n constructor() {}\n\n ngOnInit() {}\n\n /**\n * On data change, update the chart's data.\n *\n * @memberof PieChartComponent\n */\n ngOnChanges() {\n if (this.data) {\n if (this.chart === undefined) {\n this.options.series[0].data = this.data;\n this.options.colors = this.getColors(this.type, this.data);\n } else {\n this.chart.series[0].setData(this.data);\n }\n }\n }\n\n /**\n * Save the chart instance.\n *\n * @param {*} chartInstance\n * @memberof PieChartComponent\n */\n saveInstance(chartInstance: any) {\n this.chart = chartInstance;\n }\n\n getColors(type: string, data: any[]): string[] {\n const colors: string[] = [];\n if (type === 'sentiment' || type === 'emotion') {\n // sentiment\n data.forEach(datum => {\n colors.push(this.COLORS[type][datum.name.toLowerCase()]);\n // switch (datum.name) {\n // case 'Positive':\n // colors.push(ChartsService.curveTypeToColors.positive);\n // break;\n // case 'Negative':\n // colors.push(ChartsService.curveTypeToColors.anger);\n // break;\n // case 'Neutral':\n // colors.push(ChartsService.curveTypeToColors.neutral_sentiments);\n // break;\n // }\n });\n // } else if (type === 'emotion') {\n // // emotion\n // data.forEach(datum => {\n // switch (datum.name) {\n // case 'Joy':\n // colors.push(ChartsService.curveTypeToColors.joy);\n // break;\n // case 'Fear':\n // colors.push(ChartsService.curveTypeToColors.fear);\n // break;\n // case 'Sadness':\n // colors.push(ChartsService.curveTypeToColors.sadness);\n // break;\n // case 'Anger':\n // colors.push(ChartsService.curveTypeToColors.anger);\n // break;\n // case 'Surprise':\n // colors.push(ChartsService.curveTypeToColors.surprise);\n // break;\n // case 'Neutral':\n // colors.push(ChartsService.curveTypeToColors.neutral_emotions);\n // break;\n // }\n // });\n } else {\n for (let i = 0; i < this.data.length; i++) {\n colors.push(\n (Color('#4F2259') as Gradient)\n .brighten((i * 0.8) / this.data.length)\n .get('')\n );\n }\n }\n return colors;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/pie-chart/pie-chart.component.ts","module.exports = \"
    \\n\\n
    0,\\n 'background-grey':score == 0 || !score,\\n 'background-orange':score < 0 }\\\"\\n [tooltip]=\\\"tooltipContent\\\"\\n container=\\\"body\\\">\\n \\n\\n
    \\n \\n {{score}}\\n \\n \\n N.A.\\n \\n
    \\n\\n 0, \\n 'fa-arrow-right': score === 0, \\n 'fa-arrow-down': score < 0 }\\\">\\n
    {{name}}
    \\n
    \\n\\n\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/score-tile/score-tile.component.html\n// module id = ./src/app/shared/components/score-tile/score-tile.component.html\n// module chunks = main","module.exports = \".tile-container {\\n width: 160px;\\n padding: 5px; }\\n .tile-container .tile {\\n border-radius: 4px;\\n padding: 7px 10px;\\n -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n color: white;\\n width: 100%;\\n font-size: 0; }\\n .tile-container .tile .tile__icon {\\n display: inline-block;\\n width: 20%; }\\n .tile-container .tile .tile__score {\\n display: inline-block;\\n width: 80%;\\n font-size: 20px;\\n font-weight: 500;\\n text-align: right;\\n vertical-align: top; }\\n .tile-container .tile .tile__arrow {\\n display: inline-block;\\n width: 20%;\\n font-size: 14px;\\n padding-left: 3px; }\\n .tile-container .tile .tile__name {\\n display: inline-block;\\n width: 80%;\\n text-align: right;\\n font-size: 14px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/score-tile/score-tile.component.scss\n// module id = ./src/app/shared/components/score-tile/score-tile.component.scss\n// module chunks = main","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-score-tile',\n templateUrl: './score-tile.component.html',\n styleUrls: ['./score-tile.component.scss']\n})\nexport class ScoreTileComponent implements OnInit {\n @Input()\n score: number;\n @Input()\n name: string;\n @Input()\n tooltipContent: string;\n @Input()\n image: string;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/score-tile/score-tile.component.ts","module.exports = \"\\n \\n\\n\\n\\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/section-help/section-help.component.html\n// module id = ./src/app/shared/components/section-help/section-help.component.html\n// module chunks = main","module.exports = \".help-container {\\n color: #4f2259;\\n margin-left: 10px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/section-help/section-help.component.scss\n// module id = ./src/app/shared/components/section-help/section-help.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit\n} from '@angular/core';\n\n/**\n * Small component to display a local help icon displaying the content passed as input in a popover.\n *\n * @export\n * @class SectionHelpComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-section-help',\n templateUrl: './section-help.component.html',\n styleUrls: ['./section-help.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SectionHelpComponent implements OnInit {\n @Input()\n content: string;\n @Input()\n placement: string;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/section-help/section-help.component.ts","module.exports = \"
    \\n
    \\n \\n
    \\n \\n
    \\n\\n
    \\n
    \\n
    \\n
      \\n
    • \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n
    • \\n
    \\n
    \\n
    \\n
    \\n\\n\\n
      \\n
    • \\n \\n \\n \\n {{ item.name }}\\n \\n \\n\\n \\n \\n \\n {{ item.name }}\\n \\n\\n \\n
        \\n \\n \\n {{ item.name }}\\n \\n \\n
      \\n
      \\n
      \\n
    • \\n
    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/sidebar/sidebar.component.html\n// module id = ./src/app/shared/components/sidebar/sidebar.component.html\n// module chunks = main","module.exports = \"#sidebar-wrapper {\\n z-index: 1030;\\n position: fixed;\\n left: 250px;\\n width: 60px;\\n height: calc(100% - 50px);\\n top: 50px;\\n margin-left: -250px;\\n background: #f5f5f5;\\n border-right: 1px solid #ccc; }\\n\\n.sidebar-list {\\n list-style: none;\\n margin: 0;\\n padding: 0; }\\n\\n.sidebar-list li a {\\n color: #4f2259;\\n text-decoration: none;\\n padding: 10px 10px;\\n width: 100%; }\\n\\n.sidebar-list li a:hover {\\n background-color: #e6e6e6; }\\n\\n.sidebar-link {\\n display: block; }\\n\\n.sidebar-link-active {\\n background-color: #e6e6e6; }\\n\\n.sidebar-icon {\\n margin: 0 5px;\\n max-width: 30px;\\n height: 30px; }\\n\\n.sidebar-icon path {\\n fill: #4f2259; }\\n\\n.sidebar-toggle {\\n max-width: 100%;\\n margin-right: 7px;\\n display: block; }\\n\\n.sidebar-heading {\\n margin: 5px 5px 0 5px;\\n border-top: 1px solid #ccc;\\n padding-top: 5px; }\\n\\n#sidebar-body {\\n margin-top: 25vh; }\\n\\n#sidebar-footer {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n bottom: 5px;\\n /*min-height: 30px;*/\\n position: absolute;\\n width: 100%;\\n text-align: right; }\\n\\n.expanded {\\n width: 250px !important; }\\n\\n.mirror {\\n /* IE 9 */\\n -webkit-transform: rotate(180deg);\\n /* Chrome, Safari, Opera */\\n transform: rotate(180deg); }\\n\\n#navigation-popover-links {\\n list-style: none;\\n padding: 0;\\n margin: 0; }\\n\\n#navigation-popover-links li a {\\n display: block;\\n text-decoration: none;\\n color: #4f2259;\\n padding: 10px 20px; }\\n\\n#navigation-popover-links li a:hover {\\n background-color: #e6e6e6; }\\n\\n.fixed-popover {\\n position: fixed;\\n top: 51px;\\n z-index: 1030; }\\n\\n.nav-link-active {\\n background-color: #e6e6e6; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/sidebar/sidebar.component.scss\n// module id = ./src/app/shared/components/sidebar/sidebar.component.scss\n// module chunks = main","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { PopoverDirective } from 'ngx-bootstrap/popover/popover.directive';\nimport { AppService } from '../../services/app/app.service';\n\n/**\n * Lateral menu allowing the user to navigate in the application.\n *\n * @export\n * @class SidebarComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.scss']\n})\nexport class SidebarComponent implements OnInit {\n @Input() expanded: boolean;\n @Output() expandedChange = new EventEmitter();\n\n @ViewChild('popover') popover: PopoverDirective;\n\n sidebarLinks = {\n primary: [\n {\n name: 'Market Sentiment Overview',\n img: '/assets/img/picto_market_sentiment_overview.png',\n route: '/marketsentimentoverview',\n active: 'sidebar-link-active'\n },\n /* {\n name: 'Market Sentiment Summary',\n img: '',\n route: '/marketsentimentsummary'\n }, */\n {\n name: 'Market Sentiment Analysis',\n img: '/assets/img/picto_market_sentiment_analysis.png',\n route: '/marketsentimentanalysis',\n active: 'sidebar-link-active'\n },\n {\n name: 'Custom Portfolio',\n img: '/assets/img/picto_custom_portfolio.svg',\n route: '/portfolio',\n active: 'sidebar-link-active'\n },\n {\n name: 'Alerts',\n img: '/assets/icons/alert.svg',\n regexp: /\\/alerts\\/(.)+/,\n children: [\n {\n name: 'Management',\n route: '/alerts/management'\n },\n {\n name: 'Historical',\n route: '/alerts/historical'\n }\n ]\n }\n ],\n secondary: [\n {\n name: 'Information',\n img: '/assets/img/picto_information.png',\n regexp: /\\/information\\/(.)+/,\n children: [\n {\n name: 'Tutorial',\n route: '/information/tutorial'\n },\n {\n name: 'FAQ',\n route: '/information/faq'\n },\n {\n name: 'Research',\n route: '/information/research'\n },\n {\n name: 'GCU',\n route: '/information/gcu'\n }\n ]\n },\n {\n name: 'Contact',\n img: '/assets/img/picto_contact.png',\n route: '/contact',\n active: 'sidebar-link-active'\n },\n {\n name: 'Settings',\n img: '/assets/img/picto_settings.svg',\n route: '/settings',\n active: 'sidebar-link-active'\n }\n ]\n };\n\n constructor(public appService: AppService) {}\n\n ngOnInit() {}\n\n /**\n * Change the state of the menu (expanded or not) and notify the parent component.\n *\n * @memberof SidebarComponent\n */\n toggle() {\n this.expanded = !this.expanded;\n this.expandedChange.emit(this.expanded);\n }\n\n hidePopover(popover: PopoverDirective) {\n popover.hide();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/sidebar/sidebar.component.ts","module.exports = \"
    \\n \\n
      \\n \\n\\n \\n\\n \\n\\n \\n\\n \\n
    • \\n
    • \\n {{option.name}}\\n
    • \\n\\n \\n \\n \\n\\n
      \\n\\n\\n
      \\n
    \\n
    \\n\\n\\n
  • \\n \\n {{ option.name }}\\n \\n
  • \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/simple-dropdown/simple-dropdown.component.html\n// module id = ./src/app/shared/components/simple-dropdown/simple-dropdown.component.html\n// module chunks = main","module.exports = \".dropdown-menu > .active > a {\\n background-color: #90708c; }\\n .dropdown-menu > .active > a:focus, .dropdown-menu > .active > a:hover {\\n background-color: #90708c; }\\n .dropdown-menu {\\n z-index: 2000; }\\n .scrollable-list {\\n max-height: 375px;\\n overflow-x: hidden; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/simple-dropdown/simple-dropdown.component.scss\n// module id = ./src/app/shared/components/simple-dropdown/simple-dropdown.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { UtilsService } from '../../services/utils/utils.service';\n\n@Component({\n selector: 'app-simple-dropdown',\n templateUrl: './simple-dropdown.component.html',\n styleUrls: ['./simple-dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SimpleDropdownComponent implements OnInit, OnChanges {\n @Input()\n name: string;\n @Input()\n options: { name: string; value: any }[];\n @Input()\n selected: string;\n @Input()\n disabled = false;\n @Input()\n scrollable = true;\n\n @Output()\n change = new EventEmitter<{ name: string; value: any }>();\n\n constructor(public utilsService: UtilsService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selected && changes.selected.firstChange) {\n for (const option of this.options) {\n if (option.name === changes.selected.currentValue) {\n this.optionChanged(option);\n break;\n }\n }\n }\n }\n\n ngOnInit(): void {}\n\n optionChanged(option: { name: string; value: any }): void {\n let selectedValue;\n for (let i = 0; i < this.options.length; i++) {\n if (this.selected === this.options[i].name) {\n selectedValue = this.options[i].value;\n break;\n }\n }\n if (option.value !== selectedValue) {\n this.change.emit(option);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/simple-dropdown/simple-dropdown.component.ts","module.exports = \"
    0\\\"\\n id=\\\"overlay\\\">\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/spinner/spinner.component.html\n// module id = ./src/app/shared/components/spinner/spinner.component.html\n// module chunks = main","module.exports = \"#overlay {\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n background: rgba(51, 51, 51, 0.5) url(/assets/img/sesamm_spinner_white.gif) no-repeat center center;\\n z-index: 999;\\n overflow: hidden;\\n margin: auto;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/spinner/spinner.component.scss\n// module id = ./src/app/shared/components/spinner/spinner.component.scss\n// module chunks = main","import { Component, OnInit } from '@angular/core';\nimport { LoadingService } from '../../services/loading/loading.service';\n\n/**\n * Loading element to be displayed over the content of the application.\n *\n * @export\n * @class SpinnerComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent implements OnInit {\n constructor(public loadingService: LoadingService) {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/spinner/spinner.component.ts","module.exports = \"
    \\n \\n
    \\n\\n
    \\n \\n {{ value }}\\n \\n
    \\n\\n
    \\n
    \\n \\n {{ utilsService.round(100 * variation) / 100 }}%\\n \\n
    \\n\\n \\n
    \\n \\n \\n \\n\\n \\n
    \\n
    \\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/ticker-progress-bar/ticker-progress-bar.component.html\n// module id = ./src/app/shared/components/ticker-progress-bar/ticker-progress-bar.component.html\n// module chunks = main","module.exports = \".ticker-code {\\n color: black; }\\n .ticker-code:hover {\\n cursor: pointer; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/ticker-progress-bar/ticker-progress-bar.component.scss\n// module id = ./src/app/shared/components/ticker-progress-bar/ticker-progress-bar.component.scss\n// module chunks = main","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Portfolio } from '../../models/portfolio.model';\nimport { NavigationHelperService } from '../../services/navigation-helper/navigation-helper.service';\nimport { PortfolioService } from '../../services/portfolio/portfolio.service';\nimport { TickersService } from '../../services/tickers/tickers.service';\nimport { UtilsService } from '../../services/utils/utils.service';\nimport { Constant } from '../../utils/constant';\n\n@Component({\n selector: 'app-ticker-progress-bar',\n templateUrl: './ticker-progress-bar.component.html',\n styleUrls: ['./ticker-progress-bar.component.scss']\n})\nexport class TickerProgressBarComponent implements OnInit {\n @Input()\n index: number;\n @Input()\n value: number;\n @Input()\n percentage: number;\n @Input()\n ticker: { tickerId: number; code: string; label: string };\n @Input()\n type: string;\n @Input()\n variation: number;\n @Input()\n addToPortfolio = true;\n\n items: any[] = [];\n portfolios$: Observable;\n\n Constant = Constant;\n\n constructor(\n public tickersService: TickersService,\n public utilsService: UtilsService,\n private navigationHelper: NavigationHelperService,\n private portfolioService: PortfolioService\n ) {}\n\n ngOnInit() {\n this.portfolios$ = this.portfolioService.portfoliosObs;\n this.portfolios$.subscribe(portfolios => {\n this.items = [];\n portfolios.forEach(portfolio => {\n if (!this.portfolioService.isDefaultPortfolio(portfolio.name)) {\n this.items.push({\n label: portfolio.name,\n command: () => {\n this.portfolioService.addToPortfolio(\n this.ticker.tickerId,\n portfolio.name,\n portfolio.hash\n );\n }\n });\n }\n });\n });\n }\n\n changeTypeBar(data: number) {\n return data > 0 ? 'winners' : 'losers';\n }\n\n navigateToMsa(tickerId: number) {\n this.navigationHelper.toMsa(tickerId);\n }\n\n itemLabel(index: number, item: any) {\n return item.label;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/ticker-progress-bar/ticker-progress-bar.component.ts","module.exports = \"
    \\n \\n\\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n 0\\\">+\\n {{ utilsService.round(variation * 100) }}%\\n \\n
    \\n\\n
    \\n
    \\n \\n \\n \\n\\n \\n
    \\n
    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/ticker-volume-bar/ticker-volume-bar.component.html\n// module id = ./src/app/shared/components/ticker-volume-bar/ticker-volume-bar.component.html\n// module chunks = main","module.exports = \".ticker-code {\\n color: black; }\\n .ticker-code:hover {\\n cursor: pointer; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/ticker-volume-bar/ticker-volume-bar.component.scss\n// module id = ./src/app/shared/components/ticker-volume-bar/ticker-volume-bar.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Portfolio } from '../../models/portfolio.model';\nimport { NavigationHelperService } from '../../services/navigation-helper/navigation-helper.service';\nimport { PortfolioService } from '../../services/portfolio/portfolio.service';\nimport { UtilsService } from '../../services/utils/utils.service';\nimport { Constant } from '../../utils/constant';\n\n@Component({\n selector: 'app-ticker-volume-bar',\n templateUrl: './ticker-volume-bar.component.html',\n styleUrls: ['./ticker-volume-bar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TickerVolumeBarComponent implements OnInit {\n @Input()\n index: number;\n @Input()\n value: number;\n @Input()\n ticker: { tickerId: number; code: string; label: string };\n @Input()\n type: string;\n @Input()\n variation: number;\n @Input()\n addToPortfolio = true;\n @Input()\n volColor: string;\n\n items = [];\n portfolios$: Observable;\n\n Constant = Constant;\n\n constructor(\n private navigationHelper: NavigationHelperService,\n public utilsService: UtilsService,\n private portfolioService: PortfolioService\n ) {}\n\n ngOnInit() {\n this.portfolios$ = this.portfolioService.portfoliosObs;\n this.portfolios$.subscribe(portfolios => {\n this.items = [];\n portfolios.forEach(portfolio => {\n if (!this.portfolioService.isDefaultPortfolio(portfolio.name)) {\n this.items.push({\n label: portfolio.name,\n command: () => {\n this.portfolioService.addToPortfolio(\n this.ticker.tickerId,\n portfolio.name,\n portfolio.hash\n );\n }\n });\n }\n });\n });\n }\n\n navigateToMsa(tickerId: number) {\n this.navigationHelper.toMsa(tickerId);\n }\n\n itemLabel(index: number, item: any) {\n return item.label;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/ticker-volume-bar/ticker-volume-bar.component.ts","module.exports = \"

    \\n
    \\n {{ titleText }}\\n \\n

    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/title/title.component.html\n// module id = ./src/app/shared/components/title/title.component.html\n// module chunks = main","module.exports = \".title__chip {\\n display: inline-block;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 0 13px 13px 0;\\n border-color: transparent #4f2259 transparent transparent;\\n margin-right: 2px; }\\n\\n.title {\\n text-transform: uppercase;\\n font-weight: bold;\\n color: #4f2259;\\n font-size: 1.2em;\\n letter-spacing: 0.05em;\\n margin-top: 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/title/title.component.scss\n// module id = ./src/app/shared/components/title/title.component.scss\n// module chunks = main","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit\n} from '@angular/core';\n\n@Component({\n selector: 'app-title',\n templateUrl: './title.component.html',\n styleUrls: ['./title.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TitleComponent implements OnInit {\n @Input()\n titleText: string;\n @Input()\n helpText: string;\n @Input()\n helpPlacement: 'left' | 'right' | 'top' | 'bottom';\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/title/title.component.ts","module.exports = \"\\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\\"Vue\\n \\n
    \\n\\n \\n \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n Download\\n data as CSV\\n \\n\\n \\n Copy the URL of the displayed curves to clipboard.\\n \\n \\n \\n\\n \\n \\n
    \\n
    \\n \\n\\n \\n \\n {{ portfolio.name }}\\n \\n \\n
    \\n
    \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n
    \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n
    \\n \\n\\n\\n\\n Download\\n backtest as PDF\\n\\n\\n\\n Export\\n portfolio as CSV\\n\\n\\n
    \\n
    \\n
    \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/vue-bar/vue-bar.component.html\n// module id = ./src/app/shared/components/vue-bar/vue-bar.component.html\n// module chunks = main","module.exports = \"#vue-bar {\\n min-height: 50px;\\n width: calc(100% - 60px);\\n border-bottom: 1px solid #ccc;\\n position: fixed;\\n top: 50px !important;\\n margin-left: 60px;\\n z-index: 1000; }\\n\\n@media only screen and (min-width: 768px) {\\n #control-panel {\\n padding-left: 20vw;\\n padding-right: 15px; } }\\n\\n@media only screen and (max-width: 1200px) and (min-width: 768px) {\\n #control-panel {\\n padding-left: 0; } }\\n\\n.vue-bar-pushed {\\n width: calc(100% - 250px) !important;\\n margin-left: 250px !important; }\\n\\n#title {\\n padding: 0 0 0 15px !important; }\\n\\n#title img {\\n height: 100%;\\n width: auto; }\\n\\n#period {\\n border-right: 1px solid #ccc;\\n margin-right: 15px; }\\n\\nlabel.subtitle {\\n padding-right: 10px; }\\n\\n.margin-right {\\n margin-right: 5px; }\\n\\n.navbar-btn img {\\n max-width: 14px;\\n max-height: 14px; }\\n\\n.navbar-btn.btn-active {\\n background-color: #4f2259; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/vue-bar/vue-bar.component.scss\n// module id = ./src/app/shared/components/vue-bar/vue-bar.component.scss\n// module chunks = main","import {\n Component,\n ComponentFactoryResolver,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Angular2Csv } from 'angular2-csv';\nimport * as FileSaver from 'file-saver';\nimport { unix, utc } from 'moment';\nimport { ClipboardService } from 'ngx-clipboard';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\nimport Alert, {\n actionBackToFront,\n AlertRule,\n alertStrategyBackToFront,\n CurveOperand\n} from '../../models/alert.model';\nimport { AlertsService } from '../../services/alerts/alerts.service';\nimport { AppService } from '../../services/app/app.service';\nimport { ChartsService } from '../../services/charts/charts.service';\nimport { ExportService } from '../../services/export/export.service';\nimport { LoadingService } from '../../services/loading/loading.service';\nimport { OverviewService } from '../../services/overview/overview.service';\nimport { PortfolioService } from '../../services/portfolio/portfolio.service';\nimport { TickersService } from '../../services/tickers/tickers.service';\nimport { TimeCodeService } from '../../services/time-code/time-code.service';\nimport { UtilsService } from '../../services/utils/utils.service';\nimport { Constant } from '../../utils/constant';\nimport { CpMenuComponent } from '../cp-menu/cp-menu.component';\nimport { CreateAlertModalComponent } from '../create-alert-modal/create-alert-modal.component';\nimport { ImportAlertModalComponent } from '../import-alert-modal/import-alert-modal.component';\nimport { MsaMenuComponent } from '../msa-menu/msa-menu.component';\n\n/**\n * Bar containing all the page-dependent menu's elements.\n *\n * @export\n * @class VueBarComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-vue-bar',\n templateUrl: './vue-bar.component.html',\n styleUrls: ['./vue-bar.component.scss']\n})\nexport class VueBarComponent implements OnInit, OnDestroy {\n @Input()\n sidebarExpanded = false;\n\n @ViewChild('analysisModal')\n analysisModal: MsaMenuComponent;\n @ViewChild('portfolioModal', { read: ViewContainerRef })\n portfolioModal: ViewContainerRef;\n @ViewChild('createAlertModal', { read: ViewContainerRef })\n createAlertModal: ViewContainerRef;\n @ViewChild('createImportAlertModal', { read: ViewContainerRef })\n createImportAlertModal: ViewContainerRef;\n\n Constant = Constant;\n expertMode = false;\n displayAnalysisMenu = false;\n analysisMenuAction: string;\n currentCPName = null;\n\n isVueBarCollapsed = true;\n\n MSOPanelHelp =\n 'The Control Panel lets you choose the period for which you are willing to see the scores: ' +\n 'from 3 years (depending on availability and quantity of alerts available) to a single day. ' +\n 'Moreover, you can switch from global to expert modes for information provided by social trading websites.';\n MSAPanelHelp =\n ' The Control Panel on this page allows you to choose and manage the curves you are willing to see.' +\n ' You can select and add curves per Filter or per Ticker:' +\n '
      ' +\n '
    • ' +\n 'Add by Filter allows you to choose amid data sources, Analysis type, Asset class and Industry.' +\n 'Moreover, a list of technical trading curves can be added as well.' +\n '
    • ' +\n '
    • ' +\n 'Add by Ticker allows you to choose amid all possibilities for any specific asset.' +\n '
    • ' +\n '
    ' +\n 'By default, details appearing afterwards are based on selected tickers or filter combinations previously chosen.';\n CPPanelHelp =\n 'You can choose among two types of portfolios:' +\n '
      ' +\n '
    • ' +\n 'SESAMm portfolios, based on our statistical analyses and for which back-testing would be available.' +\n '
    • ' +\n '
    • ' +\n 'Your own portfolios, that you can create by yourself, but for which back-testing data would not be available.' +\n '
    • ' +\n '
    ' +\n 'For a better understanding of this section, we have created a few examples of portfolios,' +\n ' such as the CAC40 and DAX30 composed by their respective stocks – please note that these ' +\n 'portfolios are equally-weighted so do not represent the exact indices.';\n\n private destroy$ = new Subject();\n\n constructor(\n public appService: AppService,\n public portfolioService: PortfolioService,\n public exportService: ExportService,\n public chartsService: ChartsService,\n public timeCodeService: TimeCodeService,\n private loadingService: LoadingService,\n private overviewService: OverviewService,\n private alertsService: AlertsService,\n private tickersService: TickersService,\n private clipboardService: ClipboardService,\n private resolver: ComponentFactoryResolver,\n private utilsService: UtilsService\n ) {}\n\n ngOnInit(): void {\n if (this.portfolioService.currentPortfolio) {\n this.currentCPName =\n this.portfolioService.currentPortfolio.name +\n '-' +\n this.portfolioService.currentPortfolio.hash;\n }\n }\n /**\n * Get all the current route needed data corresponding to the time code passed as a parameter.\n *\n * @param {string} timeCode\n * @memberof VueBarComponent\n */\n timeCodeSelected(timeCode: string): void {\n this.loadingService.addLoads();\n\n // The switch permits to load only the needed data depending on the current view\n switch (this.appService.getCurrentRoute()) {\n case Constant.MSORoute:\n this.overviewService\n .getLeaderLoserBoard(timeCode)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n response => {\n this.tickersService.posnegTickers = response;\n if (!this.tickersService.currentTickerId) {\n this.tickersService.currentTickerId = this.tickersService.posnegTickers.volume.winners[0].tickerId;\n }\n },\n () => {\n this.loadingService.forceHide();\n },\n () => {\n // We do not make these requests in parallel in case of 201 (two 201 make the server works twice more)\n this.overviewService\n .getOverview(timeCode)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.loadingService.removeLoads();\n },\n () => {\n this.loadingService.forceHide();\n }\n );\n }\n );\n break;\n\n case Constant.MSARoute:\n let noData = false;\n\n this.chartsService\n .updateGraphics(null, {\n expert: this.appService.expertMode,\n timeCode: timeCode,\n market: true\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {},\n error => {\n console.error(error);\n this.loadingService.forceHide();\n switch (error.status) {\n case 410:\n noData = true;\n break;\n }\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'Data not available'\n });\n },\n () => {\n if (!noData) {\n this.timeCodeService.changeTimeCode(timeCode);\n }\n noData = false;\n this.loadingService.removeLoads();\n }\n );\n break;\n\n case Constant.CPRoute:\n if (this.portfolioService.currentPortfolio) {\n this.portfolioService\n .getPortfolioData(\n timeCode,\n this.portfolioService.currentPortfolio.hash\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n portfolioData =>\n (this.portfolioService.currentPortfolio.data = portfolioData),\n error => {\n this.loadingService.forceHide();\n switch (error.status) {\n case 410:\n noData = true;\n break;\n }\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'Data not available'\n });\n },\n () => {\n if (!noData) {\n this.timeCodeService.changeTimeCode(timeCode);\n }\n this.loadingService.removeLoads();\n }\n );\n } else {\n this.loadingService.removeLoads();\n }\n\n break;\n }\n }\n\n showPortfolioModal(portfolio?: { name: string; hash: string }): void {\n const CpMenuFactory = this.resolver.resolveComponentFactory(\n CpMenuComponent\n );\n const component = this.portfolioModal.createComponent(CpMenuFactory);\n if (portfolio) {\n this.portfolioService\n .getPortfolio(portfolio)\n .pipe(takeUntil(this.destroy$))\n .subscribe(p => {\n component.instance.portfolio = p;\n component.instance.show();\n });\n } else {\n component.instance.show();\n }\n }\n\n /**\n * Changes expert status and gets the corresponding data.\n *\n * @param {{ previousValue: boolean, currentValue: boolean }} event\n * @memberof VueBarComponent\n */\n clickOnExpert(event: {\n previousValue: boolean;\n currentValue: boolean;\n }): void {\n this.expertMode = event.currentValue;\n this.appService.expertMode = this.expertMode ? 1 : 0;\n\n switch (this.appService.getCurrentRoute()) {\n case Constant.MSORoute:\n this.loadingService.addLoads(2);\n\n this.overviewService\n .getLeaderLoserBoard(this.timeCodeService.currentTimeCode)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n response => {\n this.tickersService.posnegTickers = response;\n if (!this.tickersService.currentTickerId) {\n this.tickersService.currentTickerId = this.tickersService.posnegTickers.volume.winners[0].tickerId;\n }\n this.loadingService.removeLoads();\n },\n () => {\n this.loadingService.forceHide();\n }\n );\n\n this.overviewService\n .getOverview(this.timeCodeService.currentTimeCode)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n () => {\n this.loadingService.removeLoads();\n },\n () => {\n this.loadingService.forceHide();\n }\n );\n break;\n }\n }\n\n /**\n * Show analysis modal menu.\n *\n * @param {string} action\n * @memberof VueBarComponent\n */\n showAnalysisMenu(action: string): void {\n switch (action) {\n case Constant.AddCurve:\n this.analysisMenuAction = Constant.AddCurve;\n this.analysisModal.show();\n break;\n case Constant.Replace:\n this.analysisMenuAction = Constant.Replace;\n this.analysisModal.show();\n break;\n }\n }\n\n /**\n * Gets the data of the selected portfolio et sets it as current portfolio.\n *\n * @memberof VueBarComponent\n */\n portfolioSelected(portfolioName: string): void {\n this.loadingService.addLoads();\n\n this.portfolioService.currentPortfolio = this.portfolioService.portfolios.find(\n portfolio => {\n return `${portfolio.name}-${portfolio.hash}` === portfolioName;\n }\n );\n if (this.portfolioService.currentPortfolio) {\n this.portfolioService\n .getPortfolioData(\n this.timeCodeService.currentTimeCode,\n this.portfolioService.currentPortfolio.hash\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n portfolioData =>\n (this.portfolioService.currentPortfolio.data = portfolioData),\n () => {\n this.loadingService.forceHide();\n\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'Data not available'\n });\n },\n () => {\n this.loadingService.removeLoads();\n }\n );\n }\n\n this.portfolioService\n .getPortfolioCurveSet(\n this.portfolioService.currentPortfolio.hash,\n this.timeCodeService.currentTimeCode\n )\n .pipe(\n map(res => [res]),\n takeUntil(this.destroy$)\n )\n .subscribe(res => {\n this.portfolioService.curveSetSubject.next(res);\n });\n }\n\n /**\n * Get the default portfolio backtest from the backend and then propose it to the user for downloading.\n *\n * @memberof VueBarComponent\n */\n downloadBacktest(): void {\n this.exportService\n .getPortfolioBacktest()\n .pipe(takeUntil(this.destroy$))\n .subscribe(file => {\n let filename: string;\n if (file.headers.get('content-disposition')) {\n filename = file.headers.get('content-disposition')['filename'];\n }\n // const blob = new Blob([file['_body']], { type: 'application/pdf' });\n FileSaver.saveAs(\n file.body,\n filename ||\n 'SESAMm - Backtest and Methodology - Default_LongShort_10stocks.pdf'\n );\n });\n }\n\n /**\n * Returns the title image path corresponding to the current route.\n *\n * @returns {string}\n * @memberof VueBarComponent\n */\n getTitle(): string {\n let imgPath: string;\n const route = this.appService.getCurrentRoute();\n\n if (route === '/marketsentimentoverview') {\n imgPath = 'title_sentiment_overview';\n } else if (route === '/marketsentimentanalysis') {\n imgPath = 'title_sentiment_analysis';\n } else if (route === '/portfolio') {\n imgPath = 'title_custom_portfolio';\n } else if (route === '/contact') {\n imgPath = 'title_contact';\n } else if (route === '/settings') {\n imgPath = 'title_settings';\n } else if (route.match(/\\/alerts\\/(.)+/)) {\n const subRoute = route\n .substring(route.lastIndexOf('/', route.length - 2))\n .replace('/', '')\n .toLowerCase();\n\n if (subRoute === 'management') {\n imgPath = 'title_alerts_management';\n } else if (subRoute === 'historical') {\n imgPath = 'title_alerts_historical';\n }\n } else if (route.match(/\\/information\\/(.)+/)) {\n const subRoute = route\n .substring(route.lastIndexOf('/', route.length - 2))\n .replace('/', '')\n .toLowerCase();\n\n switch (subRoute) {\n case 'tutorial':\n imgPath = 'title_tutorial';\n break;\n case 'faq':\n imgPath = 'title_faq';\n break;\n case 'research':\n imgPath = 'title_research';\n break;\n case 'gcu':\n imgPath = 'title_gcu';\n break;\n }\n }\n return '/assets/img/' + imgPath + '.png';\n }\n\n /**\n * Returns the name of the portfolio (ngFor trackBy method).\n *\n * @param {number} index\n * @param {*} item\n * @returns {string}\n * @memberof VueBarComponent\n */\n portfolioName(index: number, item: any): string {\n return item.name;\n }\n\n /**\n * Creates the URL allowing to retrieve the currently displayed chart and copies it to the clipboard.\n */\n copyUrlToClipboard(): void {\n const curves = [];\n\n this.chartsService.curveSets.forEach(curveSet => {\n curves.push(curveSet.params);\n });\n\n const url = `https://humeurdesmarches.com/marketsentimentanalysis?c=${encodeURIComponent(\n JSON.stringify(curves)\n )}`;\n this.clipboardService.copyFromContent(url);\n\n this.alertsService.notifications.push({\n type: 'success',\n msg: 'The URL has been succesfully copied to clipboard.'\n });\n }\n\n exportAsCsv() {\n this.portfolioService\n .getPortfolio(this.portfolioService.currentPortfolio)\n .pipe(takeUntil(this.destroy$))\n .subscribe(portfolio => {\n return new Angular2Csv(\n portfolio.data.map(ticker => ({\n tickerId: ticker.tickerId,\n code: ticker.code,\n quantity: ticker.quantity\n })),\n portfolio.name,\n {\n headers: ['tickerId', 'asset', 'quantity']\n }\n );\n });\n }\n\n getMsaDataAsCsv(): void {\n const rows: (number | string)[][] = [];\n const header: string[] = [];\n\n header[0] = 'Date';\n\n // Add dates.\n this.chartsService.curveSets[0].dates.forEach(date =>\n rows.push([\n unix(date / 1000)\n .utc()\n .format('YYYY-MM-DDTHH:mm:ssZ')\n ])\n );\n\n // Add each curve set.\n this.chartsService.curveSets.forEach(curveSet => {\n let params = this.chartsService.stringifyCurveSetParams(curveSet.params);\n params = params.length > 0 ? `(${params})` : '';\n\n const ticker = curveSet.params.ticker\n ? curveSet.params.ticker.code\n : 'Filtered';\n\n // Extract names and data from volumes.\n header.push(`${ticker} Volume`);\n curveSet.volume.data.forEach((volumeData, index) => {\n if (!rows[index]) {\n rows[index] = [];\n }\n rows[index].push(volumeData[1]);\n });\n\n // Extract names and data from curves.\n curveSet.curves.forEach(curve => {\n let key = curve.key;\n if (curve.key === 'bullish_score') {\n key = 'trading opinion';\n }\n header.push(\n `${ticker} ${this.utilsService.toCamelCase(key)} ${params}`\n );\n curve.data.forEach((curveData, index) => {\n if (!rows[index]) {\n rows[index] = [];\n }\n rows[index].push(curveData[1]);\n });\n });\n });\n\n this.exportService.getDataAsCSV(\n rows,\n header,\n `hdm_msa_export_${utc().format('YYYY-MM-DDTHH:mm:ssZ')}`\n );\n }\n\n getAlertsHistoricalAsCsv(): void {\n this.alertsService\n .getHistorical()\n .pipe(\n takeUntil(this.destroy$),\n map(res => {\n const newBody: any = res.body;\n\n newBody.alerts = res.body.alerts.map(alert => {\n const newAlert = new Alert(\n alert.names,\n alert.ticker,\n alert.strategy,\n alert.rules.map(rule => {\n rule.firstOperand = new CurveOperand(\n rule.firstOperand.curveName,\n rule.firstOperand.EMA,\n rule.firstOperand.timeCode\n );\n if (typeof rule.secondOperand !== 'number') {\n rule.secondOperand = new CurveOperand(\n rule.secondOperand.curveName,\n rule.secondOperand.EMA,\n rule.secondOperand.timeCode\n );\n }\n return new AlertRule(\n rule.action,\n rule.firstOperand,\n rule.type,\n rule.secondOperand\n );\n }),\n alert.signals,\n alert.hash\n );\n\n return newAlert.signals.map(signal => ({\n signalDate: utc(signal.date)\n .toISOString()\n .split('T')[0],\n names: newAlert.names,\n ticker: alert.ticker.code,\n tickerId: alert.ticker.tickerId,\n strategy: alertStrategyBackToFront[alert.strategy],\n currentAction:\n actionBackToFront[signal.currentAction.toUpperCase()],\n previousAction:\n actionBackToFront[signal.previousAction.toUpperCase()],\n rules: newAlert.getRawRules()\n }));\n });\n if (newBody.alerts.length > 0) {\n newBody.alerts = newBody.alerts\n .reduce((acc, val) => acc.concat(val))\n .sort((a, b) =>\n utc(a.signalDate).isAfter(utc(b.signalDate)) ? -1 : 1\n );\n }\n\n return {\n totalCount: Number.parseInt(res.headers.get('x-total-count')),\n ...newBody\n };\n })\n )\n .subscribe(res => {\n this.exportService.getDataAsCSV(\n res.alerts,\n Object.keys(res.alerts[0]),\n `hdm_alerts_historical_${utc().format('YYYY-MM-DDTHH:mm:ssZ')}`\n );\n });\n }\n\n createAlert(): void {\n const createAlertModalFactory = this.resolver.resolveComponentFactory(\n CreateAlertModalComponent\n );\n const component = this.createAlertModal.createComponent(\n createAlertModalFactory\n );\n component.instance.alertCreatedModal.onHidden\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => component.destroy());\n component.instance.alertCreated.subscribe(() => {\n this.alertsService.alertCreated.emit();\n });\n }\n\n importAlert(): void {\n const importAlertModalFactory = this.resolver.resolveComponentFactory(\n ImportAlertModalComponent\n );\n const component = this.createImportAlertModal.createComponent(\n importAlertModalFactory\n );\n component.instance.importAlertModal.onHidden\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => component.destroy());\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/vue-bar/vue-bar.component.ts","module.exports = \"
    \\n\\n \\n {{title}}\\n \\n\\n
    \\n\\n\\n
    \\n\\n \\n\\n
    \\n\\n
    \\n\\n \\n\\n
    \\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/winners-losers/winners-losers.component.html\n// module id = ./src/app/shared/components/winners-losers/winners-losers.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/winners-losers/winners-losers.component.scss\n// module id = ./src/app/shared/components/winners-losers/winners-losers.component.scss\n// module chunks = main","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { Constant } from './../../utils/constant';\n\n/**\n * Component displaying trending and lagging tickers lists.\n *\n * @export\n * @class WinnersLosersComponent\n * @implements {OnInit}\n */\n@Component({\n selector: 'app-winners-losers',\n templateUrl: './winners-losers.component.html',\n styleUrls: ['./winners-losers.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WinnersLosersComponent implements OnInit {\n @Input() data: any;\n @Input() type: string;\n @Input() title: string;\n @Input() helpContent: string;\n\n Constant = Constant;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/winners-losers/winners-losers.component.ts","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IntroService } from '../../services/intro.service';\n\n@Directive({\n selector: '[appIntroStep]'\n})\nexport class IntroStepDirective implements OnInit {\n @Input('appIntroStep')\n appIntroStep: string;\n @Input()\n appIntroStepIndex: number;\n @Input()\n appIntroStepRoute: string; // use only if the element is on several routes to control on wich the step is declared on.\n @Input()\n appIntroStepPosition: 'top' | 'bottom' | 'right' | 'left';\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private introService: IntroService,\n private router: Router\n ) {}\n\n ngOnInit(): void {\n if (this.appIntroStep != null) {\n this.appIntroStepRoute = this.appIntroStepRoute || this.router.url;\n const id = `intro-${this.appIntroStepRoute.slice(1)}-step-${\n this.appIntroStepIndex\n }`;\n this.renderer.addClass(this.el.nativeElement, id);\n\n this.introService.addStep(\n {\n element: `.${id}`,\n intro: this.appIntroStep,\n position: this.appIntroStepPosition\n },\n this.appIntroStepIndex,\n this.appIntroStepRoute\n );\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/directives/intro-step/intro-step.directive.ts","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../services/auth/auth.service';\n\n/**\n * Guard to decide if a user can access a route or not.\n *\n * @export\n * @class AuthGuard\n * @implements {CanActivate}\n */\n@Injectable()\nexport class AuthGuard implements CanActivate {\n constructor(private router: Router, private authService: AuthService) {}\n\n /**\n * Method deciding if the user can navigate to the route or not.\n *\n * @param {ActivatedRouteSnapshot} route\n * @param {RouterStateSnapshot} state\n * @returns {(Observable | Promise | boolean)}\n * @memberof AuthGuard\n */\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable | Promise | boolean {\n const currentUser = this.authService.getCurrentUser();\n if (currentUser) {\n if (currentUser['token']) {\n // logged in so return true\n return true;\n }\n }\n const queryParams = { queryParams: { route: state.url } };\n // not logged in so redirect to login page\n this.authService.logout();\n this.router.navigate(['auth/login'], queryParams);\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/guards/auth.guard.ts","import Ticker from './ticker.model';\n\nexport enum RuleAction {\n Long = 'BUY',\n Short = 'SELL',\n Flat = 'FLAT',\n Alert = 'ALERT'\n}\n\nexport const actionBackToFront = {\n BUY: 'Long',\n SELL: 'Short',\n FLAT: 'Flat',\n ALERT: 'Alert'\n};\n\nexport enum Connector {\n AND = 'AND',\n OR = 'OR'\n}\n\nexport class AlertRule {\n connector: Connector;\n firstOperand: CurveOperand;\n type: string;\n secondOperand: number | CurveOperand;\n action: RuleAction;\n\n constructor(\n action: RuleAction,\n firstOperand?: CurveOperand,\n type?: string,\n secondOperand?: number | CurveOperand\n ) {\n this.connector = Connector.AND;\n this.action = action;\n this.firstOperand = firstOperand;\n this.type = type;\n this.secondOperand = secondOperand;\n }\n\n getRaw(connector = true): string {\n const firstOperand: string = this.firstOperand.getForDisplay();\n const secondOperand =\n typeof this.secondOperand === 'number'\n ? this.secondOperand + ''\n : this.secondOperand.getForDisplay();\n\n let type;\n switch (this.type) {\n case 'threshold_dropsDown':\n type = 'drops down';\n break;\n case 'crosses_down':\n type = 'crossed down;';\n break;\n\n case 'threshold_exceeds':\n type = 'exceeds';\n break;\n case 'crosses_up':\n type = 'crosses up';\n break;\n }\n return `${\n connector ? this.connector : ''\n } ${firstOperand} ${type} ${secondOperand}`;\n }\n\n getForDisplay(connector = true): string {\n const firstOperand: string = this.firstOperand.getForDisplay();\n let secondOperand: string;\n if (typeof this.secondOperand === 'number') {\n secondOperand = this.secondOperand + '';\n } else {\n secondOperand = this.secondOperand.getForDisplay();\n }\n\n let type;\n switch (this.type) {\n case 'threshold_dropsDown':\n case 'crosses_down':\n type = '↘';\n break;\n\n case 'threshold_exceeds':\n case 'crosses_up':\n type = '↗';\n break;\n }\n return `${\n connector ? this.connector : ''\n } ${firstOperand} ${type} ${secondOperand}`;\n }\n\n /**\n * Checks if the rule is valid (all properties are set).\n *\n * @returns {boolean} validity.\n * @memberof AlertRule\n */\n isValid(): boolean {\n // Check the first operand.\n if (this.firstOperand == null) {\n return false;\n }\n if (\n this.firstOperand.curveName == null ||\n (this.firstOperand.EMA == null && this.firstOperand.timeCode === '')\n ) {\n return false;\n }\n\n // Check type.\n if (this.type == null) {\n return false;\n }\n\n // Check the second operand.\n if (this.secondOperand == null) {\n return false;\n }\n // CurveOperand\n if (\n this.isCurveOperand(this.secondOperand) &&\n (this.secondOperand.EMA == null && this.secondOperand.timeCode === '')\n ) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Checks if the rule is empty (a rule is empty if the parameters not set at initialisation are null or undefined).\n *\n * @returns {boolean}\n * @memberof AlertRule\n */\n isEmpty(): boolean {\n if (!this.firstOperand && !this.type && !this.secondOperand) {\n return true;\n }\n return false;\n }\n\n /**\n * Tests if the parameter is a CurveOperand.\n *\n * @param {(number | CurveOperand)} x the parameter to test\n * @returns {x is CurveOperand}\n * @memberof AlertRule\n */\n isCurveOperand(x: number | CurveOperand): x is CurveOperand {\n return (x as CurveOperand).curveName !== undefined;\n }\n}\n\nexport const curveNameBackToFront = new Map([\n ['bullish_score', 'Trading Opinion'],\n ['volume', 'Volume'],\n ['emotion', 'Agg. emotions'],\n ['emotions.joy', 'Joy'],\n ['emotions.fear', 'Fear'],\n ['emotions.anger', 'Anger'],\n ['emotions.surprise', 'Surprise'],\n ['emotions.sadness', 'Sadness'],\n ['emotions.neutral', 'Neutral emotion'],\n ['sentiment', 'Agg. sentiment'],\n ['sentiments.positive', 'Pos. sentiment'],\n ['sentiments.negative', 'Neg. sentiment'],\n ['sentiments.neutral', 'Neutral sentiment']\n]);\n\n// tslint:disable-next-line:max-classes-per-file\nexport default class Alert {\n names: string[];\n strategy: AlertStrategy;\n ticker: Ticker;\n rules: AlertRule[];\n // If the alert comes from the backend.\n signals?: AlertSignal[];\n hash?: string;\n creationDate?: number; // timestamp\n backtest?: AlertBacktest;\n\n constructor(\n names: string[],\n ticker: Ticker,\n strategy: AlertStrategy,\n rules: AlertRule[],\n signals?: AlertSignal[],\n hash?: string,\n creationDate?: number,\n backtest?: AlertBacktest\n ) {\n this.names = names;\n this.ticker = ticker;\n this.strategy = strategy;\n this.rules = rules;\n\n this.signals = signals;\n this.hash = hash;\n this.creationDate = creationDate;\n this.backtest = backtest;\n }\n\n getRulesForDisplay(): string {\n const groupByAction = {};\n\n this.rules.forEach(rule => {\n const actionName = actionBackToFront[rule.action];\n if (!groupByAction[actionName]) {\n groupByAction[actionName] = [];\n }\n groupByAction[actionName].push(\n rule.getForDisplay(groupByAction[actionName].length > 0)\n );\n });\n\n let result = '';\n\n for (const action in groupByAction) {\n if (action) {\n result += `${action.toUpperCase()}: `;\n for (const rule of groupByAction[action]) {\n result += `${rule} `;\n }\n result.trim();\n result += '
    ';\n }\n }\n\n return result;\n }\n\n getRawRules(): string {\n const groupByAction: any = {};\n\n this.rules.forEach(rule => {\n const actionName = actionBackToFront[rule.action];\n if (!groupByAction[actionName]) {\n groupByAction[actionName] = [];\n }\n groupByAction[actionName].push(\n rule.getRaw(groupByAction[actionName].length > 0)\n );\n });\n\n let result = '';\n\n for (const action in groupByAction) {\n if (action) {\n result += `${action.toUpperCase()}:`;\n for (const rule of groupByAction[action]) {\n result += `${rule} `;\n }\n result.trim();\n }\n }\n return result;\n }\n}\n\n// tslint:disable-next-line:max-classes-per-file\nexport class CurveOperand {\n curveName: string;\n EMA?: number; // EMA 0 <=> RAW\n timeCode?: string;\n\n constructor(curveName: string, EMA?: number, timeCode?: string) {\n this.curveName = curveName;\n this.EMA = EMA;\n this.timeCode = timeCode;\n }\n\n getForDisplay(): string {\n return `${curveNameBackToFront.get(this.curveName)} (${\n this.timeCode !== ''\n ? `${this.timeCode} STD`\n : this.EMA > 1\n ? `EMA ${this.EMA.toString()}`\n : 'RAW'\n })`;\n }\n}\n\nexport enum AlertStrategy {\n LongShort = 'LS',\n LongFlat = 'LO',\n AlertOnly = 'AO'\n}\n\nexport const alertStrategyBackToFront = {\n LS: 'Long Short',\n LO: 'Long Flat',\n AO: 'Alert Only'\n};\n\nexport interface AlertSignal {\n date: number; // timestamp\n currentAction: RuleAction;\n previousAction: RuleAction;\n}\n\nexport interface AlertBacktest {\n threeYears: BacktestContent;\n twelveMonths: BacktestContent;\n yearToDate: BacktestContent;\n}\n\ninterface BacktestContent {\n alertsCount: number;\n cumulatedReturn: number;\n cumulatedLongOnlyReturn: number;\n annualizedReturn: number;\n annualizedVolatility: number;\n annualizedSharpe: number;\n annualizedLongOnlyReturn: number;\n longOnlyReturn: number;\n}\n\nexport const actionsPerStrategy = {\n [AlertStrategy.LongShort]: [\n RuleAction.Long,\n RuleAction.Short,\n RuleAction.Flat\n ],\n [AlertStrategy.LongFlat]: [RuleAction.Long, RuleAction.Flat],\n [AlertStrategy.AlertOnly]: [RuleAction.Alert]\n};\n\nexport function getBacktestHTMLTable(data: AlertBacktest): string {\n if (!data) {\n return 'No backtest';\n }\n\n return `\n \n \n \n \n \n \n \n \n ${getBacktestHTMLCell(data.yearToDate.alertsCount)}\n ${getBacktestHTMLCell(data.twelveMonths.alertsCount)}\n ${getBacktestHTMLCell(data.threeYears.alertsCount)}\n \n \n \n ${getBacktestHTMLCell(data.yearToDate.cumulatedReturn, true, true)}\n ${getBacktestHTMLCell(data.twelveMonths.cumulatedReturn, true, true)}\n ${getBacktestHTMLCell(data.threeYears.cumulatedReturn, true, true)}\n \n \n \n ${getBacktestHTMLCell(data.yearToDate.annualizedReturn, true, true)}\n ${getBacktestHTMLCell(data.twelveMonths.annualizedReturn, true, true)}\n ${getBacktestHTMLCell(data.threeYears.annualizedReturn, true, true)}\n \n \n \n ${getBacktestHTMLCell(data.yearToDate.annualizedVolatility, false, true)}\n ${getBacktestHTMLCell(data.twelveMonths.annualizedVolatility, false, true)}\n ${getBacktestHTMLCell(data.threeYears.annualizedVolatility, false, true)}\n \n \n \n ${getBacktestHTMLCell(data.yearToDate.annualizedSharpe, true)}\n ${getBacktestHTMLCell(data.twelveMonths.annualizedSharpe, true)}\n ${getBacktestHTMLCell(data.threeYears.annualizedSharpe, true)}\n \n \n \n ${getBacktestHTMLCell(data.yearToDate.cumulatedLongOnlyReturn, true, true)}\n ${getBacktestHTMLCell(\n data.twelveMonths.cumulatedLongOnlyReturn,\n true,\n true\n )}\n ${getBacktestHTMLCell(data.threeYears.cumulatedLongOnlyReturn, true, true)}\n \n \n \n ${getBacktestHTMLCell(data.yearToDate.annualizedLongOnlyReturn, true, true)}\n ${getBacktestHTMLCell(\n data.twelveMonths.annualizedLongOnlyReturn,\n true,\n true\n )}\n ${getBacktestHTMLCell(data.threeYears.annualizedLongOnlyReturn, true, true)}\n \n
    YTD12M3Y
    Number of signals
    Cumulated Return
    Annualized Return
    Annualized Volatility
    Annualized Sharpe Ratio
    Cumulated Market Return
    Annualized Market Return
    `;\n}\n\nfunction getBacktestHTMLCell(\n value: number,\n color?: boolean,\n percentage?: boolean\n): string {\n return ` 0 && color\n ? 'blue'\n : value === 0 && color\n ? 'grey'\n : ''\n }\">\n ${value == null ? 'N.A.' : value} ${percentage ? '%' : ''}\n`;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/alert.model.ts","export default class DropdownOption {\n name: string;\n value: string;\n\n constructor(name?: string, value?: string) {\n this.name = name;\n this.value = value;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/dropdown-option.model.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isNullOrUndefined' })\nexport class IsNullOrUndefinedPipe implements PipeTransform {\n transform(obj: Object): boolean {\n return obj == null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/pipes/is-null-or-undefined.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keys'\n})\nexport class KeysPipe implements PipeTransform {\n transform(value: any, args?: any): any {\n return Object.keys(value);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/pipes/keys.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'page',\n pure: false\n})\nexport class PagePipe implements PipeTransform {\n transform(values: any[], page: number, itemsPerPage: number): any {\n return values.slice(itemsPerPage * (page - 1), itemsPerPage * page - 1);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/pipes/page.pipe.ts","import { HttpClient, HttpResponse } from '@angular/common/http';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport {} from 'events';\nimport { Observable } from 'rxjs';\nimport Alert, {\n AlertBacktest,\n AlertRule,\n AlertSignal,\n AlertStrategy\n} from '../../models/alert.model';\nimport { SignalFlag } from '../../models/curve-set.model';\nimport Ticker from '../../models/ticker.model';\nimport { AppService } from '../app/app.service';\nimport { UserService } from '../user/user.service';\n\ninterface HistoricalResult {\n alerts: {\n hash: string;\n strategy: AlertStrategy;\n ticker: Ticker;\n names: string[];\n rules: AlertRule[];\n signals: AlertSignal[];\n }[];\n}\n\n@Injectable()\nexport class AlertsService {\n private BASE_URL = `${this.appService.backEndUrl}/alerts`;\n notifications: { type: string; msg: string }[] = [];\n\n alertCreated = new EventEmitter();\n\n constructor(\n private http: HttpClient,\n private appService: AppService,\n private userService: UserService\n ) {}\n\n /**\n * Creates a new alert.\n *\n * @param alert the alert to create.\n */\n createAlert(alert: Alert, dryRun?: boolean) {\n const body = alert as any;\n body.tickerId = body.ticker.tickerId;\n delete body.ticker;\n const alertBody: any = alert;\n alertBody.name = alertBody.names[0];\n delete alertBody.names;\n\n return this.http.post(\n `${this.BASE_URL}?userId=${this.userService.id}`,\n { ...alertBody, dryRun },\n this.appService.getOptions()\n );\n }\n\n getAlerts(\n skip = 0,\n limit = 0,\n params?: {\n tickerCode?: string;\n filtering?: {\n name?: string;\n ticker?: string;\n };\n sorting?: {\n creationDate?: number;\n name?: number;\n ticker?: number;\n strategy?: number;\n };\n }\n ): Observable {\n let queryParams = `skip=${skip}&limit=${limit}`;\n if (params) {\n if (params.tickerCode) {\n queryParams += `&ticker=${params.tickerCode}`;\n }\n if (params.filtering) {\n if (params.filtering.name) {\n queryParams += `&name=${encodeURIComponent(params.filtering.name)}`;\n }\n if (params.filtering.ticker) {\n queryParams += `&ticker=${params.filtering.ticker}`;\n }\n }\n\n if (params.sorting) {\n queryParams += `&sorting=${JSON.stringify(params.sorting)}`;\n }\n }\n\n const options = {\n headers: this.appService.getHeaders(),\n observe: 'response' as 'response'\n };\n\n return this.http.get(\n `${this.BASE_URL}?userId=${this.userService.id}&${queryParams}`,\n options\n );\n }\n\n getAlertSignals(\n hash: string,\n name: string,\n from: number,\n to: number\n ): Observable<{ signals: SignalFlag[] }> {\n const options = {\n headers: this.appService.getHeaders()\n };\n return this.http.get<{ signals: SignalFlag[] }>(\n `${this.BASE_URL}/${hash}/signals?name=${encodeURIComponent(\n name\n )}&from=${from}&to=${to}`,\n options\n );\n }\n\n updateAlerts(alert: Alert): Observable {\n const body = alert as any;\n body.tickerId = body.ticker.tickerId;\n delete body.ticker;\n const creationDate = body.creationDate;\n delete body.creationDate;\n const hash = body.hash;\n delete body.hash;\n const name = body.names[0];\n delete body.names;\n\n return this.http\n .put<{ alerts: Alert[] }>(\n `${this.BASE_URL}/${hash}?userId=${\n this.userService.id\n }&creationDate=${creationDate}&name=${encodeURIComponent(name)}`,\n body,\n this.appService.getOptions()\n )\n .map(res => res.alerts);\n }\n\n deleteAlert(hash: string, name: string): Observable {\n return this.http.delete(\n `${this.BASE_URL}/${hash}?userId=${\n this.userService.id\n }&name=${encodeURIComponent(name)}`,\n this.appService.getOptions()\n );\n }\n\n /**\n * Gets the historical alert signals of the user.\n *\n * @param skip the number of signals to skip.\n * @param limit the maximum number of signal to get.\n * @returns {Observable}\n * @memberof AlertsService\n */\n getHistorical(\n skip: number = 0,\n limit: number = 0,\n params?: {\n filtering?: {\n names?: string;\n ticker?: string;\n strategy?: string;\n };\n sorting?: {\n signalDate?: number;\n };\n }\n ): Observable> {\n let queryParams = `userId=${\n this.userService.id\n }&skip=${skip}&limit=${limit}`;\n\n if (params) {\n if (params.filtering) {\n if (params.filtering.names) {\n queryParams += `&name=${encodeURIComponent(params.filtering.names)}`;\n }\n if (params.filtering.strategy) {\n queryParams += `&strategy=${params.filtering.strategy}`;\n }\n if (params.filtering.ticker) {\n queryParams += `&ticker=${params.filtering.ticker}`;\n }\n }\n\n if (params.sorting) {\n queryParams += `&sorting=${JSON.stringify(params.sorting)}`;\n }\n }\n const options = {\n headers: this.appService.getHeaders(),\n observe: 'response' as 'response'\n };\n return this.http.get(\n `${this.BASE_URL}/historical?${queryParams}`,\n options\n );\n }\n\n /**\n * Gets the backtest of the given alert.\n *\n * @param {Alert} alert\n * @returns {Observable}\n * @memberof AlertsService\n */\n getBacktest(alert: Alert): Observable {\n return this.http.post(\n `${this.BASE_URL}/alerts/backtest`,\n alert,\n this.appService.getOptions()\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/alerts/alerts.service.ts","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { environment } from '../../../../environments/environment';\nimport { WebSocketService } from '../websocket/websocket.service';\n\n@Injectable()\nexport class AppService {\n backEndUrl: string;\n expertMode: 0 | 1 = 0;\n usersnapInitialized = false;\n appInitialized$ = new BehaviorSubject(false);\n // private appInitialized = false;\n\n constructor(\n private webSocketService: WebSocketService,\n private router: Router\n ) {\n this.backEndUrl = environment.backEndUrl;\n }\n\n getUserId(): string {\n let currentUser: any;\n if ((currentUser = JSON.parse(sessionStorage.getItem('tmp')))) {\n return currentUser['idUser'];\n } else if ((currentUser = JSON.parse(localStorage.getItem('cu')))) {\n return currentUser['idUser'];\n }\n return null;\n }\n\n getToken(): string {\n let currentUser: any;\n const storage = sessionStorage.getItem('cu')\n ? sessionStorage\n : localStorage;\n if ((currentUser = JSON.parse(storage.getItem('cu')))) {\n return currentUser['token'];\n }\n return null;\n }\n\n getHeaders(contentType?: string): HttpHeaders {\n return new HttpHeaders()\n .set('Content-Type', contentType || 'application/json')\n .set('Authorization', this.getToken())\n .set('socket_id', this.webSocketService.getSocketId());\n }\n\n getOptions(): { headers: HttpHeaders } {\n return { headers: this.getHeaders() };\n }\n\n globalInitTrigger(): void {\n this.appInitialized$.next(true);\n }\n\n getCurrentRoute(): string {\n return this.router.url.split('?')[0];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/app/app.service.ts","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n HttpResponse\n} from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, of, throwError as throwObservable } from 'rxjs';\nimport { catchError, mergeMap } from 'rxjs/operators';\nimport { AppService } from '../app/app.service';\nimport { AuthService } from '../auth/auth.service';\nimport { UserService } from '../user/user.service';\n\n@Injectable()\nexport class AuthInterceptorService implements HttpInterceptor {\n private authService: AuthService;\n private appService: AppService;\n private userService: UserService;\n private router: Router;\n\n constructor(private injector: Injector) {\n // The services are injected with the injector to prevent cyclic dependencies.\n this.authService = this.injector.get(AuthService);\n this.appService = this.injector.get(AppService);\n this.userService = this.injector.get(UserService);\n this.router = this.injector.get(Router);\n }\n\n intercept(\n req: HttpRequest,\n next: HttpHandler\n ): Observable> {\n return next.handle(req).pipe(\n mergeMap(event => {\n if (\n event instanceof HttpResponse &&\n event.status === 201 &&\n event.url\n .split('/')\n .pop()\n .toLowerCase() !== 'check'\n ) {\n if (event.body instanceof Blob) {\n return this.userService.check().pipe(\n mergeMap(res => {\n this.authService.updateAuthentication(\n res.headers.get('new_token')\n );\n\n const newReq = req.clone({\n headers: this.appService.getHeaders()\n });\n return next.handle(newReq);\n })\n );\n } else {\n this.authService.updateAuthentication(\n event.headers.get('new_token')\n );\n\n const newReq = req.clone({\n headers: this.appService.getHeaders()\n });\n return next.handle(newReq);\n }\n }\n return of(event);\n }),\n catchError((error, caught) => {\n console.error('interceptor err', error, caught);\n if (\n this.appService.getCurrentRoute() !== '/login' &&\n !this.appService.getCurrentRoute().match(/\\/error\\/[0-9]+/)\n ) {\n switch (error.status) {\n case 0:\n this.router.navigate(['/error', 0]);\n break;\n case 401:\n this.authService.logout();\n break;\n case 404:\n this.router.navigate(['/error', 404]);\n break;\n case 503:\n this.router.navigate(['/error', 503]);\n break;\n }\n }\n return throwObservable(error);\n })\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/auth-interceptor/auth-interceptor.service.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as jwtDecode from 'jwt-decode';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { environment } from '../../../../environments/environment';\nimport { AppService } from '../app/app.service';\nimport { LiveFeedService } from '../live-feed/live-feed.service';\nimport { WebSocketService } from '../websocket/websocket.service';\n\n@Injectable()\nexport class AuthService {\n constructor(\n private appService: AppService,\n private router: Router,\n private webSocketService: WebSocketService,\n private liveFeedService: LiveFeedService,\n private http: HttpClient\n ) {}\n\n login(\n username: string,\n password: string,\n browser: string,\n os: string,\n device: string,\n socketId: string\n ): Observable {\n return this.http\n .post(\n `${environment.backEndUrl}/users/login`,\n JSON.stringify({\n username: username,\n password: password,\n browser: browser,\n os: os,\n device: device,\n id: socketId\n }),\n { observe: 'response' }\n )\n .pipe(\n map(res => res.body),\n catchError(res => {\n console.log(res.headers.get('X-RateLimit-Remaining'));\n const rateLimit = Number.parseInt(res.headers.get('X-Rate-Limit'));\n const rateLimitRemaining = Number.parseInt(\n res.headers.get('X-RateLimit-Remaining')\n );\n const rateLimitReset = Number.parseInt(\n res.headers.get('X-RateLimit-Reset')\n );\n return throwError({\n ...res.error,\n statusCode: res.status,\n rateLimit,\n rateLimitRemaining,\n rateLimitReset\n });\n })\n );\n }\n\n logout(): void {\n sessionStorage.removeItem('cu');\n localStorage.removeItem('cu');\n this.liveFeedService.twits = [];\n this.webSocketService.disconnect();\n\n if (this.appService.getCurrentRoute() !== '/auth/login') {\n this.router.navigate(['/auth/login']);\n }\n }\n\n getCurrentUser(): any {\n const storage = sessionStorage.getItem('cu')\n ? sessionStorage\n : localStorage;\n const currentUser = storage.getItem('cu');\n\n if (typeof currentUser === 'string') {\n return JSON.parse(currentUser);\n } else {\n return null;\n }\n }\n\n setCookies(token: string, type: string = 'cu'): string {\n const decodedToken = jwtDecode(token) as {\n id: string;\n aud: string;\n exp: number;\n iat: number;\n refreshToken: string;\n scope: string[];\n username: string;\n };\n\n const currentUser = {\n idUser: decodedToken.id,\n username: decodedToken.username,\n token: token\n };\n\n const storage = type === 'tmp' ? sessionStorage : localStorage;\n storage.setItem('cu', JSON.stringify(currentUser));\n\n return decodedToken.id;\n }\n\n updateAuthentication(newToken: string): void {\n const storage = sessionStorage.getItem('cu')\n ? sessionStorage\n : localStorage;\n const user = JSON.parse(storage.getItem('cu'));\n\n user.token = newToken;\n\n storage.setItem('cu', JSON.stringify(user));\n }\n\n getUserCookie(): { username: string; id: string } {\n const storage = sessionStorage.getItem('cu')\n ? sessionStorage\n : localStorage;\n const user = JSON.parse(storage.getItem('cu'));\n\n return {\n username: user['username'],\n id: user['idUser']\n };\n }\n\n forgotPassword(email: string): Observable {\n return this.http.post(\n this.appService.backEndUrl + '/users/forgotpassword',\n JSON.stringify({ email: email })\n );\n }\n\n signUp(token: string, payload: any): Observable {\n return this.http.post(\n `${this.appService.backEndUrl}/users/signup/${token}`,\n payload\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/auth/auth.service.ts","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport Ticker from '../../models/ticker.model';\nimport { TickersService } from '../tickers/tickers.service';\n\n@Injectable()\nexport class AutoCompService {\n constructor(private tickersService: TickersService) {}\n\n formatter(data: any): string {\n return `${data.code} - ${data.label}`;\n }\n\n public getTickersAsObservable(\n token: string,\n limit: number\n ): Observable {\n const tickerCodeBeginning: Ticker[] = [];\n const tickerCodeAnywhere: Ticker[] = [];\n const tickerLabelBeginning: Ticker[] = [];\n const tickerLabelAnywhere: Ticker[] = [];\n\n const matchingTickerIndexes: number[] = [];\n\n let count = 0;\n if (\n !this.tickersService.tickers.some((ticker, index) => {\n count++;\n if (new RegExp(`^${token}.*`, 'i').test(ticker.code)) {\n tickerCodeBeginning.push(ticker);\n matchingTickerIndexes.push(index);\n } else {\n count--;\n }\n return count === limit;\n })\n ) {\n if (\n !this.tickersService.tickers.some((ticker, index) => {\n count++;\n if (\n new RegExp(`^${token}.*`, 'i').test(ticker.label) &&\n !matchingTickerIndexes.includes(index)\n ) {\n tickerLabelBeginning.push(ticker);\n matchingTickerIndexes.push(index);\n } else {\n count--;\n }\n return count === limit;\n })\n ) {\n if (\n !this.tickersService.tickers.some((ticker, index) => {\n count++;\n if (\n new RegExp(`.*${token}.*`, 'i').test(ticker.code) &&\n !matchingTickerIndexes.includes(index)\n ) {\n tickerCodeBeginning.push(ticker);\n matchingTickerIndexes.push(index);\n } else {\n count--;\n }\n return count === limit;\n })\n ) {\n this.tickersService.tickers.some((ticker, index) => {\n count++;\n if (\n new RegExp(`.*${token}.*`, 'i').test(ticker.label) &&\n !matchingTickerIndexes.includes(index)\n ) {\n tickerCodeAnywhere.push(ticker);\n matchingTickerIndexes.push(index);\n } else {\n count--;\n }\n return count === limit;\n });\n }\n }\n }\n\n return of([\n ...tickerCodeBeginning.sort((a, b) => (b.code > a.code ? -1 : 1)),\n ...tickerLabelBeginning.sort((a, b) => (b.label > a.label ? -1 : 1)),\n ...tickerCodeAnywhere.sort((a, b) => (b.code > a.code ? -1 : 1)),\n ...tickerLabelAnywhere.sort((a, b) => (b.label > a.label ? -1 : 1))\n ]);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/auto-comp/auto-comp.service.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { actionBackToFront } from '../../models/alert.model';\nimport {\n CurveDataPoint,\n CurveSet,\n CurveSetParams,\n SignalFlag\n} from '../../models/curve-set.model';\nimport { Constant } from '../../utils/constant';\nimport { AppService } from '../app/app.service';\nimport { MarketService } from '../market/market.service';\nimport { TickersService } from '../tickers/tickers.service';\nimport { TimeCodeService } from '../time-code/time-code.service';\nimport { UserService } from '../user/user.service';\n\nexport interface PrevRequest {\n alertHash: string;\n asset: string;\n curveType: string;\n engine: string;\n expert: 0 | 1;\n financial: number;\n language: string[];\n messageType: number[];\n requestId: number;\n sector: string;\n tickerId?: number;\n timeCode: string;\n}\n\nexport interface PlotQueryParams extends CurveSet {\n id?: string;\n prevRequests?: CurveSet[];\n updateOnly?: boolean;\n tickerId?: number;\n}\n\n/**\n * ChartsService deals with fetching and formatting data to be displayed as charts.\n *\n * @export\n * @class ChartsService\n */\n@Injectable()\nexport class ChartsService {\n static curveTypeToColors = {\n emotion: '#ffaf00',\n sentiment: '#008aff',\n bullish_score: '#6e6e6e',\n joy: '#00ff00',\n fear: '#fffd00',\n sadness: '#1700ff',\n anger: '#ff0008',\n surprise: '#00d9c8',\n neutral_emotions: '#ff0087',\n neutral_sentiments: '#9000ff',\n positive: '#00e080',\n negative: '#f06900',\n volume: ['#ffaf00', '#008aff', '#6e6e6e', '#00ff00', '#fffd00', '#1700ff']\n };\n\n static CurveDashStyles = ['Solid', 'Dash'];\n\n private readonly CURVE_SETS_STORAGE_KEY = 'cs';\n private readonly DEFAULT_CURVE_SETS: CurveSetParams[] = [\n {\n curveType: 'EMA_30',\n ticker: { tickerId: 3891 }\n }\n ];\n\n private _curveSets: CurveSet[];\n\n get curveSets() {\n return this._curveSets;\n }\n\n set curveSets(curveSets: CurveSet[]) {\n this.updateLocalStorage(curveSets);\n this._curveSets = curveSets;\n }\n\n constructor(\n private http: HttpClient,\n private appService: AppService,\n private tickersService: TickersService,\n private timeCodeService: TimeCodeService,\n private marketService: MarketService,\n private userService: UserService\n ) {}\n\n /**\n * Gets the requested data from the backend, formats it and returns the Observable to subscribe on.\n *\n * @param {CurveSetParams[]} curveSetsParams the parameters array of the curve set to fetch (if null the default curve set is fetch).\n * @param {{ expertMode?: number, timeCode?: string, market?: boolean }} [options] determines the expert mode,\n * the time code and if the market data has to be requested (all optional).\n * @returns {Observable} the request to subscribe on.\n * @memberof ChartsService\n */\n getCurveSets(\n curveSetsParams: CurveSetParams[],\n market?: boolean\n ): Observable {\n if (curveSetsParams === null) {\n const curveSetsStr = localStorage.getItem(this.CURVE_SETS_STORAGE_KEY);\n try {\n // If there is nothing in the local storage, curveSetsStr is null, and JSON.parse(null) doesn't throw.\n if (curveSetsStr === null) {\n curveSetsParams = this.DEFAULT_CURVE_SETS;\n } else {\n curveSetsParams = JSON.parse(curveSetsStr);\n }\n } catch (e) {\n curveSetsParams = this.DEFAULT_CURVE_SETS;\n }\n }\n const httpOptions = {\n headers: this.appService.getHeaders()\n };\n\n const strQueryParams = `requests=${encodeURIComponent(\n JSON.stringify(this.formatCurveSetsParams(curveSetsParams))\n )}&timeCode=${this.timeCodeService.currentTimeCode}`;\n\n return this.http\n .get<{\n curveSets: CurveSet[];\n signals: { hash: string; signals: SignalFlag[] }[];\n }>(\n `${this.appService.backEndUrl}/sentiments/plot?${strQueryParams}&id=${\n this.userService.id\n }`,\n httpOptions\n )\n .pipe(\n mergeMap(res => {\n // Market data\n const tickerIds = [];\n\n res.curveSets.forEach(curveSet => {\n // Format the signals (title for display).\n curveSet.signals = (curveSet.signals || []).map(signal => ({\n ...signal,\n title: actionBackToFront[signal.title]\n }));\n\n if (curveSet.params.ticker && curveSet.params.ticker.tickerId) {\n // Add the tickerId to the list for market data fetching.\n tickerIds.push(curveSet.params.ticker.tickerId);\n // Complete the ticker object with the ticker metadata.\n curveSet.params.ticker = this.tickersService.tickers.find(\n ticker => ticker.tickerId === curveSet.params.ticker.tickerId\n );\n }\n });\n\n if (market && tickerIds.length > 0) {\n return this.marketService\n .getMarketData(tickerIds, res.curveSets[0].dates[0])\n .pipe(\n map(quotes => {\n Object.keys(quotes).forEach(tickerId => {\n res.curveSets.find(curveSet => {\n if (\n curveSet.params.ticker &&\n curveSet.params.ticker.tickerId\n ) {\n return (\n curveSet.params.ticker.tickerId.toString() ===\n tickerId\n );\n }\n return false;\n }).quotes = {\n data: quotes[tickerId],\n currency: quotes[tickerId][0].currency\n };\n });\n return res;\n })\n );\n } else {\n return of(res);\n }\n }),\n map(res => {\n // Formatting\n let curveSets = [];\n res.curveSets.forEach(curveSet => {\n const duplicateCurveSets = [];\n\n // Deal with duplicates (from requestIds).\n if (curveSet.params.requestIds.length > 1) {\n curveSet.params.requestIds.forEach((requestId, index) => {\n if (index === 0) {\n return;\n }\n const duplicateCurveSet: CurveSet = JSON.parse(\n JSON.stringify(curveSet)\n );\n duplicateCurveSet.params.requestIds = [requestId];\n duplicateCurveSets.push(duplicateCurveSet);\n });\n }\n curveSets = res.curveSets.concat(duplicateCurveSets);\n\n // Add signals to matching curve sets.\n res.signals.forEach(signals => {\n if (\n curveSet.alertsList.some(alert => alert.hash === signals.hash)\n ) {\n // If the curve set contains an alert matching the signals hash.\n curveSet.signals = signals.signals;\n }\n });\n });\n this.curveSets = curveSets;\n })\n );\n }\n\n formatCurveSetsParams(curveSetsParams: CurveSetParams[]) {\n const params: CurveSetParams[] = JSON.parse(\n JSON.stringify(curveSetsParams)\n );\n params.forEach(curveSetParams => {\n curveSetParams.expert =\n curveSetParams.expert || this.appService.expertMode;\n if (curveSetParams.ticker && curveSetParams.ticker.tickerId) {\n curveSetParams.ticker = { tickerId: curveSetParams.ticker.tickerId };\n }\n\n delete curveSetParams.timeCode;\n if (curveSetParams.requestIds) {\n if (curveSetParams.requestIds.length > 0) {\n curveSetParams.requestId = curveSetParams.requestIds[0];\n }\n delete curveSetParams.requestIds;\n }\n });\n\n return params;\n }\n\n updateLocalStorage(curveSets: CurveSet[]): void {\n if (!curveSets || curveSets.length < 1) {\n localStorage.removeItem(this.CURVE_SETS_STORAGE_KEY);\n } else {\n localStorage.setItem(\n this.CURVE_SETS_STORAGE_KEY,\n JSON.stringify(\n [...curveSets].map((curveSet: CurveSet) => {\n delete curveSet.params.requestId;\n return curveSet.params;\n })\n )\n );\n }\n }\n\n /**\n * Returns data point and date tuples array from data and dates.\n *\n * @param data\n * @param dates\n */\n formatDataWithDates(data: number[], dates: number[]): CurveDataPoint[] {\n return data.map(\n (dataPoint, index) => [dates[index], dataPoint] as CurveDataPoint\n );\n }\n\n /**\n * Updates the current graphics with the given parameters.\n *\n * @param {*} [prevRequests] the prevRequests object to update.\n * @param {{ expertMode?: number, timeCode?: string, market?: boolean }} [options] determines the expert mode,\n * the time code and if market data has to be requested (all options are optional).\n * @returns {Observable} the request to subscribe on.\n * @memberof ChartsService\n */\n updateGraphics(\n curveSetsParams?: CurveSetParams[],\n options?: {\n market?: boolean;\n expert?: 0 | 1;\n timeCode?: string;\n }\n ): Observable {\n return this.getCurveSets(\n curveSetsParams || this.curveSets.map(curveSet => curveSet.params),\n options.market\n );\n }\n\n getPrevRequests(): CurveSet[] {\n return this.curveSets.map(curveSet => {\n const params = JSON.parse(JSON.stringify(curveSet.params));\n params.ticker = {\n tickerId: params.ticker.tickerId\n };\n delete params.timeCode;\n delete params.tickerId;\n return params;\n });\n }\n\n /**\n * Converts curve set params to a string for displaying.\n *\n * @param {CurveSet} curveSetParams\n * @returns {string}\n * @memberof ChartsService\n */\n stringifyCurveSetParams(curveSetParams: CurveSetParams): string {\n const params: string[] = [];\n\n if (curveSetParams.asset !== 'ALL') {\n params.push(\n `Asset Class: ${Constant.AssetsBackToFront[curveSetParams.asset]}`\n );\n }\n if (curveSetParams.sector !== 'ALL') {\n params.push(\n `, Industry: ${Constant.SectorsBackToFront[curveSetParams.sector]}`\n );\n }\n switch (curveSetParams.financial) {\n case 0:\n params.push('Non Financial');\n break;\n case 1:\n params.push('Financial');\n break;\n }\n const language = JSON.stringify(curveSetParams.language);\n if (language !== Object.keys(Constant.LanguagesMapping)[0]) {\n params.push(`${Constant.LanguagesMapping[language]}`);\n }\n const messageType = JSON.stringify(curveSetParams.messageType);\n if (messageType !== Object.keys(Constant.MessageTypesMapping)[0]) {\n params.push(`${Constant.MessageTypesMapping[messageType]}`);\n }\n if (curveSetParams.expert === 1) {\n params.push('Expert');\n }\n return params.join(', ');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/charts/charts.service.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Angular2Csv } from 'angular2-csv/Angular2-csv';\nimport { Observable } from 'rxjs';\nimport { AppService } from '../app/app.service';\nimport { ChartsService } from '../charts/charts.service';\nimport { PortfolioService } from '../portfolio/portfolio.service';\n\n@Injectable()\nexport class ExportService {\n constructor(\n private _http: HttpClient,\n private _appService: AppService,\n private _chartsService: ChartsService,\n private _portfolioService: PortfolioService\n ) {}\n\n getTickersList(): Observable {\n const options = {\n headers: this._appService.getHeaders('text/csv'),\n responseType: 'text' as any,\n observe: 'response' as any\n };\n return this._http.get(\n `${this._appService.backEndUrl}/tickers/tickersList`,\n options\n );\n }\n\n getPortfolioBacktest(portfolioName?: string): Observable {\n const options = {\n headers: this._appService.getHeaders(),\n observe: 'response' as 'response', // workaround because of typescript type inference\n responseType: 'blob' as 'blob'\n };\n\n if (!portfolioName) {\n portfolioName = this._portfolioService.currentPortfolio.name;\n }\n return this._http.get(\n `${\n this._appService.backEndUrl\n }/users/${this._appService.getUserId()}/portfolio/${portfolioName}/backtest`,\n options\n );\n }\n\n getFile(nameFile: string): Observable {\n const options = {\n headers: this._appService.getHeaders(),\n responseType: 'text' as any,\n observe: 'response' as any // workaround because of typescript type inference\n };\n return this._http.get(\n this._appService.backEndUrl + '/information/getFile?filename=' + nameFile,\n options\n );\n }\n\n getPDFFile(nameFile: string): Observable {\n const options = {\n headers: this._appService.getHeaders(),\n observe: 'response' as 'response', // workaround because of typescript type inference\n responseType: 'blob' as 'blob'\n };\n return this._http.get(\n this._appService.backEndUrl + '/information/getFile?filename=' + nameFile,\n options\n );\n }\n\n getDataAsCSV(rows: any[], header: string[], filename: string): Angular2Csv {\n rows.unshift(header);\n return new Angular2Csv(rows, filename);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/export/export.service.ts","import { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, Optional, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport {\n Observable,\n of as observableOf,\n throwError as observableThrow\n} from 'rxjs';\nimport { finalize, map, share, tap } from 'rxjs/operators';\n\nclass SvgIconConfig {\n url: SafeResourceUrl | null;\n svgElement: SVGElement | null;\n\n constructor(url: SafeResourceUrl);\n // tslint:disable-next-line:unified-signatures\n constructor(svgElement: SVGElement);\n constructor(data: SafeResourceUrl | SVGElement) {\n // Note that we can't use `instanceof SVGElement` here,\n // because it'll break during server-side rendering.\n if (!!(data as any).nodeName) {\n this.svgElement = data as SVGElement;\n } else {\n this.url = data as SafeResourceUrl;\n }\n }\n}\n\n@Injectable()\nexport class IconRegistryService {\n document: Document;\n private svgIconConfigs = new Map();\n private inProgressUrlFetches = new Map>();\n\n constructor(\n private sanitizer: DomSanitizer,\n private httpClient: HttpClient,\n @Optional()\n @Inject(DOCUMENT)\n document: any\n ) {\n this.document = document;\n }\n\n getSvgIcon(iconName: string): Observable {\n const config = this.svgIconConfigs.get(iconName);\n\n if (config) {\n return this.getSvgFromConfig(config);\n } else {\n return observableThrow(\n Error(`Unable to find icon with the name \"${iconName}\"`)\n );\n }\n }\n\n addSvgIcon(iconName: string, url: SafeResourceUrl): this {\n return this.addSvgIconConfig(iconName, new SvgIconConfig(url));\n }\n\n private addSvgIconConfig(iconName: string, config: SvgIconConfig): this {\n this.svgIconConfigs.set(iconName, config);\n return this;\n }\n\n private getSvgFromConfig(config: SvgIconConfig): Observable {\n if (config.svgElement) {\n // We already have the SVG element for this icon, return a copy.\n return observableOf(cloneSvg(config.svgElement));\n } else {\n // Fetch the icon from the config's URL, cache it, and return a copy.\n return this.loadSvgIconFromConfig(config).pipe(\n tap(svg => (config.svgElement = svg)),\n map(svg => cloneSvg(svg))\n );\n }\n }\n\n private loadSvgIconFromConfig(config: SvgIconConfig): Observable {\n return this.fetchUrl(config.url).pipe(\n map(svgText => this.createSvgElementForSingleIcon(svgText))\n );\n }\n\n private createSvgElementForSingleIcon(responseText: string): SVGElement {\n const svg = this.svgElementFromString(responseText);\n this.setSvgAttributes(svg);\n return svg;\n }\n\n private svgElementFromString(str: string): SVGElement {\n const div = this.document.createElement('DIV');\n div.innerHTML = str;\n const svg = div.querySelector('svg') as SVGElement;\n\n if (!svg) {\n throw Error(' tag not found');\n }\n\n return svg;\n }\n\n private setSvgAttributes(svg: SVGElement): SVGElement {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n return svg;\n }\n\n private fetchUrl(safeUrl: SafeResourceUrl): Observable {\n if (safeUrl == null) {\n throw Error(`Cannot fetch icon from URL \"${safeUrl}\".`);\n }\n\n const url = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n const inProgressFetch = this.inProgressUrlFetches.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n }\n\n const req = this.httpClient.get(url, { responseType: 'text' }).pipe(\n finalize(() => this.inProgressUrlFetches.delete(url)),\n share()\n );\n this.inProgressUrlFetches.set(url, req);\n\n return req;\n }\n}\n\nfunction cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/icon-registry/icon-registry.service.ts","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Step } from 'intro.js';\nimport { Observable, of, timer } from 'rxjs';\nimport { finalize, mergeMap } from 'rxjs/operators';\n\ninterface IndexedStep extends Step {\n index: number;\n}\n\n@Injectable()\nexport class IntroService {\n readonly intro = introJs();\n stepsByRoute: Map = new Map();\n currentStep: number;\n\n constructor(private readonly router: Router) {\n // Default options.\n this.intro.setOptions({\n showStepNumbers: false,\n scrollToElement: true,\n exitOnOverlayClick: false,\n disableInteraction: true\n });\n }\n\n /**\n * Adds a step to the intro tour.\n *\n * @param {Step} step the step to add.\n * @param {number} index the index of the step.\n * @param {string} [url=this.router.url] the URL of the step.\n */\n addStep(step: Step, index: number, url: string = this.router.url) {\n if (!this.stepsByRoute.has(url)) {\n this.stepsByRoute.set(url, []);\n }\n const steps = this.stepsByRoute.get(url);\n const indexAlreadyDefined = steps.some(s => s.index === index);\n if (!indexAlreadyDefined) {\n steps.push({ ...step, index: index });\n this.stepsByRoute.set(url, steps);\n } else {\n console.warn(\n 'Index already defined, step will be ignored.',\n step.intro,\n index\n );\n }\n }\n\n /**\n * Starts the intro tour.\n * @param {number} position\n */\n start() {\n const localStorageKey = `intro-${this.router.url}`;\n\n const startObservable = new Observable<{\n event: string;\n element?: HTMLElement;\n }>(observer => {\n // No distinction is made yet between a completed intro and an exited one.\n this.intro.oncomplete(() => observer.complete());\n this.intro.onexit(() => observer.complete());\n this.intro.onchange(element =>\n observer.next({ event: 'change', element })\n );\n this.intro.onafterchange(element => {\n this.currentStep++;\n observer.next({ event: 'afterchange', element });\n });\n this.intro.onbeforechange(element =>\n observer.next({ event: 'beforechange', element })\n );\n });\n\n // To be sure that the steps has been registered we have to add a little delay before starting the intro tour.\n return timer(500).pipe(\n mergeMap(() => {\n if (!localStorage.getItem(localStorageKey)) {\n this.intro.setOptions({\n steps: this.getSortedSteps()\n });\n // this.intro.start();\n return startObservable;\n }\n return of();\n }),\n finalize(() => localStorage.setItem(localStorageKey, 'true'))\n );\n }\n\n /**\n * Returns the steps registered for the current route.\n *\n * @returns the steps registered for the current route.\n */\n getSortedSteps(): Step[] {\n return this.stepsByRoute\n .get(this.router.url)\n .sort((a, b) => a.index - b.index);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/intro.service.ts","import { Injectable } from '@angular/core';\nimport { utc } from 'moment';\nimport { WebSocketService } from '../websocket/websocket.service';\n\n@Injectable()\nexport class LiveFeedService {\n twits: any[] = [];\n maxTwits = 100;\n\n constructor(private _webSocketService: WebSocketService) {\n this._webSocketService.liveFeedSubject.subscribe(res => {\n const resTwits = res.twits;\n // To always have 'maxTwits' twits max, we compute the difference between the max and previous twits + new twits\n // and remove extra twits.\n const diffLength = this.maxTwits - (this.twits.length + resTwits.length);\n if (diffLength < 0) {\n this.twits = this.twits.slice(0, this.twits.length + diffLength);\n }\n // Sort the live feed array to always keep the most recent twits first.\n const twits = this.twits.concat(resTwits).sort((a, b) => {\n if (utc(a.date).isBefore(utc(b.date))) {\n return 1;\n }\n return -1;\n });\n this.twits = twits;\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/live-feed/live-feed.service.ts","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LoadingService {\n loads = 0;\n\n constructor() {}\n\n removeLoads(loads = 1) {\n this.loads -= loads;\n }\n\n forceHide() {\n this.loads = 0;\n }\n\n addLoads(loads = 1) {\n this.loads += loads;\n }\n\n getLoad() {\n return this.loads;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/loading/loading.service.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Quote } from '../../models/curve-set.model';\nimport { AppService } from '../app/app.service';\n\ninterface MarketData {\n [tickerId: number]: Quote[];\n}\n\n@Injectable()\nexport class MarketService {\n constructor(private http: HttpClient, private appService: AppService) {}\n\n getMarketData(tickerIds: number[], from: number): Observable {\n const options = {\n headers: this.appService.getHeaders()\n };\n\n const url = `${this.appService.backEndUrl}/market/data`;\n const params = `?from=${from}&tickerIds=${JSON.stringify(tickerIds)}`;\n\n return this.http.get(url + params, options);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/market/market.service.ts","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class NavbarColorService {\n\n private _colorSubject = new BehaviorSubject('#4f2259');\n public color$ = this._colorSubject.asObservable();\n\n setColor(color: string) {\n this._colorSubject.next(color);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/navbar-color/navbar-color.service.ts","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Constant } from '../../utils/constant';\n\n@Injectable()\nexport class NavigationHelperService {\n constructor(private router: Router) {}\n\n toMsa(tickerId?: number) {\n this.router.navigate(\n [Constant.MSARoute],\n tickerId\n ? {\n queryParams: { c: JSON.stringify([{ ticker: { tickerId } }]) }\n }\n : null\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/navigation-helper/navigation-helper.service.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { forkJoin, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { WinnersLosers } from '../../models/winners-losers.model';\nimport { Constant } from '../../utils/constant';\nimport { AppService } from '../app/app.service';\nimport { TimeCodeService } from '../time-code/time-code.service';\nimport { UtilsService } from '../utils/utils.service';\n\n@Injectable()\nexport class OverviewService {\n overview: any;\n assets: any;\n industries: any;\n\n constructor(\n private appService: AppService,\n private http: HttpClient,\n private timeCodeService: TimeCodeService,\n private utilsService: UtilsService\n ) {}\n\n getSocialOverview(\n timeCode: string\n ): Observable<{\n assets: { name: string; bullish_score: number; image?: string }[];\n graphs: { distribution: any; emotions: any; sentiment: any; volumes: any };\n sectors: { name: string; bullish_score: number; image?: string }[];\n }> {\n return this.http.get(\n `${this.appService.backEndUrl}/socials/overview?timeCode=${timeCode}`,\n this.appService.getOptions()\n );\n }\n\n getLeaderLoserBoard(timeCode: string): Observable {\n return this.http.get(\n `${\n this.appService.backEndUrl\n }/socials/posneg?timeCode=${timeCode}&count=10`,\n this.appService.getOptions()\n );\n }\n\n getAssetsIndustries() {\n return this.http.get(\n `${this.appService.backEndUrl}/tickers/assetssectors`,\n this.appService.getOptions()\n );\n }\n\n getOverview(timeCode: string): Observable {\n // forkJoin allows to launch several Observable in parallel and wait until they all finish to process the result.\n return forkJoin(\n this.getSocialOverview(timeCode),\n this.getAssetsIndustries()\n ).pipe(\n map(res => {\n const overviewRes = res[0];\n const assetsSectorsRes = res[1];\n // If assets are missing in overview.\n if (assetsSectorsRes.assets.length > overviewRes.assets.length) {\n // Assets included in the list of all assets but not in the actual assets has to be memorized to be displayed.\n assetsSectorsRes.assets\n .filter(\n assetName =>\n !overviewRes.assets.some(\n asset => asset.name.toLowerCase() === assetName.toLowerCase()\n )\n )\n .forEach(assetName => {\n overviewRes.assets.push({\n name: assetName,\n bullish_score: undefined\n });\n });\n }\n // If sectors are missing in overview.\n if (assetsSectorsRes.sectors.length > overviewRes.sectors.length) {\n const missingSectors = assetsSectorsRes.sectors.filter(sectorName => {\n return !overviewRes.sectors.find(sector => {\n return sector.name.toLowerCase() === sectorName.toLowerCase();\n });\n });\n\n missingSectors.forEach(assetName => {\n overviewRes.sectors.push({\n name: assetName,\n bullish_score: undefined\n });\n });\n }\n\n // Sectors\n overviewRes.sectors = overviewRes.sectors.map(sector => {\n const frontSector = Constant.SectorsBackToFront[sector.name];\n sector.name = frontSector.name;\n sector.image = frontSector.icon;\n return sector;\n });\n\n overviewRes.sectors.sort((a, b) => {\n if (a.name === 'Other') {\n return 1;\n }\n if (b.name === 'Other') {\n return -1;\n }\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n });\n\n // Assets\n overviewRes.assets = overviewRes.assets.map(asset => {\n const frontAsset =\n Constant.AssetsBackToFront[asset.name.toUpperCase()];\n if (frontAsset) {\n asset.image = frontAsset && frontAsset.icon;\n asset.name = frontAsset.name;\n } else {\n asset.image = '';\n asset.name = 'Unknown';\n }\n return asset;\n });\n\n overviewRes.assets.sort((a, b) => {\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n });\n\n overviewRes.graphs.volumes = overviewRes.graphs.volumes.map(volume => ({\n name: Constant.MessageTypesMapping[volume.name],\n y: volume.y\n }));\n\n this.utilsService.formatForPieChart(overviewRes.graphs.emotions.data);\n this.utilsService.formatForPieChart(overviewRes.graphs.sentiment.data);\n this.overview = overviewRes;\n this.timeCodeService.changeTimeCode(\n this.timeCodeService.currentTimeCode\n );\n })\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/overview/overview.service.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CurveSet } from '../../models/curve-set.model';\nimport { Portfolio } from '../../models/portfolio.model';\nimport Ticker from '../../models/ticker.model';\nimport { AlertsService } from '../alerts/alerts.service';\nimport { AppService } from '../app/app.service';\nimport { UserService } from '../user/user.service';\nimport { UtilsService } from '../utils/utils.service';\n\ninterface PortfolioData {\n bullish_score: any;\n CurveSet;\n curves: CurveSet[];\n dates: number[];\n graphs: {\n [key: string]: { overall: number; data: { name: string; y: number }[] };\n };\n volumes: CurveSet[];\n winners: any[];\n}\n\n@Injectable()\nexport class PortfolioService {\n private BASE_URL = `${this.appService.backEndUrl}/portfolio`;\n\n portfolios: Portfolio[];\n private portfolios$ = new BehaviorSubject([]);\n private _currentPortfolio: Portfolio;\n\n curveSetSubject = new BehaviorSubject[]>([]);\n\n get currentPortfolio() {\n return this._currentPortfolio;\n }\n set currentPortfolio(portfolio: any) {\n if (portfolio) {\n localStorage.setItem('cp', JSON.stringify(portfolio));\n this._currentPortfolio = portfolio;\n }\n }\n\n constructor(\n private http: HttpClient,\n private appService: AppService,\n private alertsService: AlertsService,\n private utilsService: UtilsService,\n private userService: UserService\n ) {\n const cp = localStorage.getItem('cp');\n\n if (cp) {\n this._currentPortfolio = JSON.parse(cp);\n }\n }\n\n get portfoliosObs() {\n return this.portfolios$.asObservable();\n }\n\n getPortfolios(listOnly = true): Observable {\n const options = {\n headers: this.appService.getHeaders()\n };\n const url = `${this.BASE_URL}?userId=${\n this.userService.id\n }&listOnly=${listOnly}`;\n return this.http.get(url, options).pipe(\n map(portfolios => {\n // The portfolios must be alphabetically sorted.\n const sortPortfolio = (a: Portfolio, b: Portfolio) =>\n b.name.toLowerCase() < a.name.toLowerCase() ? 1 : -1;\n // The portfolios must be separated with the default ones first and the others next.\n const defaultPortfolios = portfolios\n .filter(portfolio => this.isDefaultPortfolio(portfolio.name))\n .sort(sortPortfolio);\n const userPortfolios = portfolios\n .filter(portfolio => !this.isDefaultPortfolio(portfolio.name))\n .sort(sortPortfolio);\n\n this.portfolios = [...defaultPortfolios, ...userPortfolios];\n this.portfolios$.next([...defaultPortfolios, ...userPortfolios]);\n return this.portfolios$.getValue();\n })\n );\n }\n\n getPortfolio(portfolio: Portfolio): Observable {\n const options = {\n headers: this.appService.getHeaders()\n };\n const url = `${this.BASE_URL}/${portfolio.hash}?userId=${\n this.userService.id\n }&name=${portfolio.name}`;\n\n return this.http.get(url, options);\n }\n\n createPortfolio(\n name: string,\n data: { tickerId: number; quantity: number }[]\n ): Observable {\n const url = `${this.BASE_URL}?userId=${this.userService.id}`;\n\n const options = {\n headers: this.appService.getHeaders()\n };\n return this.http.post(url, { name, data }, options);\n }\n\n updatePortfolio(hash: string, name: string, data: Ticker[]): Observable {\n data.forEach(d => {\n delete d.code;\n delete d.label;\n });\n\n return this.http.put(\n `${this.BASE_URL}/${hash}?userId=${this.userService.id}&name=${name}`,\n { data },\n this.appService.getOptions()\n );\n }\n\n deletePortfolio(hash: string, name: string) {\n const url = `${this.BASE_URL}/${hash}?userId=${\n this.userService.id\n }&name=${name}`;\n return this.http.delete(url, this.appService.getOptions());\n }\n\n getPortfolioData(timeCode: string, hash: string): Observable {\n const url = `${\n this.BASE_URL\n }/overview?timeCode=${timeCode}&hash=${hash}&userId=${this.userService.id}`;\n const options = {\n headers: this.appService.getHeaders()\n };\n return this.http.get(url, options).pipe(\n map(dataPortfolio => {\n if (dataPortfolio.graphs) {\n if (dataPortfolio.graphs.emotions) {\n this.utilsService.formatForPieChart(\n dataPortfolio.graphs.emotions.data\n );\n }\n if (dataPortfolio.graphs.sentiment) {\n this.utilsService.formatForPieChart(\n dataPortfolio.graphs.sentiment.data\n );\n }\n }\n\n return dataPortfolio;\n })\n );\n }\n\n getPortfolioCurveSet(\n hash: string,\n timeCode: string\n ): Observable> {\n const options = {\n headers: this.appService.getHeaders()\n };\n\n return this.http\n .get>(\n `${this.BASE_URL}/curve?userId=${\n this.userService.id\n }&hash=${hash}&timeCode=${timeCode}`,\n options\n )\n .pipe(\n map((res, index) => {\n if (res.params) {\n if (!res.params.requestIds) {\n res.params['requestIds'] = [index];\n }\n } else {\n res.params = {\n requestIds: [index]\n };\n }\n\n return res;\n })\n );\n }\n\n isDefaultPortfolio(portfolioName: string): boolean {\n return /default(.)*/i.test(portfolioName);\n }\n\n addToPortfolio(tickerId: number, portfolioName: string, hash: string): void {\n let tickerExist = false;\n let portfolio = null;\n const portfolios = this.portfolios$.getValue();\n\n for (let i = 0; i < portfolios.length; i++) {\n if (portfolios[i].name === portfolioName) {\n if (!hash) {\n portfolio = portfolios[i];\n break;\n } else if (portfolios[i].hash === hash) {\n portfolio = portfolios[i];\n break;\n }\n }\n }\n\n const portfolioData$ = new Subject();\n\n portfolioData$.subscribe(null, null, () => {\n // We check if the ticker is already in the portfolio\n for (let i = 0; i < portfolio.data.length; i++) {\n if (portfolio.data[i].tickerId === tickerId) {\n tickerExist = true;\n break;\n }\n }\n\n // If the ticker is already in the portfolio, we do nothing but display an info growl\n if (tickerExist) {\n this.alertsService.notifications.push({\n type: 'info',\n msg: ` Ticker already in the portfolio ${\n portfolio.name\n }`\n });\n } else {\n // If the ticker is not in the portfolio, we add it and then update our portfolios\n this.updatePortfolio(portfolio.hash, portfolio.name, [\n ...portfolio.data,\n { tickerId, quantity: 1 }\n ]).subscribe(() => {\n this.alertsService.notifications.push({\n type: 'success',\n msg: ` Ticker successfully added to the portfolio ${\n portfolio.name\n }`\n });\n this.getPortfolios().subscribe();\n });\n }\n });\n\n if (!portfolio.data) {\n this.getPortfolio(portfolio).subscribe(p => (portfolio = p), null, () => {\n portfolioData$.complete();\n });\n } else {\n portfolioData$.complete();\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/portfolio/portfolio.service.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport Ticker from '../../models/ticker.model';\nimport { AppService } from '../app/app.service';\n\n@Injectable()\nexport class TickersService {\n posnegTickers: any;\n tickers: Ticker[];\n currentTickerId: number;\n private idToLabel: Map = new Map();\n\n constructor(private appService: AppService, private http: HttpClient) {}\n\n /**\n * Gets tickers from the API.\n *\n * @returns {Observable}\n * @memberof TickersService\n */\n getTickers(codes?: string[]): Observable {\n return this.http.post(\n `${this.appService.backEndUrl}/market/tickers`,\n { codes },\n this.appService.getOptions()\n );\n }\n\n setCodeToLabel(): void {\n this.tickers.forEach((ticker: Ticker) => {\n if (ticker) {\n this.idToLabel.set(ticker.tickerId, ticker.label);\n }\n });\n }\n\n getLabelFromId(tickerId: number) {\n if (this.idToLabel.has(tickerId)) {\n return this.idToLabel.get(tickerId);\n }\n return null;\n }\n\n exists(tickerId: number): boolean {\n return this.tickers.some(ticker => ticker.tickerId === tickerId);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/tickers/tickers.service.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport * as moment from 'moment';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Time } from '../../models/time.model';\nimport { AppService } from '../app/app.service';\n\n@Injectable()\nexport class TimeCodeService {\n times: any[];\n currentTimeCode: string;\n fallbackTimeCode = '1Y';\n\n constructor(private _appService: AppService, private _http: HttpClient) {}\n\n changeTimeCode(timeCode: string) {\n this.times.forEach(obj => {\n if (obj.code === timeCode) {\n obj.default = true;\n this.currentTimeCode = obj.code;\n } else {\n obj.default = false;\n }\n });\n }\n\n getTimes(): Observable {\n const options = {\n headers: this._appService.getHeaders()\n };\n\n return this._http\n .get(this._appService.backEndUrl + '/times', options)\n .pipe(\n map(times => {\n this.setTimes(times);\n this.setCurrentTimeCode();\n\n return times;\n })\n );\n }\n\n setCurrentTimeCode(): void {\n this.times.forEach(time => {\n if (time.default === true) {\n this.currentTimeCode = time.code;\n }\n });\n }\n\n setTimes(times: Time[]) {\n times.sort((a: Time, b: Time) => {\n const aMs = moment\n .duration(a.total.quantity, (\n a.total.time\n ))\n .asSeconds();\n const bMs = moment\n .duration(b.total.quantity, (\n b.total.time\n ))\n .asSeconds();\n\n return aMs - bMs;\n });\n\n this.times = times;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/time-code/time-code.service.ts","import { Injectable } from '@angular/core';\nimport { Constant } from '../../utils/constant';\nimport { AlertsService } from '../alerts/alerts.service';\nimport { AppService } from '../app/app.service';\nimport { ChartsService } from '../charts/charts.service';\nimport { LoadingService } from '../loading/loading.service';\nimport { OverviewService } from '../overview/overview.service';\nimport { PortfolioService } from '../portfolio/portfolio.service';\nimport { TickersService } from '../tickers/tickers.service';\nimport { TimeCodeService } from '../time-code/time-code.service';\n\n@Injectable()\nexport class UpdateService {\n constructor(\n private portfolioService: PortfolioService,\n private loadingService: LoadingService,\n private timeCodeService: TimeCodeService,\n private overviewService: OverviewService,\n private tickersService: TickersService,\n private chartsService: ChartsService,\n private alertsService: AlertsService,\n private appService: AppService\n ) {}\n\n update(): void {\n // The switch permits to load only the needed data depending on the current view\n switch (this.appService.getCurrentRoute()) {\n case Constant.MSORoute:\n this.loadingService.addLoads();\n this.overviewService\n .getLeaderLoserBoard(this.timeCodeService.currentTimeCode)\n .subscribe(\n response => {\n this.tickersService.posnegTickers = response;\n if (!this.tickersService.currentTickerId) {\n this.tickersService.currentTickerId = this.tickersService.posnegTickers.volume.winners[0].tickerId;\n }\n this.loadingService.removeLoads();\n },\n () => {\n this.loadingService.forceHide();\n }\n );\n\n this.loadingService.addLoads();\n this.overviewService\n .getOverview(this.timeCodeService.currentTimeCode)\n .subscribe(\n () => {\n this.loadingService.removeLoads();\n },\n () => {\n this.loadingService.forceHide();\n }\n );\n break;\n\n case Constant.MSARoute:\n if (this.tickersService.posnegTickers) {\n this.loadingService.addLoads();\n this.chartsService\n .updateGraphics(undefined, { market: true })\n .subscribe(\n () => {\n this.loadingService.removeLoads();\n },\n error => {\n this.loadingService.forceHide();\n switch (error.status) {\n case 410:\n break;\n }\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'Data not available'\n });\n }\n );\n } else {\n this.overviewService\n .getLeaderLoserBoard(this.timeCodeService.currentTimeCode)\n .subscribe(\n response => {\n this.tickersService.posnegTickers = response;\n if (!this.tickersService.currentTickerId) {\n this.loadingService.removeLoads();\n this.tickersService.currentTickerId = this.tickersService.posnegTickers.volume.winners[0].tickerId;\n }\n },\n () => {\n this.loadingService.forceHide();\n },\n () => {\n this.loadingService.addLoads();\n this.chartsService\n .updateGraphics(undefined, { market: true })\n .subscribe(\n () => {\n this.loadingService.removeLoads();\n },\n () => {\n this.loadingService.forceHide();\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'Data not available'\n });\n }\n );\n }\n );\n }\n break;\n\n case Constant.CPRoute:\n this.loadingService.addLoads();\n this.portfolioService\n .getPortfolioData(\n this.timeCodeService.currentTimeCode,\n this.portfolioService.currentPortfolio.hash\n )\n .subscribe(\n portfolioData => {\n this.portfolioService.currentPortfolio.data = portfolioData;\n this.loadingService.removeLoads();\n },\n () => {\n this.loadingService.forceHide();\n\n this.alertsService.notifications.push({\n type: 'danger',\n msg: 'Data not available'\n });\n }\n );\n break;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/update/update.service.ts","import { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AppService } from '../app/app.service';\n\n@Injectable()\nexport class UserService {\n id: string;\n username: string;\n email: string;\n briefingSubscription: boolean;\n alertWeeklySubscription: boolean;\n alertDailySubscription: boolean;\n\n constructor(private http: HttpClient, private appService: AppService) {}\n\n getUserInfo(): Observable {\n const options = {\n headers: this.appService.getHeaders()\n };\n return this.http.get(\n `${this.appService.backEndUrl}/users/${this.id}/infos`,\n options\n );\n }\n\n check(): Observable> {\n const options = {\n headers: this.appService.getHeaders(),\n observe: 'response' as 'response'\n };\n return this.http.get(\n `${this.appService.backEndUrl}/users/${this.id}/check`,\n options\n );\n }\n\n updateUsersInfo(payload: {\n username: string;\n email: string;\n }): Observable {\n return this.http.put(\n `${this.appService.backEndUrl}/users/${this.id}/updateUsersInfo`,\n payload,\n this.appService.getOptions()\n );\n }\n\n changePassword(payload: { oldPassword: string; newPassword: string }) {\n return this.http.post(\n `${this.appService.backEndUrl}/users/${this.id}/changepassword`,\n payload,\n this.appService.getOptions()\n );\n }\n\n updateBriefingSubscription(status: number): Observable {\n const url = `${this.appService.backEndUrl}/users/${\n this.id\n }/briefingSubscription`;\n return this.http.put(url, { status: status }, this.appService.getOptions());\n }\n\n /**\n * Updates the preferences of the user concerning the alert emailing.\n *\n * @param {number} status\n * @returns {Observable}\n * @memberof AlertsService\n */\n updateAlertsEmailingPreferences(\n // weeklyStatus: number,\n dailyStatus: number\n ): Observable {\n return this.http.put(\n `${this.appService.backEndUrl}/users/${this.id}/alertSubscription`,\n { /*weeklyStatus,*/ dailyStatus },\n this.appService.getOptions()\n );\n }\n\n updateUser(user: any): void {\n this.username = user.username;\n this.email = user.email;\n this.briefingSubscription = !!user.sendMorningBriefing;\n this.alertDailySubscription = !!user.sendDailyAlertMail;\n this.alertWeeklySubscription = !!user.sendAlertMail;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/user/user.service.ts","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class UtilsService {\n constructor() {}\n\n /**\n * Round the given number.\n *\n * @param {number} x the number to round.\n * @returns {number} the rounded number.\n * @memberof UtilsService\n */\n round(x: number): number {\n return Math.round(x);\n }\n\n /**\n * Format data for Highcharts' pie charts.\n *\n * @param {any[]} data the data to format.\n * @memberof UtilsService\n */\n formatForPieChart(data: any[]): void {\n let min = data[0].y;\n data.forEach(datum => {\n if (datum.y < min) {\n min = datum.y;\n }\n });\n min = Math.abs(min) + 1;\n let sum = 0;\n data.forEach(datum => {\n datum.y += min;\n sum += datum.y;\n });\n data.forEach(datum => {\n datum.y = Math.round((100 * datum.y) / sum) / 100;\n });\n }\n\n /**\n * Tests if the two given arrays are equal (in term of contained values and order).\n *\n * @param {any[]} a1 the first array.\n * @param {any[]} a2 the second array.\n * @returns boolean\n * @memberof UtilsService\n */\n areArraysEquals(a1: any[], a2: any[]): boolean {\n return a1.length === a2.length && a1.every((v, i) => v === a2[i]);\n }\n\n /**\n * Formats all the graphics' data and saves it.\n * @param data the graphics containing the data to format.\n * @returns the formatted data.\n */\n formatChartsData(data: any): void {\n const requestIds = [];\n for (let i = 0; i < data.curves.length; i++) {\n const requestId = data.curves[i].requestId;\n if (!requestIds.includes(requestId)) {\n requestIds.push(requestId);\n }\n }\n\n const newCurves = {};\n data.curves.forEach(curve => {\n if (!newCurves[curve.requestId]) {\n newCurves[curve.requestId] = [];\n }\n newCurves[curve.requestId].push(\n curve.data.map((datum: any, index: number) => {\n return [data.dates[index], datum];\n })\n );\n });\n data.curves = newCurves;\n data.volumes.forEach(volume => {\n volume.data = volume.data.map((datum: any, index: number) => {\n return [data.dates[index], datum];\n });\n });\n }\n\n /**\n * Tests if the given value is an array.\n *\n * @param {*} x the value to test.\n * @returns boolean\n * @memberof UtilsService\n */\n isArray(x: any): x is any[] {\n return x.constructor === Array;\n }\n\n capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n toCamelCase(sentence: string): string {\n return sentence\n .split(' ')\n .map(word => this.capitalize(word))\n .join(' ');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/utils/utils.service.ts","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport * as socketIo from 'socket.io-client';\nimport { environment } from '../../../../environments/environment';\n\n@Injectable()\nexport class WebSocketService {\n private _socket: any;\n private _socketUrl: string;\n\n public updateSubject: Subject = new Subject();\n public liveFeedSubject: Subject = new Subject();\n\n constructor(private _router: Router) {\n this._socketUrl = environment.socketUrl;\n }\n\n connect(username: string): Observable {\n return Observable.create((observer: Observer) => {\n this._socket = socketIo(this._socketUrl, {\n secure: true,\n reconnectionDelay: 1000\n });\n\n this.onLiveFeed();\n this.onUpdate();\n // this.onDisconnect();\n this.onUpdateTickersList();\n this.onUpdateAlerts();\n\n this._socket.once('connect_error', () => {\n this.disconnect(); // We don't want the socket to try reconnecting forever\n observer.error({ code: 0 });\n });\n\n this._socket.once(\n 'name',\n (response: { valid: boolean; message: string }) => {\n if (response.valid === true) {\n observer.next(null);\n observer.complete();\n } else {\n setTimeout(() => {\n // as the ws heartbeat is 5s long, the first rate limit may concern an already disconnected socket\n this._socket.once(\n 'name',\n (response2: { valid: boolean; message: string }) => {\n if (response2.valid === true) {\n observer.next(null);\n } else {\n observer.error({\n code: 403,\n message: response2.message\n });\n }\n observer.complete();\n }\n );\n\n this._socket.emit('name', { username: username });\n // observer.next(null);\n // observer.complete();\n }, 5000);\n }\n }\n );\n\n this._socket.emit('name', { username: username });\n }).map(() => {\n this.onLiveFeedInit();\n });\n }\n\n disconnect(): void {\n if (this._socket !== undefined) {\n this._socket.removeAllListeners();\n this._socket.disconnect();\n }\n }\n\n onDisconnect(): void {\n this._socket.on('disconnect', (reason: string) => {\n if (!this._router.url.split('?')[0].includes('login')) {\n if (reason === 'ping timeout') {\n this._router.navigate(['/error', 0]);\n } else {\n this._router.navigate(['/error', 503]);\n }\n }\n });\n }\n\n onLiveFeed(): void {\n this._socket.on('live-feed', res => {\n this.liveFeedSubject.next({\n twits: res\n });\n });\n }\n\n onLiveFeedInit(): void {\n this._socket.once('live-feed-init', res => {\n this.liveFeedSubject.next({\n twits: res\n });\n });\n }\n\n onUpdate(): void {\n this._socket.on('update', res => {\n this.updateSubject.next({\n name: 'update',\n timeCode: res.timeCode\n });\n });\n }\n\n onUpdateAlerts(): void {\n this._socket.on('alerts-update', () => {\n this.updateSubject.next({\n name: 'update'\n });\n });\n }\n\n onUpdateTickersList() {\n this._socket.on('update-tickers-list', () => {\n this.updateSubject.next({\n name: 'updateTickersList'\n });\n });\n }\n\n getSocketId(): string {\n return this._socket.id;\n }\n\n isConnected(): boolean {\n return this._socket ? this._socket.connected : false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/websocket/websocket.service.ts","export class Constant {\n public static get Settingsroute(): string {\n return '/settings';\n }\n\n public static get Sectors(): string {\n return 'Sectors';\n }\n\n public static get AssetClasses(): string {\n return 'Asset Classes';\n }\n\n public static get Bond(): string {\n return 'bond';\n }\n\n public static get Emotions(): string {\n return 'Emotions';\n }\n\n public static get Financial(): string {\n return 'Financial';\n }\n\n public static get EMA_30days(): string {\n return 'EMA 30days';\n }\n\n public static get EMA_30hours(): string {\n return 'EMA 30hours';\n }\n\n public static get EMA_150days(): string {\n return 'EMA 150days';\n }\n\n public static get EMA_150hours(): string {\n return 'EMA 150hours';\n }\n\n public static get EMA_150(): string {\n return 'EMA_150';\n }\n\n public static get EMA_30(): string {\n return 'EMA_30';\n }\n\n public static get RAW(): string {\n return 'RAW';\n }\n\n public static get All(): string {\n return 'All';\n }\n\n public static get News(): string {\n return 'News';\n }\n\n public static get SocialTrading(): string {\n return 'Social trading';\n }\n\n public static get Social(): string {\n return 'Social';\n }\n\n public static get Sentiment(): string {\n return 'Sentiment';\n }\n\n public static get AddCurve(): string {\n return 'Add Curve';\n }\n\n public static get Replace(): string {\n return 'Replace';\n }\n\n public static get TickerRequired(): string {\n return 'Ticker required';\n }\n\n public static get TickerNotAvailable(): string {\n return 'Ticker not available';\n }\n\n public static get Filters(): string {\n return 'Filters';\n }\n\n public static get DataSource(): string {\n return 'DATA SOURCE';\n }\n\n public static get AnalysisEngine(): string {\n return 'ANALYSIS ENGINE';\n }\n\n public static get Curves(): string {\n return 'CURVES';\n }\n\n public static get Language(): string {\n return 'LANGUAGE';\n }\n\n public static get OILG(): string {\n return 'OILG';\n }\n\n public static get TECO(): string {\n return 'TECO';\n }\n\n public static get CONG(): string {\n return 'CONG';\n }\n\n public static get TECH(): string {\n return 'TECH';\n }\n\n public static get BASM(): string {\n return 'BASM';\n }\n\n public static get COGO(): string {\n return 'COGO';\n }\n\n public static get INGO(): string {\n return 'INGO';\n }\n\n public static get SERV(): string {\n return 'SERV';\n }\n\n public static get OTHER(): string {\n return 'OTHER';\n }\n\n public static get FINA(): string {\n return 'FINA';\n }\n\n public static get UTIL(): string {\n return 'UTIL';\n }\n\n public static get HECA(): string {\n return 'HECA';\n }\n\n public static get INDE(): string {\n return 'INDE';\n }\n\n public static get Trending(): string {\n return 'Trending';\n }\n\n public static get Winners(): string {\n return 'Winners';\n }\n\n public static get Losers(): string {\n return 'Losers';\n }\n\n public static get Lagging(): string {\n return 'Lagging';\n }\n\n public static get Distribution(): string {\n return 'Distribution';\n }\n\n public static get AggregatedEmotions(): string {\n return 'Aggregated Emotions';\n }\n\n public static get AggregatedSentiment(): string {\n return 'Aggregated Sentiment';\n }\n\n public static get Volume(): string {\n return 'Volume';\n }\n\n public static get PeriodVolume(): string {\n return 'Period Volume';\n }\n\n public static get SentimentStandardDeviation(): string {\n return 'SENTIMENT STANDARD DEVIATION';\n }\n\n public static get EmotionsStandardDeviation(): string {\n return 'EMOTIONS STANDARD DEVIATION';\n }\n\n public static get VolumeVariation(): string {\n return 'VOLUME VARIATION';\n }\n\n public static get StandardDeviation(): string {\n return 'STANDARD DEVIATION';\n }\n\n public static get addToPortfolio(): string {\n return 'Add to portfolio';\n }\n\n public static get CreatePortfolio(): string {\n return 'Create portfolio';\n }\n\n public static get LiveFeed(): string {\n return 'Live Feed';\n }\n\n public static get Save(): string {\n return 'Save';\n }\n\n public static get CurrentlyDisplayed(): string {\n return 'Currently Displayed';\n }\n\n public static get AllTickerAnalysis(): string {\n return 'All tickers analysis';\n }\n\n public static get MoodCurves(): string {\n return 'Mood curves';\n }\n\n public static get AnalysisLastSelection(): string {\n return 'Analysis for last selection';\n }\n\n public static get AnalysisTickerLevel(): string {\n return 'Analysis at ticker level';\n }\n\n public static get AnalysisPortfolioLevel(): string {\n return 'Analysis at portfolio level';\n }\n\n public static get OpinionScore(): string {\n return 'Trading Opinion';\n }\n\n public static get AggregatedOpinionScore(): string {\n return 'Aggregated Trading Opinion';\n }\n\n public static get IndustrialGoods(): string {\n return 'Industrial Goods';\n }\n\n public static get Other(): string {\n return 'Other';\n }\n\n public static get imgPuce(): string {\n return '/assets/img/rectangle.png';\n }\n\n public static get MSORoute(): string {\n return '/marketsentimentoverview';\n }\n\n public static get MSARoute(): string {\n return '/marketsentimentanalysis';\n }\n\n public static get CPRoute(): string {\n return '/portfolio';\n }\n\n public static get AlertsHistoricalRoute(): string {\n return '/alerts/historical';\n }\n\n public static get AlertsManagementRoute(): string {\n return '/alerts/management';\n }\n\n public static get TutorialRoute(): string {\n return '/information/tutorial';\n }\n\n public static get FAQRoute(): string {\n return '/information/faq';\n }\n\n public static get ResearchRoute(): string {\n return '/information/research';\n }\n\n public static get GCURoute(): string {\n return '/information/gcu';\n }\n\n public static get ContactRoute(): string {\n return '/contact';\n }\n\n public static get Crypto(): string {\n return 'Crypto';\n }\n\n public static AssetsBackToFront: {\n [asset: string]: { name: string; icon: string };\n } = {\n BOND: { name: 'Bonds', icon: 'bonds' },\n COMMODITIES: {\n name: 'Commodities',\n icon: 'commodities'\n },\n EQUITY: { name: 'Stocks', icon: 'stock' },\n CURRENCY: { name: 'Currencies', icon: 'currencies' },\n CRYPTO: { name: 'Crypto', icon: 'crypto' },\n ALL: { name: 'Bonds, commodities, stocks, currencies', icon: '' },\n ['']: { name: null, icon: null }\n };\n\n public static SectorsBackToFront: {\n [key: string]: { name: string; icon: string };\n } = {\n [Constant.OILG]: {\n icon: 'oilgas',\n name: 'Oil & Gas'\n },\n [Constant.BASM]: {\n icon: 'basic-materials',\n name: 'Basic Mat.'\n },\n [Constant.COGO]: {\n icon: 'consum-goods',\n name: 'Cons. Goods'\n },\n [Constant.SERV]: {\n icon: 'consum-services',\n name: 'Cons. Services'\n },\n [Constant.FINA]: {\n icon: 'financial',\n name: 'Financials'\n },\n [Constant.HECA]: {\n icon: 'healthcare',\n name: 'Health Care'\n },\n [Constant.INGO]: {\n icon: 'industrial-goods',\n name: 'Industrials'\n },\n [Constant.TECH]: {\n icon: 'technology',\n name: 'Technology'\n },\n [Constant.TECO]: {\n icon: 'telecommunications',\n name: 'Telecom.'\n },\n [Constant.UTIL]: {\n icon: 'utilities',\n name: 'Utilities'\n },\n [Constant.INDE]: { icon: 'index', name: 'Index' },\n [Constant.OTHER]: { icon: 'other', name: 'Other' },\n ALL: { icon: 'other', name: 'All' },\n ['']: { name: null, icon: null }\n };\n\n public static MessageTypesMapping = {\n '[0,1,2,3]': 'All Sources',\n '[0,1,2]': 'Web & Press',\n '[0]': 'News',\n '[1]': 'Blogs',\n '[2]': 'Discussions',\n '[3]': 'Social Trading'\n };\n\n public static LanguagesMapping = {\n '[\"de\",\"en\",\"es\",\"fr\",\"it\",\"ja\",\"pt\",\"zh\"]': 'All languages',\n '[\"en\"]': 'English',\n '[\"fr\"]': 'French',\n '[\"es\"]': 'Spanish',\n '[\"zh\"]': 'Chinese',\n '[\"ja\"]': 'Japanese',\n '[\"pt\"]': 'Portuguese',\n '[\"it\"]': 'Italian',\n '[\"de\"]': 'German'\n };\n\n public static MessageTypeKeyValueTitle = {\n [Constant.News.toLowerCase()]: { name: Constant.News },\n [Constant.Social.toLowerCase()]: { name: Constant.SocialTrading },\n [Constant.All.toLowerCase()]: {\n name: Constant.News + ', ' + Constant.SocialTrading\n }\n };\n\n public static EnginesKeyValue = {\n ['bullish_score']: { name: Constant.OpinionScore },\n ['emotions']: { name: Constant.Emotions },\n [Constant.Sentiment.toLowerCase()]: { name: Constant.Sentiment },\n [Constant.All.toLowerCase()]: { name: 'All engines' }\n };\n\n public static EnginesKeyValueTitle = {\n ['bullish_score']: { name: Constant.OpinionScore },\n ['emotions']: { name: Constant.Emotions },\n [Constant.Sentiment.toLowerCase()]: { name: Constant.Sentiment },\n [Constant.All.toLowerCase()]: {\n name: 'All'\n }\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/utils/constant.ts","import { ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport const requiredAtLeastOneTrueValidator: ValidatorFn = (\n control\n): ValidationErrors | null => {\n return Object.values(control.value).some(value => value === true)\n ? null\n : { requiredAtLeastOneTrue: true };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/validators/required-at-least-one-true.validator.ts","import { ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport const sameValuesValidator: ValidatorFn = (\n control\n): ValidationErrors | null => {\n return Object.values(control.value).reduce((prev, curr) => prev === curr)\n ? null\n : { sameValues: true };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/validators/same-values.validator.ts","export const environment = {\n production: true,\n socketUrl: 'https://humeurdesmarches.com',\n backEndUrl: 'https://humeurdesmarches.com/api'\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","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\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// child_process (ignored)\n// module id = 0\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ws (ignored)\n// module id = 2\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// util (ignored)\n// module id = 3\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// fs (ignored)\n// module id = 4\n// module chunks = main"],"sourceRoot":"webpack:///"}