@twab/visualization 0.9.9 → 0.9.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/asset-125afa63 +1 -0
- package/dist/visualization.js +1969 -101
- package/package.json +3 -4
- package/dist/assets/asset-54be6431 +0 -248
package/dist/visualization.js
CHANGED
|
@@ -150,38 +150,20 @@ var index = {
|
|
|
150
150
|
|
|
151
151
|
Vue.component(
|
|
152
152
|
'Visualization',
|
|
153
|
-
(await Promise.resolve().then(function () { return Visualization
|
|
153
|
+
(await Promise.resolve().then(function () { return Visualization; })).default
|
|
154
154
|
);
|
|
155
155
|
},
|
|
156
156
|
};
|
|
157
157
|
|
|
158
|
+
//
|
|
159
|
+
|
|
158
160
|
const Status = Object.freeze({
|
|
159
161
|
stopped: 0,
|
|
160
162
|
playing: 1,
|
|
161
163
|
paused: 2,
|
|
162
164
|
});
|
|
163
165
|
|
|
164
|
-
var
|
|
165
|
-
render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{
|
|
166
|
-
'frame-container': true,
|
|
167
|
-
'initial-time': _vm.initialTime,
|
|
168
|
-
'end-time': _vm.endTime,
|
|
169
|
-
'between-time': _vm.betweenTime,
|
|
170
|
-
active: _vm.active,
|
|
171
|
-
},style:({
|
|
172
|
-
maxHeight: (_vm.maxHeight + "px"),
|
|
173
|
-
width: '100%',
|
|
174
|
-
position: 'relative',
|
|
175
|
-
})},[(_vm.active && _vm.activeTab && _vm.parentComponent.settingsClosed)?_c('GlobalEvents',{on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==32){ return null; }$event.preventDefault();return _vm.playOrPause.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==27){ return null; }$event.preventDefault();return _vm.stop.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==79){ return null; }return _vm.toogleDetailFrame.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==13){ return null; }$event.preventDefault();return _vm.jumpFrameToStart.apply(null, arguments)}]}}):_vm._e(),_vm._v(" "),(_vm.showFrame)?_c('GlobalEvents',{on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==27){ return null; }$event.preventDefault();return _vm.toogleDetailFrame.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==13){ return null; }$event.preventDefault();return _vm.toogleDetailFrame.apply(null, arguments)}]}}):_vm._e(),_vm._v(" "),_c('vue-loading',{staticStyle:{"z-index":"0"},attrs:{"active":((!_vm.frame.image || !_vm.frame.time) && _vm.frame.title !== -1) ||
|
|
176
|
-
_vm.loading ||
|
|
177
|
-
_vm.videoIsLoading,"spinner":"ring","color":"#1565c0","background-color":"#ededed","text":_vm.videoIsLoading ? _vm.$('infoBar.createVideo') : ''}}),_vm._v(" "),_c('div',{staticStyle:{"background-color":"black"}},[(!_vm.loading)?_c('div',{class:{
|
|
178
|
-
'frame-content': _vm.frame.title === -1 || _vm.videoStatus !== _vm.Status.stopped,
|
|
179
|
-
},style:({
|
|
180
|
-
maxHeight: (_vm.height + "px"),
|
|
181
|
-
maxWidth: (_vm.width + "px"),
|
|
182
|
-
color: 'white',
|
|
183
|
-
}),on:{"dblclick":_vm.playOrPause}},[(_vm.frame.image && _vm.videoStatus === _vm.Status.stopped)?_c('div',{class:{ 'dummy-frame': _vm.frame.title === -1 },staticStyle:{"width":"100%","height":"100%"},domProps:{"innerHTML":_vm._s(_vm.frame.image)}}):_vm._e(),_vm._v(" "),(_vm.videoStatus !== _vm.Status.stopped && !_vm.videoIsLoading)?_c('video',{ref:"videoPlayer",staticStyle:{"width":"100%","aspect-ratio":"11/9"},attrs:{"maxHeight":(_vm.height + "px"),"maxWidth":(_vm.width + "px"),"src":_vm.videoUrlString,"preload":"none","autoplay":""},on:{"timeupdate":_vm.updateTimeLabel,"ended":_vm.videoEnded,"click":_vm.playOrPause}}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"overlay"})]):_vm._e()]),_vm._v(" "),_c('dialog',{ref:"imageDetailsDialog",class:{ 'dummy-frame': _vm.frame.title === -1 },staticStyle:{"width":"100vh","border":"none","background":"none"},domProps:{"innerHTML":_vm._s(_vm.frame.image)}})],1)},
|
|
184
|
-
staticRenderFns: [],
|
|
166
|
+
var script$5 = {
|
|
185
167
|
components: {
|
|
186
168
|
VueLoading,
|
|
187
169
|
},
|
|
@@ -440,6 +422,327 @@ staticRenderFns: [],
|
|
|
440
422
|
},
|
|
441
423
|
};
|
|
442
424
|
|
|
425
|
+
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
|
426
|
+
if (typeof shadowMode !== 'boolean') {
|
|
427
|
+
createInjectorSSR = createInjector;
|
|
428
|
+
createInjector = shadowMode;
|
|
429
|
+
shadowMode = false;
|
|
430
|
+
}
|
|
431
|
+
// Vue.extend constructor export interop.
|
|
432
|
+
const options = typeof script === 'function' ? script.options : script;
|
|
433
|
+
// render functions
|
|
434
|
+
if (template && template.render) {
|
|
435
|
+
options.render = template.render;
|
|
436
|
+
options.staticRenderFns = template.staticRenderFns;
|
|
437
|
+
options._compiled = true;
|
|
438
|
+
// functional template
|
|
439
|
+
if (isFunctionalTemplate) {
|
|
440
|
+
options.functional = true;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
// scopedId
|
|
444
|
+
if (scopeId) {
|
|
445
|
+
options._scopeId = scopeId;
|
|
446
|
+
}
|
|
447
|
+
let hook;
|
|
448
|
+
if (moduleIdentifier) {
|
|
449
|
+
// server build
|
|
450
|
+
hook = function (context) {
|
|
451
|
+
// 2.3 injection
|
|
452
|
+
context =
|
|
453
|
+
context || // cached call
|
|
454
|
+
(this.$vnode && this.$vnode.ssrContext) || // stateful
|
|
455
|
+
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
|
|
456
|
+
// 2.2 with runInNewContext: true
|
|
457
|
+
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
|
458
|
+
context = __VUE_SSR_CONTEXT__;
|
|
459
|
+
}
|
|
460
|
+
// inject component styles
|
|
461
|
+
if (style) {
|
|
462
|
+
style.call(this, createInjectorSSR(context));
|
|
463
|
+
}
|
|
464
|
+
// register component module identifier for async chunk inference
|
|
465
|
+
if (context && context._registeredComponents) {
|
|
466
|
+
context._registeredComponents.add(moduleIdentifier);
|
|
467
|
+
}
|
|
468
|
+
};
|
|
469
|
+
// used by ssr in case component is cached and beforeCreate
|
|
470
|
+
// never gets called
|
|
471
|
+
options._ssrRegister = hook;
|
|
472
|
+
}
|
|
473
|
+
else if (style) {
|
|
474
|
+
hook = shadowMode
|
|
475
|
+
? function (context) {
|
|
476
|
+
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
|
477
|
+
}
|
|
478
|
+
: function (context) {
|
|
479
|
+
style.call(this, createInjector(context));
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
if (hook) {
|
|
483
|
+
if (options.functional) {
|
|
484
|
+
// register for functional component in vue file
|
|
485
|
+
const originalRender = options.render;
|
|
486
|
+
options.render = function renderWithStyleInjection(h, context) {
|
|
487
|
+
hook.call(context);
|
|
488
|
+
return originalRender(h, context);
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
// inject component registration as beforeCreate hook
|
|
493
|
+
const existing = options.beforeCreate;
|
|
494
|
+
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
return script;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
const isOldIE = typeof navigator !== 'undefined' &&
|
|
501
|
+
/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());
|
|
502
|
+
function createInjector(context) {
|
|
503
|
+
return (id, style) => addStyle(id, style);
|
|
504
|
+
}
|
|
505
|
+
let HEAD;
|
|
506
|
+
const styles = {};
|
|
507
|
+
function addStyle(id, css) {
|
|
508
|
+
const group = isOldIE ? css.media || 'default' : id;
|
|
509
|
+
const style = styles[group] || (styles[group] = { ids: new Set(), styles: [] });
|
|
510
|
+
if (!style.ids.has(id)) {
|
|
511
|
+
style.ids.add(id);
|
|
512
|
+
let code = css.source;
|
|
513
|
+
if (css.map) {
|
|
514
|
+
// https://developer.chrome.com/devtools/docs/javascript-debugging
|
|
515
|
+
// this makes source maps inside style tags work properly in Chrome
|
|
516
|
+
code += '\n/*# sourceURL=' + css.map.sources[0] + ' */';
|
|
517
|
+
// http://stackoverflow.com/a/26603875
|
|
518
|
+
code +=
|
|
519
|
+
'\n/*# sourceMappingURL=data:application/json;base64,' +
|
|
520
|
+
btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) +
|
|
521
|
+
' */';
|
|
522
|
+
}
|
|
523
|
+
if (!style.element) {
|
|
524
|
+
style.element = document.createElement('style');
|
|
525
|
+
style.element.type = 'text/css';
|
|
526
|
+
if (css.media)
|
|
527
|
+
style.element.setAttribute('media', css.media);
|
|
528
|
+
if (HEAD === undefined) {
|
|
529
|
+
HEAD = document.head || document.getElementsByTagName('head')[0];
|
|
530
|
+
}
|
|
531
|
+
HEAD.appendChild(style.element);
|
|
532
|
+
}
|
|
533
|
+
if ('styleSheet' in style.element) {
|
|
534
|
+
style.styles.push(code);
|
|
535
|
+
style.element.styleSheet.cssText = style.styles
|
|
536
|
+
.filter(Boolean)
|
|
537
|
+
.join('\n');
|
|
538
|
+
}
|
|
539
|
+
else {
|
|
540
|
+
const index = style.ids.size - 1;
|
|
541
|
+
const textNode = document.createTextNode(code);
|
|
542
|
+
const nodes = style.element.childNodes;
|
|
543
|
+
if (nodes[index])
|
|
544
|
+
style.element.removeChild(nodes[index]);
|
|
545
|
+
if (nodes.length)
|
|
546
|
+
style.element.insertBefore(textNode, nodes[index]);
|
|
547
|
+
else
|
|
548
|
+
style.element.appendChild(textNode);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
/* script */
|
|
554
|
+
const __vue_script__$5 = script$5;
|
|
555
|
+
|
|
556
|
+
/* template */
|
|
557
|
+
var __vue_render__$5 = function () {
|
|
558
|
+
var _vm = this;
|
|
559
|
+
var _h = _vm.$createElement;
|
|
560
|
+
var _c = _vm._self._c || _h;
|
|
561
|
+
return _c(
|
|
562
|
+
"div",
|
|
563
|
+
{
|
|
564
|
+
class: {
|
|
565
|
+
"frame-container": true,
|
|
566
|
+
"initial-time": _vm.initialTime,
|
|
567
|
+
"end-time": _vm.endTime,
|
|
568
|
+
"between-time": _vm.betweenTime,
|
|
569
|
+
active: _vm.active,
|
|
570
|
+
},
|
|
571
|
+
style: {
|
|
572
|
+
maxHeight: _vm.maxHeight + "px",
|
|
573
|
+
width: "100%",
|
|
574
|
+
position: "relative",
|
|
575
|
+
},
|
|
576
|
+
},
|
|
577
|
+
[
|
|
578
|
+
_vm.active && _vm.activeTab && _vm.parentComponent.settingsClosed
|
|
579
|
+
? _c("GlobalEvents", {
|
|
580
|
+
on: {
|
|
581
|
+
keydown: [
|
|
582
|
+
function ($event) {
|
|
583
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 32) {
|
|
584
|
+
return null
|
|
585
|
+
}
|
|
586
|
+
$event.preventDefault();
|
|
587
|
+
return _vm.playOrPause.apply(null, arguments)
|
|
588
|
+
},
|
|
589
|
+
function ($event) {
|
|
590
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 27) {
|
|
591
|
+
return null
|
|
592
|
+
}
|
|
593
|
+
$event.preventDefault();
|
|
594
|
+
return _vm.stop.apply(null, arguments)
|
|
595
|
+
},
|
|
596
|
+
function ($event) {
|
|
597
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 79) {
|
|
598
|
+
return null
|
|
599
|
+
}
|
|
600
|
+
return _vm.toogleDetailFrame.apply(null, arguments)
|
|
601
|
+
},
|
|
602
|
+
function ($event) {
|
|
603
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 13) {
|
|
604
|
+
return null
|
|
605
|
+
}
|
|
606
|
+
$event.preventDefault();
|
|
607
|
+
return _vm.jumpFrameToStart.apply(null, arguments)
|
|
608
|
+
},
|
|
609
|
+
],
|
|
610
|
+
},
|
|
611
|
+
})
|
|
612
|
+
: _vm._e(),
|
|
613
|
+
_vm._v(" "),
|
|
614
|
+
_vm.showFrame
|
|
615
|
+
? _c("GlobalEvents", {
|
|
616
|
+
on: {
|
|
617
|
+
keydown: [
|
|
618
|
+
function ($event) {
|
|
619
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 27) {
|
|
620
|
+
return null
|
|
621
|
+
}
|
|
622
|
+
$event.preventDefault();
|
|
623
|
+
return _vm.toogleDetailFrame.apply(null, arguments)
|
|
624
|
+
},
|
|
625
|
+
function ($event) {
|
|
626
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 13) {
|
|
627
|
+
return null
|
|
628
|
+
}
|
|
629
|
+
$event.preventDefault();
|
|
630
|
+
return _vm.toogleDetailFrame.apply(null, arguments)
|
|
631
|
+
},
|
|
632
|
+
],
|
|
633
|
+
},
|
|
634
|
+
})
|
|
635
|
+
: _vm._e(),
|
|
636
|
+
_vm._v(" "),
|
|
637
|
+
_c("vue-loading", {
|
|
638
|
+
staticStyle: { "z-index": "0" },
|
|
639
|
+
attrs: {
|
|
640
|
+
active:
|
|
641
|
+
((!_vm.frame.image || !_vm.frame.time) && _vm.frame.title !== -1) ||
|
|
642
|
+
_vm.loading ||
|
|
643
|
+
_vm.videoIsLoading,
|
|
644
|
+
spinner: "ring",
|
|
645
|
+
color: "#1565c0",
|
|
646
|
+
"background-color": "#ededed",
|
|
647
|
+
text: _vm.videoIsLoading ? _vm.$("infoBar.createVideo") : "",
|
|
648
|
+
},
|
|
649
|
+
}),
|
|
650
|
+
_vm._v(" "),
|
|
651
|
+
_c("div", { staticStyle: { "background-color": "black" } }, [
|
|
652
|
+
!_vm.loading
|
|
653
|
+
? _c(
|
|
654
|
+
"div",
|
|
655
|
+
{
|
|
656
|
+
class: {
|
|
657
|
+
"frame-content":
|
|
658
|
+
_vm.frame.title === -1 ||
|
|
659
|
+
_vm.videoStatus !== _vm.Status.stopped,
|
|
660
|
+
},
|
|
661
|
+
style: {
|
|
662
|
+
maxHeight: _vm.height + "px",
|
|
663
|
+
maxWidth: _vm.width + "px",
|
|
664
|
+
color: "white",
|
|
665
|
+
},
|
|
666
|
+
on: { dblclick: _vm.playOrPause },
|
|
667
|
+
},
|
|
668
|
+
[
|
|
669
|
+
_vm.frame.image && _vm.videoStatus === _vm.Status.stopped
|
|
670
|
+
? _c("div", {
|
|
671
|
+
class: { "dummy-frame": _vm.frame.title === -1 },
|
|
672
|
+
staticStyle: { width: "100%", height: "100%" },
|
|
673
|
+
domProps: { innerHTML: _vm._s(_vm.frame.image) },
|
|
674
|
+
})
|
|
675
|
+
: _vm._e(),
|
|
676
|
+
_vm._v(" "),
|
|
677
|
+
_vm.videoStatus !== _vm.Status.stopped && !_vm.videoIsLoading
|
|
678
|
+
? _c("video", {
|
|
679
|
+
ref: "videoPlayer",
|
|
680
|
+
staticStyle: { width: "100%", "aspect-ratio": "11/9" },
|
|
681
|
+
attrs: {
|
|
682
|
+
maxHeight: _vm.height + "px",
|
|
683
|
+
maxWidth: _vm.width + "px",
|
|
684
|
+
src: _vm.videoUrlString,
|
|
685
|
+
preload: "none",
|
|
686
|
+
autoplay: "",
|
|
687
|
+
},
|
|
688
|
+
on: {
|
|
689
|
+
timeupdate: _vm.updateTimeLabel,
|
|
690
|
+
ended: _vm.videoEnded,
|
|
691
|
+
click: _vm.playOrPause,
|
|
692
|
+
},
|
|
693
|
+
})
|
|
694
|
+
: _vm._e(),
|
|
695
|
+
_vm._v(" "),
|
|
696
|
+
_c("div", { staticClass: "overlay" }),
|
|
697
|
+
]
|
|
698
|
+
)
|
|
699
|
+
: _vm._e(),
|
|
700
|
+
]),
|
|
701
|
+
_vm._v(" "),
|
|
702
|
+
_c("dialog", {
|
|
703
|
+
ref: "imageDetailsDialog",
|
|
704
|
+
class: { "dummy-frame": _vm.frame.title === -1 },
|
|
705
|
+
staticStyle: { width: "100vh", border: "none", background: "none" },
|
|
706
|
+
domProps: { innerHTML: _vm._s(_vm.frame.image) },
|
|
707
|
+
}),
|
|
708
|
+
],
|
|
709
|
+
1
|
|
710
|
+
)
|
|
711
|
+
};
|
|
712
|
+
var __vue_staticRenderFns__$5 = [];
|
|
713
|
+
__vue_render__$5._withStripped = true;
|
|
714
|
+
|
|
715
|
+
/* style */
|
|
716
|
+
const __vue_inject_styles__$5 = function (inject) {
|
|
717
|
+
if (!inject) return
|
|
718
|
+
inject("data-v-b21779f2_0", { source: "\n.frame-container > div[data-v-b21779f2] {\r\n max-height: 100%;\n}\n.frame-container[data-v-b21779f2] {\r\n background-color: black;\r\n display: flex;\r\n justify-content: center;\n}\n.frame-content[data-v-b21779f2],\r\n.dummy-frame[data-v-b21779f2] {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\n}\n.frame-content video[data-v-b21779f2] {\r\n flex-grow: 1;\r\n object-fit: fill;\r\n z-index: 0;\n}\n.overlay[data-v-b21779f2] {\r\n width: 100%;\r\n height: 100%;\r\n z-index: 5;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n border: 4px solid transparent;\n}\n.active .overlay[data-v-b21779f2] {\r\n border-color: var(--visualization-primary);\n}\n.between-time .overlay[data-v-b21779f2] {\r\n border-top-color: var(--visualization-secondary);\n}\n.between-time.active .overlay[data-v-b21779f2] {\r\n border-color: var(--visualization-secondary);\n}\n.initial-time .overlay[data-v-b21779f2] {\r\n border-top-color: var(--visualization-start);\n}\n.initial-time.active .overlay[data-v-b21779f2] {\r\n border-color: var(--visualization-start);\n}\n.end-time .overlay[data-v-b21779f2] {\r\n border-top-color: var(--visualization-end);\n}\n.end-time.active .overlay[data-v-b21779f2] {\r\n border-color: var(--visualization-end);\n}\n.initial-time.end-time .overlay[data-v-b21779f2] {\r\n border-top-color: var(--visualization-start);\r\n border-bottom-color: var(--visualization-end);\n}\n.initial-time.end-time.active .overlay[data-v-b21779f2] {\r\n border-top-color: var(--visualization-start);\r\n border-left-color: var(--visualization-start);\r\n border-bottom-color: var(--visualization-end);\r\n border-right-color: var(--visualization-end);\n}\r\n", map: {"version":3,"sources":["C:\\workspace\\visualization\\src\\components\\Frame.vue"],"names":[],"mappings":";AAiWA;EACA,gBAAA;AACA;AACA;EACA,uBAAA;EACA,aAAA;EACA,uBAAA;AACA;AACA;;EAEA,aAAA;EACA,mBAAA;EACA,uBAAA;AACA;AACA;EACA,YAAA;EACA,gBAAA;EACA,UAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,6BAAA;AACA;AACA;EACA,0CAAA;AACA;AACA;EACA,gDAAA;AACA;AACA;EACA,4CAAA;AACA;AACA;EACA,4CAAA;AACA;AACA;EACA,wCAAA;AACA;AACA;EACA,0CAAA;AACA;AACA;EACA,sCAAA;AACA;AACA;EACA,4CAAA;EACA,6CAAA;AACA;AACA;EACA,4CAAA;EACA,6CAAA;EACA,6CAAA;EACA,4CAAA;AACA","file":"Frame.vue","sourcesContent":["<template>\r\n <div\r\n :style=\"{\r\n maxHeight: `${maxHeight}px`,\r\n width: '100%',\r\n position: 'relative',\r\n }\"\r\n :class=\"{\r\n 'frame-container': true,\r\n 'initial-time': initialTime,\r\n 'end-time': endTime,\r\n 'between-time': betweenTime,\r\n active: active,\r\n }\"\r\n >\r\n <GlobalEvents\r\n v-if=\"active && activeTab && parentComponent.settingsClosed\"\r\n @keydown.32.prevent=\"playOrPause\"\r\n @keydown.27.prevent=\"stop\"\r\n @keydown.79=\"toogleDetailFrame\"\r\n @keydown.13.prevent=\"jumpFrameToStart\"\r\n />\r\n <GlobalEvents\r\n v-if=\"showFrame\"\r\n @keydown.27.prevent=\"toogleDetailFrame\"\r\n @keydown.13.prevent=\"toogleDetailFrame\"\r\n />\r\n\r\n <vue-loading\r\n :active=\"\r\n ((!frame.image || !frame.time) && frame.title !== -1) ||\r\n loading ||\r\n videoIsLoading\r\n \"\r\n spinner=\"ring\"\r\n color=\"#1565c0\"\r\n background-color=\"#ededed\"\r\n style=\"z-index: 0\"\r\n :text=\"videoIsLoading ? $('infoBar.createVideo') : ''\"\r\n />\r\n <div style=\"background-color: black\">\r\n <div\r\n v-if=\"!loading\"\r\n :class=\"{\r\n 'frame-content': frame.title === -1 || videoStatus !== Status.stopped,\r\n }\"\r\n :style=\"{\r\n maxHeight: `${height}px`,\r\n maxWidth: `${width}px`,\r\n color: 'white',\r\n }\"\r\n @dblclick=\"playOrPause\"\r\n >\r\n <div\r\n v-if=\"frame.image && videoStatus === Status.stopped\"\r\n :class=\"{ 'dummy-frame': frame.title === -1 }\"\r\n v-html=\"frame.image\"\r\n style=\"width: 100%; height: 100%\"\r\n />\r\n <video\r\n v-if=\"videoStatus !== Status.stopped && !videoIsLoading\"\r\n ref=\"videoPlayer\"\r\n :maxHeight=\"`${height}px`\"\r\n :maxWidth=\"`${width}px`\"\r\n :src=\"videoUrlString\"\r\n preload=\"none\"\r\n autoplay\r\n @timeupdate=\"updateTimeLabel\"\r\n @ended=\"videoEnded\"\r\n @click=\"playOrPause\"\r\n style=\"width: 100%; aspect-ratio: 11/9\"\r\n ></video>\r\n <div class=\"overlay\"></div>\r\n </div>\r\n </div>\r\n\r\n <dialog\r\n ref=\"imageDetailsDialog\"\r\n :class=\"{ 'dummy-frame': frame.title === -1 }\"\r\n v-html=\"frame.image\"\r\n style=\"width: 100vh; border: none; background: none\"\r\n />\r\n </div>\r\n</template>\r\n<script>\r\nimport VueLoading from 'vue-loading-twa'\r\n\r\nconst Status = Object.freeze({\r\n stopped: 0,\r\n playing: 1,\r\n paused: 2,\r\n})\r\n\r\nexport default {\r\n components: {\r\n VueLoading,\r\n },\r\n name: 'frame-component',\r\n props: {\r\n frame: {\r\n type: [Object, Number],\r\n required: true,\r\n },\r\n index: {\r\n type: Number,\r\n required: true,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n gridSettings: {\r\n type: Object,\r\n required: true,\r\n },\r\n initialTime: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n endTime: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n betweenTime: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n active: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n activeTab: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n videoUrl: {\r\n type: [String, Promise],\r\n required: true,\r\n },\r\n playbackRate: {\r\n type: Number,\r\n default: 1,\r\n },\r\n },\r\n data() {\r\n return {\r\n Status,\r\n aspectRatio: 11 / 9,\r\n width: 0,\r\n height: 0,\r\n maxWidth: 0,\r\n fullMaxWidth: 0,\r\n maxHeight: 0,\r\n showFrame: false,\r\n videoStatus: Status.stopped,\r\n videoStartTime: null,\r\n videoCurrentTime: null,\r\n videoUrlString: '',\r\n parentComponent: null,\r\n videoIsLoading: false,\r\n currentBlock: null,\r\n lastTimeEnterPressed: null,\r\n }\r\n },\r\n created() {\r\n this.parentComponent = this.$parent\r\n },\r\n watch: {\r\n playbackRate(val) {\r\n if (\r\n this.videoStatus === Status.playing ||\r\n this.videoStatus === Status.paused\r\n ) {\r\n this.$refs.videoPlayer.playbackRate = val\r\n }\r\n },\r\n },\r\n methods: {\r\n jumpFrameToStart() {\r\n if (this.active) {\r\n const currentTime = new Date().getTime()\r\n\r\n if (currentTime - this.lastTimeEnterPressed <= 500) {\r\n this.parentComponent.changeHour(\r\n this.parentComponent.convertToAudienceTime(this.frame.time)\r\n )\r\n }\r\n\r\n this.lastTimeEnterPressed = currentTime\r\n }\r\n },\r\n changeSettings(value) {\r\n this.videoCurrentTime = value\r\n },\r\n toogleDetailFrame() {\r\n if (this.showFrame) {\r\n this.$refs.imageDetailsDialog.close()\r\n } else {\r\n this.$refs.imageDetailsDialog.showModal()\r\n }\r\n this.showFrame = !this.showFrame\r\n },\r\n getMaxWidth() {\r\n const commandBarSize = document.getElementById('command-bar')\r\n\r\n return commandBarSize?.clientWidth\r\n },\r\n resize(height) {\r\n const commandBarSize = document.getElementById('command-bar')\r\n const infoBarSize = document.getElementById('info-bar')\r\n this.fullMaxWidth = commandBarSize?.clientWidth\r\n this.maxWidth =\r\n (commandBarSize?.clientWidth - this.gridSettings.framesPerRow * 10) /\r\n this.gridSettings.framesPerRow\r\n\r\n const heightAvailable =\r\n height -\r\n commandBarSize?.offsetHeight -\r\n infoBarSize?.offsetHeight -\r\n 47 * this.gridSettings.numberOfRows\r\n\r\n this.maxHeight =\r\n this.gridSettings.numberOfRows === 2\r\n ? (heightAvailable - 12) / 2\r\n : heightAvailable\r\n this.maxHeight = this.maxHeight >= 75 ? this.maxHeight : 75\r\n\r\n if (this.maxWidth / this.aspectRatio > this.maxHeight) {\r\n this.height = this.maxHeight\r\n this.width = this.maxHeight * this.aspectRatio\r\n } else {\r\n this.width = this.maxWidth\r\n this.height = this.maxWidth / this.aspectRatio\r\n }\r\n\r\n this.maxHeight = this.height\r\n },\r\n async playOrPause() {\r\n switch (this.videoStatus) {\r\n case Status.stopped:\r\n this.videoIsLoading = true\r\n try {\r\n this.videoUrlString = await this.videoUrl\r\n const blockInfo =\r\n await this.parentComponent.fInterface?.getVideoStartTime(\r\n this.frame\r\n )\r\n\r\n this.videoStartTime = blockInfo.start\r\n this.videoUrlString =\r\n this.parentComponent.fInterface.getVideoRequestByUrl(\r\n blockInfo.url,\r\n this.frame.number\r\n )\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n this.videoIsLoading = false\r\n this.videoStatus = Status.playing\r\n this.$nextTick(() => {\r\n this.$refs.videoPlayer.onloadedmetadata = (e) => {\r\n this.$refs.videoPlayer.playbackRate = this.playbackRate\r\n // * atualizar slider\r\n this.$emit('updateSlider', this.videoStartTime, this.frame.time)\r\n //*\r\n this.$emit('startPlaying', this.frame, e.target.duration)\r\n this.$emit('playPauseStatus', true)\r\n }\r\n })\r\n break\r\n case Status.paused:\r\n this.$refs.videoPlayer.play()\r\n this.$refs.videoPlayer.playbackRate = this.playbackRate\r\n this.videoStatus = Status.playing\r\n this.$emit('playPauseStatus', true)\r\n break\r\n case Status.playing:\r\n this.$refs.videoPlayer.pause()\r\n\r\n this.videoStatus = Status.paused\r\n this.$emit('playPauseStatus', false)\r\n break\r\n }\r\n },\r\n stop(jump = true) {\r\n if (\r\n this.videoStatus === Status.playing ||\r\n this.videoStatus === Status.paused\r\n ) {\r\n if (jump) {\r\n this.parentComponent.changeHour(\r\n this.parentComponent.convertToAudienceTime(\r\n parseInt(this.videoCurrentTime)\r\n )\r\n )\r\n }\r\n this.videoStatus = Status.stopped\r\n this.videoUrlString = null\r\n this.videoCurrentTime = null\r\n this.videoStartTime = null\r\n }\r\n this.$emit('stopPlaying')\r\n },\r\n //eslint-disable-next-line\r\n videoJumpTo(time) {\r\n this.videoCurrentTime = this.videoStartTime + time\r\n this.$refs.videoPlayer.currentTime = time\r\n },\r\n async videoJumpToTimeStamp(time) {\r\n let frame = {\r\n time: time,\r\n }\r\n if (!time) return\r\n if (\r\n !(\r\n this.currentBlock &&\r\n time >= this.currentBlock.start &&\r\n time <= this.currentBlock.end\r\n )\r\n ) {\r\n this.currentBlock = await this.parentComponent.fInterface?.getBlockInfo(\r\n frame\r\n )\r\n this.videoStartTime = this.currentBlock.start\r\n this.videoUrlString =\r\n this.parentComponent.fInterface.getVideoUrlForTime(\r\n this.videoStartTime\r\n )\r\n }\r\n this.videoCurrentTime = time - this.videoStartTime\r\n this.$refs.videoPlayer.currentTime = this.videoCurrentTime\r\n },\r\n updateTimeLabel(e) {\r\n this.videoCurrentTime = this.videoStartTime + e.target.currentTime\r\n this.parentComponent.updateVideoTime(this.index, this.videoCurrentTime)\r\n this.parentComponent.updateVideoStatus(e.target.currentTime)\r\n },\r\n async videoEnded() {\r\n this.videoStartTime =\r\n await this.parentComponent.fInterface?.getNextVideoStartTime(\r\n this.frame.time\r\n )\r\n this.videoUrlString = this.parentComponent.fInterface.getVideoUrlForTime(\r\n this.videoStartTime\r\n )\r\n // * Ao acabar o vídeo tenho de mandar atualizar slider\r\n // * aqui o video current time tambem vai ser o videoStartTime\r\n this.$emit('updateSlider', this.videoStartTime, this.videoStartTime)\r\n },\r\n },\r\n}\r\n</script>\r\n<style scoped>\r\n.frame-container > div {\r\n max-height: 100%;\r\n}\r\n.frame-container {\r\n background-color: black;\r\n display: flex;\r\n justify-content: center;\r\n}\r\n.frame-content,\r\n.dummy-frame {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n.frame-content video {\r\n flex-grow: 1;\r\n object-fit: fill;\r\n z-index: 0;\r\n}\r\n.overlay {\r\n width: 100%;\r\n height: 100%;\r\n z-index: 5;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n border: 4px solid transparent;\r\n}\r\n.active .overlay {\r\n border-color: var(--visualization-primary);\r\n}\r\n.between-time .overlay {\r\n border-top-color: var(--visualization-secondary);\r\n}\r\n.between-time.active .overlay {\r\n border-color: var(--visualization-secondary);\r\n}\r\n.initial-time .overlay {\r\n border-top-color: var(--visualization-start);\r\n}\r\n.initial-time.active .overlay {\r\n border-color: var(--visualization-start);\r\n}\r\n.end-time .overlay {\r\n border-top-color: var(--visualization-end);\r\n}\r\n.end-time.active .overlay {\r\n border-color: var(--visualization-end);\r\n}\r\n.initial-time.end-time .overlay {\r\n border-top-color: var(--visualization-start);\r\n border-bottom-color: var(--visualization-end);\r\n}\r\n.initial-time.end-time.active .overlay {\r\n border-top-color: var(--visualization-start);\r\n border-left-color: var(--visualization-start);\r\n border-bottom-color: var(--visualization-end);\r\n border-right-color: var(--visualization-end);\r\n}\r\n</style>\r\n"]}, media: undefined });
|
|
719
|
+
|
|
720
|
+
};
|
|
721
|
+
/* scoped */
|
|
722
|
+
const __vue_scope_id__$5 = "data-v-b21779f2";
|
|
723
|
+
/* module identifier */
|
|
724
|
+
const __vue_module_identifier__$5 = undefined;
|
|
725
|
+
/* functional template */
|
|
726
|
+
const __vue_is_functional_template__$5 = false;
|
|
727
|
+
/* style inject SSR */
|
|
728
|
+
|
|
729
|
+
/* style inject shadow dom */
|
|
730
|
+
|
|
731
|
+
|
|
732
|
+
|
|
733
|
+
const __vue_component__$5 = /*#__PURE__*/normalizeComponent(
|
|
734
|
+
{ render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
|
|
735
|
+
__vue_inject_styles__$5,
|
|
736
|
+
__vue_script__$5,
|
|
737
|
+
__vue_scope_id__$5,
|
|
738
|
+
__vue_is_functional_template__$5,
|
|
739
|
+
__vue_module_identifier__$5,
|
|
740
|
+
false,
|
|
741
|
+
createInjector,
|
|
742
|
+
undefined,
|
|
743
|
+
undefined
|
|
744
|
+
);
|
|
745
|
+
|
|
443
746
|
const Api = axios.create({
|
|
444
747
|
//baseURL: process.env.VUE_APP_FRAMES_SERVER,
|
|
445
748
|
baseURL: sessionStorage.getItem('base_url'),
|
|
@@ -1161,19 +1464,53 @@ FramesInterface.prototype.getVideoRequestByUrl = function (url_path, t) {
|
|
|
1161
1464
|
return url + 'StreamFromVideo?url=' + url_path + params + '#t=' + t
|
|
1162
1465
|
};
|
|
1163
1466
|
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1467
|
+
//
|
|
1468
|
+
//
|
|
1469
|
+
//
|
|
1470
|
+
//
|
|
1471
|
+
//
|
|
1472
|
+
//
|
|
1473
|
+
//
|
|
1474
|
+
//
|
|
1475
|
+
//
|
|
1476
|
+
//
|
|
1477
|
+
//
|
|
1478
|
+
//
|
|
1479
|
+
//
|
|
1480
|
+
//
|
|
1481
|
+
//
|
|
1482
|
+
//
|
|
1483
|
+
//
|
|
1484
|
+
//
|
|
1485
|
+
//
|
|
1486
|
+
//
|
|
1487
|
+
//
|
|
1488
|
+
//
|
|
1489
|
+
//
|
|
1490
|
+
//
|
|
1491
|
+
//
|
|
1492
|
+
//
|
|
1493
|
+
//
|
|
1494
|
+
//
|
|
1495
|
+
//
|
|
1496
|
+
//
|
|
1497
|
+
//
|
|
1498
|
+
//
|
|
1499
|
+
//
|
|
1500
|
+
//
|
|
1501
|
+
//
|
|
1502
|
+
//
|
|
1503
|
+
//
|
|
1504
|
+
//
|
|
1505
|
+
//
|
|
1506
|
+
//
|
|
1507
|
+
//
|
|
1508
|
+
//
|
|
1509
|
+
//
|
|
1510
|
+
//
|
|
1511
|
+
//
|
|
1512
|
+
|
|
1513
|
+
var script$4 = {
|
|
1177
1514
|
props: {
|
|
1178
1515
|
videoPlaying: {
|
|
1179
1516
|
type: Boolean,
|
|
@@ -1321,30 +1658,208 @@ staticRenderFns: [],
|
|
|
1321
1658
|
},
|
|
1322
1659
|
};
|
|
1323
1660
|
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1661
|
+
/* script */
|
|
1662
|
+
const __vue_script__$4 = script$4;
|
|
1663
|
+
|
|
1664
|
+
/* template */
|
|
1665
|
+
var __vue_render__$4 = function () {
|
|
1666
|
+
var _vm = this;
|
|
1667
|
+
var _h = _vm.$createElement;
|
|
1668
|
+
var _c = _vm._self._c || _h;
|
|
1669
|
+
return _c(
|
|
1670
|
+
"div",
|
|
1671
|
+
{
|
|
1672
|
+
staticClass: "visualization-col pa-0",
|
|
1673
|
+
staticStyle: { "border-top-right-radius": "6px" },
|
|
1674
|
+
attrs: { id: "command-bar" },
|
|
1675
|
+
},
|
|
1676
|
+
[
|
|
1677
|
+
_vm.commandBarShow
|
|
1678
|
+
? _c(
|
|
1679
|
+
"div",
|
|
1680
|
+
{ staticClass: "visualization-row visualization-justify-center" },
|
|
1681
|
+
_vm._l(_vm.commandBarBtns, function (btn, index) {
|
|
1682
|
+
return _c("div", { key: "command-btn-" + index }, [
|
|
1683
|
+
!btn
|
|
1684
|
+
? _c("hr", {
|
|
1685
|
+
staticClass: "visualization-divider vertical",
|
|
1686
|
+
staticStyle: { margin: "0 4px" },
|
|
1687
|
+
})
|
|
1688
|
+
: _vm._e(),
|
|
1689
|
+
_vm._v(" "),
|
|
1690
|
+
btn && (btn.condition ? btn.condition() : true)
|
|
1691
|
+
? _c(
|
|
1692
|
+
"button",
|
|
1693
|
+
{
|
|
1694
|
+
directives: [
|
|
1695
|
+
{
|
|
1696
|
+
name: "tooltip",
|
|
1697
|
+
rawName: "v-tooltip",
|
|
1698
|
+
value:
|
|
1699
|
+
btn.text && typeof btn.text === "function"
|
|
1700
|
+
? btn.text()
|
|
1701
|
+
: btn.text,
|
|
1702
|
+
expression:
|
|
1703
|
+
"\n btn.text && typeof btn.text === 'function' ? btn.text() : btn.text\n ",
|
|
1704
|
+
},
|
|
1705
|
+
],
|
|
1706
|
+
staticClass: "command-bar-btn",
|
|
1707
|
+
style: {
|
|
1708
|
+
color:
|
|
1709
|
+
btn.color && typeof btn.color === "function"
|
|
1710
|
+
? btn.color()
|
|
1711
|
+
: "black",
|
|
1712
|
+
},
|
|
1713
|
+
on: { click: btn.fnc },
|
|
1714
|
+
},
|
|
1715
|
+
[
|
|
1716
|
+
_c("font-awesome-icon", {
|
|
1717
|
+
attrs: {
|
|
1718
|
+
id: btn.id,
|
|
1719
|
+
icon:
|
|
1720
|
+
"fa-solid " +
|
|
1721
|
+
(btn.icon && typeof btn.icon === "function"
|
|
1722
|
+
? btn.icon()
|
|
1723
|
+
: btn.icon),
|
|
1724
|
+
},
|
|
1725
|
+
}),
|
|
1726
|
+
],
|
|
1727
|
+
1
|
|
1728
|
+
)
|
|
1729
|
+
: _vm._e(),
|
|
1730
|
+
])
|
|
1731
|
+
}),
|
|
1732
|
+
0
|
|
1733
|
+
)
|
|
1734
|
+
: _vm._e(),
|
|
1735
|
+
_vm._v(" "),
|
|
1736
|
+
_c("hr", { staticClass: "visualization-divider" }),
|
|
1737
|
+
]
|
|
1738
|
+
)
|
|
1739
|
+
};
|
|
1740
|
+
var __vue_staticRenderFns__$4 = [];
|
|
1741
|
+
__vue_render__$4._withStripped = true;
|
|
1742
|
+
|
|
1743
|
+
/* style */
|
|
1744
|
+
const __vue_inject_styles__$4 = undefined;
|
|
1745
|
+
/* scoped */
|
|
1746
|
+
const __vue_scope_id__$4 = undefined;
|
|
1747
|
+
/* module identifier */
|
|
1748
|
+
const __vue_module_identifier__$4 = undefined;
|
|
1749
|
+
/* functional template */
|
|
1750
|
+
const __vue_is_functional_template__$4 = false;
|
|
1751
|
+
/* style inject */
|
|
1752
|
+
|
|
1753
|
+
/* style inject SSR */
|
|
1754
|
+
|
|
1755
|
+
/* style inject shadow dom */
|
|
1756
|
+
|
|
1757
|
+
|
|
1758
|
+
|
|
1759
|
+
const __vue_component__$4 = /*#__PURE__*/normalizeComponent(
|
|
1760
|
+
{ render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
|
|
1761
|
+
__vue_inject_styles__$4,
|
|
1762
|
+
__vue_script__$4,
|
|
1763
|
+
__vue_scope_id__$4,
|
|
1764
|
+
__vue_is_functional_template__$4,
|
|
1765
|
+
__vue_module_identifier__$4,
|
|
1766
|
+
false,
|
|
1767
|
+
undefined,
|
|
1768
|
+
undefined,
|
|
1769
|
+
undefined
|
|
1770
|
+
);
|
|
1771
|
+
|
|
1772
|
+
//
|
|
1773
|
+
//
|
|
1774
|
+
//
|
|
1775
|
+
//
|
|
1776
|
+
//
|
|
1777
|
+
//
|
|
1778
|
+
//
|
|
1779
|
+
//
|
|
1780
|
+
//
|
|
1781
|
+
//
|
|
1782
|
+
//
|
|
1783
|
+
//
|
|
1784
|
+
//
|
|
1785
|
+
//
|
|
1786
|
+
//
|
|
1787
|
+
//
|
|
1788
|
+
//
|
|
1789
|
+
//
|
|
1790
|
+
//
|
|
1791
|
+
//
|
|
1792
|
+
//
|
|
1793
|
+
//
|
|
1794
|
+
//
|
|
1795
|
+
//
|
|
1796
|
+
//
|
|
1797
|
+
//
|
|
1798
|
+
//
|
|
1799
|
+
//
|
|
1800
|
+
//
|
|
1801
|
+
//
|
|
1802
|
+
//
|
|
1803
|
+
//
|
|
1804
|
+
//
|
|
1805
|
+
//
|
|
1806
|
+
//
|
|
1807
|
+
//
|
|
1808
|
+
//
|
|
1809
|
+
//
|
|
1810
|
+
//
|
|
1811
|
+
//
|
|
1812
|
+
//
|
|
1813
|
+
//
|
|
1814
|
+
//
|
|
1815
|
+
//
|
|
1816
|
+
//
|
|
1817
|
+
//
|
|
1818
|
+
//
|
|
1819
|
+
//
|
|
1820
|
+
//
|
|
1821
|
+
//
|
|
1822
|
+
//
|
|
1823
|
+
//
|
|
1824
|
+
//
|
|
1825
|
+
//
|
|
1826
|
+
//
|
|
1827
|
+
//
|
|
1828
|
+
//
|
|
1829
|
+
//
|
|
1830
|
+
//
|
|
1831
|
+
//
|
|
1832
|
+
//
|
|
1833
|
+
//
|
|
1834
|
+
//
|
|
1835
|
+
//
|
|
1836
|
+
//
|
|
1837
|
+
//
|
|
1838
|
+
//
|
|
1839
|
+
//
|
|
1840
|
+
//
|
|
1841
|
+
//
|
|
1842
|
+
//
|
|
1843
|
+
//
|
|
1844
|
+
//
|
|
1845
|
+
//
|
|
1846
|
+
//
|
|
1847
|
+
//
|
|
1848
|
+
//
|
|
1849
|
+
//
|
|
1850
|
+
//
|
|
1851
|
+
//
|
|
1852
|
+
//
|
|
1853
|
+
//
|
|
1854
|
+
//
|
|
1855
|
+
//
|
|
1856
|
+
//
|
|
1857
|
+
//
|
|
1858
|
+
//
|
|
1859
|
+
//
|
|
1860
|
+
//
|
|
1861
|
+
|
|
1862
|
+
var script$3 = {
|
|
1348
1863
|
props: {
|
|
1349
1864
|
playbackRate: {
|
|
1350
1865
|
type: Number,
|
|
@@ -1438,9 +1953,260 @@ staticRenderFns: [],
|
|
|
1438
1953
|
},
|
|
1439
1954
|
};
|
|
1440
1955
|
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1956
|
+
/* script */
|
|
1957
|
+
const __vue_script__$3 = script$3;
|
|
1958
|
+
|
|
1959
|
+
/* template */
|
|
1960
|
+
var __vue_render__$3 = function () {
|
|
1961
|
+
var _vm = this;
|
|
1962
|
+
var _h = _vm.$createElement;
|
|
1963
|
+
var _c = _vm._self._c || _h;
|
|
1964
|
+
return _c(
|
|
1965
|
+
"div",
|
|
1966
|
+
{
|
|
1967
|
+
staticClass:
|
|
1968
|
+
"visualization-row visualization-justify-center visualization-align-center",
|
|
1969
|
+
style: !_vm.commandsShow
|
|
1970
|
+
? "border-top-right-radius: 6px; padding: 4px"
|
|
1971
|
+
: "padding: 4px",
|
|
1972
|
+
attrs: { id: "info-bar" },
|
|
1973
|
+
},
|
|
1974
|
+
[
|
|
1975
|
+
_c("span", [_vm._v(" " + _vm._s(_vm.playbackRate) + "x ")]),
|
|
1976
|
+
_vm._v(" "),
|
|
1977
|
+
_c("hr", {
|
|
1978
|
+
staticClass: "visualization-divider vertical",
|
|
1979
|
+
staticStyle: { margin: "0 8px" },
|
|
1980
|
+
}),
|
|
1981
|
+
_vm._v(" "),
|
|
1982
|
+
_c("span", [
|
|
1983
|
+
_vm._v(
|
|
1984
|
+
"\n " +
|
|
1985
|
+
_vm._s(
|
|
1986
|
+
_vm.$t("infoBar.selected", {
|
|
1987
|
+
seconds:
|
|
1988
|
+
_vm.hourEnd && _vm.hourIni
|
|
1989
|
+
? _vm.hourEnd - _vm.hourIni + 1
|
|
1990
|
+
: 0,
|
|
1991
|
+
hour_ini: _vm.convertToAudienceTime(_vm.hourIni),
|
|
1992
|
+
hour_end: _vm.convertToAudienceTime(_vm.hourEnd),
|
|
1993
|
+
})
|
|
1994
|
+
) +
|
|
1995
|
+
"\n "
|
|
1996
|
+
),
|
|
1997
|
+
]),
|
|
1998
|
+
_vm._v(" "),
|
|
1999
|
+
_c("hr", {
|
|
2000
|
+
staticClass: "visualization-divider vertical",
|
|
2001
|
+
staticStyle: { margin: "0 8px" },
|
|
2002
|
+
}),
|
|
2003
|
+
_vm._v(" "),
|
|
2004
|
+
_c("span", [
|
|
2005
|
+
_vm._v(
|
|
2006
|
+
"\n " +
|
|
2007
|
+
_vm._s(
|
|
2008
|
+
_vm.$t("infoBar.interval", {
|
|
2009
|
+
seconds: _vm.secondsPerFrame,
|
|
2010
|
+
})
|
|
2011
|
+
) +
|
|
2012
|
+
"\n "
|
|
2013
|
+
),
|
|
2014
|
+
]),
|
|
2015
|
+
_vm._v(" "),
|
|
2016
|
+
_c("hr", {
|
|
2017
|
+
staticClass: "visualization-divider vertical",
|
|
2018
|
+
staticStyle: { margin: "0 8px" },
|
|
2019
|
+
}),
|
|
2020
|
+
_vm._v(" "),
|
|
2021
|
+
_c("span", [
|
|
2022
|
+
_vm._v(
|
|
2023
|
+
"\n " +
|
|
2024
|
+
_vm._s(
|
|
2025
|
+
_vm.$t("infoBar.block", {
|
|
2026
|
+
time1: _vm.convertToAudienceTime(_vm.blockStartTime),
|
|
2027
|
+
time2: _vm.convertToAudienceTime(_vm.blockTotalTime),
|
|
2028
|
+
})
|
|
2029
|
+
) +
|
|
2030
|
+
"\n "
|
|
2031
|
+
),
|
|
2032
|
+
]),
|
|
2033
|
+
_vm._v(" "),
|
|
2034
|
+
_c("hr", {
|
|
2035
|
+
staticClass: "visualization-divider vertical",
|
|
2036
|
+
staticStyle: { margin: "0 8px" },
|
|
2037
|
+
}),
|
|
2038
|
+
_vm._v("\n " + _vm._s(_vm.framesPerRow * _vm.numberOfRows) + "\n "),
|
|
2039
|
+
_c("hr", {
|
|
2040
|
+
staticClass: "visualization-divider vertical",
|
|
2041
|
+
staticStyle: { margin: "0 8px" },
|
|
2042
|
+
}),
|
|
2043
|
+
_vm._v(
|
|
2044
|
+
"\n " + _vm._s(_vm.framesPerRow + "*" + _vm.numberOfRows) + "\n "
|
|
2045
|
+
),
|
|
2046
|
+
_vm.alternativeServer || !_vm.cache
|
|
2047
|
+
? _c("span", {
|
|
2048
|
+
staticClass: "visualization-divider vertical",
|
|
2049
|
+
staticStyle: { margin: "0 8px" },
|
|
2050
|
+
})
|
|
2051
|
+
: _vm._e(),
|
|
2052
|
+
_vm._v(" "),
|
|
2053
|
+
_vm.alternativeServer
|
|
2054
|
+
? _c(
|
|
2055
|
+
"span",
|
|
2056
|
+
[
|
|
2057
|
+
_c("v-icon", { attrs: { color: "error", small: "", left: "" } }, [
|
|
2058
|
+
_vm._v("fa-exclamation-triangle"),
|
|
2059
|
+
]),
|
|
2060
|
+
_vm._v(" "),
|
|
2061
|
+
_c("strong", [
|
|
2062
|
+
_vm._v(_vm._s(_vm.$t("infoBar.alternativeServer"))),
|
|
2063
|
+
]),
|
|
2064
|
+
],
|
|
2065
|
+
1
|
|
2066
|
+
)
|
|
2067
|
+
: _vm._e(),
|
|
2068
|
+
_vm._v(" "),
|
|
2069
|
+
_vm.alternativeServer && !_vm.cache
|
|
2070
|
+
? _c("span", {
|
|
2071
|
+
staticClass: "visualization-divider vertical",
|
|
2072
|
+
staticStyle: { margin: "0 8px" },
|
|
2073
|
+
})
|
|
2074
|
+
: _vm._e(),
|
|
2075
|
+
_vm._v(" "),
|
|
2076
|
+
!_vm.cache
|
|
2077
|
+
? _c(
|
|
2078
|
+
"span",
|
|
2079
|
+
[
|
|
2080
|
+
_c(
|
|
2081
|
+
"v-icon",
|
|
2082
|
+
{ attrs: { color: "warning", small: "", left: "" } },
|
|
2083
|
+
[_vm._v("fa-exclamation-circle")]
|
|
2084
|
+
),
|
|
2085
|
+
_vm._v(" "),
|
|
2086
|
+
_c("strong", [_vm._v(_vm._s(_vm.$t("infoBar.notUsingCache")))]),
|
|
2087
|
+
],
|
|
2088
|
+
1
|
|
2089
|
+
)
|
|
2090
|
+
: _vm._e(),
|
|
2091
|
+
_vm._v(" "),
|
|
2092
|
+
_c(
|
|
2093
|
+
"div",
|
|
2094
|
+
{ staticClass: "settings-container" },
|
|
2095
|
+
[
|
|
2096
|
+
_c("font-awesome-icon", {
|
|
2097
|
+
directives: [
|
|
2098
|
+
{
|
|
2099
|
+
name: "tooltip",
|
|
2100
|
+
rawName: "v-tooltip",
|
|
2101
|
+
value: _vm.alternativeServer
|
|
2102
|
+
? _vm.$t("infoBar.changeServer")
|
|
2103
|
+
: _vm.$t("infoBar.changeServer"),
|
|
2104
|
+
expression:
|
|
2105
|
+
"\n alternativeServer\n ? $t('infoBar.changeServer')\n : $t('infoBar.changeServer')\n ",
|
|
2106
|
+
},
|
|
2107
|
+
],
|
|
2108
|
+
attrs: { icon: "fa-solid fa-server" },
|
|
2109
|
+
on: {
|
|
2110
|
+
click: function ($event) {
|
|
2111
|
+
return _vm.$emit("change-server")
|
|
2112
|
+
},
|
|
2113
|
+
},
|
|
2114
|
+
}),
|
|
2115
|
+
_vm._v(" "),
|
|
2116
|
+
_c("font-awesome-icon", {
|
|
2117
|
+
directives: [
|
|
2118
|
+
{
|
|
2119
|
+
name: "tooltip",
|
|
2120
|
+
rawName: "v-tooltip",
|
|
2121
|
+
value: _vm.commandsShow
|
|
2122
|
+
? _vm.$t("moduletelentry.hideButtons")
|
|
2123
|
+
: _vm.$t("moduletelentry.showButtons"),
|
|
2124
|
+
expression:
|
|
2125
|
+
"\n commandsShow\n ? $t('moduletelentry.hideButtons')\n : $t('moduletelentry.showButtons')\n ",
|
|
2126
|
+
},
|
|
2127
|
+
],
|
|
2128
|
+
attrs: {
|
|
2129
|
+
icon: _vm.commandsShow
|
|
2130
|
+
? "fa-solid fa-eye"
|
|
2131
|
+
: "fa-solid fa-eye-slash",
|
|
2132
|
+
},
|
|
2133
|
+
on: {
|
|
2134
|
+
click: function ($event) {
|
|
2135
|
+
return _vm.$emit("toogle-commands-visibility")
|
|
2136
|
+
},
|
|
2137
|
+
},
|
|
2138
|
+
}),
|
|
2139
|
+
_vm._v(" "),
|
|
2140
|
+
_c("font-awesome-icon", {
|
|
2141
|
+
directives: [
|
|
2142
|
+
{
|
|
2143
|
+
name: "tooltip",
|
|
2144
|
+
rawName: "v-tooltip",
|
|
2145
|
+
value: _vm.cache
|
|
2146
|
+
? _vm.$t("infoBar.disableCache")
|
|
2147
|
+
: _vm.$t("infoBar.activateCache"),
|
|
2148
|
+
expression:
|
|
2149
|
+
"\n cache ? $t('infoBar.disableCache') : $t('infoBar.activateCache')\n ",
|
|
2150
|
+
},
|
|
2151
|
+
],
|
|
2152
|
+
attrs: { icon: _vm.cache ? "fa-solid fa-ban" : "fa-solid fa-sync" },
|
|
2153
|
+
on: {
|
|
2154
|
+
click: function ($event) {
|
|
2155
|
+
return _vm.$emit("toogle-cache")
|
|
2156
|
+
},
|
|
2157
|
+
},
|
|
2158
|
+
}),
|
|
2159
|
+
],
|
|
2160
|
+
1
|
|
2161
|
+
),
|
|
2162
|
+
]
|
|
2163
|
+
)
|
|
2164
|
+
};
|
|
2165
|
+
var __vue_staticRenderFns__$3 = [];
|
|
2166
|
+
__vue_render__$3._withStripped = true;
|
|
2167
|
+
|
|
2168
|
+
/* style */
|
|
2169
|
+
const __vue_inject_styles__$3 = undefined;
|
|
2170
|
+
/* scoped */
|
|
2171
|
+
const __vue_scope_id__$3 = undefined;
|
|
2172
|
+
/* module identifier */
|
|
2173
|
+
const __vue_module_identifier__$3 = undefined;
|
|
2174
|
+
/* functional template */
|
|
2175
|
+
const __vue_is_functional_template__$3 = false;
|
|
2176
|
+
/* style inject */
|
|
2177
|
+
|
|
2178
|
+
/* style inject SSR */
|
|
2179
|
+
|
|
2180
|
+
/* style inject shadow dom */
|
|
2181
|
+
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
const __vue_component__$3 = /*#__PURE__*/normalizeComponent(
|
|
2185
|
+
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
|
|
2186
|
+
__vue_inject_styles__$3,
|
|
2187
|
+
__vue_script__$3,
|
|
2188
|
+
__vue_scope_id__$3,
|
|
2189
|
+
__vue_is_functional_template__$3,
|
|
2190
|
+
__vue_module_identifier__$3,
|
|
2191
|
+
false,
|
|
2192
|
+
undefined,
|
|
2193
|
+
undefined,
|
|
2194
|
+
undefined
|
|
2195
|
+
);
|
|
2196
|
+
|
|
2197
|
+
//
|
|
2198
|
+
//
|
|
2199
|
+
//
|
|
2200
|
+
//
|
|
2201
|
+
//
|
|
2202
|
+
//
|
|
2203
|
+
//
|
|
2204
|
+
//
|
|
2205
|
+
//
|
|
2206
|
+
//
|
|
2207
|
+
//
|
|
2208
|
+
|
|
2209
|
+
var script$2 = {
|
|
1444
2210
|
props: {
|
|
1445
2211
|
videoTime: {
|
|
1446
2212
|
type: Number,
|
|
@@ -1558,6 +2324,72 @@ staticRenderFns: [],
|
|
|
1558
2324
|
},
|
|
1559
2325
|
};
|
|
1560
2326
|
|
|
2327
|
+
/* script */
|
|
2328
|
+
const __vue_script__$2 = script$2;
|
|
2329
|
+
|
|
2330
|
+
/* template */
|
|
2331
|
+
var __vue_render__$2 = function () {
|
|
2332
|
+
var _vm = this;
|
|
2333
|
+
var _h = _vm.$createElement;
|
|
2334
|
+
var _c = _vm._self._c || _h;
|
|
2335
|
+
return _c("div", [
|
|
2336
|
+
_c(
|
|
2337
|
+
"div",
|
|
2338
|
+
{
|
|
2339
|
+
staticClass: "visualization-row",
|
|
2340
|
+
attrs: { id: "progress" },
|
|
2341
|
+
on: { mousedown: _vm.progressMouseDown },
|
|
2342
|
+
},
|
|
2343
|
+
[
|
|
2344
|
+
_c("span", { staticClass: "progressLabel" }, [
|
|
2345
|
+
_vm._v(
|
|
2346
|
+
"\n " +
|
|
2347
|
+
_vm._s(_vm.convertToAudienceTime(_vm.videoTime)) +
|
|
2348
|
+
"\n "
|
|
2349
|
+
),
|
|
2350
|
+
]),
|
|
2351
|
+
_vm._v(" "),
|
|
2352
|
+
_c("span", { staticClass: "progressBar" }),
|
|
2353
|
+
]
|
|
2354
|
+
),
|
|
2355
|
+
_vm._v(" "),
|
|
2356
|
+
_c("hr", { staticClass: "visualization-divider" }),
|
|
2357
|
+
])
|
|
2358
|
+
};
|
|
2359
|
+
var __vue_staticRenderFns__$2 = [];
|
|
2360
|
+
__vue_render__$2._withStripped = true;
|
|
2361
|
+
|
|
2362
|
+
/* style */
|
|
2363
|
+
const __vue_inject_styles__$2 = function (inject) {
|
|
2364
|
+
if (!inject) return
|
|
2365
|
+
inject("data-v-17928743_0", { source: "\n#progress[data-v-17928743] {\r\n position: relative;\r\n cursor: pointer;\r\n width: 80%;\r\n height: 15px;\r\n background-color: #dfdfdf;\r\n margin: 5px auto;\r\n border-radius: 6px;\n}\n.progressBar[data-v-17928743] {\r\n display: absolute;\r\n height: 15px;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n background-color: var(--visualization-secondary);\r\n z-index: 2;\r\n width: 50%;\r\n border-radius: inherit;\n}\n.progressBar[data-v-17928743]::after {\r\n content: '';\r\n width: 17px;\r\n height: 17px;\r\n position: absolute;\r\n top: -1px;\r\n right: -8.5px;\r\n border-radius: 50%;\r\n background-color: var(--visualization-primary);\r\n z-index: 3;\n}\n.progressLabel[data-v-17928743] {\r\n z-index: 4;\r\n margin: 0 auto;\r\n font-weight: bold;\r\n line-height: 17px;\r\n font-size: 14px;\r\n text-shadow: -1px 0 #dfdfdf, 0 1px #dfdfdf, 1px 0 #dfdfdf, 0 -1px #dfdfdf;\r\n\r\n user-select: none;\n}\r\n", map: {"version":3,"sources":["C:\\workspace\\visualization\\src\\components\\VideoProgress.vue"],"names":[],"mappings":";AAmIA;EACA,kBAAA;EACA,eAAA;EACA,UAAA;EACA,YAAA;EACA,yBAAA;EACA,gBAAA;EACA,kBAAA;AACA;AACA;EACA,iBAAA;EACA,YAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,gDAAA;EACA,UAAA;EACA,UAAA;EACA,sBAAA;AACA;AACA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,SAAA;EACA,aAAA;EACA,kBAAA;EACA,8CAAA;EACA,UAAA;AACA;AACA;EACA,UAAA;EACA,cAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;EACA,yEAAA;;EAEA,iBAAA;AACA","file":"VideoProgress.vue","sourcesContent":["<template>\r\n <div>\r\n <div class=\"visualization-row\" id=\"progress\" @mousedown=\"progressMouseDown\">\r\n <span class=\"progressLabel\">\r\n {{ convertToAudienceTime(videoTime) }}\r\n </span>\r\n <span class=\"progressBar\"></span>\r\n </div>\r\n <hr class=\"visualization-divider\" />\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n props: {\r\n videoTime: {\r\n type: Number,\r\n required: true,\r\n },\r\n },\r\n methods: {\r\n progressMouseDown(e) {\r\n this.progressVideoDrag = true\r\n const array = this.$refs.frames.filter(\r\n (fc) => fc.videoStatus === fc.Status.playing\r\n )\r\n if (array.length === 1) {\r\n const frame = array[0]\r\n frame.playOrPause()\r\n }\r\n this.updateProgress(e)\r\n\r\n window.addEventListener('mouseup', this.progressMouseUp)\r\n window.addEventListener('mousemove', this.progressMouseMove)\r\n },\r\n progressMouseUp(e) {\r\n if (this.progressVideoDrag) {\r\n const array = this.$refs.frames.filter(\r\n (fc) => fc.videoStatus === fc.Status.paused\r\n )\r\n if (array.length === 1) {\r\n const frame = array[0]\r\n frame.playOrPause()\r\n }\r\n\r\n this.updateProgress(e)\r\n }\r\n\r\n window.removeEventListener('mouseup', this.progressMouseUp)\r\n window.removeEventListener('mousemove', this.progressMouseMove)\r\n this.progressVideoDrag = false\r\n },\r\n progressMouseMove(e) {\r\n if (this.progressVideoDrag) {\r\n this.updateProgress(e)\r\n }\r\n },\r\n updateProgress(e, time) {\r\n let percentage\r\n const element = document.getElementById('progress')\r\n const elementBar = element.getElementsByClassName('progressBar')[0]\r\n\r\n let frames = this.$refs.frames.filter(\r\n (fc) =>\r\n fc.videoStatus === fc.Status.playing ||\r\n fc.videoStatus === fc.Status.paused\r\n )\r\n let frame = frames.length === 1 ? frames[0] : null\r\n\r\n if (time && frame) {\r\n let timeInSeconds = frame.videoCurrentTime - this.sliderStartTime\r\n\r\n percentage = (timeInSeconds / this.videoSliderTotalDuration) * 100\r\n } else if (e) {\r\n const rect = element.getBoundingClientRect()\r\n const max = Math.round(rect.width)\r\n const pos = e.pageX - Math.round(rect.left)\r\n percentage = (pos / max) * 100 <= 100 ? (pos / max) * 100 : 100\r\n\r\n if (frame) {\r\n let targetInSeconds =\r\n this.videoSliderTotalDuration * (percentage / 100)\r\n let timeStampToJump = parseInt(this.sliderStartTime + targetInSeconds)\r\n frame.videoJumpToTimeStamp(timeStampToJump)\r\n }\r\n } else {\r\n percentage = 0\r\n }\r\n\r\n elementBar.style.width = `${percentage}%`\r\n },\r\n getDateParts(date = this.date) {\r\n const d = new Date(date)\r\n return {\r\n year: d.getFullYear(),\r\n month: d.getMonth(),\r\n day: d.getDate(),\r\n }\r\n },\r\n dateInUtc(miliSeconds) {\r\n var date = new Date(miliSeconds)\r\n var utc = new Date(\r\n date.getUTCFullYear(),\r\n date.getUTCMonth(),\r\n date.getUTCDate(),\r\n date.getUTCHours(),\r\n date.getUTCMinutes(),\r\n date.getUTCSeconds()\r\n )\r\n return utc\r\n },\r\n convertToAudienceTime(time, separator = ':') {\r\n const d = this.getDateParts()\r\n const limit = Date.UTC(d.year, d.month, d.day, 23, 59, 59) / 1000\r\n\r\n let hour = this.dateInUtc(time * 1000)\r\n .toTimeString()\r\n .split(' ')[0]\r\n .split(':')\r\n .map(Number)\r\n\r\n if (time > limit && time <= limit + this.startAudienceSeconds) {\r\n hour[0] = 24 + hour[0]\r\n }\r\n return hour\r\n .map((part) => (part > 9 ? part.toString() : '0' + part))\r\n .join(separator)\r\n },\r\n },\r\n}\r\n</script>\r\n<style scoped>\r\n#progress {\r\n position: relative;\r\n cursor: pointer;\r\n width: 80%;\r\n height: 15px;\r\n background-color: #dfdfdf;\r\n margin: 5px auto;\r\n border-radius: 6px;\r\n}\r\n.progressBar {\r\n display: absolute;\r\n height: 15px;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n background-color: var(--visualization-secondary);\r\n z-index: 2;\r\n width: 50%;\r\n border-radius: inherit;\r\n}\r\n.progressBar::after {\r\n content: '';\r\n width: 17px;\r\n height: 17px;\r\n position: absolute;\r\n top: -1px;\r\n right: -8.5px;\r\n border-radius: 50%;\r\n background-color: var(--visualization-primary);\r\n z-index: 3;\r\n}\r\n.progressLabel {\r\n z-index: 4;\r\n margin: 0 auto;\r\n font-weight: bold;\r\n line-height: 17px;\r\n font-size: 14px;\r\n text-shadow: -1px 0 #dfdfdf, 0 1px #dfdfdf, 1px 0 #dfdfdf, 0 -1px #dfdfdf;\r\n\r\n user-select: none;\r\n}\r\n</style>\r\n"]}, media: undefined });
|
|
2366
|
+
|
|
2367
|
+
};
|
|
2368
|
+
/* scoped */
|
|
2369
|
+
const __vue_scope_id__$2 = "data-v-17928743";
|
|
2370
|
+
/* module identifier */
|
|
2371
|
+
const __vue_module_identifier__$2 = undefined;
|
|
2372
|
+
/* functional template */
|
|
2373
|
+
const __vue_is_functional_template__$2 = false;
|
|
2374
|
+
/* style inject SSR */
|
|
2375
|
+
|
|
2376
|
+
/* style inject shadow dom */
|
|
2377
|
+
|
|
2378
|
+
|
|
2379
|
+
|
|
2380
|
+
const __vue_component__$2 = /*#__PURE__*/normalizeComponent(
|
|
2381
|
+
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
|
|
2382
|
+
__vue_inject_styles__$2,
|
|
2383
|
+
__vue_script__$2,
|
|
2384
|
+
__vue_scope_id__$2,
|
|
2385
|
+
__vue_is_functional_template__$2,
|
|
2386
|
+
__vue_module_identifier__$2,
|
|
2387
|
+
false,
|
|
2388
|
+
createInjector,
|
|
2389
|
+
undefined,
|
|
2390
|
+
undefined
|
|
2391
|
+
);
|
|
2392
|
+
|
|
1561
2393
|
var one_one = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 558.2 183.6\" xmlns:v=\"https://vecta.io/nano\"><path d=\"M558.2 0v90.1h-88.3c-1.9 0-1.9 0-1.9-1.9V1.8c0-1.8 0-1.8 1.8-1.8h88.4zm-468 183.5H0V95.1c0-1.7 0-1.7 1.7-1.7h86.7c1.8 0 1.8 0 1.8 1.8v88.3zm93.6 0H93.6V95.3c0-1.9 0-1.9 1.9-1.9H182c1.8 0 1.8 0 1.8 1.8v88.3zm280.9 0h-90.2V95.1c0-1.7 0-1.7 1.6-1.7H463c1.6 0 1.6 0 1.6 1.7v62.2l.1 26.2zm93.5-90v89c0 .9-.2 1.1-1.1 1.1H468V95.2c0-1.7 0-1.7 1.7-1.7h88.5zm-280.9 90h-90V94.9c0-.9.1-1.5 1.2-1.5H276c.9 0 1.2.3 1.2 1.2l.1 88.9zm93.6 0h-90V95.1c0-1.7 0-1.7 1.7-1.7h86.5c1.8 0 1.8 0 1.8 1.8v88.3z\" fill=\"#cbcbcb\"/><path d=\"M0 45.1V1.5C0 .3.3 0 1.4 0h87.3c1.2 0 1.5.3 1.4 1.5v87.1c0 1.2-.3 1.5-1.5 1.5H1.4c-1.3 0-1.5-.4-1.5-1.6L0 45.1z\" fill=\"#1565c0\"/><path d=\"M93.6 44.9V1.5c0-1.6 0-1.6 1.6-1.6h87.1c1.5 0 1.5 0 1.5 1.6v86.8c0 1.6 0 1.6-1.6 1.6H95.4c-1.8 0-1.8 0-1.8-1.8V44.9zm280.9.2V1.6c0-1.6 0-1.6 1.6-1.6h87.1c1.5 0 1.5 0 1.5 1.6v86.7c0 1.8 0 1.8-1.8 1.8h-86.7c-1.7 0-1.7 0-1.7-1.7V45.1zm-142.1 45H189c-1.6 0-1.6 0-1.6-1.5v-87c0-1.6 0-1.6 1.6-1.6h86.8c1.6 0 1.6 0 1.6 1.5v87c0 1.6 0 1.6-1.6 1.6h-43.4zm48.5-45.2V1.5c0-1.6 0-1.6 1.6-1.6h86.8c1.6 0 1.6 0 1.6 1.5v87c0 1.6 0 1.6-1.6 1.6h-86.8c-1.6 0-1.6 0-1.6-1.6V44.9z\" fill=\"#cbcbcb\"/></svg>";
|
|
1562
2394
|
|
|
1563
2395
|
var two_one = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 558.2 183.6\" xmlns:v=\"https://vecta.io/nano\"><path d=\"M277.3 183.5h-90.2V94.2c0-.6.2-.9.8-.9h87.7c1 0 1.6 0 1.6 1.3l.1 88.9zM558.2 0v90.1h-88.3c-1.9 0-1.9 0-1.9-1.9V1.8c0-1.8 0-1.8 1.8-1.8h88.4zm-468 183.5H0V95.1c0-1.7 0-1.7 1.7-1.7h86.7c1.8 0 1.8 0 1.8 1.8v88.3zm93.6 0H93.6V95.3c0-1.9 0-1.9 1.9-1.9H182c1.8 0 1.8 0 1.8 1.8v88.3zm280.9 0h-90.2V95.1c0-1.7 0-1.7 1.6-1.7H463c1.6 0 1.6 0 1.6 1.7v61.2l.1 27.2zm93.5-90v89c0 .9-.2 1.1-1.1 1.1H468V95.2c0-1.7 0-1.7 1.7-1.7h88.5zm-187.1 90h-90.2V94.6c0-1.1.4-1.5 1.5-1.5l6.8.3h80.2c1.1 0 1.5.2 1.5 1.4l.2 61.9.5 25.1c0 .7.1 1.3-.5 1.7z\" fill=\"#cbcbcb\"/><path d=\"M183.8 45.1v43.5c0 1.1-.2 1.6-1.5 1.6H95c-1.2 0-1.4-.4-1.4-1.5V1.5C93.6.2 94 0 95.1 0h87.3c1.2 0 1.4.4 1.4 1.5v43.6zM45.1 0h43.7c1.1 0 1.4.2 1.4 1.4v87.3c0 1.1-.4 1.4-1.4 1.4H1.4c-1.1 0-1.3-.3-1.3-1.3L0 1.3C0 .2.3 0 1.3 0h43.8z\" fill=\"#1565c0\"/><path d=\"M419.6 90.1h-43.5c-1.6 0-1.6 0-1.6-1.6V1.6c0-1.6 0-1.6 1.6-1.6h87.1c1.5 0 1.5 0 1.5 1.6v86.7c0 1.8 0 1.8-1.8 1.8h-43.3zM277.3 44.9v43.5c0 1.7 0 1.7-1.6 1.7h-86.8c-1.6 0-1.6 0-1.6-1.6v-87c0-1.5 0-1.5 1.6-1.5h86.8c1.6 0 1.6 0 1.6 1.6v43.3zm93.6.3v43.2c0 1.7 0 1.7-1.6 1.7h-86.8c-1.6 0-1.6 0-1.6-1.6v-87c0-1.5 0-1.5 1.6-1.5h86.8c1.6 0 1.6 0 1.6 1.6v43.6z\" fill=\"#cbcbcb\"/></svg>";
|
|
@@ -1591,13 +2423,9 @@ var GridImages = {
|
|
|
1591
2423
|
'6x2': six_two,
|
|
1592
2424
|
};
|
|
1593
2425
|
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
_vm.$emit('change-go-to', _vm.goToValue);
|
|
1598
|
-
_vm.goToValue = '';
|
|
1599
|
-
}}},[_vm._v("\n Ok\n ")])])]),_vm._v(" "),_c('GlobalEvents',{on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==107){ return null; }return _vm.changePlaybackRate(1)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==109){ return null; }return _vm.changePlaybackRate(-1)}]}}),_vm._v(" "),_c('dialog',{ref:"playbackRate"},[_c('div',{staticClass:"visualization-row",staticStyle:{"padding":"5px","font-weight":"bold","background-color":"var(--visualization-primary)","border-color":"var(--visualization-primary)","height":"35px","color":"white","display":"flex","justify-content":"center","padding-top":"8px"}},[_vm._v("\n "+_vm._s(_vm.$t('infoBar.playbackSpeed'))+"\n ")]),_vm._v(" "),_c('div',{staticClass:"visualization-row",staticStyle:{"margin":"25px","height":"20px","width":"380px"}},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.playbackRateValue),expression:"playbackRateValue"}],ref:"playbackRateInput",staticStyle:{"height":"30px","width":"300px"},attrs:{"type":"range","step":"0.25","max":"3","min":"1"},domProps:{"value":(_vm.playbackRateValue)},on:{"__r":function($event){_vm.playbackRateValue=$event.target.value;}}}),_vm._v(" "),_c('span',{staticStyle:{"padding-left":"20px","padding-right":"20px","font-size":"16px"}},[_vm._v(_vm._s(_vm.playbackRate + 'x'))])]),_vm._v(" "),_c('div',{staticClass:"visualization-divider",staticStyle:{"margin-top":"40px"}}),_vm._v(" "),_c('div',{staticClass:"visualization-row",staticStyle:{"display":"flex","justify-content":"center","margin-top":"10px","margin-bottom":"10px"}},[_c('button',{staticStyle:{"border-radius":"4px","height":"35px","width":"70px","background-color":"var(--visualization-primary)","border-color":"var(--visualization-primary)","color":"white"},on:{"click":function($event){return _vm.$emit('close', 'playbackRate')}}},[_vm._v("\n Ok\n ")])])])],1)},
|
|
1600
|
-
staticRenderFns: [],
|
|
2426
|
+
//
|
|
2427
|
+
|
|
2428
|
+
var script$1 = {
|
|
1601
2429
|
props: {
|
|
1602
2430
|
dialogsVisibility: {
|
|
1603
2431
|
type: Object,
|
|
@@ -1745,37 +2573,501 @@ staticRenderFns: [],
|
|
|
1745
2573
|
},
|
|
1746
2574
|
};
|
|
1747
2575
|
|
|
2576
|
+
/* script */
|
|
2577
|
+
const __vue_script__$1 = script$1;
|
|
2578
|
+
|
|
2579
|
+
/* template */
|
|
2580
|
+
var __vue_render__$1 = function () {
|
|
2581
|
+
var _vm = this;
|
|
2582
|
+
var _h = _vm.$createElement;
|
|
2583
|
+
var _c = _vm._self._c || _h;
|
|
2584
|
+
return _c(
|
|
2585
|
+
"div",
|
|
2586
|
+
[
|
|
2587
|
+
_vm.dialogsVisibility.frames
|
|
2588
|
+
? _c("GlobalEvents", {
|
|
2589
|
+
on: {
|
|
2590
|
+
keydown: [
|
|
2591
|
+
function ($event) {
|
|
2592
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 37) {
|
|
2593
|
+
return null
|
|
2594
|
+
}
|
|
2595
|
+
return _vm.prevFormat.apply(null, arguments)
|
|
2596
|
+
},
|
|
2597
|
+
function ($event) {
|
|
2598
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 39) {
|
|
2599
|
+
return null
|
|
2600
|
+
}
|
|
2601
|
+
return _vm.nextFormat.apply(null, arguments)
|
|
2602
|
+
},
|
|
2603
|
+
],
|
|
2604
|
+
},
|
|
2605
|
+
})
|
|
2606
|
+
: _vm._e(),
|
|
2607
|
+
_vm._v(" "),
|
|
2608
|
+
_c("dialog", { ref: "frames" }, [
|
|
2609
|
+
_c(
|
|
2610
|
+
"div",
|
|
2611
|
+
{
|
|
2612
|
+
staticClass: "visualization-row",
|
|
2613
|
+
staticStyle: {
|
|
2614
|
+
padding: "5px",
|
|
2615
|
+
"font-weight": "bold",
|
|
2616
|
+
"background-color": "var(--visualization-primary)",
|
|
2617
|
+
"border-color": "var(--visualization-primary)",
|
|
2618
|
+
height: "40px",
|
|
2619
|
+
color: "white",
|
|
2620
|
+
display: "flex",
|
|
2621
|
+
"justify-content": "center",
|
|
2622
|
+
"padding-top": "10px",
|
|
2623
|
+
},
|
|
2624
|
+
},
|
|
2625
|
+
[_vm._v("\n " + _vm._s(_vm.$t("infoBar.gridForm")) + "\n ")]
|
|
2626
|
+
),
|
|
2627
|
+
_vm._v(" "),
|
|
2628
|
+
_c(
|
|
2629
|
+
"div",
|
|
2630
|
+
{
|
|
2631
|
+
staticClass: "visualization-row",
|
|
2632
|
+
staticStyle: { "justify-content": "center" },
|
|
2633
|
+
},
|
|
2634
|
+
_vm._l(_vm.items, function (item, index) {
|
|
2635
|
+
return _c(
|
|
2636
|
+
"div",
|
|
2637
|
+
{
|
|
2638
|
+
key: index,
|
|
2639
|
+
staticClass: "visualization-col",
|
|
2640
|
+
staticStyle: { "min-width": "200px", "max-width": "200px" },
|
|
2641
|
+
},
|
|
2642
|
+
[
|
|
2643
|
+
_c("img", {
|
|
2644
|
+
style:
|
|
2645
|
+
_vm.framesValue !== item.value
|
|
2646
|
+
? "filter: grayscale(1)"
|
|
2647
|
+
: "",
|
|
2648
|
+
attrs: { src: item.image, width: "100%" },
|
|
2649
|
+
on: {
|
|
2650
|
+
click: function () {
|
|
2651
|
+
return (_vm.framesValue = item.value)
|
|
2652
|
+
},
|
|
2653
|
+
},
|
|
2654
|
+
}),
|
|
2655
|
+
]
|
|
2656
|
+
)
|
|
2657
|
+
}),
|
|
2658
|
+
0
|
|
2659
|
+
),
|
|
2660
|
+
_vm._v(" "),
|
|
2661
|
+
_c("div", { staticClass: "visualization-divider" }),
|
|
2662
|
+
_vm._v(" "),
|
|
2663
|
+
_c(
|
|
2664
|
+
"div",
|
|
2665
|
+
{
|
|
2666
|
+
staticClass: "visualization-row",
|
|
2667
|
+
staticStyle: {
|
|
2668
|
+
display: "flex",
|
|
2669
|
+
"justify-content": "center",
|
|
2670
|
+
"margin-top": "10px",
|
|
2671
|
+
"margin-bottom": "10px",
|
|
2672
|
+
},
|
|
2673
|
+
},
|
|
2674
|
+
[
|
|
2675
|
+
_c(
|
|
2676
|
+
"button",
|
|
2677
|
+
{
|
|
2678
|
+
staticStyle: {
|
|
2679
|
+
"border-radius": "4px",
|
|
2680
|
+
height: "35px",
|
|
2681
|
+
width: "70px",
|
|
2682
|
+
"background-color": "var(--visualization-primary)",
|
|
2683
|
+
"border-color": "var(--visualization-primary)",
|
|
2684
|
+
color: "white",
|
|
2685
|
+
},
|
|
2686
|
+
on: {
|
|
2687
|
+
click: function ($event) {
|
|
2688
|
+
return _vm.$emit("close", "frames")
|
|
2689
|
+
},
|
|
2690
|
+
},
|
|
2691
|
+
},
|
|
2692
|
+
[_vm._v("\n Ok\n ")]
|
|
2693
|
+
),
|
|
2694
|
+
]
|
|
2695
|
+
),
|
|
2696
|
+
]),
|
|
2697
|
+
_vm._v(" "),
|
|
2698
|
+
_c("dialog", { ref: "secondsPerFrame" }, [
|
|
2699
|
+
_c(
|
|
2700
|
+
"div",
|
|
2701
|
+
{
|
|
2702
|
+
staticClass: "visualization-row",
|
|
2703
|
+
staticStyle: {
|
|
2704
|
+
padding: "5px",
|
|
2705
|
+
"font-weight": "bold",
|
|
2706
|
+
"background-color": "var(--visualization-primary)",
|
|
2707
|
+
"border-color": "var(--visualization-primary)",
|
|
2708
|
+
height: "40px",
|
|
2709
|
+
color: "white",
|
|
2710
|
+
display: "flex",
|
|
2711
|
+
"justify-content": "center",
|
|
2712
|
+
"padding-top": "10px",
|
|
2713
|
+
},
|
|
2714
|
+
},
|
|
2715
|
+
[
|
|
2716
|
+
_vm._v(
|
|
2717
|
+
"\n " + _vm._s(_vm.$t("infoBar.secondImage")) + "\n "
|
|
2718
|
+
),
|
|
2719
|
+
]
|
|
2720
|
+
),
|
|
2721
|
+
_vm._v(" "),
|
|
2722
|
+
_c(
|
|
2723
|
+
"div",
|
|
2724
|
+
{
|
|
2725
|
+
staticClass: "visualization-row",
|
|
2726
|
+
staticStyle: { margin: "25px", height: "20px" },
|
|
2727
|
+
},
|
|
2728
|
+
[
|
|
2729
|
+
_c("input", {
|
|
2730
|
+
directives: [
|
|
2731
|
+
{
|
|
2732
|
+
name: "model",
|
|
2733
|
+
rawName: "v-model",
|
|
2734
|
+
value: _vm.secondsPerFrameValue,
|
|
2735
|
+
expression: "secondsPerFrameValue",
|
|
2736
|
+
},
|
|
2737
|
+
],
|
|
2738
|
+
ref: "secondsPerFrameInput",
|
|
2739
|
+
staticStyle: { height: "30px", width: "300px" },
|
|
2740
|
+
attrs: { type: "range", step: "1", max: "5", min: "1" },
|
|
2741
|
+
domProps: { value: _vm.secondsPerFrameValue },
|
|
2742
|
+
on: {
|
|
2743
|
+
__r: function ($event) {
|
|
2744
|
+
_vm.secondsPerFrameValue = $event.target.value;
|
|
2745
|
+
},
|
|
2746
|
+
},
|
|
2747
|
+
}),
|
|
2748
|
+
_vm._v(" "),
|
|
2749
|
+
_c(
|
|
2750
|
+
"span",
|
|
2751
|
+
{ staticStyle: { "padding-left": "20px", "font-size": "16px" } },
|
|
2752
|
+
[_vm._v("\n " + _vm._s(_vm.secondsPerFrame + " s"))]
|
|
2753
|
+
),
|
|
2754
|
+
]
|
|
2755
|
+
),
|
|
2756
|
+
_vm._v(" "),
|
|
2757
|
+
_c("div", {
|
|
2758
|
+
staticClass: "visualization-divider",
|
|
2759
|
+
staticStyle: { margin: "10px" },
|
|
2760
|
+
}),
|
|
2761
|
+
_vm._v(" "),
|
|
2762
|
+
_c(
|
|
2763
|
+
"div",
|
|
2764
|
+
{
|
|
2765
|
+
staticClass: "visualization-row",
|
|
2766
|
+
staticStyle: {
|
|
2767
|
+
display: "flex",
|
|
2768
|
+
"justify-content": "center",
|
|
2769
|
+
"margin-top": "10px",
|
|
2770
|
+
},
|
|
2771
|
+
},
|
|
2772
|
+
[
|
|
2773
|
+
_c(
|
|
2774
|
+
"button",
|
|
2775
|
+
{
|
|
2776
|
+
staticStyle: {
|
|
2777
|
+
"border-radius": "4px",
|
|
2778
|
+
height: "35px",
|
|
2779
|
+
width: "70px",
|
|
2780
|
+
"background-color": "var(--visualization-primary)",
|
|
2781
|
+
"border-color": "var(--visualization-primary)",
|
|
2782
|
+
color: "white",
|
|
2783
|
+
"margin-bottom": "8px",
|
|
2784
|
+
},
|
|
2785
|
+
on: {
|
|
2786
|
+
click: function ($event) {
|
|
2787
|
+
return _vm.$emit("close", "secondsPerFrame")
|
|
2788
|
+
},
|
|
2789
|
+
},
|
|
2790
|
+
},
|
|
2791
|
+
[_vm._v("\n Ok\n ")]
|
|
2792
|
+
),
|
|
2793
|
+
]
|
|
2794
|
+
),
|
|
2795
|
+
]),
|
|
2796
|
+
_vm._v(" "),
|
|
2797
|
+
_c("dialog", { ref: "goTo" }, [
|
|
2798
|
+
_c(
|
|
2799
|
+
"div",
|
|
2800
|
+
{
|
|
2801
|
+
staticStyle: {
|
|
2802
|
+
padding: "5px",
|
|
2803
|
+
"font-weight": "bold",
|
|
2804
|
+
"background-color": "var(--visualization-primary)",
|
|
2805
|
+
"border-color": "var(--visualization-primary)",
|
|
2806
|
+
height: "35px",
|
|
2807
|
+
color: "white",
|
|
2808
|
+
display: "flex",
|
|
2809
|
+
"justify-content": "center",
|
|
2810
|
+
"padding-top": "8px",
|
|
2811
|
+
},
|
|
2812
|
+
},
|
|
2813
|
+
[_vm._v("\n " + _vm._s(_vm.$t("infoBar.goTo")) + "\n ")]
|
|
2814
|
+
),
|
|
2815
|
+
_vm._v(" "),
|
|
2816
|
+
_c(
|
|
2817
|
+
"div",
|
|
2818
|
+
{
|
|
2819
|
+
staticClass: "visualization-row",
|
|
2820
|
+
staticStyle: { margin: "25px", height: "20px" },
|
|
2821
|
+
},
|
|
2822
|
+
[
|
|
2823
|
+
_c("input", {
|
|
2824
|
+
directives: [
|
|
2825
|
+
{
|
|
2826
|
+
name: "model",
|
|
2827
|
+
rawName: "v-model",
|
|
2828
|
+
value: _vm.goToValue,
|
|
2829
|
+
expression: "goToValue",
|
|
2830
|
+
},
|
|
2831
|
+
{
|
|
2832
|
+
name: "mask",
|
|
2833
|
+
rawName: "v-mask",
|
|
2834
|
+
value: "##:##:##",
|
|
2835
|
+
expression: "'##:##:##'",
|
|
2836
|
+
},
|
|
2837
|
+
],
|
|
2838
|
+
staticStyle: {
|
|
2839
|
+
height: "30px",
|
|
2840
|
+
width: "300px",
|
|
2841
|
+
border: "0.1px solid #c2c9d6",
|
|
2842
|
+
"border-radius": "3px",
|
|
2843
|
+
padding: "5px",
|
|
2844
|
+
},
|
|
2845
|
+
attrs: { type: "text", placeholder: "hh:mm:ss" },
|
|
2846
|
+
domProps: { value: _vm.goToValue },
|
|
2847
|
+
on: {
|
|
2848
|
+
input: function ($event) {
|
|
2849
|
+
if ($event.target.composing) {
|
|
2850
|
+
return
|
|
2851
|
+
}
|
|
2852
|
+
_vm.goToValue = $event.target.value;
|
|
2853
|
+
},
|
|
2854
|
+
},
|
|
2855
|
+
}),
|
|
2856
|
+
]
|
|
2857
|
+
),
|
|
2858
|
+
_vm._v(" "),
|
|
2859
|
+
_c("div", {
|
|
2860
|
+
staticClass: "visualization-divider",
|
|
2861
|
+
staticStyle: { "margin-top": "40px" },
|
|
2862
|
+
}),
|
|
2863
|
+
_vm._v(" "),
|
|
2864
|
+
_c(
|
|
2865
|
+
"div",
|
|
2866
|
+
{
|
|
2867
|
+
staticClass: "visualization-row",
|
|
2868
|
+
staticStyle: {
|
|
2869
|
+
display: "flex",
|
|
2870
|
+
"justify-content": "center",
|
|
2871
|
+
"margin-top": "10px",
|
|
2872
|
+
"margin-bottom": "10px",
|
|
2873
|
+
},
|
|
2874
|
+
},
|
|
2875
|
+
[
|
|
2876
|
+
_c(
|
|
2877
|
+
"button",
|
|
2878
|
+
{
|
|
2879
|
+
staticStyle: {
|
|
2880
|
+
"border-radius": "4px",
|
|
2881
|
+
height: "35px",
|
|
2882
|
+
width: "70px",
|
|
2883
|
+
"background-color": "var(--visualization-primary)",
|
|
2884
|
+
"border-color": "var(--visualization-primary)",
|
|
2885
|
+
color: "white",
|
|
2886
|
+
},
|
|
2887
|
+
on: {
|
|
2888
|
+
click: function () {
|
|
2889
|
+
_vm.$emit("close", "goTo");
|
|
2890
|
+
_vm.$emit("change-go-to", _vm.goToValue);
|
|
2891
|
+
_vm.goToValue = "";
|
|
2892
|
+
},
|
|
2893
|
+
},
|
|
2894
|
+
},
|
|
2895
|
+
[_vm._v("\n Ok\n ")]
|
|
2896
|
+
),
|
|
2897
|
+
]
|
|
2898
|
+
),
|
|
2899
|
+
]),
|
|
2900
|
+
_vm._v(" "),
|
|
2901
|
+
_c("GlobalEvents", {
|
|
2902
|
+
on: {
|
|
2903
|
+
keydown: [
|
|
2904
|
+
function ($event) {
|
|
2905
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 107) {
|
|
2906
|
+
return null
|
|
2907
|
+
}
|
|
2908
|
+
return _vm.changePlaybackRate(1)
|
|
2909
|
+
},
|
|
2910
|
+
function ($event) {
|
|
2911
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 109) {
|
|
2912
|
+
return null
|
|
2913
|
+
}
|
|
2914
|
+
return _vm.changePlaybackRate(-1)
|
|
2915
|
+
},
|
|
2916
|
+
],
|
|
2917
|
+
},
|
|
2918
|
+
}),
|
|
2919
|
+
_vm._v(" "),
|
|
2920
|
+
_c("dialog", { ref: "playbackRate" }, [
|
|
2921
|
+
_c(
|
|
2922
|
+
"div",
|
|
2923
|
+
{
|
|
2924
|
+
staticClass: "visualization-row",
|
|
2925
|
+
staticStyle: {
|
|
2926
|
+
padding: "5px",
|
|
2927
|
+
"font-weight": "bold",
|
|
2928
|
+
"background-color": "var(--visualization-primary)",
|
|
2929
|
+
"border-color": "var(--visualization-primary)",
|
|
2930
|
+
height: "35px",
|
|
2931
|
+
color: "white",
|
|
2932
|
+
display: "flex",
|
|
2933
|
+
"justify-content": "center",
|
|
2934
|
+
"padding-top": "8px",
|
|
2935
|
+
},
|
|
2936
|
+
},
|
|
2937
|
+
[
|
|
2938
|
+
_vm._v(
|
|
2939
|
+
"\n " + _vm._s(_vm.$t("infoBar.playbackSpeed")) + "\n "
|
|
2940
|
+
),
|
|
2941
|
+
]
|
|
2942
|
+
),
|
|
2943
|
+
_vm._v(" "),
|
|
2944
|
+
_c(
|
|
2945
|
+
"div",
|
|
2946
|
+
{
|
|
2947
|
+
staticClass: "visualization-row",
|
|
2948
|
+
staticStyle: { margin: "25px", height: "20px", width: "380px" },
|
|
2949
|
+
},
|
|
2950
|
+
[
|
|
2951
|
+
_c("input", {
|
|
2952
|
+
directives: [
|
|
2953
|
+
{
|
|
2954
|
+
name: "model",
|
|
2955
|
+
rawName: "v-model",
|
|
2956
|
+
value: _vm.playbackRateValue,
|
|
2957
|
+
expression: "playbackRateValue",
|
|
2958
|
+
},
|
|
2959
|
+
],
|
|
2960
|
+
ref: "playbackRateInput",
|
|
2961
|
+
staticStyle: { height: "30px", width: "300px" },
|
|
2962
|
+
attrs: { type: "range", step: "0.25", max: "3", min: "1" },
|
|
2963
|
+
domProps: { value: _vm.playbackRateValue },
|
|
2964
|
+
on: {
|
|
2965
|
+
__r: function ($event) {
|
|
2966
|
+
_vm.playbackRateValue = $event.target.value;
|
|
2967
|
+
},
|
|
2968
|
+
},
|
|
2969
|
+
}),
|
|
2970
|
+
_vm._v(" "),
|
|
2971
|
+
_c(
|
|
2972
|
+
"span",
|
|
2973
|
+
{
|
|
2974
|
+
staticStyle: {
|
|
2975
|
+
"padding-left": "20px",
|
|
2976
|
+
"padding-right": "20px",
|
|
2977
|
+
"font-size": "16px",
|
|
2978
|
+
},
|
|
2979
|
+
},
|
|
2980
|
+
[_vm._v(_vm._s(_vm.playbackRate + "x"))]
|
|
2981
|
+
),
|
|
2982
|
+
]
|
|
2983
|
+
),
|
|
2984
|
+
_vm._v(" "),
|
|
2985
|
+
_c("div", {
|
|
2986
|
+
staticClass: "visualization-divider",
|
|
2987
|
+
staticStyle: { "margin-top": "40px" },
|
|
2988
|
+
}),
|
|
2989
|
+
_vm._v(" "),
|
|
2990
|
+
_c(
|
|
2991
|
+
"div",
|
|
2992
|
+
{
|
|
2993
|
+
staticClass: "visualization-row",
|
|
2994
|
+
staticStyle: {
|
|
2995
|
+
display: "flex",
|
|
2996
|
+
"justify-content": "center",
|
|
2997
|
+
"margin-top": "10px",
|
|
2998
|
+
"margin-bottom": "10px",
|
|
2999
|
+
},
|
|
3000
|
+
},
|
|
3001
|
+
[
|
|
3002
|
+
_c(
|
|
3003
|
+
"button",
|
|
3004
|
+
{
|
|
3005
|
+
staticStyle: {
|
|
3006
|
+
"border-radius": "4px",
|
|
3007
|
+
height: "35px",
|
|
3008
|
+
width: "70px",
|
|
3009
|
+
"background-color": "var(--visualization-primary)",
|
|
3010
|
+
"border-color": "var(--visualization-primary)",
|
|
3011
|
+
color: "white",
|
|
3012
|
+
},
|
|
3013
|
+
on: {
|
|
3014
|
+
click: function ($event) {
|
|
3015
|
+
return _vm.$emit("close", "playbackRate")
|
|
3016
|
+
},
|
|
3017
|
+
},
|
|
3018
|
+
},
|
|
3019
|
+
[_vm._v("\n Ok\n ")]
|
|
3020
|
+
),
|
|
3021
|
+
]
|
|
3022
|
+
),
|
|
3023
|
+
]),
|
|
3024
|
+
],
|
|
3025
|
+
1
|
|
3026
|
+
)
|
|
3027
|
+
};
|
|
3028
|
+
var __vue_staticRenderFns__$1 = [];
|
|
3029
|
+
__vue_render__$1._withStripped = true;
|
|
3030
|
+
|
|
3031
|
+
/* style */
|
|
3032
|
+
const __vue_inject_styles__$1 = function (inject) {
|
|
3033
|
+
if (!inject) return
|
|
3034
|
+
inject("data-v-76bbde5a_0", { source: "\ndialog[data-v-76bbde5a] {\r\n max-width: 60vw;\r\n /* padding: 12px; */\r\n border: none;\r\n background: white;\r\n border-radius: 6px;\r\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14),\r\n 0 1px 5px 0 rgba(0, 0, 0, 0.12);\r\n position: fixed;\r\n top: 50%;\r\n left: 50%;\r\n transform: translateY(-50%) translateX(-50%);\n}\r\n", map: {"version":3,"sources":["C:\\workspace\\visualization\\src\\components\\Settings.vue"],"names":[],"mappings":";AAmZA;EACA,eAAA;EACA,mBAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA;mCACA;EACA,eAAA;EACA,QAAA;EACA,SAAA;EACA,4CAAA;AACA","file":"Settings.vue","sourcesContent":["<template>\r\n <div>\r\n <GlobalEvents\r\n v-if=\"dialogsVisibility.frames\"\r\n @keydown.37=\"prevFormat\"\r\n @keydown.39=\"nextFormat\"\r\n />\r\n <!-- Formato da grelha -->\r\n <dialog ref=\"frames\">\r\n <div\r\n class=\"visualization-row\"\r\n style=\"\r\n padding: 5px;\r\n font-weight: bold;\r\n background-color: var(--visualization-primary);\r\n border-color: var(--visualization-primary);\r\n height: 40px;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n padding-top: 10px;\r\n \"\r\n >\r\n {{ $t('infoBar.gridForm') }}\r\n </div>\r\n <div class=\"visualization-row\" style=\"justify-content: center\">\r\n <div\r\n v-for=\"(item, index) in items\"\r\n :key=\"index\"\r\n class=\"visualization-col\"\r\n style=\"min-width: 200px; max-width: 200px\"\r\n >\r\n <img\r\n @click=\"() => (framesValue = item.value)\"\r\n :src=\"item.image\"\r\n width=\"100%\"\r\n :style=\"framesValue !== item.value ? 'filter: grayscale(1)' : ''\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"visualization-divider\" />\r\n <div\r\n class=\"visualization-row\"\r\n style=\"\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 10px;\r\n margin-bottom: 10px;\r\n \"\r\n >\r\n <button\r\n style=\"\r\n border-radius: 4px;\r\n height: 35px;\r\n width: 70px;\r\n background-color: var(--visualization-primary);\r\n border-color: var(--visualization-primary);\r\n color: white;\r\n \"\r\n @click=\"$emit('close', 'frames')\"\r\n >\r\n Ok\r\n </button>\r\n </div>\r\n </dialog>\r\n\r\n <!-- Frequencia das Imagens -->\r\n <dialog ref=\"secondsPerFrame\">\r\n <div\r\n class=\"visualization-row\"\r\n style=\"\r\n padding: 5px;\r\n font-weight: bold;\r\n background-color: var(--visualization-primary);\r\n border-color: var(--visualization-primary);\r\n height: 40px;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n padding-top: 10px;\r\n \"\r\n >\r\n {{ $t('infoBar.secondImage') }}\r\n </div>\r\n <div class=\"visualization-row\" style=\"margin: 25px; height: 20px\">\r\n <input\r\n ref=\"secondsPerFrameInput\"\r\n v-model=\"secondsPerFrameValue\"\r\n type=\"range\"\r\n step=\"1\"\r\n max=\"5\"\r\n min=\"1\"\r\n style=\"height: 30px; width: 300px\"\r\n />\r\n <span style=\"padding-left: 20px; font-size: 16px\">\r\n {{ secondsPerFrame + ' s' }}</span\r\n >\r\n </div>\r\n <div class=\"visualization-divider\" style=\"margin: 10px\" />\r\n <div\r\n class=\"visualization-row\"\r\n style=\"display: flex; justify-content: center; margin-top: 10px\"\r\n >\r\n <button\r\n style=\"\r\n border-radius: 4px;\r\n height: 35px;\r\n width: 70px;\r\n background-color: var(--visualization-primary);\r\n border-color: var(--visualization-primary);\r\n color: white;\r\n margin-bottom: 8px;\r\n \"\r\n @click=\"$emit('close', 'secondsPerFrame')\"\r\n >\r\n Ok\r\n </button>\r\n </div>\r\n </dialog>\r\n\r\n <!-- Go To -->\r\n <dialog ref=\"goTo\">\r\n <div\r\n style=\"\r\n padding: 5px;\r\n font-weight: bold;\r\n background-color: var(--visualization-primary);\r\n border-color: var(--visualization-primary);\r\n height: 35px;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n padding-top: 8px;\r\n \"\r\n >\r\n {{ $t('infoBar.goTo') }}\r\n </div>\r\n <div class=\"visualization-row\" style=\"margin: 25px; height: 20px\">\r\n <input\r\n v-model=\"goToValue\"\r\n type=\"text\"\r\n placeholder=\"hh:mm:ss\"\r\n v-mask=\"'##:##:##'\"\r\n style=\"\r\n height: 30px;\r\n width: 300px;\r\n border: 0.1px solid #c2c9d6;\r\n border-radius: 3px;\r\n padding: 5px;\r\n \"\r\n />\r\n </div>\r\n <div class=\"visualization-divider\" style=\"margin-top: 40px\" />\r\n <div\r\n class=\"visualization-row\"\r\n style=\"\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 10px;\r\n margin-bottom: 10px;\r\n \"\r\n >\r\n <button\r\n style=\"\r\n border-radius: 4px;\r\n height: 35px;\r\n width: 70px;\r\n background-color: var(--visualization-primary);\r\n border-color: var(--visualization-primary);\r\n color: white;\r\n \"\r\n @click=\"\r\n () => {\r\n $emit('close', 'goTo')\r\n $emit('change-go-to', goToValue)\r\n goToValue = ''\r\n }\r\n \"\r\n >\r\n Ok\r\n </button>\r\n </div>\r\n </dialog>\r\n\r\n <!-- Velocidade Reprodução -->\r\n <GlobalEvents\r\n @keydown.107=\"changePlaybackRate(1)\"\r\n @keydown.109=\"changePlaybackRate(-1)\"\r\n />\r\n <dialog ref=\"playbackRate\">\r\n <div\r\n class=\"visualization-row\"\r\n style=\"\r\n padding: 5px;\r\n font-weight: bold;\r\n background-color: var(--visualization-primary);\r\n border-color: var(--visualization-primary);\r\n height: 35px;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n padding-top: 8px;\r\n \"\r\n >\r\n {{ $t('infoBar.playbackSpeed') }}\r\n </div>\r\n <div\r\n class=\"visualization-row\"\r\n style=\"margin: 25px; height: 20px; width: 380px\"\r\n >\r\n <input\r\n ref=\"playbackRateInput\"\r\n v-model=\"playbackRateValue\"\r\n type=\"range\"\r\n step=\"0.25\"\r\n max=\"3\"\r\n min=\"1\"\r\n style=\"height: 30px; width: 300px\"\r\n />\r\n <span\r\n style=\"padding-left: 20px; padding-right: 20px; font-size: 16px\"\r\n >{{ playbackRate + 'x' }}</span\r\n >\r\n </div>\r\n <div class=\"visualization-divider\" style=\"margin-top: 40px\" />\r\n <div\r\n class=\"visualization-row\"\r\n style=\"\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 10px;\r\n margin-bottom: 10px;\r\n \"\r\n >\r\n <button\r\n @click=\"$emit('close', 'playbackRate')\"\r\n style=\"\r\n border-radius: 4px;\r\n height: 35px;\r\n width: 70px;\r\n background-color: var(--visualization-primary);\r\n border-color: var(--visualization-primary);\r\n color: white;\r\n \"\r\n >\r\n Ok\r\n </button>\r\n </div>\r\n </dialog>\r\n </div>\r\n</template>\r\n<script>\r\nimport GridImages from '../assets/grid/index.js'\r\n\r\nexport default {\r\n props: {\r\n dialogsVisibility: {\r\n type: Object,\r\n required: false,\r\n },\r\n playbackRate: {\r\n type: Number,\r\n required: true,\r\n },\r\n secondsPerFrame: {\r\n type: Number,\r\n required: true,\r\n },\r\n framesPerRow: {\r\n type: Number,\r\n required: true,\r\n },\r\n numberOfRows: {\r\n type: Number,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n openBlocksDialog: false,\r\n time: '',\r\n rangeBlocks: {\r\n ini: null,\r\n end: null,\r\n date: null,\r\n },\r\n items: [\r\n { text: '2x1', value: 1, image: GridImages['2x1'] },\r\n { text: '3x1', value: 2, image: GridImages['3x1'] },\r\n { text: '3x2', value: 3, image: GridImages['3x2'] },\r\n { text: '4x1', value: 4, image: GridImages['4x1'] },\r\n { text: '4x2', value: 5, image: GridImages['4x2'] },\r\n { text: '5x1', value: 6, image: GridImages['5x1'] },\r\n { text: '5x2', value: 7, image: GridImages['5x2'] },\r\n { text: '6x1', value: 8, image: GridImages['6x1'] },\r\n { text: '6x2', value: 9, image: GridImages['6x2'] },\r\n ],\r\n\r\n // NEW\r\n goToValue: '',\r\n }\r\n },\r\n mounted() {\r\n this.toogleDialogs()\r\n },\r\n computed: {\r\n secondsPerFrameValue: {\r\n get() {\r\n return this.secondsPerFrame\r\n },\r\n set(val) {\r\n this.$emit('change-seconds-per-frame', parseInt(val))\r\n },\r\n },\r\n playbackRateValue: {\r\n get() {\r\n return this.playbackRate\r\n },\r\n set(val) {\r\n this.$emit('change-playback-rate', parseFloat(val))\r\n },\r\n },\r\n framesValue: {\r\n get() {\r\n return this.items.find(\r\n (item) => item.text === `${this.framesPerRow}x${this.numberOfRows}`\r\n ).value\r\n },\r\n set(value) {\r\n this.$emit('set-frames-selection', value)\r\n },\r\n },\r\n timeRules() {\r\n return [\r\n (time) =>\r\n (time >= '02:30:00' && time <= '26:29:59') ||\r\n this.$i18n.t('form.mustBeBetween'),\r\n ]\r\n },\r\n },\r\n methods: {\r\n toogleDialogs() {\r\n for (const dialog of Object.values(this.$refs)) {\r\n dialog.close?.()\r\n }\r\n\r\n const openDialog = Object.keys(this.dialogsVisibility).find(\r\n (key) => this.dialogsVisibility[key]\r\n )\r\n\r\n if (openDialog) {\r\n this.$refs[openDialog].showModal()\r\n }\r\n },\r\n prevFormat() {\r\n if (this.items.find((format) => format.value === this.framesValue - 1)) {\r\n this.framesValue--\r\n }\r\n },\r\n nextFormat() {\r\n if (this.items.find((format) => format.value === this.framesValue + 1)) {\r\n this.framesValue++\r\n }\r\n },\r\n changePlaybackRate(direction = 1) {\r\n if (direction === 1) {\r\n this.$refs.playbackRateInput.stepUp()\r\n } else if (direction === -1) {\r\n this.$refs.playbackRateInput.stepDown()\r\n }\r\n this.playbackRateValue = this.$refs.playbackRateInput.value\r\n },\r\n closeBlocksDialog() {\r\n Object.entries(this.rangeBlocks).forEach(([key, value]) => {\r\n if (!value || key == 'date') return\r\n var res = value.replace(/\\D/g, '')\r\n if (res.length < 6) {\r\n for (let i = res.length; i < 6; i++) {\r\n res += '0'\r\n }\r\n }\r\n res.match(/.{1,2}/g)\r\n let a = res.substring(0, 2)\r\n let b = res.substring(2, 4)\r\n let c = res.substring(4, 6)\r\n this.rangeBlocks[key] = a + ':' + b + ':' + c\r\n })\r\n\r\n this.openBlocksDialog = false\r\n this.$emit('goToBlockInterval', this.rangeBlocks)\r\n },\r\n },\r\n watch: {\r\n dialogsVisibility: {\r\n handler() {\r\n this.toogleDialogs()\r\n },\r\n deep: true,\r\n },\r\n },\r\n}\r\n</script>\r\n<style scoped>\r\ndialog {\r\n max-width: 60vw;\r\n /* padding: 12px; */\r\n border: none;\r\n background: white;\r\n border-radius: 6px;\r\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14),\r\n 0 1px 5px 0 rgba(0, 0, 0, 0.12);\r\n position: fixed;\r\n top: 50%;\r\n left: 50%;\r\n transform: translateY(-50%) translateX(-50%);\r\n}\r\n</style>\r\n"]}, media: undefined });
|
|
3035
|
+
|
|
3036
|
+
};
|
|
3037
|
+
/* scoped */
|
|
3038
|
+
const __vue_scope_id__$1 = "data-v-76bbde5a";
|
|
3039
|
+
/* module identifier */
|
|
3040
|
+
const __vue_module_identifier__$1 = undefined;
|
|
3041
|
+
/* functional template */
|
|
3042
|
+
const __vue_is_functional_template__$1 = false;
|
|
3043
|
+
/* style inject SSR */
|
|
3044
|
+
|
|
3045
|
+
/* style inject shadow dom */
|
|
3046
|
+
|
|
3047
|
+
|
|
3048
|
+
|
|
3049
|
+
const __vue_component__$1 = /*#__PURE__*/normalizeComponent(
|
|
3050
|
+
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
|
3051
|
+
__vue_inject_styles__$1,
|
|
3052
|
+
__vue_script__$1,
|
|
3053
|
+
__vue_scope_id__$1,
|
|
3054
|
+
__vue_is_functional_template__$1,
|
|
3055
|
+
__vue_module_identifier__$1,
|
|
3056
|
+
false,
|
|
3057
|
+
createInjector,
|
|
3058
|
+
undefined,
|
|
3059
|
+
undefined
|
|
3060
|
+
);
|
|
3061
|
+
|
|
3062
|
+
//
|
|
3063
|
+
|
|
1748
3064
|
const Positions = Object.freeze({
|
|
1749
3065
|
previous: 0,
|
|
1750
3066
|
current: 1,
|
|
1751
3067
|
next: 2,
|
|
1752
3068
|
});
|
|
1753
3069
|
|
|
1754
|
-
var
|
|
1755
|
-
render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"visualization-row",attrs:{"id":"visualization-container"},on:{"click":_vm.framesClicked}},[(_vm.active && _vm.canInsertTime && _vm.settingsClosed)?_c('GlobalEvents',{on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==45){ return null; }return _vm.insertTime.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==46){ return null; }return _vm.insertTime.apply(null, arguments)}]}}):_vm._e(),_vm._v(" "),(_vm.active && _vm.settingsClosed)?_c('GlobalEvents',{on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"left",37,$event.key,["Left","ArrowLeft"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }$event.preventDefault();return _vm.arrowLeft.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"right",39,$event.key,["Right","ArrowRight"])){ return null; }if('button' in $event && $event.button !== 2){ return null; }$event.preventDefault();return _vm.arrowRight.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"page-down",undefined,$event.key,undefined)){ return null; }if(!$event.shiftKey){ return null; }$event.preventDefault();return _vm.nextLoopActivate.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"page-down",undefined,$event.key,undefined)){ return null; }$event.preventDefault();return _vm.next.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"page-up",undefined,$event.key,undefined)){ return null; }$event.preventDefault();return _vm.prev.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"page-up",undefined,$event.key,undefined)){ return null; }if(!$event.shiftKey){ return null; }$event.preventDefault();return _vm.prevLoopActivate.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==83){ return null; }$event.preventDefault();return _vm.setHourIni.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==69){ return null; }$event.preventDefault();return _vm.setHourEnd.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==36){ return null; }$event.preventDefault();return _vm.goToFirstFrame.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==35){ return null; }$event.preventDefault();return _vm.goToLastFrame.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==71){ return null; }$event.preventDefault();_vm.dialogs.goTo = true;},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==73){ return null; }$event.preventDefault();_vm.dialogs.secondsPerFrame = true;},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==76){ return null; }$event.preventDefault();_vm.dialogs.frames = true;},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==49&&$event.keyCode!==97){ return null; }return (function () { return (_vm.secondsPerFrame = 1); }).apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==50&&$event.keyCode!==98){ return null; }return (function () { return (_vm.secondsPerFrame = 2); }).apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==51&&$event.keyCode!==99){ return null; }return (function () { return (_vm.secondsPerFrame = 3); }).apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==52&&$event.keyCode!==100){ return null; }return (function () { return (_vm.secondsPerFrame = 4); }).apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==53&&$event.keyCode!==101){ return null; }return (function () { return (_vm.secondsPerFrame = 5); }).apply(null, arguments)}]}}):_vm._e(),_vm._v(" "),(_vm.prevLoop || _vm.nextLoop)?_c('GlobalEvents',{on:{"keydown":_vm.breakLoop,"click":_vm.breakLoop}}):_vm._e(),_vm._v(" "),(_vm.active)?_c('settings',{attrs:{"dialogs-visibility":_vm.dialogs,"playback-rate":_vm.playbackRate,"seconds-per-frame":_vm.secondsPerFrame,"frames-per-row":_vm.framesPerRow,"number-of-rows":_vm.numberOfRows},on:{"change-playback-rate":function (value) { return (_vm.playbackRate = value); },"change-go-to":_vm.changeHour,"change-seconds-per-frame":function (value) { return (_vm.secondsPerFrame = value); },"set-frames-selection":_vm.setFrameSelection,"close":function (dialog) { return (_vm.dialogs[dialog] = false); }}}):_vm._e(),_vm._v(" "),_c('div',{class:{ 'visualization-card': true, 'active-tab': _vm.active },staticStyle:{"width":"100%","padding":"0"}},[_c('command-bar',{directives:[{name:"show",rawName:"v-show",value:(_vm.commandBarShow),expression:"commandBarShow"}],attrs:{"video-playing":_vm.videoPlaying,"video-paused":_vm.paused,"insert-time":_vm.canInsertTime,"hour-ini-selected":!!_vm.hourIniSelected,"hour-end-selected":!!_vm.hourEndSelected},on:{"prev-loop-activate":_vm.prevLoopActivate,"next-loop-activate":_vm.nextLoopActivate,"prev":_vm.prev,"next":_vm.next,"go-to":function($event){_vm.dialogs.goTo = true;},"open-frame-selection":function($event){_vm.dialogs.frames = true;},"open-frames-per-second":function($event){_vm.dialogs.secondsPerFrame = true;},"open-blocks":_vm.openBlocks,"open-playback-rate":function($event){_vm.dialogs.playbackRate = true;},"play-or-pause":_vm.playOrPause,"stop-playing":_vm.stopPlayingBar,"set-hour-ini":_vm.setHourIni,"set-hour-end":_vm.setHourEnd,"insert-time":_vm.insertTime}}),_vm._v(" "),(_vm.videoProgressBar)?_c('video-progress',{directives:[{name:"show",rawName:"v-show",value:(_vm.videoPlaying),expression:"videoPlaying"}],attrs:{"video-time":_vm.videoTime}}):_vm._e(),_vm._v(" "),_c('info-bar',{attrs:{"playback-rate":_vm.playbackRate,"seconds-per-frame":_vm.secondsPerFrame,"commands-show":_vm.commandBarShow,"cache":_vm.useCache,"block-start-time":_vm.blockStartTime,"video-total-duration":_vm.videoSliderTotalDuration,"alternative-server":_vm.alternativeServer,"frames-per-row":_vm.framesPerRow,"number-of-rows":_vm.numberOfRows,"hour-ini":_vm.hourIniSelected,"hour-end":_vm.hourEndSelected},on:{"toogle-commands-visibility":function($event){_vm.commandBarShow = !_vm.commandBarShow;},"toogle-cache":function($event){_vm.useCache = !_vm.useCache;},"change-server":_vm.changeServerClick}}),_vm._v(" "),_vm._l((_vm.numberOfRows),function(rowNumber){return _c('div',{key:'row-' + rowNumber,staticClass:"visualization-row",staticStyle:{"padding":"12px"},attrs:{"id":'row-' + rowNumber}},[_vm._l((_vm.previousFrames),function(frame,frameNumber){return _c('div',{key:_vm.numberOfRows +
|
|
1756
|
-
'-' +
|
|
1757
|
-
_vm.framesPerRow +
|
|
1758
|
-
'-' +
|
|
1759
|
-
_vm.getIndex(rowNumber, frameNumber, _vm.Positions.previous),staticStyle:{"display":"none"}},[_c('span',{domProps:{"innerHTML":_vm._s(frame.img)}})])}),_vm._v(" "),_vm._l((_vm.nextFrames),function(frame,frameNumber){return _c('div',{key:_vm.numberOfRows +
|
|
1760
|
-
'-' +
|
|
1761
|
-
_vm.framesPerRow +
|
|
1762
|
-
'-' +
|
|
1763
|
-
_vm.getIndex(rowNumber, frameNumber, _vm.Positions.next),staticStyle:{"display":"none"}},[_c('span',{domProps:{"innerHTML":_vm._s(frame.img)}})])}),_vm._v(" "),_vm._l((_vm.frames.slice(
|
|
1764
|
-
_vm.framesPerRow * (rowNumber - 1),
|
|
1765
|
-
_vm.framesPerRow * rowNumber
|
|
1766
|
-
)),function(frame,frameNumber){return _c('div',{key:'row-' + rowNumber + '-frame-' + frameNumber,staticClass:"visualization-col",class:{ loaderImg: !!frame.img },attrs:{"id":("frame-" + (_vm.getIndex(rowNumber, frameNumber, _vm.Positions.current)))},on:{"click":function($event){frame.time
|
|
1767
|
-
? _vm.selectFrame(
|
|
1768
|
-
_vm.getIndex(rowNumber, frameNumber, _vm.Positions.current),
|
|
1769
|
-
frame
|
|
1770
|
-
)
|
|
1771
|
-
: null;}}},[_c('span',{staticStyle:{"padding-left":"4px"},attrs:{"id":_vm.activeFrame ? 'aa' : 0}},[_c('b',[_vm._v("\n "+_vm._s(_vm.getAudienceTime(
|
|
1772
|
-
frame.time,
|
|
1773
|
-
rowNumber,
|
|
1774
|
-
frameNumber,
|
|
1775
|
-
_vm.Positions.current
|
|
1776
|
-
))+"\n ")])]),_vm._v(" "),_c('frame',{ref:"frames",refInFor:true,staticStyle:{"margin":"0 auto"},attrs:{"frame":frame,"index":_vm.getIndex(rowNumber, frameNumber, _vm.Positions.current),"grid-settings":{ numberOfRows: _vm.numberOfRows, framesPerRow: _vm.framesPerRow },"initialTime":frame.time === _vm.hourIniSelected,"endTime":frame.time === _vm.hourEndSelected,"betweenTime":frame.time > _vm.hourIniSelected && frame.time < _vm.hourEndSelected,"active":_vm.getIndex(rowNumber, frameNumber, _vm.Positions.current) ===
|
|
1777
|
-
_vm.activeFrame,"activeTab":_vm.active,"videoUrl":_vm.fInterface ? _vm.fInterface.getVideoUrl(frame) : '',"playback-rate":_vm.playbackRate},on:{"startPlaying":_vm.startPlaying,"stopPlaying":_vm.stopPlaying,"playPauseStatus":_vm.changePlayPause,"updateSlider":_vm.updateSlider}})],1)})],2)})],2)],1)},
|
|
1778
|
-
staticRenderFns: [],
|
|
3070
|
+
var script = {
|
|
1779
3071
|
name: 'visualization-container',
|
|
1780
3072
|
props: {
|
|
1781
3073
|
value: {
|
|
@@ -1811,11 +3103,11 @@ staticRenderFns: [],
|
|
|
1811
3103
|
}
|
|
1812
3104
|
},
|
|
1813
3105
|
components: {
|
|
1814
|
-
Frame,
|
|
1815
|
-
CommandBar:
|
|
1816
|
-
InfoBar:
|
|
1817
|
-
VideoProgress,
|
|
1818
|
-
Settings,
|
|
3106
|
+
Frame: __vue_component__$5,
|
|
3107
|
+
CommandBar: __vue_component__$4,
|
|
3108
|
+
InfoBar: __vue_component__$3,
|
|
3109
|
+
VideoProgress: __vue_component__$2,
|
|
3110
|
+
Settings: __vue_component__$1,
|
|
1819
3111
|
// Help,
|
|
1820
3112
|
},
|
|
1821
3113
|
data() {
|
|
@@ -2631,9 +3923,585 @@ staticRenderFns: [],
|
|
|
2631
3923
|
},
|
|
2632
3924
|
};
|
|
2633
3925
|
|
|
2634
|
-
|
|
3926
|
+
/* script */
|
|
3927
|
+
const __vue_script__ = script;
|
|
3928
|
+
|
|
3929
|
+
/* template */
|
|
3930
|
+
var __vue_render__ = function () {
|
|
3931
|
+
var _vm = this;
|
|
3932
|
+
var _h = _vm.$createElement;
|
|
3933
|
+
var _c = _vm._self._c || _h;
|
|
3934
|
+
return _c(
|
|
3935
|
+
"div",
|
|
3936
|
+
{
|
|
3937
|
+
staticClass: "visualization-row",
|
|
3938
|
+
attrs: { id: "visualization-container" },
|
|
3939
|
+
on: { click: _vm.framesClicked },
|
|
3940
|
+
},
|
|
3941
|
+
[
|
|
3942
|
+
_vm.active && _vm.canInsertTime && _vm.settingsClosed
|
|
3943
|
+
? _c("GlobalEvents", {
|
|
3944
|
+
on: {
|
|
3945
|
+
keydown: [
|
|
3946
|
+
function ($event) {
|
|
3947
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 45) {
|
|
3948
|
+
return null
|
|
3949
|
+
}
|
|
3950
|
+
return _vm.insertTime.apply(null, arguments)
|
|
3951
|
+
},
|
|
3952
|
+
function ($event) {
|
|
3953
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 46) {
|
|
3954
|
+
return null
|
|
3955
|
+
}
|
|
3956
|
+
return _vm.insertTime.apply(null, arguments)
|
|
3957
|
+
},
|
|
3958
|
+
],
|
|
3959
|
+
},
|
|
3960
|
+
})
|
|
3961
|
+
: _vm._e(),
|
|
3962
|
+
_vm._v(" "),
|
|
3963
|
+
_vm.active && _vm.settingsClosed
|
|
3964
|
+
? _c("GlobalEvents", {
|
|
3965
|
+
on: {
|
|
3966
|
+
keydown: [
|
|
3967
|
+
function ($event) {
|
|
3968
|
+
if (
|
|
3969
|
+
!$event.type.indexOf("key") &&
|
|
3970
|
+
_vm._k($event.keyCode, "left", 37, $event.key, [
|
|
3971
|
+
"Left",
|
|
3972
|
+
"ArrowLeft",
|
|
3973
|
+
])
|
|
3974
|
+
) {
|
|
3975
|
+
return null
|
|
3976
|
+
}
|
|
3977
|
+
if ("button" in $event && $event.button !== 0) {
|
|
3978
|
+
return null
|
|
3979
|
+
}
|
|
3980
|
+
$event.preventDefault();
|
|
3981
|
+
return _vm.arrowLeft.apply(null, arguments)
|
|
3982
|
+
},
|
|
3983
|
+
function ($event) {
|
|
3984
|
+
if (
|
|
3985
|
+
!$event.type.indexOf("key") &&
|
|
3986
|
+
_vm._k($event.keyCode, "right", 39, $event.key, [
|
|
3987
|
+
"Right",
|
|
3988
|
+
"ArrowRight",
|
|
3989
|
+
])
|
|
3990
|
+
) {
|
|
3991
|
+
return null
|
|
3992
|
+
}
|
|
3993
|
+
if ("button" in $event && $event.button !== 2) {
|
|
3994
|
+
return null
|
|
3995
|
+
}
|
|
3996
|
+
$event.preventDefault();
|
|
3997
|
+
return _vm.arrowRight.apply(null, arguments)
|
|
3998
|
+
},
|
|
3999
|
+
function ($event) {
|
|
4000
|
+
if (
|
|
4001
|
+
!$event.type.indexOf("key") &&
|
|
4002
|
+
_vm._k(
|
|
4003
|
+
$event.keyCode,
|
|
4004
|
+
"page-down",
|
|
4005
|
+
undefined,
|
|
4006
|
+
$event.key,
|
|
4007
|
+
undefined
|
|
4008
|
+
)
|
|
4009
|
+
) {
|
|
4010
|
+
return null
|
|
4011
|
+
}
|
|
4012
|
+
if (!$event.shiftKey) {
|
|
4013
|
+
return null
|
|
4014
|
+
}
|
|
4015
|
+
$event.preventDefault();
|
|
4016
|
+
return _vm.nextLoopActivate.apply(null, arguments)
|
|
4017
|
+
},
|
|
4018
|
+
function ($event) {
|
|
4019
|
+
if (
|
|
4020
|
+
!$event.type.indexOf("key") &&
|
|
4021
|
+
_vm._k(
|
|
4022
|
+
$event.keyCode,
|
|
4023
|
+
"page-down",
|
|
4024
|
+
undefined,
|
|
4025
|
+
$event.key,
|
|
4026
|
+
undefined
|
|
4027
|
+
)
|
|
4028
|
+
) {
|
|
4029
|
+
return null
|
|
4030
|
+
}
|
|
4031
|
+
$event.preventDefault();
|
|
4032
|
+
return _vm.next.apply(null, arguments)
|
|
4033
|
+
},
|
|
4034
|
+
function ($event) {
|
|
4035
|
+
if (
|
|
4036
|
+
!$event.type.indexOf("key") &&
|
|
4037
|
+
_vm._k(
|
|
4038
|
+
$event.keyCode,
|
|
4039
|
+
"page-up",
|
|
4040
|
+
undefined,
|
|
4041
|
+
$event.key,
|
|
4042
|
+
undefined
|
|
4043
|
+
)
|
|
4044
|
+
) {
|
|
4045
|
+
return null
|
|
4046
|
+
}
|
|
4047
|
+
$event.preventDefault();
|
|
4048
|
+
return _vm.prev.apply(null, arguments)
|
|
4049
|
+
},
|
|
4050
|
+
function ($event) {
|
|
4051
|
+
if (
|
|
4052
|
+
!$event.type.indexOf("key") &&
|
|
4053
|
+
_vm._k(
|
|
4054
|
+
$event.keyCode,
|
|
4055
|
+
"page-up",
|
|
4056
|
+
undefined,
|
|
4057
|
+
$event.key,
|
|
4058
|
+
undefined
|
|
4059
|
+
)
|
|
4060
|
+
) {
|
|
4061
|
+
return null
|
|
4062
|
+
}
|
|
4063
|
+
if (!$event.shiftKey) {
|
|
4064
|
+
return null
|
|
4065
|
+
}
|
|
4066
|
+
$event.preventDefault();
|
|
4067
|
+
return _vm.prevLoopActivate.apply(null, arguments)
|
|
4068
|
+
},
|
|
4069
|
+
function ($event) {
|
|
4070
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 83) {
|
|
4071
|
+
return null
|
|
4072
|
+
}
|
|
4073
|
+
$event.preventDefault();
|
|
4074
|
+
return _vm.setHourIni.apply(null, arguments)
|
|
4075
|
+
},
|
|
4076
|
+
function ($event) {
|
|
4077
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 69) {
|
|
4078
|
+
return null
|
|
4079
|
+
}
|
|
4080
|
+
$event.preventDefault();
|
|
4081
|
+
return _vm.setHourEnd.apply(null, arguments)
|
|
4082
|
+
},
|
|
4083
|
+
function ($event) {
|
|
4084
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 36) {
|
|
4085
|
+
return null
|
|
4086
|
+
}
|
|
4087
|
+
$event.preventDefault();
|
|
4088
|
+
return _vm.goToFirstFrame.apply(null, arguments)
|
|
4089
|
+
},
|
|
4090
|
+
function ($event) {
|
|
4091
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 35) {
|
|
4092
|
+
return null
|
|
4093
|
+
}
|
|
4094
|
+
$event.preventDefault();
|
|
4095
|
+
return _vm.goToLastFrame.apply(null, arguments)
|
|
4096
|
+
},
|
|
4097
|
+
function ($event) {
|
|
4098
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 71) {
|
|
4099
|
+
return null
|
|
4100
|
+
}
|
|
4101
|
+
$event.preventDefault();
|
|
4102
|
+
_vm.dialogs.goTo = true;
|
|
4103
|
+
},
|
|
4104
|
+
function ($event) {
|
|
4105
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 73) {
|
|
4106
|
+
return null
|
|
4107
|
+
}
|
|
4108
|
+
$event.preventDefault();
|
|
4109
|
+
_vm.dialogs.secondsPerFrame = true;
|
|
4110
|
+
},
|
|
4111
|
+
function ($event) {
|
|
4112
|
+
if (!$event.type.indexOf("key") && $event.keyCode !== 76) {
|
|
4113
|
+
return null
|
|
4114
|
+
}
|
|
4115
|
+
$event.preventDefault();
|
|
4116
|
+
_vm.dialogs.frames = true;
|
|
4117
|
+
},
|
|
4118
|
+
function ($event) {
|
|
4119
|
+
if (
|
|
4120
|
+
!$event.type.indexOf("key") &&
|
|
4121
|
+
$event.keyCode !== 49 &&
|
|
4122
|
+
$event.keyCode !== 97
|
|
4123
|
+
) {
|
|
4124
|
+
return null
|
|
4125
|
+
}
|
|
4126
|
+
return function () {
|
|
4127
|
+
return (_vm.secondsPerFrame = 1)
|
|
4128
|
+
}.apply(null, arguments)
|
|
4129
|
+
},
|
|
4130
|
+
function ($event) {
|
|
4131
|
+
if (
|
|
4132
|
+
!$event.type.indexOf("key") &&
|
|
4133
|
+
$event.keyCode !== 50 &&
|
|
4134
|
+
$event.keyCode !== 98
|
|
4135
|
+
) {
|
|
4136
|
+
return null
|
|
4137
|
+
}
|
|
4138
|
+
return function () {
|
|
4139
|
+
return (_vm.secondsPerFrame = 2)
|
|
4140
|
+
}.apply(null, arguments)
|
|
4141
|
+
},
|
|
4142
|
+
function ($event) {
|
|
4143
|
+
if (
|
|
4144
|
+
!$event.type.indexOf("key") &&
|
|
4145
|
+
$event.keyCode !== 51 &&
|
|
4146
|
+
$event.keyCode !== 99
|
|
4147
|
+
) {
|
|
4148
|
+
return null
|
|
4149
|
+
}
|
|
4150
|
+
return function () {
|
|
4151
|
+
return (_vm.secondsPerFrame = 3)
|
|
4152
|
+
}.apply(null, arguments)
|
|
4153
|
+
},
|
|
4154
|
+
function ($event) {
|
|
4155
|
+
if (
|
|
4156
|
+
!$event.type.indexOf("key") &&
|
|
4157
|
+
$event.keyCode !== 52 &&
|
|
4158
|
+
$event.keyCode !== 100
|
|
4159
|
+
) {
|
|
4160
|
+
return null
|
|
4161
|
+
}
|
|
4162
|
+
return function () {
|
|
4163
|
+
return (_vm.secondsPerFrame = 4)
|
|
4164
|
+
}.apply(null, arguments)
|
|
4165
|
+
},
|
|
4166
|
+
function ($event) {
|
|
4167
|
+
if (
|
|
4168
|
+
!$event.type.indexOf("key") &&
|
|
4169
|
+
$event.keyCode !== 53 &&
|
|
4170
|
+
$event.keyCode !== 101
|
|
4171
|
+
) {
|
|
4172
|
+
return null
|
|
4173
|
+
}
|
|
4174
|
+
return function () {
|
|
4175
|
+
return (_vm.secondsPerFrame = 5)
|
|
4176
|
+
}.apply(null, arguments)
|
|
4177
|
+
},
|
|
4178
|
+
],
|
|
4179
|
+
},
|
|
4180
|
+
})
|
|
4181
|
+
: _vm._e(),
|
|
4182
|
+
_vm._v(" "),
|
|
4183
|
+
_vm.prevLoop || _vm.nextLoop
|
|
4184
|
+
? _c("GlobalEvents", {
|
|
4185
|
+
on: { keydown: _vm.breakLoop, click: _vm.breakLoop },
|
|
4186
|
+
})
|
|
4187
|
+
: _vm._e(),
|
|
4188
|
+
_vm._v(" "),
|
|
4189
|
+
_vm.active
|
|
4190
|
+
? _c("settings", {
|
|
4191
|
+
attrs: {
|
|
4192
|
+
"dialogs-visibility": _vm.dialogs,
|
|
4193
|
+
"playback-rate": _vm.playbackRate,
|
|
4194
|
+
"seconds-per-frame": _vm.secondsPerFrame,
|
|
4195
|
+
"frames-per-row": _vm.framesPerRow,
|
|
4196
|
+
"number-of-rows": _vm.numberOfRows,
|
|
4197
|
+
},
|
|
4198
|
+
on: {
|
|
4199
|
+
"change-playback-rate": function (value) {
|
|
4200
|
+
return (_vm.playbackRate = value)
|
|
4201
|
+
},
|
|
4202
|
+
"change-go-to": _vm.changeHour,
|
|
4203
|
+
"change-seconds-per-frame": function (value) {
|
|
4204
|
+
return (_vm.secondsPerFrame = value)
|
|
4205
|
+
},
|
|
4206
|
+
"set-frames-selection": _vm.setFrameSelection,
|
|
4207
|
+
close: function (dialog) {
|
|
4208
|
+
return (_vm.dialogs[dialog] = false)
|
|
4209
|
+
},
|
|
4210
|
+
},
|
|
4211
|
+
})
|
|
4212
|
+
: _vm._e(),
|
|
4213
|
+
_vm._v(" "),
|
|
4214
|
+
_c(
|
|
4215
|
+
"div",
|
|
4216
|
+
{
|
|
4217
|
+
class: { "visualization-card": true, "active-tab": _vm.active },
|
|
4218
|
+
staticStyle: { width: "100%", padding: "0" },
|
|
4219
|
+
},
|
|
4220
|
+
[
|
|
4221
|
+
_c("command-bar", {
|
|
4222
|
+
directives: [
|
|
4223
|
+
{
|
|
4224
|
+
name: "show",
|
|
4225
|
+
rawName: "v-show",
|
|
4226
|
+
value: _vm.commandBarShow,
|
|
4227
|
+
expression: "commandBarShow",
|
|
4228
|
+
},
|
|
4229
|
+
],
|
|
4230
|
+
attrs: {
|
|
4231
|
+
"video-playing": _vm.videoPlaying,
|
|
4232
|
+
"video-paused": _vm.paused,
|
|
4233
|
+
"insert-time": _vm.canInsertTime,
|
|
4234
|
+
"hour-ini-selected": !!_vm.hourIniSelected,
|
|
4235
|
+
"hour-end-selected": !!_vm.hourEndSelected,
|
|
4236
|
+
},
|
|
4237
|
+
on: {
|
|
4238
|
+
"prev-loop-activate": _vm.prevLoopActivate,
|
|
4239
|
+
"next-loop-activate": _vm.nextLoopActivate,
|
|
4240
|
+
prev: _vm.prev,
|
|
4241
|
+
next: _vm.next,
|
|
4242
|
+
"go-to": function ($event) {
|
|
4243
|
+
_vm.dialogs.goTo = true;
|
|
4244
|
+
},
|
|
4245
|
+
"open-frame-selection": function ($event) {
|
|
4246
|
+
_vm.dialogs.frames = true;
|
|
4247
|
+
},
|
|
4248
|
+
"open-frames-per-second": function ($event) {
|
|
4249
|
+
_vm.dialogs.secondsPerFrame = true;
|
|
4250
|
+
},
|
|
4251
|
+
"open-blocks": _vm.openBlocks,
|
|
4252
|
+
"open-playback-rate": function ($event) {
|
|
4253
|
+
_vm.dialogs.playbackRate = true;
|
|
4254
|
+
},
|
|
4255
|
+
"play-or-pause": _vm.playOrPause,
|
|
4256
|
+
"stop-playing": _vm.stopPlayingBar,
|
|
4257
|
+
"set-hour-ini": _vm.setHourIni,
|
|
4258
|
+
"set-hour-end": _vm.setHourEnd,
|
|
4259
|
+
"insert-time": _vm.insertTime,
|
|
4260
|
+
},
|
|
4261
|
+
}),
|
|
4262
|
+
_vm._v(" "),
|
|
4263
|
+
_vm.videoProgressBar
|
|
4264
|
+
? _c("video-progress", {
|
|
4265
|
+
directives: [
|
|
4266
|
+
{
|
|
4267
|
+
name: "show",
|
|
4268
|
+
rawName: "v-show",
|
|
4269
|
+
value: _vm.videoPlaying,
|
|
4270
|
+
expression: "videoPlaying",
|
|
4271
|
+
},
|
|
4272
|
+
],
|
|
4273
|
+
attrs: { "video-time": _vm.videoTime },
|
|
4274
|
+
})
|
|
4275
|
+
: _vm._e(),
|
|
4276
|
+
_vm._v(" "),
|
|
4277
|
+
_c("info-bar", {
|
|
4278
|
+
attrs: {
|
|
4279
|
+
"playback-rate": _vm.playbackRate,
|
|
4280
|
+
"seconds-per-frame": _vm.secondsPerFrame,
|
|
4281
|
+
"commands-show": _vm.commandBarShow,
|
|
4282
|
+
cache: _vm.useCache,
|
|
4283
|
+
"block-start-time": _vm.blockStartTime,
|
|
4284
|
+
"video-total-duration": _vm.videoSliderTotalDuration,
|
|
4285
|
+
"alternative-server": _vm.alternativeServer,
|
|
4286
|
+
"frames-per-row": _vm.framesPerRow,
|
|
4287
|
+
"number-of-rows": _vm.numberOfRows,
|
|
4288
|
+
"hour-ini": _vm.hourIniSelected,
|
|
4289
|
+
"hour-end": _vm.hourEndSelected,
|
|
4290
|
+
},
|
|
4291
|
+
on: {
|
|
4292
|
+
"toogle-commands-visibility": function ($event) {
|
|
4293
|
+
_vm.commandBarShow = !_vm.commandBarShow;
|
|
4294
|
+
},
|
|
4295
|
+
"toogle-cache": function ($event) {
|
|
4296
|
+
_vm.useCache = !_vm.useCache;
|
|
4297
|
+
},
|
|
4298
|
+
"change-server": _vm.changeServerClick,
|
|
4299
|
+
},
|
|
4300
|
+
}),
|
|
4301
|
+
_vm._v(" "),
|
|
4302
|
+
_vm._l(_vm.numberOfRows, function (rowNumber) {
|
|
4303
|
+
return _c(
|
|
4304
|
+
"div",
|
|
4305
|
+
{
|
|
4306
|
+
key: "row-" + rowNumber,
|
|
4307
|
+
staticClass: "visualization-row",
|
|
4308
|
+
staticStyle: { padding: "12px" },
|
|
4309
|
+
attrs: { id: "row-" + rowNumber },
|
|
4310
|
+
},
|
|
4311
|
+
[
|
|
4312
|
+
_vm._l(_vm.previousFrames, function (frame, frameNumber) {
|
|
4313
|
+
return _c(
|
|
4314
|
+
"div",
|
|
4315
|
+
{
|
|
4316
|
+
key:
|
|
4317
|
+
_vm.numberOfRows +
|
|
4318
|
+
"-" +
|
|
4319
|
+
_vm.framesPerRow +
|
|
4320
|
+
"-" +
|
|
4321
|
+
_vm.getIndex(
|
|
4322
|
+
rowNumber,
|
|
4323
|
+
frameNumber,
|
|
4324
|
+
_vm.Positions.previous
|
|
4325
|
+
),
|
|
4326
|
+
staticStyle: { display: "none" },
|
|
4327
|
+
},
|
|
4328
|
+
[_c("span", { domProps: { innerHTML: _vm._s(frame.img) } })]
|
|
4329
|
+
)
|
|
4330
|
+
}),
|
|
4331
|
+
_vm._v(" "),
|
|
4332
|
+
_vm._l(_vm.nextFrames, function (frame, frameNumber) {
|
|
4333
|
+
return _c(
|
|
4334
|
+
"div",
|
|
4335
|
+
{
|
|
4336
|
+
key:
|
|
4337
|
+
_vm.numberOfRows +
|
|
4338
|
+
"-" +
|
|
4339
|
+
_vm.framesPerRow +
|
|
4340
|
+
"-" +
|
|
4341
|
+
_vm.getIndex(
|
|
4342
|
+
rowNumber,
|
|
4343
|
+
frameNumber,
|
|
4344
|
+
_vm.Positions.next
|
|
4345
|
+
),
|
|
4346
|
+
staticStyle: { display: "none" },
|
|
4347
|
+
},
|
|
4348
|
+
[_c("span", { domProps: { innerHTML: _vm._s(frame.img) } })]
|
|
4349
|
+
)
|
|
4350
|
+
}),
|
|
4351
|
+
_vm._v(" "),
|
|
4352
|
+
_vm._l(
|
|
4353
|
+
_vm.frames.slice(
|
|
4354
|
+
_vm.framesPerRow * (rowNumber - 1),
|
|
4355
|
+
_vm.framesPerRow * rowNumber
|
|
4356
|
+
),
|
|
4357
|
+
function (frame, frameNumber) {
|
|
4358
|
+
return _c(
|
|
4359
|
+
"div",
|
|
4360
|
+
{
|
|
4361
|
+
key: "row-" + rowNumber + "-frame-" + frameNumber,
|
|
4362
|
+
staticClass: "visualization-col",
|
|
4363
|
+
class: { loaderImg: !!frame.img },
|
|
4364
|
+
attrs: {
|
|
4365
|
+
id:
|
|
4366
|
+
"frame-" +
|
|
4367
|
+
_vm.getIndex(
|
|
4368
|
+
rowNumber,
|
|
4369
|
+
frameNumber,
|
|
4370
|
+
_vm.Positions.current
|
|
4371
|
+
),
|
|
4372
|
+
},
|
|
4373
|
+
on: {
|
|
4374
|
+
click: function ($event) {
|
|
4375
|
+
frame.time
|
|
4376
|
+
? _vm.selectFrame(
|
|
4377
|
+
_vm.getIndex(
|
|
4378
|
+
rowNumber,
|
|
4379
|
+
frameNumber,
|
|
4380
|
+
_vm.Positions.current
|
|
4381
|
+
),
|
|
4382
|
+
frame
|
|
4383
|
+
)
|
|
4384
|
+
: null;
|
|
4385
|
+
},
|
|
4386
|
+
},
|
|
4387
|
+
},
|
|
4388
|
+
[
|
|
4389
|
+
_c(
|
|
4390
|
+
"span",
|
|
4391
|
+
{
|
|
4392
|
+
staticStyle: { "padding-left": "4px" },
|
|
4393
|
+
attrs: { id: _vm.activeFrame ? "aa" : 0 },
|
|
4394
|
+
},
|
|
4395
|
+
[
|
|
4396
|
+
_c("b", [
|
|
4397
|
+
_vm._v(
|
|
4398
|
+
"\n " +
|
|
4399
|
+
_vm._s(
|
|
4400
|
+
_vm.getAudienceTime(
|
|
4401
|
+
frame.time,
|
|
4402
|
+
rowNumber,
|
|
4403
|
+
frameNumber,
|
|
4404
|
+
_vm.Positions.current
|
|
4405
|
+
)
|
|
4406
|
+
) +
|
|
4407
|
+
"\n "
|
|
4408
|
+
),
|
|
4409
|
+
]),
|
|
4410
|
+
]
|
|
4411
|
+
),
|
|
4412
|
+
_vm._v(" "),
|
|
4413
|
+
_c("frame", {
|
|
4414
|
+
ref: "frames",
|
|
4415
|
+
refInFor: true,
|
|
4416
|
+
staticStyle: { margin: "0 auto" },
|
|
4417
|
+
attrs: {
|
|
4418
|
+
frame: frame,
|
|
4419
|
+
index: _vm.getIndex(
|
|
4420
|
+
rowNumber,
|
|
4421
|
+
frameNumber,
|
|
4422
|
+
_vm.Positions.current
|
|
4423
|
+
),
|
|
4424
|
+
"grid-settings": {
|
|
4425
|
+
numberOfRows: _vm.numberOfRows,
|
|
4426
|
+
framesPerRow: _vm.framesPerRow,
|
|
4427
|
+
},
|
|
4428
|
+
initialTime: frame.time === _vm.hourIniSelected,
|
|
4429
|
+
endTime: frame.time === _vm.hourEndSelected,
|
|
4430
|
+
betweenTime:
|
|
4431
|
+
frame.time > _vm.hourIniSelected &&
|
|
4432
|
+
frame.time < _vm.hourEndSelected,
|
|
4433
|
+
active:
|
|
4434
|
+
_vm.getIndex(
|
|
4435
|
+
rowNumber,
|
|
4436
|
+
frameNumber,
|
|
4437
|
+
_vm.Positions.current
|
|
4438
|
+
) === _vm.activeFrame,
|
|
4439
|
+
activeTab: _vm.active,
|
|
4440
|
+
videoUrl: _vm.fInterface
|
|
4441
|
+
? _vm.fInterface.getVideoUrl(frame)
|
|
4442
|
+
: "",
|
|
4443
|
+
"playback-rate": _vm.playbackRate,
|
|
4444
|
+
},
|
|
4445
|
+
on: {
|
|
4446
|
+
startPlaying: _vm.startPlaying,
|
|
4447
|
+
stopPlaying: _vm.stopPlaying,
|
|
4448
|
+
playPauseStatus: _vm.changePlayPause,
|
|
4449
|
+
updateSlider: _vm.updateSlider,
|
|
4450
|
+
},
|
|
4451
|
+
}),
|
|
4452
|
+
],
|
|
4453
|
+
1
|
|
4454
|
+
)
|
|
4455
|
+
}
|
|
4456
|
+
),
|
|
4457
|
+
],
|
|
4458
|
+
2
|
|
4459
|
+
)
|
|
4460
|
+
}),
|
|
4461
|
+
],
|
|
4462
|
+
2
|
|
4463
|
+
),
|
|
4464
|
+
],
|
|
4465
|
+
1
|
|
4466
|
+
)
|
|
4467
|
+
};
|
|
4468
|
+
var __vue_staticRenderFns__ = [];
|
|
4469
|
+
__vue_render__._withStripped = true;
|
|
4470
|
+
|
|
4471
|
+
/* style */
|
|
4472
|
+
const __vue_inject_styles__ = function (inject) {
|
|
4473
|
+
if (!inject) return
|
|
4474
|
+
inject("data-v-576d506a_0", { source: "\n.visualization-row[data-v-576d506a] {\n display: flex;\n flex-wrap: wrap;\n flex: 1 1 auto;\n}\n.visualization-col[data-v-576d506a] {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n padding: 12px;\n}\n.visualization-divider[data-v-576d506a] {\n display: block;\n flex: 1 1 100%;\n height: 0px;\n max-height: 0px;\n opacity: 1;\n transition: inherit;\n border-style: solid;\n border-width: thin 0 0 0;\n border-color: rgba(0, 0, 0, 0.12);\n margin: 0;\n}\n.visualization-divider.vertical[data-v-576d506a] {\n align-self: stretch;\n border-width: 0 thin 0 0;\n display: inline-flex;\n height: inherit;\n margin-left: -1px;\n max-height: 100%;\n max-width: 0px;\n vertical-align: text-bottom;\n width: 0px;\n}\n.visualization-card[data-v-576d506a] {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n padding: 12px;\n width: 100%;\n transition-property: box-shadow, opacity, -webkit-box-shadow;\n overflow-wrap: break-word;\n /*box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14),\n 0 1px 5px 0 rgba(0, 0, 0, 0.12);*/\n}\n.visualization-justify-center[data-v-576d506a] {\n justify-content: center;\n}\n.visualization-align-center[data-v-576d506a] {\n align-items: center;\n}\n#visualization-container[data-v-576d506a] {\n max-width: 100% !important;\n margin: 0 auto !important;\n height: 100%;\n border-bottom: none;\n}\n#visualization-container > .card[data-v-576d506a] {\n border-radius: 0 !important;\n font-size: 12px;\n width: 100%;\n box-shadow: none;\n height: 100%;\n}\n#command-bar[data-v-576d506a],\n#info-bar[data-v-576d506a] {\n background-color: #f5f5f5;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14),\n 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n#command-bar button[data-v-576d506a] {\n width: 42px;\n height: 36px;\n border: none;\n background: none;\n}\n#command-bar button[data-v-576d506a]:hover {\n cursor: pointer;\n background: rgba(0, 0, 0, 0.12);\n}\n#command-bar svg[data-v-576d506a] {\n font-size: 16px;\n}\n#command-bar[data-v-576d506a] {\n padding: 0 !important;\n}\n#info-bar[data-v-576d506a] {\n padding: 4px;\n font-size: 14px;\n position: relative;\n}\n.settings-container[data-v-576d506a] {\n position: absolute;\n right: 14px;\n top: 50%;\n transform: translateY(-50%);\n}\n.settings-container > *[data-v-576d506a] {\n margin: 0 2px;\n cursor: pointer;\n}\n#info-bar svg[data-v-576d506a] {\n font-size: 16px;\n}\n#info-bar .divider[data-v-576d506a] {\n margin: 0 8px;\n}\nsvg[data-v-576d506a]:focus {\n border: none;\n}\n.visualization-card[data-v-576d506a] {\n border-left: 8px solid #eee;\n}\n.active-tab[data-v-576d506a] {\n border-left: 8px solid var(--visualization-primary) !important;\n border-image-slice: 1;\n}\n[id^='frame-'][data-v-576d506a] {\n padding: 1px;\n display: flex;\n flex-flow: column;\n}\n.tooltip[data-v-576d506a] {\n display: block !important;\n z-index: 10000;\n}\n.tooltip .tooltip-inner[data-v-576d506a] {\n background: var(--visualization-primary);\n color: white;\n border-radius: 16px;\n padding: 5px 10px 4px;\n}\n.tooltip .tooltip-arrow[data-v-576d506a] {\n width: 0;\n height: 0;\n border-style: solid;\n position: absolute;\n margin: 5px;\n border-color: var(--visualization-primary);\n z-index: 1;\n}\n.tooltip[x-placement^='top'][data-v-576d506a] {\n margin-bottom: 5px;\n}\n.tooltip[x-placement^='top'] .tooltip-arrow[data-v-576d506a] {\n border-width: 5px 5px 0 5px;\n border-left-color: transparent !important;\n border-right-color: transparent !important;\n border-bottom-color: transparent !important;\n bottom: -5px;\n left: calc(50% - 5px);\n margin-top: 0;\n margin-bottom: 0;\n}\n.tooltip[x-placement^='bottom'][data-v-576d506a] {\n margin-top: 5px;\n}\n.tooltip[x-placement^='bottom'] .tooltip-arrow[data-v-576d506a] {\n border-width: 0 5px 5px 5px;\n border-left-color: transparent !important;\n border-right-color: transparent !important;\n border-top-color: transparent !important;\n top: -5px;\n left: calc(50% - 5px);\n margin-top: 0;\n margin-bottom: 0;\n}\n.tooltip[x-placement^='right'][data-v-576d506a] {\n margin-left: 5px;\n}\n.tooltip[x-placement^='right'] .tooltip-arrow[data-v-576d506a] {\n border-width: 5px 5px 5px 0;\n border-left-color: transparent !important;\n border-top-color: transparent !important;\n border-bottom-color: transparent !important;\n left: -5px;\n top: calc(50% - 5px);\n margin-left: 0;\n margin-right: 0;\n}\n.tooltip[x-placement^='left'][data-v-576d506a] {\n margin-right: 5px;\n}\n.tooltip[x-placement^='left'] .tooltip-arrow[data-v-576d506a] {\n border-width: 5px 0 5px 5px;\n border-top-color: transparent !important;\n border-right-color: transparent !important;\n border-bottom-color: transparent !important;\n right: -5px;\n top: calc(50% - 5px);\n margin-left: 0;\n margin-right: 0;\n}\n.tooltip.popover .popover-inner[data-v-576d506a] {\n background: #f9f9f9;\n color: black;\n padding: 24px;\n border-radius: 5px;\n box-shadow: 0 5px 30px rgba(black, 0.1);\n}\n.tooltip.popover .popover-arrow[data-v-576d506a] {\n border-color: #f9f9f9;\n}\n.tooltip[aria-hidden='true'][data-v-576d506a] {\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.15s, visibility 0.15s;\n}\n.tooltip[aria-hidden='false'][data-v-576d506a] {\n visibility: visible;\n opacity: 1;\n transition: opacity 0.15s;\n}\n", map: {"version":3,"sources":["C:\\workspace\\visualization\\src\\Visualization.vue"],"names":[],"mappings":";AA0mCA;EACA,aAAA;EACA,eAAA;EACA,cAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;EACA,eAAA;EACA,aAAA;AACA;AAEA;EACA,cAAA;EACA,cAAA;EACA,WAAA;EACA,eAAA;EACA,UAAA;EACA,mBAAA;EACA,mBAAA;EACA,wBAAA;EACA,iCAAA;EACA,SAAA;AACA;AAEA;EACA,mBAAA;EACA,wBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,cAAA;EACA,2BAAA;EACA,UAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;EACA,eAAA;EACA,aAAA;EACA,WAAA;EACA,4DAAA;EACA,yBAAA;EACA;qCACA;AACA;AAEA;EACA,uBAAA;AACA;AAEA;EACA,mBAAA;AACA;AAEA;EACA,0BAAA;EACA,yBAAA;EACA,YAAA;EACA,mBAAA;AACA;AACA;EACA,2BAAA;EACA,eAAA;EACA,WAAA;EACA,gBAAA;EACA,YAAA;AACA;AAEA;;EAEA,yBAAA;EACA;mCACA;AACA;AACA;EACA,WAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;AACA;AAEA;EACA,eAAA;EACA,+BAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,qBAAA;AACA;AAEA;EACA,YAAA;EACA,eAAA;EACA,kBAAA;AACA;AAEA;EACA,kBAAA;EACA,WAAA;EACA,QAAA;EACA,2BAAA;AACA;AAEA;EACA,aAAA;EACA,eAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,aAAA;AACA;AAEA;EACA,YAAA;AACA;AAEA;EACA,2BAAA;AACA;AAEA;EACA,8DAAA;EACA,qBAAA;AACA;AAEA;EACA,YAAA;EACA,aAAA;EACA,iBAAA;AACA;AAEA;EACA,yBAAA;EACA,cAAA;AACA;AAEA;EACA,wCAAA;EACA,YAAA;EACA,mBAAA;EACA,qBAAA;AACA;AAEA;EACA,QAAA;EACA,SAAA;EACA,mBAAA;EACA,kBAAA;EACA,WAAA;EACA,0CAAA;EACA,UAAA;AACA;AAEA;EACA,kBAAA;AACA;AAEA;EACA,2BAAA;EACA,yCAAA;EACA,0CAAA;EACA,2CAAA;EACA,YAAA;EACA,qBAAA;EACA,aAAA;EACA,gBAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,2BAAA;EACA,yCAAA;EACA,0CAAA;EACA,wCAAA;EACA,SAAA;EACA,qBAAA;EACA,aAAA;EACA,gBAAA;AACA;AAEA;EACA,gBAAA;AACA;AAEA;EACA,2BAAA;EACA,yCAAA;EACA,wCAAA;EACA,2CAAA;EACA,UAAA;EACA,oBAAA;EACA,cAAA;EACA,eAAA;AACA;AAEA;EACA,iBAAA;AACA;AAEA;EACA,2BAAA;EACA,wCAAA;EACA,0CAAA;EACA,2CAAA;EACA,WAAA;EACA,oBAAA;EACA,cAAA;EACA,eAAA;AACA;AAEA;EACA,mBAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,uCAAA;AACA;AAEA;EACA,qBAAA;AACA;AAEA;EACA,kBAAA;EACA,UAAA;EACA,2CAAA;AACA;AAEA;EACA,mBAAA;EACA,UAAA;EACA,yBAAA;AACA","file":"Visualization.vue","sourcesContent":["<template>\n <div\n class=\"visualization-row\"\n id=\"visualization-container\"\n @click=\"framesClicked\"\n >\n <GlobalEvents\n v-if=\"active && canInsertTime && settingsClosed\"\n @keydown.45=\"insertTime\"\n @keydown.46=\"insertTime\"\n />\n <GlobalEvents\n v-if=\"active && settingsClosed\"\n @keydown.left.prevent=\"arrowLeft\"\n @keydown.right.prevent=\"arrowRight\"\n @keydown.shift.page-down.prevent=\"nextLoopActivate\"\n @keydown.page-down.prevent=\"next\"\n @keydown.page-up.prevent=\"prev\"\n @keydown.shift.page-up.prevent=\"prevLoopActivate\"\n @keydown.83.prevent=\"setHourIni\"\n @keydown.69.prevent=\"setHourEnd\"\n @keydown.36.prevent=\"goToFirstFrame\"\n @keydown.35.prevent=\"goToLastFrame\"\n @keydown.71.prevent=\"dialogs.goTo = true\"\n @keydown.73.prevent=\"dialogs.secondsPerFrame = true\"\n @keydown.76.prevent=\"dialogs.frames = true\"\n @keydown.49.97=\"() => (secondsPerFrame = 1)\"\n @keydown.50.98=\"() => (secondsPerFrame = 2)\"\n @keydown.51.99=\"() => (secondsPerFrame = 3)\"\n @keydown.52.100=\"() => (secondsPerFrame = 4)\"\n @keydown.53.101=\"() => (secondsPerFrame = 5)\"\n />\n <GlobalEvents\n v-if=\"prevLoop || nextLoop\"\n @keydown=\"breakLoop\"\n v-on:click=\"breakLoop\"\n />\n <settings\n v-if=\"active\"\n :dialogs-visibility=\"dialogs\"\n :playback-rate=\"playbackRate\"\n :seconds-per-frame=\"secondsPerFrame\"\n :frames-per-row=\"framesPerRow\"\n :number-of-rows=\"numberOfRows\"\n @change-playback-rate=\"(value) => (playbackRate = value)\"\n @change-go-to=\"changeHour\"\n @change-seconds-per-frame=\"(value) => (secondsPerFrame = value)\"\n @set-frames-selection=\"setFrameSelection\"\n @close=\"(dialog) => (dialogs[dialog] = false)\"\n />\n <div\n :class=\"{ 'visualization-card': true, 'active-tab': active }\"\n style=\"width: 100%; padding: 0\"\n >\n <command-bar\n v-show=\"commandBarShow\"\n :video-playing=\"videoPlaying\"\n :video-paused=\"paused\"\n :insert-time=\"canInsertTime\"\n :hour-ini-selected=\"!!hourIniSelected\"\n :hour-end-selected=\"!!hourEndSelected\"\n @prev-loop-activate=\"prevLoopActivate\"\n @next-loop-activate=\"nextLoopActivate\"\n @prev=\"prev\"\n @next=\"next\"\n @go-to=\"dialogs.goTo = true\"\n @open-frame-selection=\"dialogs.frames = true\"\n @open-frames-per-second=\"dialogs.secondsPerFrame = true\"\n @open-blocks=\"openBlocks\"\n @open-playback-rate=\"dialogs.playbackRate = true\"\n @play-or-pause=\"playOrPause\"\n @stop-playing=\"stopPlayingBar\"\n @set-hour-ini=\"setHourIni\"\n @set-hour-end=\"setHourEnd\"\n @insert-time=\"insertTime\"\n />\n <video-progress\n v-if=\"videoProgressBar\"\n v-show=\"videoPlaying\"\n :video-time=\"videoTime\"\n />\n <info-bar\n :playback-rate=\"playbackRate\"\n :seconds-per-frame=\"secondsPerFrame\"\n :commands-show=\"commandBarShow\"\n :cache=\"useCache\"\n :block-start-time=\"blockStartTime\"\n :video-total-duration=\"videoSliderTotalDuration\"\n :alternative-server=\"alternativeServer\"\n :frames-per-row=\"framesPerRow\"\n :number-of-rows=\"numberOfRows\"\n :hour-ini=\"hourIniSelected\"\n :hour-end=\"hourEndSelected\"\n @toogle-commands-visibility=\"commandBarShow = !commandBarShow\"\n @toogle-cache=\"useCache = !useCache\"\n @change-server=\"changeServerClick\"\n />\n <div\n class=\"visualization-row\"\n v-for=\"rowNumber in numberOfRows\"\n :id=\"'row-' + rowNumber\"\n :key=\"'row-' + rowNumber\"\n style=\"padding: 12px\"\n >\n <div\n v-for=\"(frame, frameNumber) in previousFrames\"\n :key=\"\n numberOfRows +\n '-' +\n framesPerRow +\n '-' +\n getIndex(rowNumber, frameNumber, Positions.previous)\n \"\n style=\"display: none\"\n >\n <span v-html=\"frame.img\" />\n </div>\n <div\n v-for=\"(frame, frameNumber) in nextFrames\"\n :key=\"\n numberOfRows +\n '-' +\n framesPerRow +\n '-' +\n getIndex(rowNumber, frameNumber, Positions.next)\n \"\n style=\"display: none\"\n >\n <span v-html=\"frame.img\" />\n </div>\n <div\n class=\"visualization-col\"\n v-for=\"(frame, frameNumber) in frames.slice(\n framesPerRow * (rowNumber - 1),\n framesPerRow * rowNumber\n )\"\n :key=\"'row-' + rowNumber + '-frame-' + frameNumber\"\n :id=\"`frame-${getIndex(rowNumber, frameNumber, Positions.current)}`\"\n :class=\"{ loaderImg: !!frame.img }\"\n @click=\"\n frame.time\n ? selectFrame(\n getIndex(rowNumber, frameNumber, Positions.current),\n frame\n )\n : null\n \"\n >\n <span :id=\"activeFrame ? 'aa' : 0\" style=\"padding-left: 4px\">\n <b>\n {{\n getAudienceTime(\n frame.time,\n rowNumber,\n frameNumber,\n Positions.current\n )\n }}\n </b>\n </span>\n\n <frame\n ref=\"frames\"\n :frame=\"frame\"\n :index=\"getIndex(rowNumber, frameNumber, Positions.current)\"\n :grid-settings=\"{ numberOfRows, framesPerRow }\"\n :initialTime=\"frame.time === hourIniSelected\"\n :endTime=\"frame.time === hourEndSelected\"\n :betweenTime=\"\n frame.time > hourIniSelected && frame.time < hourEndSelected\n \"\n :active=\"\n getIndex(rowNumber, frameNumber, Positions.current) ===\n activeFrame\n \"\n :activeTab=\"active\"\n :videoUrl=\"fInterface ? fInterface.getVideoUrl(frame) : ''\"\n @startPlaying=\"startPlaying\"\n @stopPlaying=\"stopPlaying\"\n @playPauseStatus=\"changePlayPause\"\n @updateSlider=\"updateSlider\"\n :playback-rate=\"playbackRate\"\n style=\"margin: 0 auto\"\n ></frame>\n </div>\n </div>\n </div>\n <!-- <settings\n ref=\"settings2\"\n :active=\"active\"\n @goToTime=\"changeHour\"\n @goToBlockInterval=\"changeBlockInterval\"\n @setSplitTime=\"setSplitTime\"\n @setFrameSelection=\"setFrameSelection\"\n @setPlaybackRate=\"\n (rate) => {\n playbackRate = rate\n }\n \"\n >\n </settings> -->\n <!-- <v-dialog v-model=\"dialog\" width=\"500\">\n <div class=\"card\">\n <div class=\"card\"-title class=\"text-h5 grey lighten-2\">\n {{ ' Último bloco disponível até: ' }}\n <v-btn\n @click=\"goToStartBlock\"\n class=\"ml-2\"\n dark\n color=\"success\"\n depressed\n >\n <v-icon left> fa-clock </v-icon>\n {{ timeLastBlock }}\n </v-btn>\n <v-spacer></v-spacer>\n <v-btn color=\"error\" fab small class=\"ml-5\" @click=\"dialog = false\">\n <v-icon dark> fa fa-xmark </v-icon>\n </v-btn>\n </div-title>\n </div>\n </v-dialog>\n <Help :media=\"media\" @close=\"media = null\" />\n <v-dialog\n v-if=\"userMultiTabsGrid\"\n v-model=\"userMultiTabsGridsModel\"\n persistent\n width=\"60%\"\n >\n <div class=\"card\">\n <div class=\"card\"-title class=\"warning text-h5\" primary-title>\n <div class=\"row\" class=\"ma-0\" justify=\"center\" align=\"center\">\n <v-icon dark left style=\"font-size: 24px !important\">\n fa fa-exclamation-triangle\n </v-icon>\n <div style=\"color: white\">{{ $t('form.alert') }}</div>\n </div>\n </div-title>\n <div class=\"card\"-text class=\"justify-center pa-6 grey lighten-2\">\n <h3>\n {{ $t('alerts.userMultiTabsGrid') }}\n </h3>\n </div-text>\n <hr class=\"divider\" class=\"grey lighten-1\"></span>\n <div class=\"card\"-actions class=\"grey lighten-2 justify-center\">\n <v-btn color=\"error\" ml-5 @click=\"userMultiTabsGrid = false\">\n <v-icon left color=\"white\">fa fa-times</v-icon>\n {{ $t('form.close') }}\n </v-btn>\n </div-actions>\n </div>\n </v-dialog> -->\n </div>\n</template>\n<script>\nimport Frame from './components/Frame.vue'\nimport FramesInterface from './utils/FramesInterface.js'\nimport FramesService from './services/FramesService.js'\n\nimport Commands from './components/Commands.vue'\nimport Infos from './components/Infos.vue'\nimport VideoProgress from './components/VideoProgress.vue'\nimport Settings from './components/Settings.vue'\n\nconst Positions = Object.freeze({\n previous: 0,\n current: 1,\n next: 2,\n})\n\nexport default {\n name: 'visualization-container',\n props: {\n value: {\n type: Boolean,\n required: true,\n },\n date: {\n type: String,\n required: true,\n },\n channel: {\n type: Number,\n required: true,\n },\n startAudienceTime: {\n type: String,\n required: true,\n },\n videoProgressBar: {\n type: Boolean,\n default: false,\n },\n jumpOnInsert: {\n type: Boolean,\n default: false,\n },\n framesFormat: {\n type: [Number, String],\n default: 6,\n },\n maxSize: {\n type: Number,\n }\n },\n components: {\n Frame,\n CommandBar: Commands,\n InfoBar: Infos,\n VideoProgress,\n Settings,\n // Help,\n },\n data() {\n return {\n Positions,\n updatingChannel: null,\n dialog: false,\n timeLastBlock: null,\n alternativeServer: false,\n useCache: true,\n numberOfRows: 1,\n framesPerRow: 5,\n secondsPerFrame: 1,\n fInterface: null,\n velocity: 1,\n frames: [],\n previousFrames: [],\n nextFrames: [],\n channelCode: 0,\n videoPlaying: false,\n activeFrame: null,\n activeVideo: null,\n videoTime: 0,\n videoTotalTime: null,\n progressVideoDrag: false,\n hourIniSelected: false,\n hourEndSelected: false,\n canInsertTime: false,\n lastHeight: 0,\n loopInterval: null,\n nextLoop: false,\n prevLoop: false,\n videoSliderTotalDuration: 900,\n blockStartTime: null,\n media: null,\n changeServer: false,\n userMultiTabsGrid: false,\n userMultiTabsGridsModel: true,\n playbackRate: 1,\n paused: false,\n commandBarShow: true,\n dialogs: {\n playbackRate: false,\n goTo: false,\n secondsPerFrame: false,\n frames: false,\n },\n }\n },\n async created() {\n this.changeServer = this.serverOfFrames === 'alternative'\n this.alternativeServer = this.serverOfFrames === 'alternative'\n\n const settings = [\n {\n framesPerRow: 2,\n numberOfRows: 1,\n },\n {\n framesPerRow: 3,\n numberOfRows: 1,\n },\n {\n framesPerRow: 3,\n numberOfRows: 2,\n },\n {\n framesPerRow: 4,\n numberOfRows: 1,\n },\n {\n framesPerRow: 4,\n numberOfRows: 2,\n },\n {\n framesPerRow: 5,\n numberOfRows: 1,\n },\n {\n framesPerRow: 5,\n numberOfRows: 2,\n },\n {\n framesPerRow: 6,\n numberOfRows: 1,\n },\n {\n framesPerRow: 6,\n numberOfRows: 2,\n },\n ]\n\n const storedOnDb = settings[parseInt(this.framesFormat) - 1]\n this.framesPerRow = storedOnDb.framesPerRow\n this.numberOfRows = storedOnDb.numberOfRows\n\n await this.createFramesInterface()\n if (this.maxSize) {\n this.resize(this.maxSize, true)\n }\n },\n methods: {\n framesClicked(e) {\n if (e.target.id != 'insert') {\n this.active = true\n }\n },\n async goToStartBlock() {\n try {\n const d = new Date()\n let timestamp = Date.UTC(\n d.getFullYear(),\n d.getMonth(),\n d.getDate(),\n d.getHours(),\n d.getMinutes(),\n d.getSeconds()\n )\n\n const response = (\n await FramesService.getNextAvailableBlock({\n channel: this.channel,\n time: timestamp / 1000,\n })\n ).data\n\n this.dialog = false\n this.changeHour(this.convertToAudienceTime(response.data.start, ':'))\n } catch (err) {\n console.error(err)\n }\n },\n async checkAvailableBlock() {\n try {\n const d = new Date()\n let timestamp = Date.UTC(\n d.getFullYear(),\n d.getMonth(),\n d.getDate(),\n d.getHours(),\n d.getMinutes(),\n d.getSeconds()\n )\n\n const response = (\n await FramesService.getNextAvailableBlock({\n channel: this.channel,\n time: timestamp / 1000,\n })\n ).data\n\n this.timeLastBlock = this.convertToAudienceTime(response.data.end, ':')\n this.dialog = true\n if (!response.status) {\n this.timeLastBlock = 'N/D'\n }\n } catch (err) {\n console.error(err)\n }\n },\n updateSlider(videoStartTime, time) {\n // * atualizar slider se estiver fora do range definido previamente\n if (\n time < this.blockStartTime ||\n time > this.blockStartTime ||\n videoStartTime > this.blockStartTime + this.videoSliderTotalDuration\n ) {\n this.blockStartTime = videoStartTime\n this.videoSliderTotalDuration = 900\n }\n },\n nextLoopActivate() {\n this.breakLoop()\n this.loopInterval = setInterval(this.next, 40)\n setTimeout(() => {\n this.nextLoop = true\n }, 0)\n },\n prevLoopActivate() {\n this.breakLoop()\n this.loopInterval = setInterval(this.prev, 40)\n setTimeout(() => {\n this.prevLoop = true\n }, 0)\n },\n breakLoop() {\n clearInterval(this.loopInterval)\n this.loopInterval = null\n this.nextLoop = false\n this.prevLoop = false\n },\n changePlayPause(status) {\n this.paused = !status\n },\n resize(height=this.lastHeight) {\n this.lastHeight = height\n if (this.$refs.frames) {\n for (let frame of this.$refs.frames) {\n frame.resize(height)\n }\n }\n this.$emit('resized')\n },\n async goToFirstFrame() {\n let frames = this.$refs.frames\n\n let audienceTime = null\n if (frames.length > 0) {\n let frame = frames[0].frame\n audienceTime = this.getAudienceTime(frame.time, 0, 0, 0)\n }\n // if (audienceTime) {\n // this.changeHour(this.getLastFirtsBlockTime(audienceTime, true))\n // }\n if (audienceTime) {\n const [hours, minutes, seconds] = audienceTime.split(':')\n const totalSeconds =\n parseInt(hours) * 3600 + parseInt(minutes) * 60 + parseInt(seconds)\n if (totalSeconds >= 9000)\n this.changeHour(this.getLastFirtsBlockTime(audienceTime, true))\n else this.changeHour(this.getLastFirtsBlockTime('02:30:00', true))\n }\n },\n async goToLastFrame() {\n let frames = this.$refs.frames\n let audienceTime = null\n if (frames.length > 0) {\n let frame = frames[0].frame\n\n audienceTime = this.getAudienceTime(frame.time, 0, 0, 0)\n }\n if (audienceTime) {\n this.changeHour(this.getLastFirtsBlockTime(audienceTime))\n }\n },\n getLastFirtsBlockTime(time, first = false) {\n if (time.indexOf(':') !== -1) {\n time = time.replace(/:/g, '')\n }\n let h, m, newTime\n const t = time.match(/.{1,2}/g)\n if (t[0] && t[1]) {\n h = parseInt(t[0])\n m = parseInt(t[1])\n }\n if (h < 26) {\n if (m < 15)\n if (first) newTime = t[0] + ':00:00'\n else newTime = t[0] + ':14:59'\n else if (m < 30)\n if (first) newTime = t[0] + ':15:00'\n else newTime = t[0] + ':29:59'\n else if (m < 45)\n if (first) newTime = t[0] + ':30:00'\n else newTime = t[0] + ':44:59'\n else if (first) newTime = t[0] + ':45:00'\n else newTime = t[0] + ':59:59'\n } else {\n if (m < 15)\n if (first) newTime = '26:00:00'\n else newTime = '26:14:59'\n else {\n if (first) newTime = '26:15:00'\n else newTime = '26:29:59'\n }\n }\n return newTime\n },\n openBlocks() {\n this.$refs.settings2?.openBlocks()\n },\n playOrPause() {\n const array = this.$refs.frames.filter((fc) => !!fc.active)\n if (array.length === 1) {\n const frame = array[0]\n frame.playOrPause(this.playbackRate)\n }\n },\n stopPlayingBar() {\n for (let ref of this.$refs.frames) {\n if (\n ref.videoStatus === ref.Status.playing ||\n ref.videoStatus === ref.Status.paused\n ) {\n ref.stop(false)\n }\n }\n },\n async setFrameSelection(selected) {\n this.frames = this.loadingArray\n switch (parseInt(selected)) {\n // 2x1\n case 1:\n this.framesPerRow = 2\n this.numberOfRows = 1\n break\n // 3x1\n case 2:\n this.framesPerRow = 3\n this.numberOfRows = 1\n break\n // 3x2\n case 3:\n this.framesPerRow = 3\n this.numberOfRows = 2\n break\n // 4x1\n case 4:\n this.framesPerRow = 4\n this.numberOfRows = 1\n break\n // 4x2\n case 5:\n this.framesPerRow = 4\n this.numberOfRows = 2\n break\n // 5x1\n case 6:\n this.framesPerRow = 5\n this.numberOfRows = 1\n break\n // 5x2\n case 7:\n this.framesPerRow = 5\n this.numberOfRows = 2\n break\n // 6x1\n case 8:\n this.framesPerRow = 6\n this.numberOfRows = 1\n break\n // 6x2\n case 9:\n this.framesPerRow = 6\n this.numberOfRows = 2\n break\n }\n await this.fInterface.changeSize(this.numberOfRows, this.framesPerRow)\n this.getFramesArray()\n setTimeout(() => {\n for (let ref of this.$refs.frames) {\n ref?.resize(this.lastHeight)\n }\n }, 150)\n },\n getFramesArray() {\n this.frames = this.fInterface.getFrames(Positions.current)\n this.nextFrames = this.fInterface.getFrames(Positions.next)\n this.previousFrames = this.fInterface.getFrames(Positions.previous)\n },\n async createFramesInterface() {\n this.frames = this.loadingArray\n let ch = this.channel\n let associationTMP = {\n 1735073: 1,\n 1735074: 139,\n 1735075: 3,\n 1735076: 132,\n }\n //\n this.channelCode = associationTMP[ch] ? associationTMP[ch] : ch\n\n const t = this.startAudienceTime.match(/.{1,2}/g)\n const d = this.getDateParts()\n const time = Date.UTC(d.year, d.month, d.day, t[0], t[1], t[2]) / 1000\n // * iniciar slider\n this.blockStartTime = time\n this.fInterface = await new FramesInterface(\n this.channelCode,\n this.numberOfRows,\n this.framesPerRow,\n time,\n this.startAudienceTime,\n this.useCache\n )\n await this.fInterface.init()\n\n this.getFramesArray()\n\n this.activeFrame = this.getIndex(1, 0, Positions.current)\n\n this.activeVideo = null\n },\n getIndex(rowNumber, frameIndex, position) {\n let from = this.framesPerRow * this.numberOfRows * position\n let till = this.framesPerRow * this.numberOfRows * (position + 1)\n\n return (from + till * (rowNumber - 1)) / rowNumber + frameIndex\n },\n getAudienceTime(frameTime, rowNumber, frameNumber, position) {\n if (!frameTime) {\n return 'Loading...'\n } else if (\n this.getIndex(rowNumber, frameNumber, position) === this.activeVideo\n ) {\n return this.convertToAudienceTime(this.videoTime)\n } else {\n return this.convertToAudienceTime(frameTime)\n }\n },\n dateInUtc(miliSeconds) {\n var date = new Date(miliSeconds)\n var utc = new Date(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds()\n )\n return utc\n },\n convertToAudienceTime(time, separator = ':') {\n const d = this.getDateParts()\n const limit = Date.UTC(d.year, d.month, d.day, 23, 59, 59) / 1000\n\n let hour = this.dateInUtc(time * 1000)\n .toTimeString()\n .split(' ')[0]\n .split(':')\n .map(Number)\n\n if (time > limit && time <= limit + this.startAudienceSeconds) {\n hour[0] = 24 + hour[0]\n }\n return hour\n .map((part) => (part > 9 ? part.toString() : '0' + part))\n .join(separator)\n },\n getDateParts(date = this.date) {\n const d = new Date(date)\n return {\n year: d.getFullYear(),\n month: d.getMonth(),\n day: d.getDate(),\n }\n },\n selectFrame(index, frame) {\n const d = this.getDateParts()\n const limit = Date.UTC(d.year, d.month, d.day, 23, 59, 59) / 1000\n const frameTime = frame?.time\n\n if (frameTime - (this.startAudienceSeconds + limit) <= 0) {\n if (this.hourIniSelected === true) {\n this.hourIniSelected = frameTime\n\n if (\n this.hourEndSelected &&\n this.hourIniSelected > this.hourEndSelected\n ) {\n this.hourEndSelected = false\n }\n } else if (this.hourEndSelected === true) {\n if (frameTime > this.hourIniSelected) {\n this.hourEndSelected = frameTime\n this.canInsertTime = true\n } else {\n this.hourEndSelected = false\n }\n }\n }\n\n if (this.activeFrame !== index) {\n // ? Se clicar no frame diferente de onde está a dar play, faz pausa\n const array = this.$refs.frames.filter(\n (fc) => fc.videoStatus === fc.Status.playing\n )\n if (array.length === 1) {\n const frame = array[0]\n frame.playOrPause()\n }\n this.activeVideo = null\n this.activeFrame = index\n }\n },\n setHourIni() {\n this.canInsertTime = true\n this.hourIniSelected = true\n document.getElementById(`frame-${this.activeFrame}`).click()\n this.$emit('setHourIni', {\n hour_ini: this.hourIniSelected\n ? this.convertToAudienceTime(this.hourIniSelected, '')\n : null,\n })\n },\n setHourEnd() {\n this.canInsertTime = true\n this.hourEndSelected = true\n document.getElementById(`frame-${this.activeFrame}`).click()\n },\n //* Navegação\n arrowRight() {\n if (this.checkLimitRight(false)) {\n if (\n this.activeFrame ===\n this.numberOfRows * this.framesPerRow * 2 - 1\n ) {\n this.next()\n } else {\n this.activeFrame++\n }\n }\n },\n arrowLeft() {\n if (this.checkLimitLeft(false)) {\n if (this.activeFrame === this.numberOfRows * this.framesPerRow) {\n this.prev()\n } else {\n this.activeFrame--\n }\n }\n },\n checkLimitRight(value) {\n const d = this.getDateParts()\n const high = Date.UTC(d.year, d.month, d.day, 26, 29, 59)\n\n if (value) {\n return (\n high > (this.fInterface.getCurrentTime() - 1) * 1000 &&\n this.nextFrames[0].title !== -1\n )\n } else {\n // return high > (this.fInterface.getCurrentTime() + this.activeFrame) * 1000\n return high > this.fInterface.getCurrentTime() * 1000\n }\n },\n checkLimitLeft(value) {\n const d = this.getDateParts()\n const low = Date.UTC(d.year, d.month, d.day, 2, 30, 0)\n\n if (value) {\n return low <= (this.fInterface.getCurrentTime() - 1) * 1000\n } else {\n return (\n low <\n (this.fInterface.getCurrentTime() +\n this.activeFrame -\n this.numberOfRows * this.framesPerRow) *\n 1000\n )\n }\n },\n async next() {\n if (this.checkLimitRight(true)) {\n const array = this.$refs.frames.filter(\n (fc) =>\n fc.videoStatus === fc.Status.playing ||\n fc.videoStatus === fc.Status.paused\n )\n\n if (array.length === 1) {\n const frame = array[0]\n frame.stop(false)\n }\n this.fInterface.setCurrentStep(this.secondsPerFrame)\n await this.fInterface.loadNextFrames()\n\n this.activeFrame = this.getIndex(1, 0, Positions.current)\n this.activeVideo = null\n\n this.getFramesArray()\n }\n },\n async prev() {\n if (this.checkLimitLeft(true)) {\n const array = this.$refs.frames.filter(\n (fc) =>\n fc.videoStatus === fc.Status.playing ||\n fc.videoStatus === fc.Status.paused\n )\n if (array.length === 1) {\n const frame = array[0]\n frame.stop(false)\n }\n\n this.fInterface.setCurrentStep(this.secondsPerFrame)\n await this.fInterface.loadPrevFrames()\n\n this.activeFrame = this.getIndex(\n this.numberOfRows,\n this.framesPerRow - 1,\n Positions.current\n )\n this.activeVideo = null\n\n this.getFramesArray()\n }\n },\n async setStartTime(time) {\n if (time.indexOf(':') !== -1) {\n time = time.replace(/:/g, '')\n }\n const t = time.match(/.{1,2}/g)\n const d = this.getDateParts()\n const setTime = Date.UTC(d.year, d.month, d.day, t[0], t[1], t[2]) / 1000\n this.frames = this.loadingArray\n\n await this.fInterface.changeTime(setTime)\n\n this.getFramesArray()\n\n this.activeFrame = this.getIndex(1, 0, Positions.current)\n // let frames = this.$refs.frames\n\n // let audienceTime = null\n // if (frames.length > 0) {\n // let frame = frames[0].frame\n // audienceTime = this.getAudienceTime(frame.time, 0, 0, 0)\n // }\n\n this.activeVideo = null\n\n return true\n },\n hourToTimeStamp(time) {\n if (time.indexOf(':') !== -1) {\n time = time.replace(/:/g, '')\n }\n const t = time.match(/.{1,2}/g)\n const d = this.getDateParts()\n const setTime = Date.UTC(d.year, d.month, d.day, t[0], t[1], t[2]) / 1000\n\n return setTime\n },\n async changeHour(value) {\n if (value) {\n setTimeout(() => {\n const array = this.$refs.frames.filter(\n (fc) =>\n fc.videoStatus === fc.Status.playing ||\n fc.videoStatus === fc.Status.paused\n )\n\n if (array.length === 1) {\n const frame = array[0]\n frame.stop(false)\n }\n\n this.setStartTime(value, true)\n }, 0)\n }\n },\n changeBlockInterval(value) {\n this.changeHour(value.ini)\n let time_ini, time_end\n time_ini = this.hourToTimeStamp(value.ini)\n time_end = this.hourToTimeStamp(value.end)\n this.videoSliderTotalDuration = time_end - time_ini\n this.$refs.frames[0].changeSettings(time_ini)\n this.blockStartTime = time_ini\n },\n //eslint-disable-next-line\n async updateVideoTime(index, videoTime) {\n this.activeVideo = index\n this.videoTime = videoTime\n },\n //eslint-disable-next-line\n updateVideoStatus(currentTime) {\n if (!this.progressVideoDrag) {\n // ESTA FUNÇÃO PASSOU PARA DENTRO DOS COMMANDS\n // this.updateProgress(null, currentTime)\n }\n },\n async startPlaying(frame, totalTime) {\n const array = this.$refs.frames.filter(\n (fc) => fc.frame.time !== frame.time\n )\n\n for (let ref of array) {\n if (\n ref.videoStatus === ref.Status.playing ||\n ref.videoStatus === ref.Status.paused\n ) {\n ref.stop(false)\n }\n }\n\n this.videoTotalTime = totalTime\n this.videoPlaying = true\n },\n stopPlaying() {\n this.videoTotalTime = null\n this.videoPlaying = false\n this.paused = false\n },\n insertTime() {\n this.$emit('timeToInsert', {\n channel: this.channel,\n hour_ini: this.hourIniSelected\n ? this.convertToAudienceTime(this.hourIniSelected, '')\n : null,\n hour_end: this.hourEndSelected\n ? this.convertToAudienceTime(this.hourEndSelected, '')\n : null,\n force: false,\n })\n\n if (this.jumpOnInsert) {\n this.changeHour(\n this.convertToAudienceTime(\n (this.hourEndSelected || this.hourIniSelected) + 1\n )\n )\n }\n\n this.hourIniSelected = null\n this.hourEndSelected = null\n this.canInsertTime = false\n\n // this.fInterface.setCurrentPosition(this.hourEndSelected)\n },\n insertTimeForce() {\n this.$emit('timeToInsert', {\n channel: this.channel,\n hour_ini: this.hourIniSelected\n ? this.convertToAudienceTime(this.hourIniSelected, '')\n : null,\n hour_end: this.hourEndSelected\n ? this.convertToAudienceTime(this.hourEndSelected, '')\n : null,\n force: true,\n })\n\n this.hourIniSelected = null\n this.hourEndSelected = null\n this.canInsertTime = false\n\n // this.fInterface.setCurrentPosition(this.hourEndSelected)\n },\n async getChannelMedia() {\n // this.media = (await ChannelService.show(this.channel)).data.MEDIA\n },\n async changeServerClick() {\n this.changeServer = !this.changeServer\n // this.$store.dispatch(\n // 'serverOfFrames',\n // this.changeServer ? 'alternative' : 'default'\n // )\n sessionStorage.setItem(\n 'serverOfFrames',\n this.changeServer ? 'alternative' : 'default'\n )\n\n // if (this.$route.params.time != this.frames[0].time)\n // this.$router.push({\n // name: 'grid',\n // params: {\n // date: this.date,\n // channel: this.channelCode,\n // time: this.frames[0].time,\n // },\n // })\n location.reload()\n },\n },\n computed: {\n active: {\n get() {\n return this.value\n },\n set(value) {\n this.$emit('input', value)\n },\n },\n settingsClosed() {\n return !Object.values(this.dialogs).find((v) => v)\n },\n startAudienceSeconds() {\n const t = this.startAudienceTime.match(/.{1,2}/g)\n return parseInt(t[0] * 3600 + t[1] * 60 + t[2])\n },\n loadingArray() {\n return Array.from(Array(this.numberOfRows * this.framesPerRow).keys())\n },\n serverOfFrames() {\n return sessionStorage.getItem('server')\n },\n },\n watch: {\n framesFormat(value) {\n this.setFrameSelection(value)\n },\n active() {\n // ? sempre que trocamos de tabs dar reset as horas selected\n this.hourIniSelected = false\n this.hourEndSelected = false\n },\n useCache() {\n this.createFramesInterface()\n },\n hourIniSelected(value) {\n if (value) {\n sessionStorage.setItem(\n 'currentTimeFrames',\n this.convertToAudienceTime(this.hourIniSelected, '')\n )\n } else {\n sessionStorage.removeItem('currentTimeFrames')\n }\n },\n activeFrame(value) {\n if (value) {\n this.stopPlayingBar()\n }\n },\n channel() {\n this.updatingChannel = new Promise((resolve, reject) => {\n try {\n this.createFramesInterface()\n resolve(true)\n } catch (err) {\n reject(err)\n }\n })\n },\n },\n}\n</script>\n<style scoped>\n.visualization-row {\n display: flex;\n flex-wrap: wrap;\n flex: 1 1 auto;\n}\n\n.visualization-col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n padding: 12px;\n}\n\n.visualization-divider {\n display: block;\n flex: 1 1 100%;\n height: 0px;\n max-height: 0px;\n opacity: 1;\n transition: inherit;\n border-style: solid;\n border-width: thin 0 0 0;\n border-color: rgba(0, 0, 0, 0.12);\n margin: 0;\n}\n\n.visualization-divider.vertical {\n align-self: stretch;\n border-width: 0 thin 0 0;\n display: inline-flex;\n height: inherit;\n margin-left: -1px;\n max-height: 100%;\n max-width: 0px;\n vertical-align: text-bottom;\n width: 0px;\n}\n\n.visualization-card {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n padding: 12px;\n width: 100%;\n transition-property: box-shadow, opacity, -webkit-box-shadow;\n overflow-wrap: break-word;\n /*box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14),\n 0 1px 5px 0 rgba(0, 0, 0, 0.12);*/\n}\n\n.visualization-justify-center {\n justify-content: center;\n}\n\n.visualization-align-center {\n align-items: center;\n}\n\n#visualization-container {\n max-width: 100% !important;\n margin: 0 auto !important;\n height: 100%;\n border-bottom: none;\n}\n#visualization-container > .card {\n border-radius: 0 !important;\n font-size: 12px;\n width: 100%;\n box-shadow: none;\n height: 100%;\n}\n\n#command-bar,\n#info-bar {\n background-color: #f5f5f5;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14),\n 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n#command-bar button {\n width: 42px;\n height: 36px;\n border: none;\n background: none;\n}\n\n#command-bar button:hover {\n cursor: pointer;\n background: rgba(0, 0, 0, 0.12);\n}\n\n#command-bar svg {\n font-size: 16px;\n}\n\n#command-bar {\n padding: 0 !important;\n}\n\n#info-bar {\n padding: 4px;\n font-size: 14px;\n position: relative;\n}\n\n.settings-container {\n position: absolute;\n right: 14px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.settings-container > * {\n margin: 0 2px;\n cursor: pointer;\n}\n\n#info-bar svg {\n font-size: 16px;\n}\n\n#info-bar .divider {\n margin: 0 8px;\n}\n\nsvg:focus {\n border: none;\n}\n\n.visualization-card {\n border-left: 8px solid #eee;\n}\n\n.active-tab {\n border-left: 8px solid var(--visualization-primary) !important;\n border-image-slice: 1;\n}\n\n[id^='frame-'] {\n padding: 1px;\n display: flex;\n flex-flow: column;\n}\n\n.tooltip {\n display: block !important;\n z-index: 10000;\n}\n\n.tooltip .tooltip-inner {\n background: var(--visualization-primary);\n color: white;\n border-radius: 16px;\n padding: 5px 10px 4px;\n}\n\n.tooltip .tooltip-arrow {\n width: 0;\n height: 0;\n border-style: solid;\n position: absolute;\n margin: 5px;\n border-color: var(--visualization-primary);\n z-index: 1;\n}\n\n.tooltip[x-placement^='top'] {\n margin-bottom: 5px;\n}\n\n.tooltip[x-placement^='top'] .tooltip-arrow {\n border-width: 5px 5px 0 5px;\n border-left-color: transparent !important;\n border-right-color: transparent !important;\n border-bottom-color: transparent !important;\n bottom: -5px;\n left: calc(50% - 5px);\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.tooltip[x-placement^='bottom'] {\n margin-top: 5px;\n}\n\n.tooltip[x-placement^='bottom'] .tooltip-arrow {\n border-width: 0 5px 5px 5px;\n border-left-color: transparent !important;\n border-right-color: transparent !important;\n border-top-color: transparent !important;\n top: -5px;\n left: calc(50% - 5px);\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.tooltip[x-placement^='right'] {\n margin-left: 5px;\n}\n\n.tooltip[x-placement^='right'] .tooltip-arrow {\n border-width: 5px 5px 5px 0;\n border-left-color: transparent !important;\n border-top-color: transparent !important;\n border-bottom-color: transparent !important;\n left: -5px;\n top: calc(50% - 5px);\n margin-left: 0;\n margin-right: 0;\n}\n\n.tooltip[x-placement^='left'] {\n margin-right: 5px;\n}\n\n.tooltip[x-placement^='left'] .tooltip-arrow {\n border-width: 5px 0 5px 5px;\n border-top-color: transparent !important;\n border-right-color: transparent !important;\n border-bottom-color: transparent !important;\n right: -5px;\n top: calc(50% - 5px);\n margin-left: 0;\n margin-right: 0;\n}\n\n.tooltip.popover .popover-inner {\n background: #f9f9f9;\n color: black;\n padding: 24px;\n border-radius: 5px;\n box-shadow: 0 5px 30px rgba(black, 0.1);\n}\n\n.tooltip.popover .popover-arrow {\n border-color: #f9f9f9;\n}\n\n.tooltip[aria-hidden='true'] {\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.15s, visibility 0.15s;\n}\n\n.tooltip[aria-hidden='false'] {\n visibility: visible;\n opacity: 1;\n transition: opacity 0.15s;\n}\n</style>\n"]}, media: undefined });
|
|
4475
|
+
|
|
4476
|
+
};
|
|
4477
|
+
/* scoped */
|
|
4478
|
+
const __vue_scope_id__ = "data-v-576d506a";
|
|
4479
|
+
/* module identifier */
|
|
4480
|
+
const __vue_module_identifier__ = undefined;
|
|
4481
|
+
/* functional template */
|
|
4482
|
+
const __vue_is_functional_template__ = false;
|
|
4483
|
+
/* style inject SSR */
|
|
4484
|
+
|
|
4485
|
+
/* style inject shadow dom */
|
|
4486
|
+
|
|
4487
|
+
|
|
4488
|
+
|
|
4489
|
+
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
|
4490
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
4491
|
+
__vue_inject_styles__,
|
|
4492
|
+
__vue_script__,
|
|
4493
|
+
__vue_scope_id__,
|
|
4494
|
+
__vue_is_functional_template__,
|
|
4495
|
+
__vue_module_identifier__,
|
|
4496
|
+
false,
|
|
4497
|
+
createInjector,
|
|
4498
|
+
undefined,
|
|
4499
|
+
undefined
|
|
4500
|
+
);
|
|
4501
|
+
|
|
4502
|
+
var Visualization = /*#__PURE__*/Object.freeze({
|
|
2635
4503
|
__proto__: null,
|
|
2636
|
-
'default':
|
|
4504
|
+
'default': __vue_component__
|
|
2637
4505
|
});
|
|
2638
4506
|
|
|
2639
4507
|
export { index as default };
|