{"version":3,"file":"js/app.js","mappings":"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","sources":["webpack://conzoom-web-widgets/./src/components/ConzoomTypeDistributionComponent/ConzoomTypeDistributionComponent.ce.vue","webpack://conzoom-web-widgets/./src/shared/components/WatermarkSign/WatermarkSign.vue","webpack://conzoom-web-widgets/./src/shared/components/WatermarkSign/WatermarkSign.vue?67d1","webpack://conzoom-web-widgets/./src/shared/components/CopyBtn/CopyBtn.vue","webpack://conzoom-web-widgets/./src/shared/components/CopyBtn/CopyBtn.vue?3188","webpack://conzoom-web-widgets/./src/shared/components/CopyRightsRef/CopyRightsRef.vue","webpack://conzoom-web-widgets/./src/shared/components/CopyRightsRef/CopyRightsRef.vue?1e7b","webpack://conzoom-web-widgets/./src/shared/components/DistributionChartLoader/DistributionChartLoader.ce.vue","webpack://conzoom-web-widgets/./src/shared/components/DistributionChartLoader/DistributionChartLoader.ce.vue?af23","webpack://conzoom-web-widgets/./src/service.ts","webpack://conzoom-web-widgets/./src/components/ConzoomTypeDistributionComponent/styles.scss","webpack://conzoom-web-widgets/./src/components/ConzoomTypeDistributionComponent/ConzoomTypeDistributionComponent.ce.vue?673a","webpack://conzoom-web-widgets/./src/components/ConzoomFactChartComponent/ConzoomFactChartComponent.ce.vue?2719","webpack://conzoom-web-widgets/./src/components/ConzoomFactChartComponent/ConzoomFactChartComponent.ce.vue?1d39","webpack://conzoom-web-widgets/./src/components/ConzoomFactChartComponent/styles.scss","webpack://conzoom-web-widgets/./src/components/ConzoomFactChartComponent/ConzoomFactChartComponent.ce.vue","webpack://conzoom-web-widgets/./src/components/ConzoomGalupCompassComponent/ConzoomGalupCompassComponent.ce.vue","webpack://conzoom-web-widgets/./src/components/ConzoomGalupCompassComponent/styles.scss","webpack://conzoom-web-widgets/./src/components/ConzoomGalupCompassComponent/ConzoomGalupCompassComponent.ce.vue?330c","webpack://conzoom-web-widgets/./src/components/ConzoomDecile/ConzoomDecileComponent.ce.vue","webpack://conzoom-web-widgets/./src/components/ConzoomDecile/components/BarChartSwitcherComponent/BarChartSwitcherComponent.vue","webpack://conzoom-web-widgets/./src/components/ConzoomDecile/components/BarChartSwitcherComponent/BarChartSwitcherComponent.vue?ad97","webpack://conzoom-web-widgets/./src/components/ConzoomDecile/styles.scss","webpack://conzoom-web-widgets/./src/components/ConzoomDecile/ConzoomDecileComponent.ce.vue?6fac","webpack://conzoom-web-widgets/./src/components/ConzoomLanguageSwitcher/ConzoomLanguageSwitcher.ce.vue?5d7c","webpack://conzoom-web-widgets/./src/components/ConzoomLanguageSwitcher/ConzoomLanguageSwitcher.ce.vue?0961","webpack://conzoom-web-widgets/./src/components/ConzoomLanguageSwitcher/styles.scss","webpack://conzoom-web-widgets/./src/components/ConzoomLanguageSwitcher/ConzoomLanguageSwitcher.ce.vue","webpack://conzoom-web-widgets/./src/main.ts","webpack://conzoom-web-widgets/webpack/bootstrap","webpack://conzoom-web-widgets/webpack/runtime/chunk loaded","webpack://conzoom-web-widgets/webpack/runtime/compat get default export","webpack://conzoom-web-widgets/webpack/runtime/define property getters","webpack://conzoom-web-widgets/webpack/runtime/global","webpack://conzoom-web-widgets/webpack/runtime/hasOwnProperty shorthand","webpack://conzoom-web-widgets/webpack/runtime/jsonp chunk loading","webpack://conzoom-web-widgets/webpack/startup"],"sourcesContent":["<template xmlns:v-bind>\r\n  <div class=\"type-distribution-chart\" ref=\"chartPie\">\r\n    <div class=\"type-distribution-chart__content\">\r\n      <div class=\"type-distribution-chart__title\">{{ translations['widget-title-conzoom-type-distribution'] }}</div>\r\n\r\n      <div class=\"type-distribution-chart__legend-panel\">\r\n      <span v-for=\"item in distChartData\" :key=\"item.title\"\r\n            class=\"type-distribution-chart__legend\">\r\n        <span class=\"type-distribution-chart__legend-point\"\r\n              :style=\"{ 'background-color': item.color }\"></span>\r\n        <span class=\"type-distribution-chart__legend-title\"\r\n              :style=\"{ 'color': item.color }\">{{ item.title }}</span>\r\n      </span>\r\n      </div>\r\n\r\n      <div class=\"type-distribution-chart-wrapper\"\r\n           :style=\"{height: chartOptions.radius * 2 + 'px'}\">\r\n        <div class=\"chart-label__wrapper\"\r\n             :style=\"{ 'transform': `rotate(${coord.halfPathAngle}deg)` }\"\r\n             v-for=\"coord in labelCoordinates\" :key=\"coord.percent\">\r\n          <div class=\"chart-label opacity\"\r\n               :style=\"{\r\n             'transform': `rotate(-${coord.halfPathAngle}deg)`,\r\n             'color': coord.color}\">{{ coord.percent }}%\r\n          </div>\r\n        </div>\r\n\r\n        <DistributionChartLoader v-bind:chart-loader-value=\"chartLoaderValue\"/>\r\n\r\n        <svg class=\"chart\" ref=\"chart\"></svg>\r\n      </div>\r\n    </div>\r\n\r\n    <span class=\"btn-panel\">\r\n      <CopyBtn v-bind:isProcessing=\"isProcessing\"\r\n               v-bind:translationPlaceholder=\"translations['text-downloading-the-copy']\"\r\n               @onCopy=\"onChartCopy\"/>\r\n    </span>\r\n\r\n    <WatermarkSign/>\r\n    <CopyRightsRef v-bind:copyRightRef=\"translations['text-source']\"/>\r\n  </div>\r\n</template>\r\n\r\n\r\n<script>\r\nimport WatermarkSign from '@/shared/components/WatermarkSign/WatermarkSign';\r\nimport CopyBtn from '@/shared/components/CopyBtn/CopyBtn';\r\nimport CopyRightsRef from \"@/shared/components/CopyRightsRef/CopyRightsRef\";\r\nimport DistributionChartLoader from \"@/shared/components/DistributionChartLoader/DistributionChartLoader.ce\";\r\nimport {\r\n  copyChart,\r\n  generateDistributionChartLabels,\r\n  generateTypeDistributionChart, getChartTranslations,\r\n  getTypeDistributionChartData\r\n} from '@/service';\r\n\r\n\r\nexport default {\r\n  name: 'ConzoomTypeDistributionComponent',\r\n  props: {\r\n    api: String,\r\n    token: String,\r\n    lang: String,\r\n    country: String,\r\n    group: String\r\n  },\r\n  components: {CopyBtn, WatermarkSign, CopyRightsRef, DistributionChartLoader},\r\n  async mounted() {\r\n    this.animateChartLoader();\r\n    await this.setChartData();\r\n  },\r\n  beforeUnmount() {\r\n    this.subscriptions.forEach((subscription) => clearTimeout(subscription));\r\n  },\r\n  methods: {\r\n    onChartCopy() {\r\n      this.isProcessing = true;\r\n      copyChart(this.$refs.chartPie, document.querySelector('conzoom-type-distribution').shadowRoot.styleSheets)\r\n          .then(() => this.showCopiedTooltip());\r\n    },\r\n    showCopiedTooltip() {\r\n      const timer = setTimeout(() => {\r\n        this.isProcessing = false;\r\n      }, 3000);\r\n\r\n      this.subscriptions.push(timer);\r\n    },\r\n    animateChartLoader() {\r\n      const subscription = setInterval(() => {\r\n        this.chartLoaderValue += 1;\r\n\r\n        if (100 === this.chartLoaderValue) {\r\n          clearInterval(subscription);\r\n        }\r\n      }, 10);\r\n    },\r\n    async setChartData() {\r\n      Promise.all([\r\n          getTypeDistributionChartData(this.api, this.token, this.group),\r\n        await getChartTranslations(this.api, this.token, this.lang, 'conzoom-type-distribution')])\r\n          .then(([distChartData, distCharTranslation]) => {\r\n            this.translations = distCharTranslation.reduce((acc, transl) => ({...acc, [transl.key]: transl.value}), {});\r\n            this.distChartData = distChartData.data[0].conzoom_types\r\n                .map((type) => ({title: type.segment, color: type.color, percent: +type.group_percent}));\r\n\r\n            generateTypeDistributionChart({...this.chartOptions, el: this.$refs.chart, segments: this.distChartData}); //use this function to draw pie\r\n            this.labelCoordinates = generateDistributionChartLabels(this.distChartData);\r\n          });\r\n    }\r\n  },\r\n  data: () => {\r\n    return {\r\n      distChartData: null,\r\n      chartLoaderValue: 0,\r\n      translations: {},\r\n      chartOptions: {\r\n        radius: 100,\r\n      },\r\n      labelCoordinates: [],\r\n      isProcessing: false,\r\n      subscriptions: [],\r\n    };\r\n  }\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" src=\"./styles.scss\"></style>\r\n","<template>\r\n  <div class=\"watermark\" hidden>\r\n    <svg width=\"577\" height=\"83\" viewBox=\"0 0 577 83\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n      <g opacity=\"0.05\" clip-path=\"url(#clip0_13268_26624)\">\r\n        <path d=\"M445.337 41.6289C445.337 53.0793 441.197 63.0666 433.121 71.0949C425.041 79.1521 414.961 83.2674 403.347 83.2674C391.733 83.2674 381.479 79.2195 373.412 71.0131C370.779 68.284 369.372 67.2733 368.477 67.2733C367.582 67.2733 366.17 68.284 363.537 71.0131C355.484 79.1954 345.258 83.2722 333.601 83.2674C321.945 83.2625 311.908 79.1617 303.827 71.1045C295.775 63.0762 291.626 53.089 291.612 41.6385C291.612 30.188 295.756 20.2008 303.827 12.1724C311.908 4.1008 321.987 0 333.601 0C345.215 0 355.47 4.04785 363.537 12.2543C366.17 14.9833 367.577 15.9941 368.477 15.9941C369.377 15.9941 370.779 14.9833 373.412 12.2543C381.479 4.04785 391.714 0 403.347 0C414.98 0 425.041 4.1008 433.121 12.1628C441.197 20.2152 445.328 30.1784 445.337 41.6289ZM431.004 41.6289C431.075 34.1252 428.271 27.7333 422.98 22.4437C417.609 17.1075 411.062 14.4394 403.338 14.4394C395.575 14.4394 388.986 17.1444 383.591 22.5159C381.611 24.5133 380.2 25.8033 377.993 28.8596C375.747 31.9737 373.256 35.314 368.477 35.3237C363.698 35.3333 361.201 31.9545 358.961 28.8596C356.749 25.8033 355.338 24.5278 353.358 22.5159C347.958 17.13 341.369 14.4394 333.616 14.4394C325.862 14.4394 319.335 17.13 313.968 22.4581C311.408 24.9277 309.373 27.9041 307.988 31.2037C306.603 34.5033 305.898 38.0562 305.916 41.6433C305.85 49.147 308.654 55.5388 313.968 60.8285C319.336 66.155 325.886 68.8279 333.616 68.8472C341.369 68.8472 347.958 66.1422 353.358 60.7707C355.338 58.7685 356.749 57.4785 358.961 54.427C361.201 51.3081 363.698 47.9581 368.477 47.963C373.256 47.9678 375.747 51.3081 377.993 54.427C380.2 57.4785 381.611 58.7588 383.591 60.7707C388.986 66.1422 395.575 68.852 403.338 68.8472C411.101 68.8424 417.614 66.1566 422.98 60.8285C425.543 58.3577 427.579 55.3789 428.963 52.0765C430.347 48.7741 431.05 45.2183 431.028 41.6289H431.004Z\" fill=\"#141414\"/>\r\n        <path d=\"M240.523 59.8901C238.477 61.6033 236.327 63.1835 234.086 64.6214C233.881 64.695 233.704 64.8332 233.581 65.0158C233.459 65.1984 233.397 65.416 233.404 65.637C233.404 66.0413 233.669 66.436 234.55 66.4697H285.88V79.8069H219.777C211.9 79.8069 210.507 73.7568 210.507 71.1432C210.507 67.9955 211.118 65.6226 213.548 63.4422L256.84 24.5328C258.884 22.8161 261.034 21.2341 263.277 19.7967C263.486 19.7249 263.667 19.5862 263.792 19.4013C263.916 19.2164 263.979 18.9954 263.969 18.7715C263.969 18.3768 263.699 17.9773 262.818 17.9436H213.401V4.60156H276.398C284.279 4.60156 285.672 10.6517 285.672 13.2652C285.672 16.413 285.061 18.7859 282.631 20.9662L240.523 59.8901Z\" fill=\"#141414\"/>\r\n        <path d=\"M530.078 25.1773C530.652 23.7718 531.788 19.9502 531.864 19.0453C531.94 18.1404 532.433 17.9383 532.811 17.9383C533.19 17.9383 533.612 18.1404 533.726 19.0309L538.936 79.8064H555.13C555.13 79.8064 549.285 22.1065 548.148 14.2033C547.286 6.10277 541.143 0.755371 533.678 0.755371C525.323 0.755371 521.226 6.43488 519.54 11.0603L506.784 45.893C505.766 48.6365 505.131 49.6376 504.762 49.6376C504.392 49.6376 503.762 48.6365 502.748 45.893L489.946 11.0699C488.269 6.44451 484.172 0.764997 475.812 0.764997C468.351 0.764997 462.203 6.1124 461.341 14.2129C460.205 22.1161 454.36 79.816 454.36 79.816H470.559L475.769 19.0405C475.868 18.1501 476.243 17.9479 476.674 17.9479C477.105 17.9479 477.531 18.1356 477.621 19.0549C477.711 19.9742 478.838 23.7814 479.407 25.1869L491.655 56.7082C493.91 62.4454 499.528 65.0541 504.724 65.0493C509.92 65.0445 515.547 62.4454 517.801 56.7082L530.078 25.1773Z\" fill=\"#141414\"/>\r\n        <path d=\"M88.7915 29.6299H98.4304C99.3777 29.6299 100.756 29.5625 106.819 29.8176C113.37 30.0968 119.082 33.0713 122.634 38.3561C125.827 43.1019 127.001 48.9017 127.006 54.5138C126.993 59.1293 126.254 63.7129 124.818 68.0917C124.1 70.3042 122.869 72.3085 121.227 73.9348C116.283 78.8202 108.178 79.8069 100.96 79.8069H91.3208C90.3735 79.8069 88.9999 79.8791 82.9324 79.6192C76.3864 79.3448 70.6741 76.3655 67.1217 71.0855C63.9293 66.3397 62.7546 60.5351 62.7498 54.9277C62.7662 50.3129 63.5032 45.7299 64.9334 41.3499C65.6513 39.1364 66.8846 37.1319 68.5285 35.5067C73.4734 30.6166 81.573 29.6299 88.7915 29.6299ZM77.8737 54.7256C77.8737 60.7565 78.2289 64.5155 79.6215 66.59C81.014 68.6645 82.3687 69.6463 94.878 69.6463C107.387 69.6463 108.766 68.6356 110.134 66.59C111.503 64.5444 111.868 60.7565 111.878 54.7256C111.887 48.6947 111.522 44.9309 110.134 42.8564C108.747 40.7819 107.383 39.8 94.878 39.8C82.3734 39.8 80.9951 40.8156 79.6215 42.8371C78.2479 44.8587 77.8879 48.6947 77.8737 54.7256ZM151.579 54.7256C151.579 60.1211 151.764 70.9363 151.977 75.2536C151.977 76.4663 151.503 77.6294 150.659 78.4869C149.815 79.3444 148.671 79.8261 147.478 79.8261C144.583 79.8261 141.68 79.5325 139.539 77.357C137.905 75.6916 137.569 73.3861 137.573 71.3309C137.573 70.7485 137.663 66.8499 137.663 66.6814C137.663 66.6814 137.498 54.5668 137.498 54.5234C137.498 48.9113 137.63 43.1115 140.813 38.3657C144.366 33.0713 150.078 30.1064 156.629 29.8272C162.691 29.5721 164.084 29.6395 165.017 29.6395H174.656C181.87 29.6395 189.761 30.6021 194.635 35.5163C196.261 37.1464 197.476 39.1507 198.178 41.3595C199.438 45.21 199.693 49.9943 199.693 54.9374C199.693 54.9807 199.499 66.6911 199.499 66.6911C199.499 66.8595 199.594 70.7582 199.594 71.3406C199.594 73.3958 199.262 75.7013 197.624 77.3666C195.483 79.5421 192.579 79.8357 189.69 79.8357C189.098 79.8364 188.513 79.7186 187.966 79.4891C187.42 79.2596 186.923 78.9229 186.505 78.4982C186.087 78.0735 185.755 77.5693 185.528 77.0142C185.302 76.4591 185.185 75.8641 185.185 75.2633C185.398 70.9314 185.564 60.1308 185.574 54.7352C185.574 48.7044 185.214 44.9405 183.826 42.866C182.438 40.7916 181.079 39.8097 168.569 39.8097C156.06 39.8097 154.691 40.8156 153.322 42.8371C151.954 44.8587 151.57 48.6947 151.57 54.7256H151.579Z\" fill=\"#141414\"/>\r\n        <path d=\"M32.1423 69.6458C37.291 69.6458 47.4936 69.3474 51.7423 69.126C52.6322 69.125 53.5025 69.3919 54.2433 69.8929C54.9842 70.394 55.5623 71.1069 55.9049 71.9415C56.2474 72.7762 56.339 73.6953 56.168 74.5827C55.997 75.4702 55.5712 76.2863 54.9442 76.9281C54.1011 77.7897 53.329 78.3721 50.8944 78.8197C47.4225 79.4935 36.4384 79.8064 28.5757 79.8064C27.6284 79.8064 26.2548 79.8738 20.1872 79.6187C13.6413 79.3395 7.92901 76.365 4.37185 71.085C1.17467 66.3392 0 60.5346 0 54.9273C0.0144472 50.3107 0.75151 45.7258 2.18356 41.3446C2.90266 39.1331 4.13585 37.1304 5.77861 35.5062C10.7236 30.6161 18.8231 29.6294 26.0511 29.6294C33.5538 29.6294 52.1401 31.184 52.1401 31.184C53.3206 31.2546 54.4264 31.794 55.2189 32.6858C56.0114 33.5776 56.427 34.7503 56.376 35.9508C56.325 37.1513 55.8115 38.2833 54.9464 39.1024C54.0812 39.9215 52.9338 40.3621 51.7517 40.329C47.4888 40.1124 37.3005 39.8092 32.1518 39.8092C19.6425 39.8092 18.2595 40.8199 16.8906 42.8655C15.5217 44.9111 15.157 48.6942 15.157 54.7203C15.157 60.7464 15.5123 64.515 16.9001 66.5895C18.2879 68.664 19.6331 69.6458 32.1423 69.6458Z\" fill=\"#141414\"/>\r\n        <path d=\"M562.525 15.9744C561.023 15.9744 559.555 15.5219 558.307 14.674C557.058 13.8262 556.085 12.6211 555.51 11.2112C554.935 9.8013 554.785 8.24988 555.078 6.75313C555.371 5.25638 556.094 3.88153 557.156 2.80243C558.218 1.72334 559.571 0.988466 561.044 0.690744C562.517 0.393022 564.044 0.545824 565.431 1.12983C566.818 1.71383 568.004 2.7028 568.839 3.97168C569.673 5.24057 570.118 6.73237 570.118 8.25844C570.118 10.3048 569.318 12.2674 567.894 13.7144C566.47 15.1615 564.539 15.9744 562.525 15.9744ZM562.525 2.58721C559.415 2.58721 557.081 4.91684 557.081 8.24657C557.081 11.5763 559.418 13.903 562.525 13.903C565.633 13.903 567.966 11.5763 567.966 8.24657C567.966 4.91684 565.621 2.58721 562.525 2.58721ZM563.615 12.2796L562.42 9.27042H561.766V12.2796H559.605V4.21053H563.159C564.911 4.21053 565.869 5.49257 565.869 6.81615C565.87 7.25012 565.751 7.67557 565.524 8.04322C565.297 8.41088 564.972 8.70569 564.587 8.89352L566.076 12.2648L563.615 12.2796ZM562.849 5.99113H561.754V7.61445H562.849C562.958 7.62115 563.067 7.60513 563.17 7.56737C563.273 7.5296 563.367 7.4709 563.446 7.39488C563.526 7.31885 563.589 7.22711 563.632 7.12528C563.676 7.02346 563.698 6.91371 563.698 6.80279C563.698 6.69187 563.676 6.58213 563.632 6.48031C563.589 6.37848 563.526 6.28674 563.446 6.21071C563.367 6.13468 563.273 6.07598 563.17 6.03822C563.067 6.00046 562.958 5.98444 562.849 5.99113Z\" fill=\"#141414\"/>\r\n      </g>\r\n      <defs>\r\n        <clipPath id=\"clip0_13268_26624\">\r\n          <rect width=\"577\" height=\"83\" fill=\"white\"/>\r\n        </clipPath>\r\n      </defs>\r\n    </svg>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: \"WatermarkSign\",\r\n}\r\n</script>\r\n","import { render } from \"./WatermarkSign.vue?vue&type=template&id=1279d9e3\"\nimport script from \"./WatermarkSign.vue?vue&type=script&lang=js\"\nexport * from \"./WatermarkSign.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n  <div class=\"copy-button-wrapper\">\r\n    <span class=\"copy-button-hint\" v-if=\"isProcessing\">{{translationPlaceholder}}</span>\r\n\r\n    <span :class=\"{ 'in-progress-btn': isProcessing }\"\r\n          class=\"copy-button\" v-on:click=\"copyChart\">\r\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M16 0H15H5H4V1V2V3H5V2V1H6H14H15V2V10V11H14H13V12H14H15H16V11V1V0ZM0 16V4H12V16H0ZM1 15V5H11V15H1Z\"\r\n              fill=\"black\"/>\r\n      </svg>\r\n    </span>\r\n  </div>\r\n</template>\r\n\r\n\r\n<script>\r\nexport default {\r\n  name: \"CopyBtn\",\r\n  props: {\r\n    isProcessing: Boolean,\r\n    translationPlaceholder: String,\r\n  },\r\n  methods: {\r\n    copyChart() {\r\n      if (this.isProcessing) return;\r\n      this.$emit('onCopy')\r\n    }\r\n  }\r\n}\r\n</script>\r\n","import { render } from \"./CopyBtn.vue?vue&type=template&id=5dd7989e\"\nimport script from \"./CopyBtn.vue?vue&type=script&lang=js\"\nexport * from \"./CopyBtn.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n  <div class=\"copy-rights-ref\" hidden>\r\n    <span v-html=\"copyRightRef\"></span>\r\n  </div>\r\n</template>\r\n\r\n\r\n<script>\r\nexport default {\r\n  name: \"CopyRightsRef\",\r\n  props: {\r\n    copyRightRef: String\r\n  }\r\n}\r\n</script>\r\n","import { render } from \"./CopyRightsRef.vue?vue&type=template&id=59b37d50\"\nimport script from \"./CopyRightsRef.vue?vue&type=script&lang=js\"\nexport * from \"./CopyRightsRef.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template xmlns:v-bind>\r\n  <div class=\"chart-loader\">\r\n    <svg viewBox=\"0 0 32 32\">\r\n      <circle r=\"16\" cx=\"16\" cy=\"16\"\r\n              v-bind:style=\"{ 'stroke-dasharray': `${100 - this.chartLoaderValue}, 100`}\"\r\n              v-bind:stroke=\"'#F5F5F5'\"/>\r\n    </svg>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: \"DistributionChartLoader\",\r\n  props: {\r\n    chartLoaderValue: Number,\r\n  },\r\n}\r\n</script>\r\n","import { render } from \"./DistributionChartLoader.ce.vue?vue&type=template&id=34256707&xmlns%3Av-bind=true\"\nimport script from \"./DistributionChartLoader.ce.vue?vue&type=script&lang=js\"\nexport * from \"./DistributionChartLoader.ce.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import domtoimage from 'dom-to-image';\r\nimport axios from 'axios';\r\n\r\nlet revertingElementsMapper: any[] = [];\r\n\r\nexport const copyChart = async(copiedChartEl, styleSheet, isDomtoimage?) => {\r\n    // for local test local download\r\n    if (isDomtoimage) {\r\n        return new Promise((resolve, reject) => {\r\n            prepareChartForCopying(copiedChartEl);\r\n\r\n            domtoimage.toPng(copiedChartEl)\r\n            .then(function(dataUrl) {\r\n                const link = document.createElement('a');\r\n                link.download = 'pie-chart.png';\r\n                link.href = dataUrl;\r\n                link.click();\r\n                revertChartToShowing(copiedChartEl);\r\n                resolve('done');\r\n            })\r\n            .catch((err) => reject(err));\r\n        });\r\n    } else {\r\n        prepareChartForCopying(copiedChartEl);\r\n\r\n        const css = getCssFromStyleSheet(styleSheet);\r\n        const payload = { html: copiedChartEl.outerHTML, css: css, ms_delay: 2000 };\r\n        const stringlifiedPayload = JSON.stringify(payload);\r\n        revertChartToShowing(copiedChartEl);\r\n\r\n        const options = {\r\n            auth: {\r\n                username: 'bc354710-34d1-46e4-a199-24903bb09494',\r\n                password: '15340ba7-d95b-4df0-9402-1049f0c56b69'\r\n            },\r\n            headers: {\r\n                'Content-Type': 'application/json'\r\n            }\r\n        };\r\n\r\n        try {\r\n            const postResponse = await axios.post('https://hcti.io/v1/image', stringlifiedPayload, options);\r\n            const fileName: string = postResponse.data.url.split('/').pop() as string;\r\n            const getResponse = await axios.get(postResponse.data.url, { responseType: 'blob' });\r\n            const imageURL = URL.createObjectURL(getResponse.data);\r\n            const link = document.createElement('a');\r\n            link.href = imageURL;\r\n            link.download = fileName;\r\n            link.click();\r\n\r\n            return 'done';\r\n\r\n        } catch(error) {\r\n            console.error(error);\r\n            return error;\r\n        }\r\n    }\r\n};\r\n\r\nexport const getTypeDistributionChartData = async (api: string, token: string, segment: string) => {\r\n    const options = {\r\n        headers: { Authorization: `Bearer ${token}` },\r\n        params: {\r\n            filter: `{\"_and\":[{\"_and\":[{\"segment\":{\"_eq\":\"${segment.toUpperCase()}\"}},{\"status\":{\"_eq\":\"published\"}}]}]}`,\r\n            limit: `1`,\r\n            fields: `segment,conzoom_types.segment,conzoom_types.color,conzoom_types.group_percent`,\r\n        }\r\n    };\r\n\r\n    const data = await axios.get(`${api}/items/conzoom_groups`, options);\r\n    return data.data;\r\n};\r\n\r\nexport const generateTypeDistributionChart = (data) => {\r\n    // set size of <svg> element\r\n    data.el.setAttribute('width', 2 * data.radius);\r\n    data.el.setAttribute('height', 2 * data.radius);\r\n\r\n    // calculate sum of values\r\n    let sum = 0;\r\n    const radius = data.radius;\r\n    for(let e = 0; e < data.segments.length; e++) {\r\n        sum += data.segments[e].percent;\r\n    }\r\n\r\n    // generate proportional pie for all segments\r\n    let startAngle = 0, endAngle = 0;\r\n\r\n    for(let i = 0; i < data.segments.length; i++) {\r\n        const element = data.segments[i];\r\n        const angle = element.percent * 2 * Math.PI / sum;\r\n\r\n        endAngle += angle;\r\n        const svgLine = makeSVG('line', {\r\n            x1: radius,\r\n            y1: radius,\r\n            x2: (Math.cos(endAngle) * radius + radius),\r\n            y2: (Math.sin(endAngle) * radius + radius),\r\n            stroke: element.color\r\n        });\r\n        data.el.appendChild(svgLine);\r\n        const pathStr =\r\n            'M ' + (radius) + ',' + (radius) + ' ' +\r\n            'L ' + (Math.cos(startAngle) * radius + radius) + ',' +\r\n            (Math.sin(startAngle) * radius + radius) + ' ' +\r\n            'A ' + (radius) + ',' + (radius) +\r\n            ' 0 ' + (angle < Math.PI ? '0' : '1') + ' 1 ' +\r\n            (Math.cos(endAngle) * radius + radius) + ',' +\r\n            (Math.sin(endAngle) * radius + radius) + ' ' +\r\n            'Z';\r\n        const svgPath = makeSVG('path', { d: pathStr, fill: element.color });\r\n        data.el.appendChild(svgPath);\r\n\r\n        startAngle += angle;\r\n    }\r\n};\r\n\r\nexport const generateDistributionChartLabels = (data) => {\r\n    let anglesSum = 0;\r\n    const labelCoordinates = [];\r\n\r\n    for(let i = 0; i < data.length; i++) {\r\n        const angleStart = anglesSum;\r\n        anglesSum += data[i].percent * 3.6;\r\n        const angleEnd = anglesSum;\r\n\r\n        let halfPathAngle = (angleStart + angleEnd) / 2;\r\n\r\n        if (data[i - 1] && data[i - 1].percent < 3 && data[i].percent < 3) {\r\n            halfPathAngle = halfPathAngle + 3;\r\n        }\r\n\r\n        if (data[i + 1] && data[i + 1].percent < 3 && data[i].percent < 3) {\r\n            halfPathAngle = halfPathAngle - 3;\r\n        }\r\n\r\n        const coordinates = {\r\n            percent: data[i].percent,\r\n            halfPathAngle: halfPathAngle,\r\n            color: data[i].color\r\n        };\r\n\r\n        // @ts-ignore\r\n        labelCoordinates.push(coordinates);\r\n    }\r\n\r\n    return labelCoordinates;\r\n};\r\n\r\nexport const getDecilesConfig = async(api: string, token: string, country: string) => {\r\n    const headers = {\r\n        Authorization: `Bearer ${token}`,\r\n    };\r\n\r\n    const params = {\r\n        filter: `{\"_and\":[{\"country\":{\"code\":{\"_eq\":\"${country}\"}}}]}`,\r\n        limit: `1`,\r\n        fields: `default_variable,variables`,\r\n    };\r\n\r\n    const decilesRes = await axios.get(`${api}/items/conzoom_decile_config`, { headers, params });\r\n\r\n    return decilesRes.data.data[0];\r\n};\r\n\r\nexport const getDecileData = async(api, token, decile: string, segment: string) => {\r\n    const headers = {\r\n        Authorization: `Bearer ${token}`,\r\n    };\r\n\r\n    const params = {\r\n        fields: `id,conzoom_data.label.translations.lang,conzoom_data.label.translations.value,conzoom_data.label.translations.id,conzoom_data.country_average,conzoom_data.${segment.toLowerCase()},translations.lang,translations.name`,\r\n        filter: `{\"_and\":[{\"id\":{\"_eq\":\"${decile}\"}}]}`,\r\n    };\r\n\r\n    return axios.get(`${api}/items/conzoom_varaibles`, { headers, params });\r\n};\r\n\r\nexport const getCompassData = async(api: string, token: string, country: string, segment: string) => {\r\n    const options = {\r\n        headers: {\r\n            'Content-Type': 'application/json',\r\n            'Authorization': `Bearer ${token}`,\r\n        },\r\n        params: {\r\n            fields: `variable.id,variable.conzoom_data.${segment.toLowerCase()},variable.conzoom_data.label.translations.lang,variable.conzoom_data.label.translations.value`,\r\n            filter: `{\"_and\":[{\"country\":{\"code\":{\"_eq\":\"${country}\"}}}]}`,\r\n            limit: '1'\r\n        }\r\n    };\r\n\r\n    const compassChartRes = await axios.get(`${api}/items/conzoom_galup_compass_config`, options);\r\n\r\n    return compassChartRes.data;\r\n};\r\n\r\nexport const getChartTranslations = async (api: string, token: string, lang: string, chartName: string) => {\r\n    const options = {\r\n        headers: { Authorization: `Bearer ${token}` },\r\n        params: {\r\n            fields: `key,value`,\r\n            filter: `{\"_and\":[{\"key\":{\"translation_configs\":{\"translation_configs_id\":{\"id\":{\"_eq\":\"${chartName}\"}}}}},{\"lang\":{\"code\":{\"_eq\":\"${lang}\"}}}]}`,\r\n        }\r\n    };\r\n\r\n    const translationsRes = await axios.get(`${api}/items/translations`, options);\r\n    return translationsRes.data.data;\r\n}\r\n\r\nconst getCssFromStyleSheet = (styleSheet) => {\r\n    return [...styleSheet]\r\n    .map(styleSheet => {\r\n        try {\r\n            return [...styleSheet.cssRules]\r\n            .map(rule => rule.cssText)\r\n            .join('');\r\n        } catch(e) {\r\n            console.log('Access to stylesheet %s is denied. Ignoring...', styleSheet.href);\r\n        }\r\n    })\r\n    .filter(Boolean)\r\n    .join('\\n');\r\n};\r\n\r\nexport const getLightenOrDarkenColorBy = (segmentColor, segmentValue) => {\r\n    const hex = segmentColor.toString().replace(/[^0-9a-f]/gi, \"\");\r\n    const color = parseInt(hex, 16);\r\n\r\n    let r = (color >> 16) + segmentValue,\r\n        g = (color & 0x0000ff) + segmentValue,\r\n        b = ((color >> 8) & 0x00ff) + segmentValue;\r\n\r\n    r = r <= 255 ? r : 255;\r\n    g = g <= 255 ? g : 255;\r\n    b = b <= 255 ? b : 255;\r\n\r\n    const resultColor = (g | (b << 8) | (r << 16)).toString(16);\r\n    return `#${resultColor}`;\r\n}\r\n\r\nexport const colorLuminance = (hex, lum) => {\r\n    // validate hex string\r\n    hex = String(hex).replace(/[^0-9a-f]/gi, '');\r\n    if (hex.length < 6) {\r\n        hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];\r\n    }\r\n    lum = lum || 0;\r\n\r\n    // convert to decimal and change luminosity\r\n    let rgb = \"#\", c, i;\r\n    for (i = 0; i < 3; i++) {\r\n        c = parseInt(hex.substr(i*2,2), 16);\r\n        c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);\r\n        rgb += (\"00\"+c).substr(c.length);\r\n    }\r\n\r\n    return rgb;\r\n}\r\n\r\n// SVG Maker - to draw SVG by script\r\nfunction makeSVG(tag, attrs) {\r\n    const el = document.createElementNS('http://www.w3.org/2000/svg', tag);\r\n    for(const k in attrs)\r\n        el.setAttribute(k, attrs[k]);\r\n    return el;\r\n}\r\n\r\nfunction prepareChartForCopying(copiedChartEl) {\r\n    const watermark = copiedChartEl.getElementsByClassName('watermark')[0];\r\n    const btnPanel = copiedChartEl.getElementsByClassName('btn-panel')[0];\r\n    const copyRightsRef = copiedChartEl.getElementsByClassName('copy-rights-ref')[0];\r\n    const opacityTarget = copiedChartEl.getElementsByClassName('opacity')[0];\r\n    const progressLineTarget = copiedChartEl.getElementsByClassName('progress-line')[0];\r\n    const titleOccupationTarget = copiedChartEl.getElementsByClassName('title-occupation')[0];\r\n\r\n    copyRightsRef.removeAttribute('hidden');\r\n    watermark.removeAttribute('hidden');\r\n    btnPanel.classList.add('hidden')\r\n\r\n    if (opacityTarget) {\r\n        opacityTarget.classList.remove('opacity');\r\n    }\r\n\r\n    if (progressLineTarget) {\r\n        opacityTarget.classList.remove('progress-line');\r\n    }\r\n\r\n    if (titleOccupationTarget) {\r\n        revertingElementsMapper.push({ el: titleOccupationTarget, class: 'title-occupation' });\r\n        titleOccupationTarget.classList.remove('title-occupation');\r\n    }\r\n}\r\n\r\nfunction revertChartToShowing(copiedChartEl) {\r\n    const watermark = copiedChartEl.getElementsByClassName('watermark')[0];\r\n    const btnPanel = copiedChartEl.getElementsByClassName('btn-panel')[0];\r\n    const copyRightsRef = copiedChartEl.getElementsByClassName('copy-rights-ref')[0];\r\n\r\n    watermark.setAttribute('hidden', true);\r\n    copyRightsRef.setAttribute('hidden', true);\r\n    btnPanel.classList.remove('hidden');\r\n\r\n    const revertingElems = revertingElementsMapper.filter((revertElem) => copiedChartEl.contains(revertElem.el));\r\n\r\n    if (revertingElems.length) {\r\n        revertingElems.forEach((revertElem) => revertElem.el.classList.add(revertElem.class));\r\n        revertingElementsMapper = revertingElementsMapper.filter((revertElem) => !copiedChartEl.contains(revertElem.el));\r\n    }\r\n}\r\n","export default \".hidden{display:none !important}.watermark{position:absolute;width:86%;height:84px;top:50%;left:50%;transform:translate(-50%, -50%)}.watermark svg{width:100%}.copy-button-wrapper{display:flex;align-items:center}.copy-button{background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;cursor:pointer;width:32px;height:32px;display:flex;justify-content:center;align-items:center;box-sizing:border-box}.copy-button-hint{font-size:12px;margin-right:6px}.copy-rights-ref{position:absolute;left:14px;bottom:12px;font-size:12px;width:100%}.copy-rights-ref span{text-decoration:underline}.in-progress-btn{opacity:.5;cursor:not-allowed}.opacity{animation:opacity 3s}@keyframes opacity{0%{opacity:0}100%{opacity:1}}.type-distribution-chart{height:100%;display:flex;flex-direction:column;justify-content:space-between;color:#141414;padding:20px;position:relative;box-sizing:border-box;background-color:#f5f5f5}.type-distribution-chart__content{width:100%;display:flex;flex-direction:column;align-items:center;margin-bottom:60px}.type-distribution-chart__title{font-size:24px;font-weight:700;margin-bottom:40px}.type-distribution-chart__legend-panel{margin-bottom:48px;line-height:20px}.type-distribution-chart__legend:not(:last-child){margin-right:20px}.type-distribution-chart__legend-title{font-size:12px}.type-distribution-chart__legend-point{display:inline-block;height:9px;width:9px;margin-right:5px;border-radius:50%}.chart{transform:rotate(-90deg)}.chart-loader{position:absolute;height:100%;width:100%;z-index:1}.chart-loader svg{width:201px;height:201px;transform:rotate(-90deg);border-radius:50%;position:absolute}.chart-loader circle{fill:none;stroke-width:32}.btn-panel{bottom:20px;width:100%;display:flex;justify-content:flex-end}.type-distribution-chart-wrapper{position:relative}.chart-label__wrapper{position:absolute;height:100%;width:100%;z-index:1}.chart-label{position:absolute;left:calc(50% - 16px);top:-44px;z-index:1}\"","import { render } from \"./ConzoomTypeDistributionComponent.ce.vue?vue&type=template&id=1899feee&xmlns%3Av-bind=true\"\nimport script from \"./ConzoomTypeDistributionComponent.ce.vue?vue&type=script&lang=js\"\nexport * from \"./ConzoomTypeDistributionComponent.ce.vue?vue&type=script&lang=js\"\n\nimport _style_0 from \"./styles.scss?vue&type=style&index=0&inline&lang=scss&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['styles',[_style_0]]])\n\nexport default __exports__","import { normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"chart-content\" }\nconst _hoisted_2 = { viewBox: \"0 0 32 32\" }\nconst _hoisted_3 = [\"stroke\"]\nconst _hoisted_4 = { class: \"chart-value\" }\nconst _hoisted_5 = { class: \"chart-percent\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"chart-percent-sign\" }, \"%\", -1)\nconst _hoisted_7 = { class: \"chart-desc\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: \"chart-wrapper\",\n    style: _normalizeStyle({ 'background-color': $props.color }),\n    ref: \"chartPercentage\"\n  }, [\n    _createElementVNode(\"div\", _hoisted_1, [\n      (_openBlock(), _createElementBlock(\"svg\", _hoisted_2, [\n        _createElementVNode(\"circle\", {\n          r: \"16\",\n          cx: \"16\",\n          cy: \"16\",\n          style: _normalizeStyle({ 'stroke-dasharray': `${100 - this.chartValue + 0.3}, 100`}),\n          stroke: $props.color\n        }, null, 12, _hoisted_3)\n      ])),\n      _createElementVNode(\"div\", _hoisted_4, [\n        _createElementVNode(\"span\", _hoisted_5, _toDisplayString($props.value), 1),\n        _hoisted_6\n      ]),\n      _createElementVNode(\"span\", _hoisted_7, _toDisplayString($props.title), 1)\n    ])\n  ], 4))\n}","\r\n\r\nimport CopyBtn from '@/shared/components/CopyBtn/CopyBtn.vue';\r\n\r\nexport default {\r\n  name: 'ConzoomFactChartComponent',\r\n  props: {\r\n    value: String,\r\n    color: String,\r\n    title: String,\r\n  },\r\n  components: {CopyBtn},\r\n  mounted() {\r\n    this.subscription = setInterval(() => {\r\n      this.chartValue += 1;\r\n      if (+this.value === this.chartValue) {\r\n        clearInterval(this.subscription);\r\n      }\r\n    }, 10);\r\n  },\r\n  computed: {},\r\n  methods: {},\r\n  data: () => {\r\n    return {\r\n      chartValue: 0,\r\n      subscription: null,\r\n    };\r\n  }\r\n};\r\n","export default \".chart-wrapper{height:100%;width:100%;margin:0 auto;display:flex;justify-content:center;align-items:center;position:relative}.chart-wrapper .chart-content svg{width:200px;height:200px;transform:rotate(-90deg);border-radius:50%;opacity:.2;position:absolute}.chart-wrapper circle{fill:#fff;stroke-width:32}.chart-content{position:relative;height:200px;width:200px}.chart-desc{color:#fff;position:absolute;font-size:16px;font-weight:500;line-height:24px;left:50%;margin-right:-50%;transform:translate(-50%, -50%);top:76%;text-align:center}.chart-value{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);line-height:120px}.chart-value .chart-percent{font-size:100px;font-weight:900}.chart-value .chart-percent-sign{font-weight:700;font-size:18px}\"","import { render } from \"./ConzoomFactChartComponent.ce.vue?vue&type=template&id=423db079&ts=true&xmlns%3Av-bind=true\"\nimport script from \"./ConzoomFactChartComponent.ce.vue?vue&type=script&lang=ts\"\nexport * from \"./ConzoomFactChartComponent.ce.vue?vue&type=script&lang=ts\"\n\nimport _style_0 from \"./styles.scss?vue&type=style&index=0&inline&lang=scss&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['styles',[_style_0]]])\n\nexport default __exports__","<template>\r\n  <div class=\"compass-chart\" ref=\"compassChart\">\r\n    <div class=\"svg-container\">\r\n      <div v-if=\"compassChartData?.data[0]\"\r\n           :style=\"{color: compassChartData?.endColor}\"\r\n           class=\"label-top opacity\">\r\n        {{ compassChartData?.data[0].label }}\r\n      </div>\r\n\r\n      <div class=\"horizontal-label-wrapper\">\r\n        <div v-if=\"compassChartData?.data[2]\"\r\n             :style=\"{color: compassChartData?.endColor}\"\r\n             class=\"opacity\">\r\n          {{ compassChartData?.data[2].label }}\r\n        </div>\r\n\r\n        <div v-if=\"compassChartData?.data[6]\"\r\n             :style=\"{color: compassChartData?.endColor}\"\r\n             class=\"opacity\">\r\n          {{ compassChartData?.data[6].label }}\r\n        </div>\r\n      </div>\r\n\r\n      <svg viewBox=\"0 0 600 600\" class=\"svg-content\">\r\n        <defs>\r\n          <linearGradient id=\"grad\">\r\n            <stop offset=\"0\" :style=\"{'stop-color': compassChartData?.startColor}\"/>\r\n            <stop offset=\".5\" :style=\"{'stop-color': color}\"/>\r\n            <stop offset=\"1\" :style=\"{'stop-color': compassChartData?.endColor}\"/>\r\n          </linearGradient>\r\n        </defs>\r\n\r\n        <g class=\"compass\">\r\n          <polygon style=\"\" points=\"480,480 300,560 120,480 40,300 118,120 300,40 300,40 480,120 560,300\"></polygon>\r\n          <polygon style=\"\" points=\"480,480 300,560 120,480 40,300 118,120 300,40 300,40 480,120 560,300\"></polygon>\r\n          <polygon style=\"\" points=\"480,480 300,560 120,480 40,300 118,120 300,40 300,40 480,120 560,300\"></polygon>\r\n          <polygon style=\"\" points=\"480,480 300,560 120,480 40,300 118,120 300,40 300,40 480,120 560,300\"></polygon>\r\n\r\n          <!--  point 1 -->\r\n          <line x1=\"300\" y1=\"40\" x2=\"300\" y2=\"300\"></line>\r\n          <!--  point 2 -->\r\n          <line x1=\"480\" y1=\"120\" x2=\"300\" y2=\"300\"></line>\r\n          <!--  point 3 -->\r\n          <line x1=\"300\" y1=\"300\" x2=\"560\" y2=\"300\"></line>\r\n          <!--  point 4 -->\r\n          <line x1=\"480\" y1=\"480\" x2=\"300\" y2=\"300\"></line>\r\n          <!--  point 5 -->\r\n          <line x1=\"300\" y1=\"300\" x2=\"300\" y2=\"560\"></line>\r\n          <!--  point 6 -->\r\n          <line x1=\"120\" y1=\"480\" x2=\"300\" y2=\"300\"></line>\r\n          <!--  point 7 -->\r\n          <line x1=\"40\" y1=\"300\" x2=\"300\" y2=\"300\"></line>\r\n          <!--  point 8 -->\r\n          <line x1=\"120\" y1=\"120\" x2=\"300\" y2=\"300\"></line>\r\n        </g>\r\n\r\n        <g class=\"results\" ref=\"compassChartResults\"></g>\r\n      </svg>\r\n\r\n      <div v-if=\"compassChartData?.data[4]\"\r\n           :style=\"{color: compassChartData?.endColor}\"\r\n           class=\"label-bottom opacity\">\r\n        {{ compassChartData?.data[4].label }}\r\n      </div>\r\n    </div>\r\n\r\n    <span class=\"btn-panel\">\r\n       <CopyBtn v-bind:isProcessing=\"isProcessing\"\r\n                v-bind:translationPlaceholder=\"translations['text-downloading-the-copy']\"\r\n                @onCopy=\"onChartCopy\"/>\r\n    </span>\r\n\r\n    <WatermarkSign/>\r\n    <CopyRightsRef v-bind:copyRightRef=\"translations['text-source']\"/>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n\r\nimport CopyBtn from \"@/shared/components/CopyBtn/CopyBtn\";\r\nimport WatermarkSign from \"@/shared/components/WatermarkSign/WatermarkSign\";\r\nimport CopyRightsRef from \"@/shared/components/CopyRightsRef/CopyRightsRef\";\r\nimport {\r\n  colorLuminance,\r\n  copyChart,\r\n  getChartTranslations,\r\n  getCompassData\r\n} from \"@/service\";\r\n\r\nexport default {\r\n  name: \"ConzoomGalupCompassComponent\",\r\n  props: {\r\n    api: String,\r\n    token: String,\r\n    lang: String,\r\n    country: String,\r\n    segment: String,\r\n    color: String,\r\n  },\r\n  components: {CopyBtn, WatermarkSign, CopyRightsRef},\r\n  async mounted() {\r\n    const compassResponse = await getCompassData(this.api, this.token, this.country, this.segment);\r\n    const rawTranslations = await getChartTranslations(this.api, this.token, this.lang, 'conzoom-galup-compass');\r\n    this.translations = rawTranslations.reduce((acc, transl) => ({...acc, [transl.key]: transl.value}), {});\r\n    this.startColor = colorLuminance(this.color, 0.2);\r\n    this.endColor = colorLuminance(this.color, -0.2);\r\n    this.compassChartData = this._getPreparedCompassData(compassResponse);\r\n    const scores = this.compassChartData.data.reduce((acc, curr) => ({...acc, [curr.direction]: curr.value}), {});\r\n\r\n    let finalPoints = {\r\n      north: `300, ${this.compassChartRadius - scores.north * this.compassChartPolygonStep + 40}`,\r\n      northEast: `${480 - ((480 - 300) / this.maxScores) * (this.maxScores - scores.northEast)}, ${120 + ((480 - 300) / this.maxScores) * (this.maxScores - scores.northEast)}`,\r\n      east: `${560 - (this.maxScores - scores.east) * this.compassChartPolygonStep}, 300`,\r\n      southEast: `${480 - ((480 - 300) / this.maxScores) * (this.maxScores - scores.southEast)}, ${480 - ((480 - 300) / this.maxScores) * (this.maxScores - scores.southEast)}`,\r\n      south: `300, ${560 - ((560 - 300) / this.maxScores) * (this.maxScores - scores.south)}`,\r\n      southWest: `${((300 - 120) / this.maxScores * (26 - scores.southWest)) + 120}, ${480 - ((300 - 120) / this.maxScores * (26 - scores.southWest))}`,\r\n      west: `${this.compassChartRadius - scores.west * this.compassChartPolygonStep + 40}, 300`,\r\n      northWest: `${120 + ((300 - 120) / this.maxScores) * (this.maxScores - scores.northWest)}, ${120 + ((300 - 120) / this.maxScores) * (this.maxScores - scores.northWest)}`,\r\n    };\r\n\r\n    this.$refs.compassChartResults.innerHTML = `\r\n    <polygon class=\"scale-animation\"\r\n    points=\"${finalPoints.north}\r\n            ${finalPoints.northWest}\r\n            ${finalPoints.west}\r\n            ${finalPoints.southWest}\r\n            ${finalPoints.south}\r\n            ${finalPoints.southEast}\r\n            ${finalPoints.east}\r\n            ${finalPoints.northEast}\"/>`;\r\n  },\r\n  beforeUnmount() {\r\n    this.subscriptions.forEach((subscription) => clearTimeout(subscription));\r\n  },\r\n  methods: {\r\n    onChartCopy() {\r\n      this.isProcessing = true;\r\n\r\n      copyChart(this.$refs.compassChart, document.querySelector('conzoom-galup-compass').shadowRoot.styleSheets)\r\n          .then(() => this.showCopiedTooltip());\r\n    },\r\n    showCopiedTooltip() {\r\n      const timer = setTimeout(() => {\r\n        this.isProcessing = false;\r\n      }, 3000);\r\n\r\n      this.subscriptions.push(timer);\r\n    },\r\n    _getPreparedCompassData(compassResponse) {\r\n      const compassDirections = ['north', 'northEast', 'east', 'southEast', 'south', 'southWest', 'west', 'northWest'];\r\n      const compassData = compassResponse.data[0].variable.conzoom_data.map((option, i) => {\r\n        const translation = option.label.translations.find((transl) => transl.lang === this.lang);\r\n\r\n        return {label: translation.value, value: +option[this.segment.toLowerCase()], direction: compassDirections[i]};\r\n      });\r\n\r\n      return {startColor: this.startColor, endColor: this.endColor, data: compassData}\r\n    }\r\n  },\r\n  data: () => {\r\n    return {\r\n      isProcessing: false,\r\n      compassChartData: null,\r\n      compassChartRadius: 260,\r\n      compassChartPolygonStep: 10,\r\n      maxScores: 26,\r\n      subscriptions: [],\r\n      startColor: '',\r\n      endColor: '',\r\n      translations: {},\r\n    }\r\n  }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" src=\"./styles.scss\"></style>\r\n","export default \".hidden{display:none !important}.watermark{position:absolute;width:86%;height:84px;top:50%;left:50%;transform:translate(-50%, -50%)}.watermark svg{width:100%}.copy-button-wrapper{display:flex;align-items:center}.copy-button{background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;cursor:pointer;width:32px;height:32px;display:flex;justify-content:center;align-items:center;box-sizing:border-box}.copy-button-hint{font-size:12px;margin-right:6px}.copy-rights-ref{position:absolute;left:14px;bottom:12px;font-size:12px;width:100%}.copy-rights-ref span{text-decoration:underline}.in-progress-btn{opacity:.5;cursor:not-allowed}.opacity{animation:opacity 3s}@keyframes opacity{0%{opacity:0}100%{opacity:1}}.compass-chart{width:450px;height:450px;background-color:#f5f5f5;padding:20px 20px 52px 20px;position:relative}.label-wrapper{width:80%;height:80%;font-size:12px;position:relative;border:1px solid #000}.label-top{text-align:center}.horizontal-label-wrapper{position:absolute;display:flex;flex-direction:column;justify-content:space-between;text-align:center;margin-right:-50%;transform:translate(-50%, 0%) rotate(-90deg);height:100%;top:0;left:50%}.label-bottom{position:absolute;bottom:2px;width:100%;text-align:center}.btn-panel{display:flex;width:100%;justify-content:flex-end}.svg-container{display:inline-block;position:relative;width:100%;height:100%;vertical-align:middle;overflow:hidden;font-size:12px}.svg-content{display:inline-block;position:absolute;top:0;left:0}.compass polygon,.compass line{fill:none;stroke:#979797;transform-origin:50%}.compass polygon:nth-child(1){transform:scale(1)}.compass polygon:nth-child(2){transform:scale(0.75)}.compass polygon:nth-child(3){transform:scale(0.5)}.compass polygon:nth-child(4){transform:scale(0.25)}.results polygon{stroke-width:1px;transform-origin:50%;fill:url(#grad)}.scale-animation{animation:scale-animation 2s}@keyframes scale-animation{0%{transform:scale(0.1, 0.1)}100%{transform:scale(1, 1)}}\"","import { render } from \"./ConzoomGalupCompassComponent.ce.vue?vue&type=template&id=21e83ce0\"\nimport script from \"./ConzoomGalupCompassComponent.ce.vue?vue&type=script&lang=js\"\nexport * from \"./ConzoomGalupCompassComponent.ce.vue?vue&type=script&lang=js\"\n\nimport _style_0 from \"./styles.scss?vue&type=style&index=0&inline&lang=scss&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['styles',[_style_0]]])\n\nexport default __exports__","<template>\r\n  <div class=\"decile-chart\" ref=\"barChart\" v-on:click=\"clickOutsideDropdown($event)\">\r\n\r\n    <div class=\"decile-chart__content\">\r\n      <div class=\"decile-chart__title\">\r\n        <div class=\"dropdown-categories-wrapper title-occupation\" v-on:click=\"toggleChartCategories($event)\">\r\n          {{ selectedDecileTitle }}\r\n          <div v-if=\"isCategoriesShown\" class=\"dropdown-categories\" ref=\"dropdown\">\r\n            <div v-for=\"title in decilesTitles\" :key=\"title\"\r\n                 class=\"dropdown-category\"\r\n                 v-on:click=\"selectDecile(title)\">\r\n              {{ title }}\r\n            </div>\r\n          </div>\r\n        </div>\r\n        :\r\n        <span>\r\n        {{ decileChartData?.segment }}\r\n        {{ translations['text-in-comparison-to'] }} {{ translations['text-danish-population'] }}</span>\r\n      </div>\r\n\r\n      <div class=\"decile-chart__legend-panel\">\r\n      <span class=\"decile-chart__legend\">\r\n        <span class=\"decile-chart__legend-point\" :style=\"{ 'background-color': decileChartData?.color }\"></span>\r\n        <span class=\"decile-chart__legend-title\"\r\n              :style=\"{ 'color': decileChartData?.color }\">\r\n          {{ segment.length > 1 ? 'Type' : translations['text-group'] }}\r\n          {{ decileChartData?.segment }}\r\n        </span>\r\n      </span>\r\n\r\n        <span class=\"decile-chart__legend\">\r\n        <span class=\"decile-chart__legend-point\" :style=\"{ 'background-color': dkDefaultColor }\"></span>\r\n        <span class=\"decile-chart__legend-title\"\r\n              :style=\"{ 'color': dkDefaultColor }\">{{ translations['text-danish-population'] }}</span>\r\n      </span>\r\n      </div>\r\n\r\n      <div class=\"options\">\r\n        <div v-for=\"option in decilesDataMapper[selectedDecileTitle]\" :key=\"option.title\" class=\"option\">\r\n\r\n        <span class=\"option__title\"\r\n              :class=\"{ 'percent-view-border': viewMode === 'percentage' }\">\r\n          <span :style=\"{color: decileChartData.color}\">{{ option.title }}</span>\r\n        </span>\r\n\r\n          <div v-if=\"viewMode === 'percentage'\"\r\n               class=\"option__perc-results\">\r\n            <div class=\"line progress-line\"\r\n                 :style=\"{\r\n              'width': option.percentSegmentWidth + '%',\r\n              'background-color': decileChartData?.color }\">\r\n            </div>\r\n\r\n            <div class=\"line progress-line\"\r\n                 v-on:mouseover=\"selectLine(option, 'dkPercent')\"\r\n                 v-on:mouseleave=\"selectLine(option, 'segmentPercent')\"\r\n                 :style=\"{\r\n              'width': option.percentDkWidth + '%',\r\n              'background-color': dkDefaultColor }\">\r\n            </div>\r\n\r\n            <div class=\"percentage opacity\"\r\n                 :style=\"{'left':\r\n                option.percentDkWidth >= option.percentSegmentWidth ? option.percentDkWidth + '%' : option.percentSegmentWidth + '%',\r\n                color: optionsPercentMapper[option.title]?.color}\">\r\n              {{ optionsPercentMapper[option.title]?.percent }}%\r\n            </div>\r\n          </div>\r\n\r\n          <div v-if=\"viewMode === 'index'\"\r\n               class=\"option__index-results\">\r\n            <div class=\"less\"\r\n                 :style=\"{borderRight: `4px solid ${dkDefaultColor}`}\">\r\n              <div class=\"less-line progress-line\"\r\n                   :style=\"{\r\n                  'width': option.segmentIndex < 100 ? option.indexWidth + '%' : '0%',\r\n                  'background-color': decileChartData.color}\">\r\n              </div>\r\n\r\n              <span class=\"less-result opacity\"\r\n                    :style=\"{\r\n                  color: decileChartData.color,\r\n                  right: option.indexWidth + 4 + '%'}\">\r\n              {{ option.segmentIndex < 100 ? option.segmentIndexTitle : '' }}\r\n            </span>\r\n            </div>\r\n\r\n            <div class=\"more\">\r\n              <div class=\"more-line progress-line\"\r\n                   :class=\"{'more-line-limit': option.segmentIndex > 199}\"\r\n                   :style=\"{\r\n                  'width': option.segmentIndex >= 101 ? option.indexWidth + '%' : '0%',\r\n                  'background-color': decileChartData.color\r\n                  }\">\r\n              </div>\r\n\r\n              <span v-if=\"option.segmentIndex >= 101\" class=\"more-result opacity\"\r\n                    :style=\"{\r\n                  'color': decileChartData.color,\r\n                   left: option.indexWidth + 4 + '%'\r\n                  }\">\r\n              {{ option.segmentIndex >= 101 ? option.segmentIndexTitle : '' }}\r\n            </span>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n\r\n\r\n    <div class=\"btn-panel\">\r\n      <BarChartSwitcher v-on:click=\"switchViewMode\" v-bind:viewMode=\"viewMode\"/>\r\n      <CopyBtn v-bind:isProcessing=\"isProcessing\"\r\n               v-bind:translationPlaceholder=\"translations['text-downloading-the-copy']\"\r\n               @onCopy=\"onChartCopy\"/>\r\n    </div>\r\n\r\n    <WatermarkSign/>\r\n    <CopyRightsRef v-bind:copyRightRef=\"translations['text-source']\"/>\r\n  </div>\r\n</template>\r\n\r\n\r\n<script>\r\nimport CopyRightsRef from \"@/shared/components/CopyRightsRef/CopyRightsRef\";\r\nimport CopyBtn from \"@/shared/components/CopyBtn/CopyBtn\";\r\nimport WatermarkSign from \"@/shared/components/WatermarkSign/WatermarkSign\";\r\nimport BarChartSwitcher\r\n  from '@/components/ConzoomDecile/components/BarChartSwitcherComponent/BarChartSwitcherComponent';\r\nimport {\r\n  copyChart,\r\n  getDecileData,\r\n  getDecilesConfig,\r\n  getChartTranslations, getLightenOrDarkenColorBy\r\n} from \"@/service\";\r\n\r\nexport default {\r\n  name: 'ConzoomDecileComponent',\r\n  props: {\r\n    api: String,\r\n    token: String,\r\n    lang: String,\r\n    country: String,\r\n    segment: String,\r\n    color: String,\r\n  },\r\n  components: {CopyBtn, BarChartSwitcher, WatermarkSign, CopyRightsRef},\r\n  async mounted() {\r\n    this.setClickOutsideListener();\r\n    // this.dkDefaultColor = getLightenOrDarkenColorBy(this.color, 50);\r\n    const translation = await getChartTranslations(this.api, this.token, this.lang, 'conzoom-decile');\r\n    this.translations = translation.reduce((acc, transl) => ({...acc, [transl.key]: transl.value}), {});\r\n    this.setDecilesData();\r\n  },\r\n  beforeUnmount() {\r\n    this.subscriptions.forEach((subscription) => clearTimeout(subscription));\r\n  },\r\n  methods: {\r\n    async setDecilesData() {\r\n      const decilesConfig = await getDecilesConfig(this.api, this.token, this.country);\r\n      decilesConfig.variables.sort(\r\n          (prev, next) => prev === decilesConfig.default_variable ? -1 : next === decilesConfig.default_variable ? 1 : 0\r\n      );\r\n\r\n      const detaRequests = decilesConfig.variables.map((variable) => getDecileData(this.api, this.token, variable, this.segment));\r\n\r\n      Promise.all(detaRequests)\r\n          .then((response) => response.map((decileData) => decileData.data.data[0]))\r\n          .then((decilesData) => {\r\n            this.decilesTitles = decilesData\r\n                .map((data) => data.translations.find((translation) => translation.lang === this.lang).name)\r\n            this.decileChartData = this._getPreparedDecilesData(this.segment, this.color, decilesData);\r\n            this.selectedDecileTitle = this.decileChartData.deciles[0]?.title;\r\n          })\r\n          .then(() => {\r\n            this._prepareSegmentsView();\r\n            this._generateOptionsPercentMapper();\r\n          })\r\n    },\r\n    _getPreparedDecilesData(segment, color, decilesData) {\r\n      const getDeciles = (decilesData) => {\r\n        return decilesData.map((data) => {\r\n          return {\r\n            title: data.translations.find((translation) => translation.lang === this.lang).name,\r\n            data: data.conzoom_data.map((options) => {\r\n              return {\r\n                country_average: options.country_average,\r\n                segment: options[this.segment.toLowerCase()],\r\n                title: options.label.translations.find((trans) => trans.lang === this.lang).value\r\n              };\r\n            })\r\n          }\r\n        })\r\n      };\r\n\r\n      return {\r\n        segment,\r\n        color,\r\n        deciles: getDeciles(decilesData),\r\n      };\r\n    },\r\n    setClickOutsideListener() {\r\n      this.selfEl = document.getElementsByTagName('conzoom-decile')[0];\r\n\r\n      document.addEventListener('click', (event) => {\r\n        if (this.isCategoriesShown && this.selfEl !== event.target) {\r\n          this.isCategoriesShown = false;\r\n        }\r\n      });\r\n    },\r\n    onChartCopy() {\r\n      this.isProcessing = true;\r\n      copyChart(this.$refs.barChart, document.querySelector('conzoom-decile').shadowRoot.styleSheets)\r\n          .then(() => this.showCopiedTooltip());\r\n    },\r\n    selectLine(line, linePart) {\r\n      this.optionsPercentMapper[line.title] = {\r\n        percent: line[linePart],\r\n        color: linePart === 'dkPercent' ? this.dkDefaultColor : this.decileChartData.color\r\n      }\r\n    },\r\n    switchViewMode() {\r\n      this.viewMode = this.viewMode === 'percentage' ? 'index' : 'percentage';\r\n    },\r\n    showCopiedTooltip() {\r\n      const timer = setTimeout(() => {\r\n        this.isProcessing = false;\r\n      }, 3000);\r\n\r\n      this.subscriptions.push(timer);\r\n    },\r\n    _generateOptionsPercentMapper() {\r\n      this.optionsPercentMapper = this.decilesDataMapper[this.selectedDecileTitle]\r\n          .reduce((acc, next) => ({\r\n            ...acc,\r\n            [next.title]: {color: this.decileChartData?.color, percent: next.segmentPercent}\r\n          }), {});\r\n    },\r\n    toggleChartCategories(event) {\r\n      this.isCategoriesShown = !this.isCategoriesShown;\r\n      event.stopPropagation();\r\n    },\r\n    clickOutsideDropdown(event) {\r\n      const dropdown = document.querySelector('conzoom-decile').shadowRoot.querySelector('.dropdown-categories');\r\n\r\n      if (this.isCategoriesShown && event.target !== dropdown) {\r\n        this.isCategoriesShown = false;\r\n      }\r\n    },\r\n    selectDecile(decileTitle) {\r\n      this.selectedDecileTitle = decileTitle;\r\n      this._generateOptionsPercentMapper();\r\n    },\r\n    _prepareSegmentsView() {\r\n      const getPreparedDecileData = (data) => {\r\n        let biggestSegmentValue = 0;\r\n        let biggestDiffFromCountryAverageIndex = 0;\r\n        let indexValueGraterThanCountryAverage = 0;\r\n        let indexValueLessThanCountryAverage = 0;\r\n\r\n        //find the biggest value/index in segment\r\n        data.forEach((option) => {\r\n          const biggestOptValue = +option.country_average > +option.segment ? +option.country_average : +option.segment;\r\n          biggestSegmentValue = biggestSegmentValue > biggestOptValue ? biggestSegmentValue : biggestOptValue;\r\n\r\n          const indexValue = +(option.segment / option.country_average * 100).toFixed(2);\r\n\r\n          if (indexValue > 100) {\r\n            indexValueGraterThanCountryAverage = indexValue > indexValueGraterThanCountryAverage ?\r\n                indexValue : indexValueGraterThanCountryAverage;\r\n          } else {\r\n            indexValueLessThanCountryAverage = indexValue > indexValueLessThanCountryAverage ?\r\n                indexValue : indexValueLessThanCountryAverage;\r\n          }\r\n        });\r\n\r\n        return data.map((option) => {\r\n          const indexValue = +(option.segment / option.country_average * 100).toFixed(2);\r\n          let indexWidth = 0;\r\n          \r\n          if (indexValue > 200) {\r\n            indexWidth = 100;\r\n          } else {\r\n            let zeroAlignedIndex = indexValue >= 100 ? indexValue - 100 : 100 - indexValue;\r\n            indexWidth = +zeroAlignedIndex.toFixed(2)\r\n          }\r\n\r\n          return {\r\n            title: option.title,\r\n            country_average: option.country_average,\r\n            dkPercent: Math.round(option.country_average * 100),\r\n            segmentPercent: Math.round(option.segment * 100),\r\n            segment: option.segment,\r\n            percentSegmentWidth: Math.round(option.segment / biggestSegmentValue * 100),\r\n            percentDkWidth: Math.round(option.country_average / biggestSegmentValue * 100),\r\n            segmentIndex: +((option.segment / option.country_average) * 100).toFixed(1),\r\n            segmentIndexTitle: indexValue >= 101 ? Math.ceil(indexValue) : Math.floor(indexValue),\r\n            indexWidth: indexWidth,\r\n          }\r\n        });\r\n      }\r\n\r\n      this.decileChartData.deciles.forEach((decile) => this.decilesDataMapper[decile.title] = getPreparedDecileData(decile.data));\r\n    }\r\n  },\r\n  data: () => {\r\n    return {\r\n      decileChartData: null,\r\n      decilesTitles: [],\r\n      viewMode: 'percentage',\r\n      isCategoriesShown: false,\r\n      isProcessing: false,\r\n      subscriptions: [],\r\n      dkDefaultColor: 'rgba(0, 0, 0, 0.2)',\r\n      optionsPercentMapper: {},\r\n      translations: {},\r\n      decilesDataMapper: {},\r\n      selectedDecileTitle: '',\r\n    };\r\n  },\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" src=\"./styles.scss\"></style>\r\n","<template>\r\n  <div class=\"switcher\">\r\n    <div>\r\n      <svg v-if=\"viewMode === 'percentage'\"\r\n           width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n        <path d=\"M0 4C0 1.79086 1.79086 0 4 0H30V30H4C1.79086 30 0 28.2091 0 26V4Z\" fill=\"#E8E8E8\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M7.94118 7H7V23H7.94118V7ZM23 13H9V17H23V13ZM9 18H17V22H9V18ZM20 8H9V12H20V8Z\" fill=\"black\"/>\r\n      </svg>\r\n\r\n      <svg v-if=\"viewMode === 'index'\"\r\n           width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n        <path d=\"M0 4C0 1.79086 1.79086 0 4 0H30V30H4C1.79086 30 0 28.2091 0 26V4Z\" fill=\"white\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M7.94118 7H7V23H7.94118V7ZM23 13H9V17H23V13ZM9 18H17V22H9V18ZM20 8H9V12H20V8Z\" fill=\"#B8B8B8\"/>\r\n      </svg>\r\n    </div>\r\n\r\n    <div>\r\n      <svg v-if=\"viewMode === 'percentage'\"\r\n           width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n        <path d=\"M0 0H26C28.2091 0 30 1.79086 30 4V26C30 28.2091 28.2091 30 26 30H0V0Z\" fill=\"white\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M15 7H14V23H15V7ZM23 13H16V17H23V13ZM7 18H13V22H7V18ZM20 8H16V12H20V8Z\" fill=\"#B8B8B8\"/>\r\n      </svg>\r\n\r\n      <svg v-if=\"viewMode === 'index'\"\r\n           width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n        <path d=\"M0 0H26C28.2091 0 30 1.79086 30 4V26C30 28.2091 28.2091 30 26 30H0V0Z\" fill=\"#E8E8E8\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M15 7H14V23H15V7ZM23 13H16V17H23V13ZM7 18H13V22H7V18ZM20 8H16V12H20V8Z\" fill=\"black\"/>\r\n      </svg>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: \"BarChartSwitcher\",\r\n  mounted() {\r\n  },\r\n  props: {\r\n    viewMode: String,\r\n  },\r\n}\r\n</script>\r\n","import { render } from \"./BarChartSwitcherComponent.vue?vue&type=template&id=2328c4cd\"\nimport script from \"./BarChartSwitcherComponent.vue?vue&type=script&lang=js\"\nexport * from \"./BarChartSwitcherComponent.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default \".hidden{display:none !important}.watermark{position:absolute;width:86%;height:84px;top:50%;left:50%;transform:translate(-50%, -50%)}.watermark svg{width:100%}.copy-button-wrapper{display:flex;align-items:center}.copy-button{background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;cursor:pointer;width:32px;height:32px;display:flex;justify-content:center;align-items:center;box-sizing:border-box}.copy-button-hint{font-size:12px;margin-right:6px}.copy-rights-ref{position:absolute;left:14px;bottom:12px;font-size:12px;width:100%}.copy-rights-ref span{text-decoration:underline}.in-progress-btn{opacity:.5;cursor:not-allowed}.opacity{animation:opacity 3s}@keyframes opacity{0%{opacity:0}100%{opacity:1}}:host{width:100%}.decile-chart{height:100%;width:100%;color:#141414;padding:20px;position:relative;box-sizing:border-box;background-color:#f5f5f5;display:flex;flex-direction:column;justify-content:space-between}.decile-chart__content{display:flex;flex-direction:column;align-items:center;padding:0 10px}.decile-chart__title{font-size:24px;font-weight:700;margin-bottom:40px;max-width:80%;text-align:center}.decile-chart__legend-panel{margin-bottom:30px;font-size:12px}.decile-chart__legend{margin-right:20px;line-height:20px}.decile-chart__legend-title{font-size:12px;margin-left:5px}.decile-chart__legend-point{display:inline-block;height:9px;width:9px;border-radius:50%}.dropdown-categories{position:absolute;font-size:12px;background-color:#fff;top:44px;min-width:200px;z-index:1;border-radius:10px;box-shadow:0 4px 4px rgba(0,0,0,.25)}.dropdown-categories:before{content:\\\" \\\";width:0;height:0;border-top:10px solid rgba(0,0,0,0);border-left:10px solid rgba(0,0,0,0);border-bottom:10px solid #fff;border-right:10px solid rgba(0,0,0,0);position:absolute;left:50%;top:-20px;margin-left:-10px}.dropdown-category{padding:8px 14px;text-align:left;line-height:20px}.dropdown-category:first-child{border-top-right-radius:10px;border-top-left-radius:10px}.dropdown-category:last-child{border-bottom-left-radius:10px;border-bottom-right-radius:10px}.dropdown-category:not(:last-child){border-bottom:1px solid #c4c4c4}.dropdown-categories-wrapper{position:relative;display:inline-block}.options{width:100%;margin-bottom:40px}.option{display:flex;align-items:center;min-height:34px}.title-occupation{text-decoration:underline;cursor:pointer}.option__title{font-size:12px;color:#582f7c;opacity:.8;line-height:28px;padding-right:30px;width:40%;text-align:right;min-height:34px;display:flex;justify-content:right;align-items:center}.option__perc-results{width:40%;height:30px;display:flex;flex-direction:column;position:relative;justify-content:center}.option__perc-results .line:first-of-type{margin-bottom:6px}.option__index-results{min-height:34px;width:44%;display:flex;margin-left:20px}.option__index-results .less,.option__index-results .more{width:50%;position:relative}.option__index-results .less{display:flex;align-items:center;justify-content:flex-end}.option__index-results .more{display:flex;align-items:center;justify-content:flex-start}.option__index-results .less-line,.option__index-results .more-line{height:14px}.option__index-results .less-line{border-radius:2px 0 0 2px}.option__index-results .more-line{border-radius:0 2px 2px 0;position:relative}.option__index-results .more-line-limit:after{content:\\\" \\\";position:absolute;background:#f5f5f5;width:4px;height:20px;top:-3px;right:10px;left:86%;transform:rotate(35deg)}.option__index-results .less-result,.option__index-results .more-result{position:absolute;font-size:16px;line-height:28px}.percentage{position:absolute;padding-left:12px;min-width:44px}.line{height:4px;cursor:pointer;border-radius:0 2px 2px 0}.switcher{cursor:pointer;height:32px;border:1px solid #dbdbdb;border-radius:4px;box-sizing:border-box;display:flex}.switcher div:first-of-type{border-right:1px solid #dbdbdb}.btn-panel{display:flex;justify-content:space-between}.percent-view-border{border-right:1px solid #ccc}.progress-line{animation-name:progress-line;animation-duration:3s}@keyframes progress-line{0%{max-width:0}100%{max-width:100%}}\"","import { render } from \"./ConzoomDecileComponent.ce.vue?vue&type=template&id=18b75616\"\nimport script from \"./ConzoomDecileComponent.ce.vue?vue&type=script&lang=js\"\nexport * from \"./ConzoomDecileComponent.ce.vue?vue&type=script&lang=js\"\n\nimport _style_0 from \"./styles.scss?vue&type=style&index=0&inline&lang=scss&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['styles',[_style_0]]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n  key: 0,\n  class: \"wrapper\"\n}\nconst _hoisted_2 = {\n  key: 0,\n  class: \"switcher\"\n}\nconst _hoisted_3 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  return (_ctx.languages.length)\n    ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n        _createElementVNode(\"div\", {\n          onClick: _cache[0] || (_cache[0] = ($event: any) => ($options.toggleSwitcher())),\n          class: \"default-lang\"\n        }, _toDisplayString(_ctx.selectedLanguage?.label), 1),\n        (_ctx.isSwitcherShown)\n          ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n              (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.languages, (lang) => {\n                return (_openBlock(), _createElementBlock(\"div\", {\n                  key: lang,\n                  onClick: ($event: any) => ($options.selectLang(lang)),\n                  class: \"switcher-option\"\n                }, [\n                  _createElementVNode(\"span\", null, _toDisplayString(lang.label), 1)\n                ], 8, _hoisted_3))\n              }), 128))\n            ]))\n          : _createCommentVNode(\"\", true)\n      ]))\n    : _createCommentVNode(\"\", true)\n}","\r\nexport default {\r\n  name: 'ConzoomLanguageSwitcher',\r\n  mounted() {\r\n    this.setLanguages();\r\n    this.setDefaultLanguage();\r\n    this.setDefaultLanguageFirstInArr();\r\n    this.setClickOutsideListener();\r\n  },\r\n  methods: {\r\n    selectLang(language): void {\r\n      if (this.selectedLanguage.lang === language.lang) {\r\n        this.isSwitcherShown = false;\r\n        return;\r\n      }\r\n\r\n      window.location.href = language.link;\r\n    },\r\n    setLanguages(): void {\r\n      const linkArray = document.querySelectorAll('[rel=\\'alternate\\']');\r\n\r\n      this.languages = Array.from(linkArray)\r\n      .filter((linkTag) => linkTag.getAttribute('hreflang') !== 'x-default')\r\n      .map((linkTag) => {\r\n        return {\r\n          lang: linkTag.getAttribute('hreflang'),\r\n          label: this.languagesMap[linkTag.getAttribute('hreflang') as string],\r\n          link: linkTag.getAttribute('href'),\r\n        };\r\n      });\r\n\r\n      if(!this.languages.length) console.error('There are not presented language options on the page');\r\n    },\r\n    setDefaultLanguage(): void {\r\n      const defaultLang = document.getElementsByTagName('html')[0].getAttribute('lang') as string;\r\n      this.selectedLanguage = this.languages.find((lang) => lang.lang === defaultLang.split('-')[0]);\r\n    },\r\n    setDefaultLanguageFirstInArr(): void {\r\n      const selectedLangArr = this.languages.filter((lang) => lang.lang === this.selectedLanguage.lang);\r\n      this.languages = this.languages.filter((lang) => lang.lang !== this.selectedLanguage.lang);\r\n      this.languages = [...selectedLangArr, ...this.languages];\r\n    },\r\n    toggleSwitcher(): void {\r\n      this.isSwitcherShown = true;\r\n    },\r\n    setClickOutsideListener(): void {\r\n      this.selfEl = document.getElementsByTagName('conzoom-language-switcher')[0];\r\n\r\n      document.addEventListener('click', (event) => {\r\n        if (this.isSwitcherShown && this.selfEl !== event.target) {\r\n          this.isSwitcherShown = false;\r\n        }\r\n      });\r\n    }\r\n  },\r\n  data: () => {\r\n    return {\r\n      languages: [],\r\n      selectedLanguage: null,\r\n      isSwitcherShown: false,\r\n      languagesMap: {\r\n        da: 'Dansk',\r\n        en: 'English',\r\n        fi: 'Suomi',\r\n        no: 'Norsk',\r\n        se: 'Svenska',\r\n      },\r\n      selfEl: null,\r\n    };\r\n  }\r\n};\r\n","export default \".wrapper{position:relative;padding:10px 20px}.wrapper .switcher{display:inline-block;font-size:1rem;position:absolute;z-index:1;left:0;right:0;top:0;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.1)}.wrapper .switcher-option{text-transform:capitalize;padding:10px 20px;cursor:pointer;position:relative}.wrapper .switcher-option:hover{background-color:rgba(128,128,128,.1)}.wrapper .switcher-option:not(:last-of-type) :after{content:\\\" \\\";border-bottom:1.5px solid rgba(128,128,128,.1);position:absolute;width:80%;top:0;left:0;bottom:0;right:0;margin:auto}.wrapper .default-lang{display:inline-block;cursor:pointer;color:gray}\"","import { render } from \"./ConzoomLanguageSwitcher.ce.vue?vue&type=template&id=69f9fb94&ts=true\"\nimport script from \"./ConzoomLanguageSwitcher.ce.vue?vue&type=script&lang=ts\"\nexport * from \"./ConzoomLanguageSwitcher.ce.vue?vue&type=script&lang=ts\"\n\nimport _style_0 from \"./styles.scss?vue&type=style&index=0&inline&lang=scss&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['styles',[_style_0]]])\n\nexport default __exports__","import { defineCustomElement } from 'vue';\r\nimport ConzoomTypeDistributionComponent from '@/components/ConzoomTypeDistributionComponent/ConzoomTypeDistributionComponent.ce.vue';\r\nimport ConzoomFactChartComponent from '@/components/ConzoomFactChartComponent/ConzoomFactChartComponent.ce.vue';\r\nimport ConzoomGalupCompassComponent from '@/components/ConzoomGalupCompassComponent/ConzoomGalupCompassComponent.ce.vue';\r\nimport ConzoomDecileComponent from '@/components/ConzoomDecile/ConzoomDecileComponent.ce.vue';\r\nimport ConzoomLanguageSwitcher from '@/components/ConzoomLanguageSwitcher/ConzoomLanguageSwitcher.ce.vue';\r\n\r\nconst PieChartCustomElement = defineCustomElement(ConzoomTypeDistributionComponent);\r\ncustomElements.define('conzoom-type-distribution', PieChartCustomElement);\r\n\r\nconst ConzoomFactChartCustomElement = defineCustomElement(ConzoomFactChartComponent);\r\ncustomElements.define('conzoom-fact', ConzoomFactChartCustomElement);\r\n\r\nconst GalupCompassCustomElement = defineCustomElement(ConzoomGalupCompassComponent);\r\ncustomElements.define('conzoom-galup-compass', GalupCompassCustomElement);\r\n\r\nconst ConzoomDecileCustomElement = defineCustomElement(ConzoomDecileComponent);\r\ncustomElements.define('conzoom-decile', ConzoomDecileCustomElement);\r\n\r\nconst LanguageSwitcherCustomElement = defineCustomElement(ConzoomLanguageSwitcher);\r\ncustomElements.define('conzoom-language-switcher', LanguageSwitcherCustomElement);\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkconzoom_web_widgets\"] = self[\"webpackChunkconzoom_web_widgets\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(884); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["class","ref","translations","distChartData","item","key","title","style","color","chartOptions","radius","labelCoordinates","coord","halfPathAngle","percent","chartLoaderValue","isProcessing","translationPlaceholder","onChartCopy","copyRightRef","hidden","name","__exports__","width","height","viewBox","fill","xmlns","d","copyChart","props","Boolean","String","methods","this","$emit","r","cx","cy","stroke","Number","revertingElementsMapper","copiedChartEl","styleSheet","isDomtoimage","Promise","resolve","reject","prepareChartForCopying","then","dataUrl","link","document","createElement","download","href","click","revertChartToShowing","catch","err","css","getCssFromStyleSheet","payload","html","outerHTML","ms_delay","stringlifiedPayload","JSON","stringify","options","auth","username","password","headers","postResponse","fileName","data","url","split","pop","responseType","getResponse","imageURL","URL","createObjectURL","console","error","getTypeDistributionChartData","api","token","segment","Authorization","params","filter","toUpperCase","limit","fields","generateTypeDistributionChart","el","setAttribute","sum","e","segments","length","startAngle","endAngle","i","element","angle","Math","PI","svgLine","makeSVG","x1","y1","x2","cos","y2","sin","appendChild","pathStr","svgPath","generateDistributionChartLabels","anglesSum","angleStart","angleEnd","coordinates","push","getDecilesConfig","country","decilesRes","getDecileData","decile","toLowerCase","getCompassData","compassChartRes","getChartTranslations","lang","chartName","translationsRes","map","cssRules","rule","cssText","join","log","colorLuminance","hex","lum","replace","c","rgb","parseInt","substr","round","min","max","toString","tag","attrs","createElementNS","k","watermark","getElementsByClassName","btnPanel","copyRightsRef","opacityTarget","progressLineTarget","titleOccupationTarget","removeAttribute","classList","add","remove","revertingElems","revertElem","contains","forEach","group","components","CopyBtn","WatermarkSign","CopyRightsRef","DistributionChartLoader","async","animateChartLoader","setChartData","beforeUnmount","subscriptions","subscription","clearTimeout","$refs","chartPie","querySelector","shadowRoot","styleSheets","showCopiedTooltip","timer","setTimeout","setInterval","clearInterval","all","distCharTranslation","reduce","acc","transl","value","conzoom_types","type","group_percent","chart","render","_","_hoisted_7","_ctx","_cache","$props","$setup","$data","$options","chartValue","mounted","computed","id","compassChartData","endColor","label","offset","startColor","compassResponse","rawTranslations","_getPreparedCompassData","scores","curr","direction","finalPoints","north","compassChartRadius","compassChartPolygonStep","northEast","maxScores","east","southEast","south","southWest","west","northWest","compassChartResults","innerHTML","compassChart","compassDirections","compassData","variable","conzoom_data","option","translation","find","clickOutsideDropdown","$event","toggleChartCategories","selectedDecileTitle","decilesTitles","selectDecile","decileChartData","dkDefaultColor","decilesDataMapper","viewMode","selectLine","optionsPercentMapper","segmentIndex","segmentIndexTitle","switchViewMode","BarChartSwitcher","setClickOutsideListener","setDecilesData","decilesConfig","variables","sort","prev","next","default_variable","detaRequests","response","decileData","decilesData","_getPreparedDecilesData","deciles","_prepareSegmentsView","_generateOptionsPercentMapper","getDeciles","country_average","trans","selfEl","getElementsByTagName","addEventListener","event","isCategoriesShown","target","barChart","line","linePart","segmentPercent","stopPropagation","dropdown","decileTitle","getPreparedDecileData","biggestSegmentValue","indexValueGraterThanCountryAverage","indexValueLessThanCountryAverage","biggestOptValue","indexValue","toFixed","indexWidth","zeroAlignedIndex","dkPercent","percentSegmentWidth","percentDkWidth","ceil","floor","languages","onClick","toggleSwitcher","selectedLanguage","selectLang","setLanguages","setDefaultLanguage","setDefaultLanguageFirstInArr","language","window","location","isSwitcherShown","linkArray","querySelectorAll","Array","from","linkTag","getAttribute","languagesMap","defaultLang","selectedLangArr","da","en","fi","no","se","PieChartCustomElement","customElements","define","ConzoomFactChartCustomElement","GalupCompassCustomElement","ConzoomDecileCustomElement","LanguageSwitcherCustomElement","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","splice","n","getter","__esModule","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}