{"version":3,"file":"js/app.f23f6642.js","mappings":"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","sources":["webpack://iotcoralportal/./src/App.vue?abc0","webpack://iotcoralportal/./src/components/CoralGraph.vue?e049","webpack://iotcoralportal/./src/components/CoralGraph.vue?ba1a","webpack://iotcoralportal/./src/components/CoralGraph.vue","webpack://iotcoralportal/./src/App.vue?847a","webpack://iotcoralportal/./src/App.vue","webpack://iotcoralportal/./src/main.ts","webpack://iotcoralportal/webpack/bootstrap","webpack://iotcoralportal/webpack/runtime/chunk loaded","webpack://iotcoralportal/webpack/runtime/compat get default export","webpack://iotcoralportal/webpack/runtime/define property getters","webpack://iotcoralportal/webpack/runtime/global","webpack://iotcoralportal/webpack/runtime/hasOwnProperty shorthand","webpack://iotcoralportal/webpack/runtime/jsonp chunk loading","webpack://iotcoralportal/webpack/startup"],"sourcesContent":["import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, withModifiers as _withModifiers, vModelCheckbox as _vModelCheckbox, withDirectives as _withDirectives, vShow as _vShow, normalizeStyle as _normalizeStyle, resolveComponent as _resolveComponent, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n style: {\"position\":\"fixed\",\"margin\":\"1px\",\"padding\":\"0px\",\"left\":\"1px\",\"top\":\"1px\",\"z-index\":\"10\"}\n}\nconst _hoisted_2 = {\n class: \"flex-container\",\n style: {\"z-index\":\"0\"}\n}\nconst _hoisted_3 = {\n key: 0,\n class: \"flex-fit\"\n}\nconst _hoisted_4 = [\"onClick\"]\nconst _hoisted_5 = {\n key: 0,\n style: {\"background-color\":\"#C0C0C0\"}\n}\nconst _hoisted_6 = { style: {\"padding\":\"0 3px 0 3px\"} }\nconst _hoisted_7 = { key: 1 }\nconst _hoisted_8 = { style: {\"padding\":\"0 3px 0 3px\"} }\nconst _hoisted_9 = {\n key: 0,\n style: {\"text-align\":\"left\"}\n}\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"label\", { for: \"aktualnihodnoty\" }, \"Aktuální hodnoty\", -1)\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"label\", { for: \"grafhodnoty\" }, \"Graf\", -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_14 = { class: \"mojediv\" }\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", null, [\n /*#__PURE__*/_createElementVNode(\"th\", null, \"Signál\"),\n /*#__PURE__*/_createElementVNode(\"th\", null, \"Hodnota\"),\n /*#__PURE__*/_createElementVNode(\"th\", null, \"[ ]\")\n ])\n], -1)\nconst _hoisted_16 = { key: 0 }\nconst _hoisted_17 = { style: {\"max-height\":\"100px\",\"background-color\":\"white\"} }\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = { class: \"flex-do-konce\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CoralGraph = _resolveComponent(\"CoralGraph\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.msg), 1),\n (_ctx.bVidetBtnZpet)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.btnZpet && _ctx.btnZpet(...args))),\n style: {\"padding\":\"3px 10px\"}\n }, \"Zpět\")\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.bVidetStanice)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.nacteneStanice, (stanice, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: index,\n onClick: _withModifiers(($event: any) => (_ctx.vyberStanice(stanice)), [\"stop\"]),\n tabindex: \"0\",\n style: {\"padding\":\"0px\"}\n }, [\n (stanice == _ctx.vybranaStanice)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(stanice.jmeno), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(stanice.jmeno), 1)\n ]))\n ], 8, _hoisted_4))\n }), 128))\n ]),\n (_ctx.bMobil)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n id: \"aktualnihodnoty\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.bMobilPozadavekAktualni) = $event))\n }, null, 512), [\n [_vModelCheckbox, _ctx.bMobilPozadavekAktualni]\n ]),\n _hoisted_10,\n _hoisted_11,\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n id: \"grafhodnoty\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.bMobilPozadavekGraf) = $event))\n }, null, 512), [\n [_vModelCheckbox, _ctx.bMobilPozadavekGraf]\n ]),\n _hoisted_12,\n _hoisted_13\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.bMobil && _ctx.vybranaStanice != null)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n style: {\"margin\":\"20px\"},\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.btnPouzeGraf && _ctx.btnPouzeGraf(...args)))\n }, \" Graf podrobně \"))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _withDirectives(_createElementVNode(\"div\", _hoisted_14, \" ← vyberte stanici \", 512), [\n [_vShow, _ctx.vybranaStanice == null]\n ]),\n (_ctx.bVidetAktualni && _ctx.vybranaStanice != null)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"flex-fit tableFixHead\",\n style: _normalizeStyle(_ctx.computedStyle)\n }, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.vybranaStanice.jmeno), 1),\n _createElementVNode(\"table\", null, [\n _hoisted_15,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.arrAktualniHodnoty, (row) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: row.jmeno\n }, [\n _createElementVNode(\"td\", null, _toDisplayString(row.jmeno), 1),\n (Array.isArray(row.hodnota))\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_16, [\n _createElementVNode(\"ul\", _hoisted_17, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row.hodnota, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: item }, _toDisplayString(item), 1))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"td\", _hoisted_18, _toDisplayString(row.hodnota), 1)),\n _createElementVNode(\"td\", null, _toDisplayString(row.jednotka), 1)\n ]))\n }), 128))\n ])\n ])\n ], 4))\n : _createCommentVNode(\"\", true),\n _withDirectives(_createElementVNode(\"div\", _hoisted_19, [\n _createVNode(_component_CoralGraph, { propVybranaStanice: _ctx.vybranaStanice }, null, 8, [\"propVybranaStanice\"])\n ], 512), [\n [_vShow, _ctx.bVidetGraf && _ctx.vybranaStanice != null]\n ])\n ])\n ], 64))\n}","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, vShow as _vShow, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { style: {\"justify-content\":\"center\"} }\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"zoom \")\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"b\", null, \"+\", -1)\nconst _hoisted_5 = [\n _hoisted_3,\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"zoom \")\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"b\", null, \"-\", -1)\nconst _hoisted_8 = [\n _hoisted_6,\n _hoisted_7\n]\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"p\", null, [\n /*#__PURE__*/_createElementVNode(\"small\", null, \" Klik + pohyb = posunutí času, Ctrl + Klik + pohyb = zoom, Kolečko myši = zoom \")\n], -1)\nconst _hoisted_10 = { class: \"tableFixHead\" }\nconst _hoisted_11 = { class: \"table\" }\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"th\", { style: {\"padding\":\"10px\"} }, \"Datum/Čas\", -1)\nconst _hoisted_13 = { style: {\"padding\":\"10px\"} }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LineChart = _resolveComponent(\"LineChart\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", null, [\n (_ctx.propVybranaStanice != null)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _toDisplayString(_ctx.propVybranaStanice.jmeno), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => {_ctx.bGrafVidet = !_ctx.bGrafVidet;}),\n class: \"button\",\n style: {\"margin\":\"0 0 0 20px\"}\n }, _toDisplayString(_ctx.bGrafVidet ? \"Tabulka\" : \"Graf\"), 1)\n ]),\n _withDirectives(_createElementVNode(\"div\", null, [\n (_ctx.flagloaded)\n ? (_openBlock(), _createBlock(_component_LineChart, {\n key: 0,\n ref: \"lineRef\",\n chartData: _ctx.krivkyData,\n options: _ctx.options,\n style: {\"height\":\"80vh\"}\n }, null, 8, [\"chartData\", \"options\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"button\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.zoomIn && _ctx.zoomIn(...args)))\n }, _hoisted_5),\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"button\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.zoomOut && _ctx.zoomOut(...args)))\n }, _hoisted_8),\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"button\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.zoomReset && _ctx.zoomReset(...args)))\n }, \"zoom reset\"),\n _createElementVNode(\"p\", null, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.msg), 1)\n ]),\n _hoisted_9\n ])\n ], 512), [\n [_vShow, _ctx.bGrafVidet]\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"table\", _hoisted_11, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_12,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.propVybranaStanice?.graph, (column) => {\n return (_openBlock(), _createElementBlock(\"th\", {\n style: {\"padding\":\"10px\"},\n scope: \"col\",\n key: column.signame\n }, _toDisplayString(column.signame), 1))\n }), 128))\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.arrTable, (row) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: row[0]\n }, [\n _createElementVNode(\"td\", _hoisted_13, _toDisplayString(_ctx.MujTimeFormat(row[0])), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row[1], (column) => {\n return (_openBlock(), _createElementBlock(\"td\", {\n style: {\"padding\":\"10px\"},\n key: column\n }, _toDisplayString(column), 1))\n }), 128))\n ]))\n }), 128))\n ])\n ])\n ], 512), [\n [_vShow, !_ctx.bGrafVidet]\n ])\n ], 64))\n}","\r\n import { computed, ref, PropType, defineComponent, watch } from \"vue\";\r\n import { LineChart } from \"vue-chart-3\";\r\n import { Chart, ChartData, ChartOptions, ScatterDataPoint, registerables } from \"chart.js\";\r\n import 'chartjs-adapter-date-fns';\r\n import zoomPlugin from 'chartjs-plugin-zoom';\r\n import { JednaStanice } from '../mojetypy';\r\n\r\n Chart.register(zoomPlugin);\r\n Chart.register(...registerables);\r\n\r\n \r\n var gxMinNactenoPozadavekMs: number = 0;\r\n var gxMaxNactenoPozadavekMs: number = 0;\r\n var gbProbihaNacitani: boolean = false;\r\n\r\n \r\n \r\n //export default {\r\n export default defineComponent({\r\n\r\n name: \"CoralGraph\",\r\n components: { LineChart },\r\n\r\n props: {\r\n propVybranaStanice: Object as PropType\r\n },\r\n \r\n\r\n setup( props ) {\r\n\r\n const bGrafVidet = ref(true); // přepíníní pohledu mezi Graf/Tabulka\r\n const msg = ref(''); // chybové hlášky\r\n const lineRef = ref(); // Graf komponenta sem dá referenci na vnitřní graf\r\n const flagloaded = ref(false); // až když se nastaví na true, graf bude zobrazen v-if=\"flagloaded\"\r\n\r\n // pole dat jednotlivých křivek\r\n // když se do nějaké křivky napíšou data, hned se to v grafu změní\r\n //const reactivePoleDataVsechKrivek = reactive(new Array>());\r\n\r\n const reactivePoleDataVsechKrivek = ref(new Array>());\r\n\r\n // event, když se změní vybraná stanice\r\n watch(\r\n () => props.propVybranaStanice,\r\n (stanice) => {\r\n console.log(\"Graph:event propVybranaStanice: \" + (stanice as JednaStanice).jmeno);\r\n pocatecniNacteni();\r\n }\r\n );\r\n\r\n\r\n /*\r\n // aktuálně vybraná křivka, reaktivně se zapsalo do propVybranaStanice\r\n // tedy se i zavolá tato\r\n // potřebuje ho i Tabulka, když dělá řádky a sloupce\r\n const arrAttribKrivek = computed(() => {\r\n console.log(\"UPDATE AtributyKrivky computed\");\r\n\r\n if (props.propVybranaStanice == null) {\r\n //var arrAttribKrivek: AtributyKrivky[] = [];\r\n return []; //arrAttribKrivek;\r\n }\r\n \r\n return props.propVybranaStanice?.graph;\r\n });\r\n */\r\n\r\n\r\n\r\n \r\n\r\n // srovnaná data pro Tabulku\r\n // klíč:[čas] pole[idxSignalu] ( hodnoty všech signálů, když tam není tak NaN )\r\n //\r\n const arrTable = computed(() => {\r\n const mapUnsorted = new Map();\r\n\r\n console.log(\"UPDATE arrTable computed\");\r\n\r\n\r\n // ještě není správná hodnota\r\n if (lineRef.value != null) {\r\n var dtStart = lineRef.value.chartInstance.scales['x'].min;\r\n var dtEnd = lineRef.value.chartInstance.scales['x'].max;\r\n\r\n var pocetSignalu = reactivePoleDataVsechKrivek.value.length;\r\n\r\n // console.log(\"UPDATE arrTable computed Pocet: \" + pocetSignalu + \" \" + dtStart + \" \" + dtEnd);\r\n\r\n reactivePoleDataVsechKrivek.value.forEach((krivka, idxSignalu) => {\r\n\r\n console.log(\"UPDATE arrTable computed forEach idxSignalu: \" + idxSignalu);\r\n\r\n krivka.forEach(bod => {\r\n // brát jen body co jsou zobrazeny v Grafu\r\n if (bod.x >= dtStart && bod.x <= dtEnd) {\r\n // ještě tam čas není\r\n if (!mapUnsorted.has(bod.x)) {\r\n mapUnsorted.set(bod.x, new Array(pocetSignalu)); // přidá nové pole pro všechny signály\r\n }\r\n // map[klíč_čas] poleSignálů\r\n mapUnsorted.get(bod.x)![idxSignalu] = bod.y;\r\n }\r\n });\r\n });\r\n }\r\n else\r\n console.log(\"UPDATE arrTable computed EMPTY\");\r\n\r\n /////////////////////////////////\r\n // map sort\r\n var keys: number[] = [];\r\n var sortedMap = new Map();\r\n\r\n // Put keys in Array\r\n mapUnsorted.forEach(function callback(value, key) {\r\n keys.push(key);\r\n });\r\n\r\n keys.sort().forEach(klic => {\r\n sortedMap.set(klic, mapUnsorted.get(klic));\r\n });\r\n\r\n \r\n return sortedMap;\r\n });\r\n\r\n\r\n // OSY\r\n // volá se jen při prvotním otevření Grafu, když flagloaded nastavím na true\r\n const options = computed>(() => {\r\n\r\n console.log(\"UPDATE options computed\");\r\n\r\n var vys: ChartOptions<\"line\"> = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n\r\n animation: {\r\n duration: 0 // animace vypnuta\r\n },\r\n\r\n scales: {\r\n x: {\r\n type: 'time',\r\n\r\n time: {\r\n //unit: 'minute', // tohle tam nedávat, pak se to dělá auto\r\n displayFormats: {\r\n month: 'dd.MM.yyyy',\r\n day: 'dd.MM',\r\n hour: 'dd.MM HH:mm:ss',\r\n minute: 'mm:ss',\r\n second: 'ss',\r\n },\r\n tooltipFormat: 'dd.MM.yyyy HH:mm:ss',\r\n },\r\n\r\n display: true,\r\n title: {\r\n display: true,\r\n text: 'datum čas'\r\n },\r\n ticks: {\r\n // source: 'data', // zobrzuje cas jen pro zadana dato, to nechci\r\n\r\n major: {\r\n enabled: true\r\n },\r\n\r\n\r\n //color: (context) => context.tick && context.tick.major && '#FF0000',\r\n color: context => {\r\n if (context.tick && context.tick.major) return '#FF0000';\r\n },\r\n\r\n\r\n\r\n // interface TickOptions\r\n //font: function (context) {\r\n // if (context.tick && context.tick.major) {\r\n // return {\r\n // weight: 'bold',\r\n // family: \"\",\r\n // size: 12,\r\n // style: 'normal',\r\n // lineHeight: 12\r\n // };\r\n // }\r\n //},\r\n\r\n },\r\n },\r\n },\r\n plugins: {\r\n zoom: {\r\n zoom: {\r\n wheel: {\r\n enabled: true,\r\n },\r\n drag: {\r\n enabled: true,\r\n modifierKey: 'ctrl',\r\n },\r\n pinch: {\r\n enabled: true\r\n },\r\n mode: 'x',\r\n onZoom: (context) => mojeOnPanZoom(context.chart.scales['x'].min, context.chart.scales['x'].max)\r\n },\r\n pan: {\r\n enabled: true,\r\n mode: 'x',\r\n onPan: (context) => mojeOnPanZoom(context.chart.scales['x'].min, context.chart.scales['x'].max) // pozice time dorazu\r\n }\r\n\r\n /* omezí x, že se mimo meze nedá posouvat: {\r\n x: { min: dateMinus.getTime(), max: dateNow.getTime() },\r\n }\r\n */\r\n },\r\n /*\r\n legend: {\r\n position: \"top\",\r\n },\r\n title: {\r\n display: true,\r\n text: \"nadpis\",\r\n },\r\n\r\n tooltip: {\r\n callbacks: {\r\n\r\n label: function (context) {\r\n let label = context.dataset.label || '';\r\n\r\n if (label) {\r\n label += 'koko';\r\n }\r\n //if (context.parsed.y !== null) {\r\n // label += new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(context.parsed.y);\r\n //}\r\n return \"aaa\";\r\n }\r\n }\r\n }\r\n */\r\n },\r\n };\r\n\r\n\r\n // dynamicky přidávat osy y0, y1, ...\r\n var indexOsy: number = 0;\r\n\r\n props.propVybranaStanice?.graph.forEach((k) => {\r\n\r\n // stejnaOsa = true/false\r\n if (k.stejnaOsa) {\r\n return; // vlastně je to continue\r\n }\r\n\r\n var jmenoOsy = \"y\" + indexOsy; // \"y0\"\r\n indexOsy++;\r\n\r\n console.log(\"UPDATE options computed ... for osy \" + jmenoOsy);\r\n\r\n\r\n // ! zruší kontrolu TS na null, scales už jsme tam určitě dali viz nahoře, tohle není nutné //if (vys.scales != null)\r\n // přidat property jména y0\r\n vys.scales![jmenoOsy] = {\r\n display: true,\r\n title: {\r\n display: true,\r\n text: k.popis\r\n },\r\n grid: {\r\n //color: 'red', // čárečky u čísla a pokračující linka //'rgba(255,0,0,0.1)',\r\n borderColor: k.color //'red' // barva osy\r\n },\r\n ticks: {\r\n color: k.color, // barva čísel na ose\r\n },\r\n suggestedMin: isNaN(k.suggestedMin) ? undefined : k.suggestedMin,\r\n suggestedMax: isNaN(k.suggestedMax) ? undefined : k.suggestedMax,\r\n };\r\n });\r\n\r\n return vys;\r\n });\r\n\r\n\r\n \r\n\r\n // KRIVKY\r\n // volá se, až když Graf chce ukázat data, tedy po prvním naplnení i následně když se pak někdy změní data křivek\r\n const krivkyData = computed>(() => {\r\n console.log(\"UPDATE krivkyData computed\");\r\n\r\n var vys: ChartData<\"line\"> = {\r\n datasets: [],\r\n };\r\n\r\n // přes všechny zadané křivky v URL\r\n var pocitadloOs: number = -1; // první osa musí být y0, tak aby po první ne-k.stejnaOsa to bylo 0\r\n\r\n props.propVybranaStanice?.graph.forEach((k, index) => {\r\n\r\n // když má křivka stejnou osu, tak ji přiřaď k té minulé ose\r\n if (!k.stejnaOsa)\r\n pocitadloOs++\r\n\r\n var jmenoOsy = 'y' + pocitadloOs;\r\n\r\n vys.datasets.push({\r\n label: k.signame,\r\n data: reactivePoleDataVsechKrivek.value[index],\r\n backgroundColor: k.color, // i barva výplně bodů\r\n pointBorderColor: k.color,\r\n borderColor: k.color,\r\n pointRadius: 2,\r\n\r\n fill: false,\r\n cubicInterpolationMode: 'default',\r\n tension: 0.3,\r\n yAxisID: jmenoOsy // y0\r\n })\r\n });\r\n\r\n return vys;\r\n });\r\n\r\n\r\n // asynchronně se zeptá na data jedné křivky\r\n async function fetchJednuKrivku(sigName: string, fromTime: number, toTime: number, timeZaokrouhleni: number): Promise {\r\n try {\r\n console.log(\"fetchJednuKrivku START \" + sigName + \" \" + fromTime + \" \" + toTime);\r\n\r\n // když je v rootu na WebServeru, tak tam je jen ./\r\n // když je ale v subServeru, tak to musí být takhle, relativně k TÉHLE aplikaci ( to /TnWeb tam už není )\r\n var sUrlPath = (process.env.NODE_ENV == 'production') ? './Backend/' : './';\r\n\r\n // hook ty number vrací jako desetinná čísla, to pak není long čas a padá to při volání fetch\r\n fromTime = Math.trunc(fromTime);\r\n toTime = Math.trunc(toTime);\r\n\r\n\r\n //var sUrl = './TnGraphData/hop?sig=' + sigName + '&t0=' + fromTime + '&t1=' + toTime + '&tz=' + timeZaokrouhleni;\r\n var sUrl = sUrlPath + 'hop?sig=' + sigName + '&t0=' + fromTime + '&t1=' + toTime + '&tz=' + timeZaokrouhleni;\r\n //msg.value = sUrl;\r\n\r\n //console.log(\"fetchJednuKrivku \" + sUrl);\r\n var r = await fetch(sUrl);\r\n\r\n // console.log(\"fetch1\");\r\n var j = await r.json();\r\n //console.log(\"fetch2 \" + JSON.stringify(j) );\r\n return j; // as KrivkaVsechnyBody;\r\n }\r\n catch(err) {\r\n if (err) {\r\n var txt = \"fetchJednuKrivku ERR \" + (err as Error).message;\r\n console.log(txt);\r\n msg.value = txt;\r\n }\r\n return new Array();\r\n }\r\n }\r\n\r\n\r\n\r\n // od zadaného času [gxMinNacteno, gxMaxNacteno] natáhne do paměti\r\n async function natahniVsechnyKrivky( xMin:number, xMax:number) {\r\n\r\n // data všech křivek vymazat\r\n // reactivePoleDataVsechKrivek.splice(0, reactivePoleDataVsechKrivek.length); \r\n\r\n var tmp = new Array>();\r\n\r\n\r\n //var dt0 = new Date(xMin);\r\n //var dt1 = new Date(xMin);\r\n //console.log(\"natahniVsechnyKrivky time: \" + dt0.toUTCString() + \" \" + dt1.toUTCString());\r\n\r\n if (props.propVybranaStanice != null) {\r\n for (var i = 0; i < props.propVybranaStanice?.graph.length; i++) {\r\n var k = await fetchJednuKrivku(props.propVybranaStanice?.graph[i].signame, xMin, xMax, props.propVybranaStanice?.graph[i].zaookrouhleniCasu);\r\n //reactivePoleDataVsechKrivek[i] = k;\r\n tmp[i] = k;\r\n console.log(\"konec Fetch krivky OK \" + props.propVybranaStanice?.graph[i].signame + \" \" + xMin + \" \" + xMax);\r\n }\r\n\r\n reactivePoleDataVsechKrivek.value = tmp;\r\n }\r\n }\r\n\r\n function pocatecniNacteni() {\r\n flagloaded.value = false; // aby se pak na grafu opět zavolalo přenačtení os (options computed)\r\n\r\n // natáhnout data a následně reaktivně vše vytvořit\r\n var dateNow = new Date();\r\n\r\n var xMax = dateNow.getTime();\r\n var xMin = xMax - 1000 * 3600 * 24; // 1 den zpět\r\n\r\n\r\n natahniVsechnyKrivky(xMin, xMax).then(() => {\r\n flagloaded.value = true;\r\n });\r\n }\r\n\r\n\r\n\r\n // volá se, když Graf dělá PANE nebo ZOOM\r\n function mojeOnPanZoom(casStartPozadavek: number, casStopPozadavek: number) {\r\n\r\n // hook ty number vrací jako desetinná čísla, to pak není long čas a padá to při volání fetch\r\n casStartPozadavek = Math.trunc(casStartPozadavek);\r\n casStopPozadavek = Math.trunc(casStopPozadavek);\r\n\r\n if (gbProbihaNacitani) {\r\n gxMinNactenoPozadavekMs = casStartPozadavek;\r\n gxMaxNactenoPozadavekMs = casStopPozadavek;\r\n console.log(\"ULOZEN Pozadavek na dalsi nacteni \" + gxMinNactenoPozadavekMs + \" \" + gxMaxNactenoPozadavekMs);\r\n }\r\n else {\r\n gbProbihaNacitani = true;\r\n natahniVsechnyKrivky(casStartPozadavek, casStopPozadavek).then(() => {\r\n\r\n // načtení skončilo\r\n gbProbihaNacitani = false;\r\n\r\n // během načítání vznikly další posuny a je potřeba znovu načíst\r\n if (gxMinNactenoPozadavekMs != 0 || gxMaxNactenoPozadavekMs != 0) {\r\n\r\n var xMin = gxMinNactenoPozadavekMs;\r\n var xMax = gxMaxNactenoPozadavekMs;\r\n gxMinNactenoPozadavekMs = 0;\r\n gxMaxNactenoPozadavekMs = 0;\r\n console.log(\"Pozadavek na dalsi nacteni behem nacitani \" + \" \" + xMin + \" \" + xMax);\r\n\r\n mojeOnPanZoom(xMin, xMax);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n // lineRef.value.chartInstance.resetZoom();\r\n // lineRef.value.chartInstance.update('none');\r\n\r\n // zoom out\r\n // 0.9 přidá 1/10 10%\r\n // 0.5 přidá 1/2 50%\r\n // 0.25 přidá 2/3\r\n // 0.1 100%, neboli 2x se to změnší, ale míň nejde, asi nějaký limit\r\n function zoomOut() {\r\n lineRef.value.chartInstance.zoom(0.1);\r\n }\r\n\r\n // zoom in\r\n // Zvětšení N krát zoom = 1 + (N-1)/N 2x 1.5, 4x 1.75 8x 1+7/8\r\n //\r\n function zoomIn() {\r\n lineRef.value.chartInstance.zoom(1.1);\r\n }\r\n\r\n function zoomReset() {\r\n pocatecniNacteni();\r\n lineRef.value.chartInstance.resetZoom();\r\n }\r\n\r\n\r\n \r\n\r\n\r\n /*\r\n function zoomDen( chart : typeof LineChart) {\r\n\r\n var dateNow = new Date();\r\n var dateMinus = new Date(dateNow.getTime() - 1 * 1000 * 3600 * 24); // 3 dny zpět\r\n //lineRef.value.chartInstance.zoomScale('x', { min: dateMinus.getTime(), max: dateNow.getTime() }, 'default');\r\n chart.zoomScale('x', { min: dateMinus.getTime(), max: dateNow.getTime() }, 'default');\r\n\r\n\r\n //// nazoomovat na poslední den, když jsou načteny 3 dny\r\n //var kolikNacteno = 3;\r\n\r\n //// posunout vlevo o velikost 1/3\r\n //var a = lineRef.value.chartInstance.chartArea;\r\n //console.log(\"area: \" + a.left + \" \" + a.right);\r\n //var posun = (a.right - a.left) / kolikNacteno;\r\n //lineRef.value.chartInstance.pan(-posun);\r\n\r\n //// zommovat 3x 1 + (N-1)/N\r\n //lineRef.value.chartInstance.zoom(1 + (kolikNacteno - 1) / kolikNacteno);\r\n\r\n }\r\n */\r\n\r\n\r\n function MujTimeFormat(t: number): string {\r\n var dt = new Date(t);\r\n\r\n return dt.getDate().toString().padStart(2, \"0\") + \".\" +\r\n (dt.getMonth() + 1).toString().padStart(2, \"0\") + \".\" +\r\n dt.getFullYear() + \" \" +\r\n dt.getHours().toString().padStart(2, \"0\") + \":\" +\r\n dt.getMinutes().toString().padStart(2, \"0\") + \":\" +\r\n dt.getSeconds().toString().padStart(2, \"0\");\r\n }\r\n\r\n\r\n\r\n return {\r\n krivkyData,\r\n lineRef,\r\n options,\r\n flagloaded,\r\n zoomOut,\r\n zoomIn,\r\n zoomReset,\r\n //handleChartRender,\r\n //arrAttribKrivek,\r\n arrTable,\r\n MujTimeFormat,\r\n bGrafVidet,\r\n msg,\r\n };\r\n },\r\n });\r\n\r\n\r\n /* zajímavé funkce sleep\r\n const DEF_DELAY = 1000;\r\n function sleep(ms : number) {\r\n return new Promise(resolve => setTimeout(resolve, ms || DEF_DELAY));\r\n }\r\n //sleep(10).then(() => {\r\n // zoomDen();\r\n //});\r\n */\r\n\r\n\r\n","import { render } from \"./CoralGraph.vue?vue&type=template&id=b07ea3e2&ts=true\"\nimport script from \"./CoralGraph.vue?vue&type=script&lang=ts\"\nexport * from \"./CoralGraph.vue?vue&type=script&lang=ts\"\n\nimport \"./CoralGraph.vue?vue&type=style&index=0&id=b07ea3e2&lang=css\"\n\nimport exportComponent from \"C:\\\\TirsNet\\\\WebProjekty\\\\IotCoralPortal\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n import { defineComponent, ref, computed } from 'vue';\r\n import CoralGraph from './components/CoralGraph.vue';\r\n import { JednaStanice, SigAttrToShow } from './mojetypy';\r\n import { useMobileDetection } from \"vue3-mobile-detection\";\r\n \r\n\r\n\r\n type Konfigurace = {\r\n stanice: JednaStanice[]\r\n };\r\n\r\n type JmenoHodnota = {\r\n jmeno: string,\r\n hodnota: number | object[] | string | string[],\r\n jednotka: string\r\n };\r\n\r\n type DejSignalyResult = {\r\n err: string,\r\n arrSigs: JmenoHodnota[]\r\n };\r\n\r\n\r\n \r\n\r\n\r\n\r\n export default defineComponent({\r\n name: 'App',\r\n components: {\r\n CoralGraph\r\n },\r\n\r\n setup() {\r\n const msg = ref();\r\n\r\n var nacteneStanice = ref>([]);\r\n\r\n var vybranaStanice = ref();\r\n\r\n const arrAktualniHodnoty = ref();\r\n\r\n const bMobil = ref(false);\r\n const bVidetStanice = ref(false);\r\n const bVidetAktualni = ref(false);\r\n const bVidetGraf = ref(false);\r\n const bMobilPozadavekAktualni = ref(false);\r\n const bMobilPozadavekGraf = ref(false);\r\n\r\n // kdy má být vidět překrývající tlačítko Zpět\r\n const bVidetBtnZpet = computed(() => {\r\n return bVidetStanice.value == false; // && // takže když je něco maximalizováno\r\n //(bVidetGraf.value && !bVidetAktualni.value || !bVidetGraf.value && bVidetAktualni.value);\r\n });\r\n\r\n // aby se tam vešlo tlačítko \"Zpět\", když je zobrazeno jen Aktuální hodnoty\r\n // tak budou Aktuální posunuty trochu vpravo\r\n const computedStyle = computed(() => {\r\n if (bVidetAktualni.value && bVidetStanice.value == false)\r\n return 'margin:1px 60px;';\r\n else\r\n return 'margin:0px;';\r\n\r\n });\r\n\r\n\r\n ///////////////////////////////\r\n // vstupní URL parametry\r\n\r\n // defaultní cesta na konfigurační soubor, úřípadně může být přepsána ... ?config=./tnconfig.json\r\n var varConfigPathParam = \"./tnconfig.json\";\r\n\r\n //console.log('AGENT ' + navigator.userAgent);\r\n\r\n\r\n let urlParams = new URLSearchParams(window.location.search); // vezme to, co je za ? tedy \"?mobil=1\"\r\n\r\n console.log('****** URL PARS ' + urlParams);\r\n\r\n // na začátku jsou stanice vidět vždy\r\n bVidetStanice.value = true;\r\n\r\n // zjistit, jestli to je Mobil\r\n var vvv = useMobileDetection();\r\n if (vvv.isMobile()) {\r\n bMobil.value = true;\r\n bMobilPozadavekAktualni.value = true;\r\n }\r\n\r\n // mobile=1\r\n // URL parametr může \"přebít\" jestli to je mobil\r\n if (urlParams.has('mobile')) {\r\n console.log('MOBIL OK ');\r\n var params = urlParams.get('mobile'); // mobile=1\r\n if (params != null) {\r\n console.log('MOBIL PARAMS ' + params);\r\n bMobil.value = true;\r\n\r\n var iMobil = Number.parseInt(params);\r\n if (iMobil & 0x01)\r\n bMobilPozadavekAktualni.value = true;\r\n if (iMobil & 0x02)\r\n bMobilPozadavekGraf.value = true;\r\n }\r\n }\r\n\r\n // config=./tnconfig.json\r\n if (urlParams.has('config')) {\r\n var paramsConfig = urlParams.get('config'); \r\n if (paramsConfig != null) {\r\n varConfigPathParam = paramsConfig;\r\n console.log('config cesta: ' + paramsConfig);\r\n }\r\n }\r\n\r\n function fetchKonfiguraci(): void {\r\n try {\r\n //console.log(\"pred fetchKonfiguraci\");\r\n\r\n fetch(varConfigPathParam) // './tnconfig.json')\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n throw new Error('ERR fetchKonfiguraci response');\r\n })\r\n .then(json => {\r\n // console.log(\"fetch2 \" + JSON.stringify(json));\r\n var k: Konfigurace = json as Konfigurace;\r\n // msg.value = \" fetchKonfiguraci nacteno OK\";\r\n nacteneStanice.value = k.stanice;\r\n // console.log(\"fetchKonfiguraci hotovo, nacteneStanice \" + nacteneStanice.value);\r\n }).catch((error) => {\r\n msg.value = \"ERR tnconfig.json \" + error;\r\n });\r\n }\r\n catch (err) {\r\n if (err) {\r\n var txt = \"fetchKonfiguraci ERR \" + (err as Error).message;\r\n console.log(txt);\r\n msg.value = txt;\r\n }\r\n }\r\n }\r\n\r\n \r\n \r\n \r\n // pomocná funkce pro načtení Aktuálních hodnot z Tn\r\n async function rawFetch(signaly: string[]): Promise {\r\n const params = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ signaly: signaly })\r\n };\r\n\r\n var sUrlPath = (process.env.NODE_ENV == 'production') ? './Backend/' : './';\r\n\r\n let res = await fetch( sUrlPath + './values', params);\r\n return await res.json() as DejSignalyResult;\r\n }\r\n\r\n // načte Aktuální hodnoty z Tn a uloží do reaktivního arrAktualniHodnoty\r\n function fetchSignaly(signaly: SigAttrToShow[] | string[]): void {\r\n try {\r\n //console.log(\"**** pred FETCH Signaly\");\r\n var sigsToFetch: string[] = [];\r\n\r\n // je jméno tnSignálu zadáno přímo nebo je v { \"tnsig\": \"Sig2\", \"nickname\": ?\r\n signaly.forEach((sigObj) => {\r\n if (typeof sigObj == 'object') {\r\n //var a: SigAttrToShow = sigObj as SigAttrToShow;\r\n sigsToFetch.push( (sigObj as SigAttrToShow).tnsig);\r\n }\r\n else {\r\n sigsToFetch.push(sigObj); // je to string\r\n }\r\n });\r\n\r\n\r\n rawFetch(sigsToFetch).then(vys => {\r\n //console.log(\"**** za FETCH Signaly\");\r\n if (vys == null) {\r\n msg.value = \"ERR fetchSignaly NULL\";\r\n }\r\n else if (vys.err != null) {\r\n msg.value = \"ERR fetchSignaly \" + vys.err;\r\n }\r\n else {\r\n ///////////////////////////////////////////////\r\n // signály a jejich hodnoty nahrány OK\r\n\r\n // transformace jmen a hodnot, pokud to zadání vyžadovalo\r\n vys.arrSigs.forEach((sigVys, idx) => {\r\n\r\n // není zadán jen prostý string jména, ale { \"tnsig\": \"Sig2\", \"nickname\": \"mojenickname\", \"format\": \"hex\" },\r\n if (typeof signaly[idx] == 'object') {\r\n var s: SigAttrToShow = signaly[idx] as SigAttrToShow;\r\n\r\n // pokud bylo zadáno nickname, tak ho přepiš\r\n if (s.nickname != null)\r\n sigVys.jmeno = s.nickname;\r\n\r\n // pokud bylo zadáno \"format\": \"hex\", vytiskni hodnotu jako HEX, platí i pro pole\r\n if (s.format == 'hex') {\r\n\r\n // je to pole hodnot ( např. čísla Vodoměrů)\r\n if (Array.isArray(sigVys.hodnota)) {\r\n var vys: string[] = [];\r\n\r\n sigVys.hodnota.forEach(itm => {\r\n vys.push(Number(itm).toString(16).toUpperCase());\r\n });\r\n\r\n sigVys.hodnota = vys;\r\n }\r\n // jednoduchá hodnota\r\n else {\r\n sigVys.hodnota = Number(sigVys.hodnota).toString(16).toUpperCase();\r\n }\r\n }\r\n\r\n // počet desetinných míst je zadán\r\n if (!isNaN(s.decimalPlaces)) {\r\n if (typeof (sigVys.hodnota) == 'number') {\r\n sigVys.hodnota = sigVys.hodnota.toFixed(s.decimalPlaces);\r\n }\r\n }\r\n\r\n // jednotka\r\n sigVys.jednotka = s.jednotka;\r\n\r\n }\r\n });\r\n\r\n // celkový výsledek jmen a hodnot\r\n arrAktualniHodnoty.value = vys.arrSigs; \r\n }\r\n // signály a jejich hodnoty nahrány OK\r\n //////////////////////////////////////////////////////\r\n });\r\n }\r\n catch (err) {\r\n if (err) {\r\n var txt = \"fetchSignaly ERR \" + (err as Error).message;\r\n console.log(txt);\r\n msg.value = txt;\r\n }\r\n }\r\n }\r\n\r\n // vybrala se nějaká stanice\r\n function vyberStanice(stanice: JednaStanice) {\r\n //console.log(\"vybrana stanice \" + stanice.jmeno);\r\n\r\n // natáhnout data pro vybranou stanici\r\n if (stanice != null) {\r\n fetchSignaly(stanice.sig);\r\n\r\n // reaktivně se pošle do Graf\r\n vybranaStanice.value = stanice;\r\n }\r\n\r\n // Mobil a ťuklo se na výběr stanice\r\n if (bMobil.value) {\r\n bVidetStanice.value = false;\r\n bVidetAktualni.value = bMobilPozadavekAktualni.value;\r\n bVidetGraf.value = bMobilPozadavekGraf.value;\r\n }\r\n else {\r\n // pro ne-mobil\r\n bVidetStanice.value = true;\r\n bVidetAktualni.value = true;\r\n bVidetGraf.value = true;\r\n }\r\n }\r\n\r\n function btnZpet() {\r\n if (bMobil.value) {\r\n bVidetStanice.value = true;\r\n bVidetAktualni.value = false;\r\n bVidetGraf.value = false;\r\n }\r\n else {\r\n // pro ne-mobil\r\n bVidetStanice.value = true;\r\n bVidetAktualni.value = true;\r\n bVidetGraf.value = true;\r\n }\r\n }\r\n\r\n function btnPouzeGraf() {\r\n bVidetStanice.value = false;\r\n bVidetAktualni.value = false;\r\n }\r\n\r\n\r\n fetchKonfiguraci();\r\n\r\n \r\n\r\n return {\r\n msg,\r\n nacteneStanice,\r\n vyberStanice,\r\n vybranaStanice,\r\n arrAktualniHodnoty,\r\n btnPouzeGraf,\r\n btnZpet,\r\n bVidetStanice,\r\n bVidetAktualni,\r\n bVidetGraf,\r\n bVidetBtnZpet,\r\n bMobil,\r\n bMobilPozadavekAktualni,\r\n bMobilPozadavekGraf,\r\n computedStyle\r\n };\r\n }\r\n });\r\n\r\n \r\n\r\n","import { render } from \"./App.vue?vue&type=template&id=33b21812&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=33b21812&lang=css\"\n\nimport exportComponent from \"C:\\\\TirsNet\\\\WebProjekty\\\\IotCoralPortal\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\nimport App from './App.vue'\n\ncreateApp(App).mount('#app')\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](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[\"webpackChunkiotcoralportal\"] = self[\"webpackChunkiotcoralportal\"] || [];\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__(2750); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_hoisted_1","key","style","_hoisted_2","class","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_createElementVNode","for","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","render","_ctx","_cache","$props","$setup","$data","$options","_component_CoralGraph","_resolveComponent","_openBlock","_createElementBlock","_Fragment","_toDisplayString","msg","bVidetBtnZpet","onClick","args","btnZpet","apply","_createCommentVNode","bVidetStanice","_renderList","nacteneStanice","stanice","index","_withModifiers","$event","vyberStanice","tabindex","vybranaStanice","jmeno","bMobil","_withDirectives","type","id","bMobilPozadavekAktualni","_vModelCheckbox","bMobilPozadavekGraf","btnPouzeGraf","_vShow","bVidetAktualni","_normalizeStyle","computedStyle","arrAktualniHodnoty","row","Array","isArray","hodnota","item","jednotka","_createVNode","propVybranaStanice","bVidetGraf","_createTextVNode","_component_LineChart","bGrafVidet","flagloaded","_createBlock","ref","chartData","krivkyData","options","zoomIn","zoomOut","zoomReset","_a","graph","column","scope","signame","arrTable","MujTimeFormat","Chart","zoomPlugin","registerables","gxMinNactenoPozadavekMs","gxMaxNactenoPozadavekMs","gbProbihaNacitani","defineComponent","name","components","LineChart","props","Object","setup","lineRef","reactivePoleDataVsechKrivek","watch","console","log","pocatecniNacteni","computed","mapUnsorted","Map","value","dtStart","chartInstance","scales","min","dtEnd","max","pocetSignalu","length","forEach","krivka","idxSignalu","bod","x","has","set","get","y","keys","sortedMap","push","sort","klic","vys","responsive","maintainAspectRatio","animation","duration","time","displayFormats","month","day","hour","minute","second","tooltipFormat","display","title","text","ticks","major","enabled","color","context","tick","plugins","zoom","wheel","drag","modifierKey","pinch","mode","onZoom","mojeOnPanZoom","chart","pan","onPan","indexOsy","k","stejnaOsa","jmenoOsy","popis","grid","borderColor","suggestedMin","isNaN","undefined","suggestedMax","datasets","pocitadloOs","label","data","backgroundColor","pointBorderColor","pointRadius","fill","cubicInterpolationMode","tension","yAxisID","fetchJednuKrivku","sigName","fromTime","toTime","timeZaokrouhleni","Promise","sUrlPath","Math","trunc","sUrl","fetch","r","json","j","err_1","txt","message","natahniVsechnyKrivky","xMin","xMax","tmp","i","_b","_c","zaookrouhleniCasu","_e","_d","dateNow","Date","getTime","then","casStartPozadavek","casStopPozadavek","resetZoom","t","dt","getDate","toString","padStart","getMonth","getFullYear","getHours","getMinutes","getSeconds","__exports__","CoralGraph","varConfigPathParam","urlParams","URLSearchParams","window","location","search","vvv","useMobileDetection","isMobile","params","iMobil","Number","parseInt","paramsConfig","fetchKonfiguraci","response","ok","Error","catch","error","err","rawFetch","signaly","method","headers","body","JSON","stringify","res","fetchSignaly","sigsToFetch","sigObj","tnsig","arrSigs","sigVys","idx","s","nickname","format","itm","toUpperCase","decimalPlaces","toFixed","sig","createApp","App","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","g","globalThis","this","Function","e","obj","prop","prototype","hasOwnProperty","call","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}