{"version":3,"file":"assets/js/775.93f5634cd8a7510be5fd.js","mappings":"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","sources":["webpack://ssen-distribution/./src/app/views/active-network-management-graph/active-network-management-graph.vue","webpack://ssen-distribution/./src/app/components/active-network-management/graph-legend.vue","webpack://ssen-distribution/./src/app/components/active-network-management/graph-legend.vue?4f67","webpack://ssen-distribution/./src/app/composables/use-bar-chart.js","webpack://ssen-distribution/./src/app/views/active-network-management-graph/active-network-management-graph.vue?7c65","webpack://ssen-distribution/./src/app/views/active-network-management-graph/active-network-management-graph.ts","webpack://ssen-distribution/./src/app/components/_shared/base-button.vue","webpack://ssen-distribution/./src/app/composables/use-modifiers.js","webpack://ssen-distribution/./src/app/components/_shared/base-button.vue?c8c0","webpack://ssen-distribution/./src/app/components/_shared/loading-overlay.vue","webpack://ssen-distribution/./src/app/components/_shared/loading-overlay.vue?b8e0"],"sourcesContent":["<template>\r\n  <div v-if=\"hasData\" class=\"c-anm-graph\">\r\n    <canvas\r\n      v-if=\"hasData\"\r\n      aria-hidden=\"true\"\r\n      class=\"c-anm-graph__canvas\"\r\n      id=\"graph-canvas\"\r\n      ref=\"graph-canvas\"\r\n    />\r\n    <dl aria-live=\"assertive\" class=\"c-anm-graph__legend\">\r\n      <graph-legend v-for=\"item in legendData\" :item=\"item\" :key=\"item.label\" />\r\n    </dl>\r\n    <div class=\"c-anm-graph__actions\">\r\n      <p v-if=\"lastUpdated\" class=\"c-anm-graph__last-updated\">\r\n        Last updated at <time :datetime=\"lastUpdated\">{{ lastUpdatedFormatted }}</time>\r\n      </p>\r\n      <base-button @click=\"destroyGraph\" :modifiers=\"['form']\" type=\"button\">{{\r\n        config.refreshBtnLabel\r\n      }}</base-button>\r\n    </div>\r\n  </div>\r\n  <loading-overlay />\r\n</template>\r\n\r\n<script>\r\nimport { computed, defineComponent, inject, onMounted, ref } from 'vue';\r\nimport { useStore } from 'vuex';\r\nimport BaseButton from '@/app/components/_shared/base-button.vue';\r\nimport GraphLegend from '@/app/components/active-network-management/graph-legend.vue';\r\nimport LoadingOverlay from '@/app/components/_shared/loading-overlay.vue';\r\nimport useBarChart from '@/app/composables/use-bar-chart';\r\n\r\nexport default defineComponent({\r\n  components: {\r\n    BaseButton,\r\n    GraphLegend,\r\n    LoadingOverlay,\r\n  },\r\n  setup() {\r\n    const config = inject('config');\r\n    const store = useStore();\r\n    const graphCanvas = ref('graph-canvas');\r\n\r\n    const graphData = computed(() => store.state.activeNetworkManagement.graphData);\r\n    const hasData = computed(() => store.getters['activeNetworkManagement/hasData']);\r\n    const lastUpdated = computed(() => store.state.activeNetworkManagement.lastUpdated);\r\n    const lastUpdatedFormatted = computed(\r\n      () => store.getters['activeNetworkManagement/lastUpdatedFormatted'],\r\n    );\r\n    const legendData = computed(() => store.getters['activeNetworkManagement/legendData']);\r\n    const yAxisLabel = computed(() => store.state.activeNetworkManagement.yAxisLabel);\r\n\r\n    const { chartInstance, renderChart, updateChart, destroyChart } = useBarChart();\r\n\r\n    function getGraphData() {\r\n      store.dispatch('activeNetworkManagement/fetchGraphData', config.graphRegion).then(() => {\r\n        if (chartInstance === null) {\r\n          renderChart(graphCanvas, graphData.value, yAxisLabel.value);\r\n        } else {\r\n          updateChart();\r\n        }\r\n      });\r\n    }\r\n\r\n    function destroyGraph() {\r\n      destroyChart();\r\n      getGraphData();\r\n    }\r\n\r\n    onMounted(() => {\r\n      getGraphData();\r\n    });\r\n\r\n    return {\r\n      config,\r\n      getGraphData,\r\n      destroyGraph,\r\n      hasData,\r\n      lastUpdated,\r\n      lastUpdatedFormatted,\r\n      legendData,\r\n    };\r\n  },\r\n});\r\n</script>\r\n","<template>\r\n  <div class=\"c-anm-graph__item\">\r\n    <span :style=\"boxStyle\" aria-hidden=\"true\" class=\"c-anm-graph__box\" />\r\n    <dt class=\"c-anm-graph__label\">\r\n      {{ item.label }}\r\n    </dt>\r\n    <dd class=\"c-anm-graph__value\">{{ item.value }}</dd>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { computed, defineComponent } from 'vue';\r\nexport default defineComponent({\r\n  props: {\r\n    item: {\r\n      required: true,\r\n      type: Object,\r\n    },\r\n  },\r\n  setup(props) {\r\n    const boxStyle = computed(() => `background-color:${props.item.backgroundColor};`);\r\n    return {\r\n      boxStyle,\r\n    };\r\n  },\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped></style>\r\n","import { render } from \"./graph-legend.vue?vue&type=template&id=343d687a\"\nimport script from \"./graph-legend.vue?vue&type=script&lang=js\"\nexport * from \"./graph-legend.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\mando.whitelabel\\\\FrontEnd\\\\pattern-library\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Chart from 'chart.js/auto';\r\n\r\nexport default function useBarChart() {\r\n  let chartInstance = null;\r\n  const fontStyles = {\r\n    color: '#4F4F4F',\r\n    font: {\r\n      family: `'Museo Sans', sans-serif`,\r\n      size: 14,\r\n      weight: '500',\r\n      lineHeight: 16.8 / 14,\r\n    },\r\n  };\r\n  function renderChart(ctx, data, yAxisLabel) {\r\n    chartInstance = new Chart(ctx.value, {\r\n      type: 'bar',\r\n      data,\r\n      options: {\r\n        plugins: {\r\n          legend: {\r\n            display: false,\r\n          },\r\n        },\r\n        responsive: true,\r\n        scales: {\r\n          x: {\r\n            stacked: true,\r\n            ticks: {\r\n              ...fontStyles,\r\n            },\r\n          },\r\n          y: {\r\n            stacked: true,\r\n            title: {\r\n              ...fontStyles,\r\n              display: true,\r\n              text: yAxisLabel,\r\n            },\r\n          },\r\n        },\r\n      },\r\n    });\r\n  }\r\n  function destroyChart() {\r\n    chartInstance.destroy();\r\n  }\r\n  function updateChart() {\r\n    chartInstance.update();\r\n  }\r\n  return { chartInstance, renderChart, updateChart, destroyChart };\r\n}\r\n","import { render } from \"./active-network-management-graph.vue?vue&type=template&id=10ef00b6\"\nimport script from \"./active-network-management-graph.vue?vue&type=script&lang=js\"\nexport * from \"./active-network-management-graph.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\mando.whitelabel\\\\FrontEnd\\\\pattern-library\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue';\r\nimport anmGraphApp from '@/app/views/active-network-management-graph/active-network-management-graph.vue';\r\nimport store from '@/app/store/index.js';\r\nfunction init() {\r\n    var anmGraphEl = document.getElementById('anm-graph');\r\n    if (anmGraphEl) {\r\n        var app = createApp(anmGraphApp).use(store);\r\n        app.provide('config', window.SSEN);\r\n        app.mount(anmGraphEl);\r\n    }\r\n}\r\nexport default init;\r\n","<template>\r\n  <button v-bind=\"$attrs\" :class=\"cssClasses\" :type=\"type\" :disabled=\"disabled\">\r\n    <slot />\r\n  </button>\r\n</template>\r\n\r\n<script>\r\nimport { computed } from 'vue';\r\nimport useModifiers from '@/app/composables/use-modifiers';\r\n\r\nexport default {\r\n  inheritAttrs: false,\r\n  props: {\r\n    modifiers: {\r\n      default: () => [],\r\n      required: false,\r\n      type: Array,\r\n    },\r\n    type: {\r\n      required: true,\r\n      type: String,\r\n    },\r\n    disabled: {\r\n      required: false,\r\n      default: () => false,\r\n      type: Boolean,\r\n    },\r\n  },\r\n  setup(props) {\r\n    const baseCssClass = 'c-button';\r\n    const cssClasses = computed(() => useModifiers(baseCssClass, props.modifiers));\r\n    return { cssClasses };\r\n  },\r\n};\r\n</script>\r\n","export default function useModifiers(baseCssClass, modifiers) {\r\n  if (modifiers.length) {\r\n    const modifierCssClasses = modifiers\r\n      .map((modifier) => ` ${baseCssClass}--${modifier}`)\r\n      .toString()\r\n      .replace(/,/g, '');\r\n    return `${baseCssClass}${modifierCssClasses}`;\r\n  }\r\n  return baseCssClass;\r\n}\r\n","import { render } from \"./base-button.vue?vue&type=template&id=c3092f2e\"\nimport script from \"./base-button.vue?vue&type=script&lang=js\"\nexport * from \"./base-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\mando.whitelabel\\\\FrontEnd\\\\pattern-library\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n  <div :class=\"{ 'is-loading': isLoading }\" class=\"c-loading-overlay\">\r\n    <div class=\"visually-hidden\" aria-live=\"polite\">\r\n      <p v-if=\"isLoading\">Loading content...</p>\r\n    </div>\r\n    <div class=\"c-loading-overlay__spinner\">\r\n      <div class=\"c-loading-overlay__circle\" />\r\n      <div class=\"c-loading-overlay__circle\" />\r\n      <div class=\"c-loading-overlay__circle\" />\r\n      <div class=\"c-loading-overlay__circle\" />\r\n      <div class=\"c-loading-overlay__circle\" />\r\n      <div class=\"c-loading-overlay__circle\" />\r\n      <div class=\"c-loading-overlay__circle\" />\r\n      <div class=\"c-loading-overlay__circle\" />\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { computed, defineComponent } from 'vue';\r\nimport { useStore } from 'vuex';\r\n\r\nexport default defineComponent({\r\n  setup() {\r\n    const store = useStore();\r\n    return {\r\n      isLoading: computed(() => store.state.loader.isLoading),\r\n    };\r\n  },\r\n});\r\n</script>\r\n","import { render } from \"./loading-overlay.vue?vue&type=template&id=46d21543\"\nimport script from \"./loading-overlay.vue?vue&type=script&lang=js\"\nexport * from \"./loading-overlay.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\mando.whitelabel\\\\FrontEnd\\\\pattern-library\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","id","ref","defineComponent","props","item","required","type","Object","setup","boxStyle","computed","backgroundColor","_createElementBlock","_createElementVNode","style","_ctx","_toDisplayString","label","value","components","BaseButton","GraphLegend","LoadingOverlay","config","inject","store","useStore","graphCanvas","graphData","state","activeNetworkManagement","hasData","getters","lastUpdated","lastUpdatedFormatted","legendData","yAxisLabel","chartInstance","renderChart","updateChart","destroyChart","fontStyles","color","font","family","size","weight","lineHeight","ctx","data","Chart","options","plugins","legend","display","responsive","scales","x","stacked","ticks","y","title","text","update","destroy","useBarChart","getGraphData","dispatch","graphRegion","then","onMounted","destroyGraph","_Fragment","_renderList","_createBlock","_component_graph_legend","key","datetime","_hoisted_7","_createVNode","_component_base_button","onClick","modifiers","refreshBtnLabel","_component_loading_overlay","anmGraphEl","document","getElementById","app","createApp","anmGraphApp","use","provide","window","SSEN","mount","inheritAttrs","default","Array","String","disabled","Boolean","cssClasses","baseCssClass","length","modifierCssClasses","map","modifier","toString","replace","useModifiers","$setup","$props","_renderSlot","isLoading","loader","_hoisted_2","_hoisted_3"],"sourceRoot":""}